我正在尝试授予用户对某些存储桶的读/写/列出权限,我的 IAM 策略是:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::kl-bucket1",
"arn:aws:s3:::kl-bucket2",
"arn:aws:s3:::kl-bucket3",
"arn:aws:s3:::kl-bucket4"
]
},
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::kl-bucket3",
"arn:aws:s3:::kl-bucket4"
]
}
]
}
当我尝试写入存储桶4时,我收到403错误,但是如果我像下面这样授予完全权限,那么我就可以写入bucket4。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": "*"
}
]
}
可能是什么问题?
附言虽然此问题类似于 S3:如何授予对多个存储桶的访问权限?实际问题是不同的。
问题是我还在 PutObject 之后设置了访问控制,而 IAM 策略正在设置该权限。
@Asarluhi的回答有所帮助。
已将操作修改为:
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:PutObjectAcl"
],