我正在尝试将帐户中S3存储桶的访问权限授予其他帐户。
对于权限选项卡中创建的存储桶,可以选择其他AWS账户的Access。在那之下,我看到一个添加帐户按钮。我点击了它并给了我想要访问此存储桶的其他帐户。
但是,我收到Invalid ID
错误。
答案 0 :(得分:6)
如果您希望授予其他帐户中特定用户的访问权限,则非常简单。 (我不认为此方法可用于访问其他帐户。)
我们说你有:
向用户B询问与其IAM用户关联的 ARN 。这可以在IAM管理控制台中看到,它看起来像:
arn:aws:iam::123456789012:user/fred
然后,向Bucket A添加 Bucket Policy :
{
"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 :(得分:3)
您需要"规范用户ID"。你可以找到这个here。
以root用户(控制台)的身份查看规范用户ID
使用您的AWS账户电子邮件地址和密码以root用户身份登录。
...剪辑...
在控制台的右上角,选择您的帐户名称或号码。然后选择My Security Credentials。
如有必要,请在对话框中选择“继续安全凭据”。您可以选择“不再显示此消息”旁边的框以阻止对话框在将来出现。
展开“帐户标识符”部分以查看您的规范用户ID。
请注意 如果您没有看到“帐户标识符”部分,则表示您未以root用户身份登录。返回上面的第1步。如果您无权访问root用户凭据,请与您的AWS账户管理员联系,要求他们检索规范用户ID。
答案 2 :(得分:2)
要获取规范ID,最简单的方法之一是使用CLI并运行
aws s3api list-buckets
命令。
您将在输出中获得ID。
还有其他获取规范ID的方法,并且在aws文档中有明确说明:https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html
列表桶AWS文档:https://docs.aws.amazon.com/cli/latest/reference/s3api/list-buckets.html