[AWS][存储] 制作自己的企业网盘S3 Policy+S3 Browser

最近很多客户问我S3有没有客户端工具?如何通过IAM用户和权限通过一个客户端来管理我的存储桶?
本文以第三方工具S3 Browser 结合 S3 的 一些特性(Bucket,Objective-level-logging,IAM user,IAM Policy,S3 versioning)一步一步带你实现客户端的存储桶管理。

非常适合的场景是多个部门或Team,比如开发,市场,运营,人事等 他们都需要有各自的权限各自的桶来管理文件。

  1. 先建立一个bucket:s3-bucket-devgroup 来作为测试bucket。

[AWS][存储] 制作自己的企业网盘S3 Policy+S3 Browser

  1. 这里写一个Tags和开启Object-level logging(我后面会告诉你有什么用)

[AWS][存储] 制作自己的企业网盘S3 Policy+S3 Browser

  1. 随便上传个对象,为了测试:

[AWS][存储] 制作自己的企业网盘S3 Policy+S3 Browser

  1. 确认一下基于 Object-level logging 有没有启用。

[AWS][存储] 制作自己的企业网盘S3 Policy+S3 Browser

  1. Copy 一下 Bucket ARN 到 note或记事本中,我们在后面做policy的时候会用到。
    格式是:arn:aws:s3:::s3-bucket-devgroup

[AWS][存储] 制作自己的企业网盘S3 Policy+S3 Browser

  1. 这是第二部分,在IAM中添加一个User并赋予权限。

[AWS][存储] 制作自己的企业网盘S3 Policy+S3 Browser

  1. 这里在Access type中,根据权限最小化原则,我并没有选择让DevUser01这个用户有登陆控制台的权限。

[AWS][存储] 制作自己的企业网盘S3 Policy+S3 Browser

  1. 这里我们创建一个策略Policy。
    [AWS][存储] 制作自己的企业网盘S3 Policy+S3 Browser

  2. 定义策略,Service 选择S3。我现在的目的只想让这个用户看到s3-bucket-devgroup的桶里有什么,其他权限都没有。我稍后会给他加上传和下载的权限。
    [AWS][存储] 制作自己的企业网盘S3 Policy+S3 Browser

  3. 复制刚才copy 到note或记事本中的ARN,
    [AWS][存储] 制作自己的企业网盘S3 Policy+S3 Browser

  4. object 选择 Any。
    [AWS][存储] 制作自己的企业网盘S3 Policy+S3 Browser

  5. 取一个特别的名字;
    [AWS][存储] 制作自己的企业网盘S3 Policy+S3 Browser

  6. 将刚刚创建好的Policy附给DevUser01这个用户;

[AWS][存储] 制作自己的企业网盘S3 Policy+S3 Browser

[AWS][存储] 制作自己的企业网盘S3 Policy+S3 Browser

[AWS][存储] 制作自己的企业网盘S3 Policy+S3 Browser

  1. 创建完User后,我们要复制他的AK和SK,也就是有码部分。我们使用客户端的时候会用到。

  2. 第三部分,下载并使用S3 browser。

http://s3browser.com/

[AWS][存储] 制作自己的企业网盘S3 Policy+S3 Browser

[AWS][存储] 制作自己的企业网盘S3 Policy+S3 Browser

  1. 使用AK/SK登陆
    [AWS][存储] 制作自己的企业网盘S3 Policy+S3 Browser

  2. 看到我桶里的Bucket,但是我随意点击一个不是s3-bucket-devgroup的桶,发现是Access Denied的。

[AWS][存储] 制作自己的企业网盘S3 Policy+S3 Browser

  1. 我有权限访问s3-bucket-devgroup的桶,但是没有下载和上传的权限。

[AWS][存储] 制作自己的企业网盘S3 Policy+S3 Browser

[AWS][存储] 制作自己的企业网盘S3 Policy+S3 Browser

  1. 我赋予DevUser01下载和上传的权限,我将Write中的Put操作勾选上;

[AWS][存储] 制作自己的企业网盘S3 Policy+S3 Browser

  1. 更新我的策略Policy;
    [AWS][存储] 制作自己的企业网盘S3 Policy+S3 Browser

  2. Refresh后发现我就拥有了对s3-bucket-devgroup桶的上传和下载权限;
    [AWS][存储] 制作自己的企业网盘S3 Policy+S3 Browser

  3. 我上传的文件也同步到S3中

[AWS][存储] 制作自己的企业网盘S3 Policy+S3 Browser

  1. 为了防止同事误删,我没有给DevUser01删除对象的权限;

但是,当该用户上传同名文件的时候,原文件将被覆盖,这里建议开启版本控制,一旦文件被覆盖我们可以还原之前的版本。在S3的控制台中Enable versioning。如下图:

[AWS][存储] 制作自己的企业网盘S3 Policy+S3 Browser

  1. 这样一旦我的文件被错误的覆盖,我也能还原我之前的版本。

可以通过S3 Browser 恢复
[AWS][存储] 制作自己的企业网盘S3 Policy+S3 Browser

  1. 也可以通过S3 还原,当然,这里我并没有授予DevUser01登陆控制台的权限,所以他无法登陆控制台还原。只有管理员或赋予相应权限的用户才可以通过控制台进行还原。
    [AWS][存储] 制作自己的企业网盘S3 Policy+S3 Browser

  2. 最后,记得我们前面为什么开启Object-level logging吗?
    作为管理员,我想要知道,我分配的用户对Bucket桶中都做了哪儿些操作,尤其是有删除权限的用户。CloudTrail尤为重要。
    除此之外CloudTrail可帮助对您的 AWS 账户进行监管、合规性检查、操作审核和风险审核。用户、角色或 AWS 服务执行的操作将记录为 CloudTrail 中的事件。事件包括在 AWS 管理控制台、AWS Command Line Interface 和 AWS 开发工具包和 API 中执行的操作。
    https://docs.aws.amazon.com/zh_cn/awscloudtrail/latest/userguide/view-cloudtrail-events-console.html

[AWS][存储] 制作自己的企业网盘S3 Policy+S3 Browser

备注:

1.我们还可以将权限根据我们的需求进行更一步的细化,可以参考:https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/dev/using-with-s3-actions.html
2.除了S3 Browser 以为还有其他第三方工具,比如CloudBerry Explorer,Commander One 也都可以并支持Mac OS。
3.S3 Browser 免费版本Free Version for non-commercial use only,如果商用,请购买或Upgrade to Pro版本。

有关S3权限的详细视频课程:https://edu.51cto.com/center/course/lesson/index?id=533836

猜你喜欢

转载自blog.51cto.com/13746986/2505595