AWS S3存储桶组织访问策略

10
我的公司在AWS上建立了一个组织(以CompanyA为例),每个团队都有一个加入此组织的帐户(HR、ProductA、ProductB等)。我们在ProductA部门正试图向该组织下的任何人提供对我们拥有的作为yum存储库的S3存储桶的只读访问权限,而无需进行身份验证(yum命令可以直接使用)。
我们评估了以下一些项目: https://github.com/rmela/yum-s3-plugin -> 这将与用户主体访问一起使用,用户需要添加他们的密钥才能从存储库中拉取内容。 http://parthicloud.com/how-to-access-s3-bucket-from-application-on-amazon-ec2-without-access-credentials/ -> 很好的教程,适用于您自己的帐户中,EC2实例需要通过IAM策略启动以允许访问存储桶。
2个回答

27

在存储桶策略中添加一个条件,指定您的AWS组织,并允许所有主体访问。参见AWS 全局条件上下文键,查找 aws:PrincipalOrgID。"当您添加和删除帐户时,包括aws:PrincipalOrgID的策略会自动包括正确的帐户,无需手动更新。"

以下示例中的ActionResource部分应与列出组织中所有AWS帐户的当前策略相同。

{
  "Version": "2012-10-17",
  "Statement": {
    "Sid": "AllowOrganizationToReadYumBucket",
    "Effect": "Allow",
    "Principal": "*",
    "Action": [
      "s3:GetObject",
      "s3:ListBucket"
    ],
    "Resource": [
      "arn:aws:s3:::your-yum-bucket",
      "arn:aws:s3:::your-yum-bucket/*"
    ],
    "Condition": {
      "StringEquals": {"aws:PrincipalOrgID":["o-xxxxxxxxxxx"]}
    }
  }
}

1
这是一个很好的解决方案。唯一的问题是s3:ListObject权限不存在。应该是s3:ListBucket - JoseOlcese
1
这将允许所有账户用户、组和角色在所有账户中拥有权限。 - victor m

-1

Amazon S3存储桶策略无法引用AWS组织中的一组帐户。

您的存储桶策略需要逐个列出每个帐户的权限。例如:

"Principal":{"AWS":"arn:aws:iam::ACCOUNT-NUMBER:user/*"}

是的,我们已经做到了。我应该再多描述一下。这个S3仓库将成为一个yum仓库。我们希望能够添加一些策略,允许其他账户在不登录其EC2实例的情况下访问该仓库。我找到了很多在自己账户内工作的示例(http://parthicloud.com/how-to-access-s3-bucket-from-application-on-amazon-ec2-without-access-credentials/),以及需要使用s3 auth和yum的示例(https://github.com/rmela/yum-s3-plugin)。 - user2403018

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接