我创建了一个名为user1的用户和一个名为s3limitedaccess的角色,并在下面附加了此存储桶策略。为此用户创建了访问和密钥,但无法让此用户查看此存储桶或对其执行任何操作。请有人建议。感谢
代码:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1499888918000",
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": [
"arn:aws:s3:::rscexternal/*"
]
}
]
}
答案 0 :(得分:0)
如果您希望为特定IAM用户,IAM组或IAM角色分配权限,您应在IAM 中直接针对该用户/组/角色分配权限,而不是创建存储桶政策。 (这可能就是你所做的,但你提到了#34;桶策略"所以目前还不清楚。)
某些Amazon S3 API调用在存储桶级(例如列出存储桶)运行,而某些调用则在对象级(例如GetObject)运行。因此,您需要一个允许访问以下两者的策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "GrantFullAccess",
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": [
"arn:aws:s3:::rscexternal",
"arn:aws:s3:::rscexternal/*"
]
}
]
}
具有上述策略的IAM用户应该能够访问存储桶。例如,使用AWS Command-Line Interface (CLI):
aws s3 ls s3://rscexternal
如果您希望用户能够通过管理控制台使用Amazon S3,则需要其他权限。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetBucketLocation",
"s3:ListAllMyBuckets"
],
"Resource": "arn:aws:s3:::*"
},
{
"Effect": "Allow",
"Action": ["s3:ListBucket"],
"Resource": ["arn:aws:s3:::test"]
},
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:DeleteObject"
],
"Resource": ["arn:aws:s3:::test/*"]
}
]
}