多个access_keys用于具有相同S3帐户的不同权限?

时间:2012-05-23 23:35:00

标签: amazon-s3

我有一个S3 / AWS账户。我有几个网站,每个网站在S3上使用自己的存储桶来读/写存储。我还在S3上的其他存储桶上托管了许多个人资料(备份等),这些资源无法公开访问。

我希望没有这些网站 - 其中一些可能有其他人访问其源代码和配置属性并查看S3密钥 - 可以访问我的私人数据!

从阅读亚马逊的文档看,我需要按照每个存储桶的Amazon USER 来划分权限,而不是按每个存储桶的访问密钥划分权限。但这不会起作用。我似乎只获得2个访问密钥。我需要有一个访问密钥,这是一个主密钥,还有一些具有更多限制权限的访问密钥 - 仅限于某些存储桶。

有没有办法做到这一点,或接近那个?

3 个答案:

答案 0 :(得分:8)

您可以通过AWS Identity and Access Management (IAM)

来实现目标
  

AWS身份和访问管理(IAM)使您能够安全   为您的用户控制对AWS服务和资源的访问。我是   使您能够在AWS中创建和管理用户,它还使您能够   为在AWS外部管理的用户授予对AWS资源的访问权限   你的公司目录。 IAM提供更高的安全性,灵活性,   使用AWS时控制。 [强调我的]

正如所强调的那样,强烈建议在所有AWS事件中使用IAM,理想情况下,除了最初设置IAM之外,你绝不应该使用主帐户凭据(如mentioned by Judge Mental那样),你可以生成as你想要的许多访问键就像这样。)

您可以通过AWS Management Console使用IAM(即他们原则上不需要第三方工具来使用所有可用功能)。

生成所需的策略有时会有点棘手,但AWS Policy Generator对于帮助您入门并探索可用的内容非常有帮助。

对于手头的用例,您需要一个 S3 Bucket Policy ,特别是Using Bucket PoliciesAccess Control以获取各种可用S3访问控制的一般概述机制(可以以微妙的方式干预,参见例如Using ACLs and Bucket Policies Together)。

祝你好运!

答案 1 :(得分:0)

是,要使用相同的AWS账户访问具有不同权限的其他登录帐户,您可以使用AWS IAM。作为Bucket Explorer的开发者,我建议尝试Bucket Explorer-团队版,如果您正在寻找工具,为您提供具有不同登录和不同访问权限的gui界面。阅读http://team20.bucketexplorer.com

答案 2 :(得分:0)

只需创建一个限制对特定存储桶的访问的自定义IAM组策略

如......

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["s3:ListAllMyBuckets"],
      "Resource": "arn:aws:s3:::*"
    },
    {
      "Effect": "Allow",
      "Action": "s3:*",
      "Resource":
      [
        "arn:aws:s3:::my.bucket",
        "arn:aws:s3:::my.bucket/*"
      ]
    }
  ]
}

第一个操作s3:ListAllMyBuckets允许用户列出所有存储桶。如果没有这个,当用户登录时,他们的S3客户端将不会在存储桶列表中显示任何内容。

第二个操作为名为' my.bucket'的存储桶授予用户完整的S3权限。这意味着他们可以自由地在存储桶中创建/列出/删除存储桶资源和用户ACL。

授予s3:*访问权限非常宽松。如果您想要对存储桶进行更严格的控制,只需查找要授予的相关操作并将其添加为列表。

"Action": "s3:Lists3:GetObject, s3:PutObject, s3:DeleteObject" 

我建议您将此策略创建为一个组(ex my.bucket_User),这样您就可以将其分配给需要访问此存储桶的每个用户,而无需任何不必要的copypasta。