我正在尝试使用 AWS S3 BucketPolicy。我的目的是只允许我的用户名访问存储桶。我写了以下错误的策略:
{
"Id": "Policy1542608345364",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1542608327277",
"Action": "s3:*",
"Effect": "Allow",
"Resource": "arn:aws:s3:::abcd",
"Principal": {
"AWS": [
"mohit.choudhary"
]
}
},
{
"Sid": "Stmt1542608343623",
"Action": "s3:*",
"Effect": "Deny",
"Resource": "arn:aws:s3:::abcd",
"Principal": "*"
}
]
}
但是,现在我不再有权访问该存储桶。我该如何恢复存储桶策略?
答案1
经过恢复您指的是存储桶策略的先前版本吗?抱歉,我认为它没有版本控制(与 IAM 策略不同 - 请参阅IAM 策略版本控制)。
不过,我们可以修复您的政策,但存在以下几个问题:
这主要的应为 IAM 用户 ARN:
"Principal": { "AWS": [ "arn:aws:iam::123456789012:user/mohit.choudhary" ] }
将 123456789012 替换为您的帐号。
这资源应该同时具有存储桶和对象通配符:
"Resource": [ "arn:aws:s3:::abcd", "arn:aws:s3:::abcd/*" ]
或者你也可以删除存储桶策略完全使用顶部的删除按钮:
希望有帮助:)
答案2
问题是我不是存储桶所有者。无论您在 IAM 中拥有什么权限,如果您不是存储桶所有者,并且存储桶策略拒绝您访问,您将无法执行任何操作。
恢复策略的唯一方法是存储桶拥有者删除存储桶策略。
参考:https://docs.aws.amazon.com/AmazonS3/latest/dev/how-s3-evaluates-access-control.html