其他AWS账户访问Amazon S3

14

我试图为一个账户的S3存储桶授予权限,使得另一个账户可以访问。

在权限选项卡中创建存储桶后,有一个“其他AWS账户访问”选项。在此下面,我看到了一个添加账户按钮。我点击它并指定了我的另一个账户以便能够访问这个存储桶。

然而,我遇到了"无效ID"错误。

3个回答

8
如果您希望授予不同账户中特定的“用户”访问权限,这很简单。(我认为此方法无法为不同的“账户”提供访问权限。)
假设您有:
- 您拥有的Bucket A在账户A中 - 您希望授予访问权限的User B在账户B中
请向User B请求与他们的IAM用户相关联的ARN。这可以在IAM管理控制台中查看,并且它将如下所示:
arn:aws:iam::123456789012:user/fred

然后,将一个 Bucket Policy 添加到Bucket A中:
{
    "Version": "2012-10-17",
    "Id": "S3AccessPolicy",
    "Statement": [
        {
            "Sid": "GiveFredAccess",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::123456789012:user/fred"
            },
            "Action": [
                "s3:GetObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::bucket-a",
                "arn:aws:s3:::bucket-a/*"
            ]
        }
    ]
}

这将允许 Fred 访问 S3 存储桶。这适用于 相同的 帐户内的用户以及不同帐户内的用户。


1
这不相关(虽然在不同情境下这可能是正确的做法)。 - ink

5

3
你需要获取“规范用户 ID”。你可以在这里了解相关信息。
以下是查看作为根用户(控制台)的规范用户 ID 的步骤: 1. 使用 AWS 帐户电子邮件地址和密码登录根用户。 2. 单击控制台右上角的帐户名称或编号,然后选择“我的安全凭证”。 3. 如果需要,在对话框中选择“继续到安全凭证”。如果您不想在将来看到该对话框,请选择其旁边的“不再显示此消息”复选框。 4. 展开“帐户标识符”部分以查看您的规范用户 ID。
注意:如果您看不到“帐户标识符”部分,则表示您未登录为根用户。请返回第 1 步。如果您无法访问根用户凭据,请联系您的 AWS 帐户管理员并请求他们检索规范用户 ID。

2
如果您尝试为不同的用户(而非root用户)设置权限,则此方法无效。 - Chris Owens
简短的回答是可以做到,但资源所有者和用户的父账户都需要授予权限。请参考:https://docs.aws.amazon.com/AmazonS3/latest/dev/example-walkthroughs-managing-access-example2.html - Alex Hague
@Chris PS,如果您投了反对票,请记住OP的问题背景是关于UI中需要规范用户ID的特定场景,而不是通用的跨账户访问问题。 - Alex Hague

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