我正在尝试让来自其他AWS账户的用户访问存储桶itv-twitterstg-archive
,并且我添加了以下存储桶策略。他们说他们正在收到许可被拒绝的消息。任何人都可以看到此政策的任何问题或推荐我可以尝试的任何其他内容? (ps,我在这个例子中更改了桶的名称)。一旦你保存了桶策略就应该生效了吗?
编辑**总而言之,我希望来自账户AWS账户456456615374的用户twitterstg-backup能够执行以下操作:
"s3:GetObject*"
"s3:PutObject"
"s3:PutObjectAcl"
"s3:DeleteObject"
"s3:GetBucketLocation"
"s3:GetBucketAcl"
"s3:ListBucket"
{
"Version": "2012-10-17",
"Id": "twitterstg backup policy",
"Statement": [
{
"Sid": "Allow read/write of Objects within archive from specific user",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::456456615374:user/twitterstg-backup"
},
"Action": [
"s3:GetObject*",
"s3:PutObject",
"s3:PutObjectAcl",
"s3:DeleteObject"
],
"Resource": "arn:aws:s3:::itv-twitterstg-archive/*"
},
{
"Sid": "Allow read/list of archive Bucket from specific user",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::456456615374:user/twitterstg-backup"
},
"Action": [
"s3:GetBucketLocation",
"s3:GetBucketAcl",
"s3:ListBucket"
],
"Resource": "arn:aws:s3:::itv-twitterstg-archive"
}
]
}
答案 0 :(得分:1)
问题中列出的政策对我来说非常合适!
这就是我的所作所为:
在帐户A中:
User-A
)在帐户B中:
Bucket-B
)Principal
,我插入了User-1
Resource
,使用了我的Amazon S3存储桶的名称然后我使用User-A
的凭据列出Bucket-B
的内容:
aws s3 ls s3://bucket-b --profile user-a
我还将文件复制到Bucket-B
:
aws s3 cp foo s3://bucket-b --profile user-a
底线:它工作正常。您应该调查用户遇到问题的原因。您还应该尝试重现他们的情况(例如,通过自己尝试)。
答案 1 :(得分:0)
请注意,本金应为帐户B (即其他帐户)值。
"Principal": {
"AWS": "arn:aws:iam::456456615374:user/twitterstg-backup"
},
示例: - 强>
"Principal": {
"AWS": "arn:aws:iam::AccountB-ID:root"
},
第二个帐户: -
也应该为IAM用户设置适当的策略。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Example",
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::itv-twitterstg-archive"
]
}
]
}
如何查找帐户ID: -
请按照以下步骤获取帐户B的帐户ID。