1

我有两个亚马逊账户 Account-A 和 Account-B。我想让 Account-B 完全控制 Account-A 中的所有 S3 相关操作,例如 Account-B 可以创建/删除/列出属于 Account-A 的存储桶。

你能指点我是怎么做的吗?到目前为止,我只能找到如何授予对单个 S3 存储桶的跨账户访问权限,而不是授予所有 S3 功能。

4

2 回答 2

1

有两种方法可以为 Amazon S3 分配跨账户权限:

使用存储桶策略

  • 将存储桶策略添加到每个所需的存储桶,以向其他账户授予权限
  • 向账户 B 中的所需 IAM 用户和 IAM 角色添加权限,以允许他们访问账户 A 中的存储桶

请注意,两个方向都需要权限。

此方法的缺点是必须将存储桶策略应用于您希望使其可用的每个存储桶。此外,这不适用于创建新的存储桶,因为没有存储桶策略来授予访问权限。

使用 IAM 角色

  • 在 Account-A ( ) 中创建一个具有所有所需 S3 权限的 IAM 角色Role-A,以及一个信任 Account-B 的信任策略
  • 从账户-B,AssumeRole()调用Role-A
  • 使用返回的凭证管理 Account-A 中的 S3 资源

这不需要任何存储桶策略,但需要调用AssumeRole().

另请参阅:提供对 S3 存储桶中对象的跨账户访问

于 2020-09-14T21:49:30.950 回答
1

AWS doc walkthrough开始,然后将存储桶策略设置为(我对文档的更改有//评论):

{
   "Version": "2012-10-17",
   "Statement": [
      {
         "Sid": "Example permissions",
         "Effect": "Allow",
         "Principal": {
            "AWS": "arn:aws:iam::AccountB-ID:root"
         },
         "Action": [
            "s3:*", // ALL S3 actions
         ],
         "Resource": [
            "*" // ALL resources with an 's3:' operation
         ]
      }
   ]
}
于 2020-09-14T17:17:10.157 回答