创建了一个IAM用户,在特定的ARN(只有一个存储桶)上具有S3完全访问权限(S3:*)。上传和删除有效,但无法重命名或复制/粘贴。
这是我的IAM政策。
{
"Sid": "Stmt1490288788",
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": [
"arn:aws:s3:::bucket-name/*"
]
}
答案 0 :(得分:0)
虽然S3本身并没有实际重命名功能,但是某些界面可能会尝试通过在幕后使用S3 PUT对象复制和DELETE操作来实现它。它们的实现可能需要其他桶级权限才能完成,这就是为什么它可能会失败。试试这个:
{
"Sid": "Stmt1490288788",
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": [
"arn:aws:s3:::bucket-name",
"arn:aws:s3:::bucket-name/*"
]
}
区别在于它授予对桶本身(声明的第一个资源)执行的操作的权限,以及桶中的对象(声明的第二个资源)。
答案 1 :(得分:0)
我不知道这是否是正确的解决方案,但授予我ListAllMyBuckets
权限。
我刚刚添加了另一个声明和前一个声明。
{
"Sid": "Stmt1490288788",
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": [
"arn:aws:s3:::bucket-name/*"
]
}{
"Sid": "Stmt1490289746001",
"Effect": "Allow",
"Action": [
"s3:ListAllMyBuckets"
],
"Resource": [
"arn:aws:s3:::*"
]
}
因此,此策略列出了所有存储桶,但只允许对特定存储桶进行put / delete / get访问。仍然想知道重命名/复制和放大之间的关系是什么列出所有存储桶权限。