【发布时间】:2018-10-22 13:25:57
【问题描述】:
我正在尝试从我的 S3 存储桶中获取文件夹,但不知何故无法弄清楚它失败的原因。
我打电话
aws s3 cp s3://somebucket . --recursive
得到
致命错误:调用 ListObjects 操作:拒绝访问
如果我尝试用同一个用户模拟这些操作
aws iam simulate-principal-policy --policy-source-arn arn:aws:iam::123324234234:user/user1 --action-names iam:ListBucket iam:GetObject iam:PutObject --resource-arns arn:aws:s3:::somebucket
Allowed 无处不在
{
"EvaluationResults": [
{
"EvalActionName": "iam:ListBucket",
"EvalResourceName": "arn:aws:s3:::somebucket",
"EvalDecision": "allowed",
"MatchedStatements": [
{
"SourcePolicyId": "AdministratorAccess",
"StartPosition": {
"Line": 3,
"Column": 17
},
"EndPosition": {
"Line": 8,
"Column": 6
}
}
],
"MissingContextValues": []
},
{
"EvalActionName": "iam:GetObject",
"EvalResourceName": "arn:aws:s3:::somebucket",
"EvalDecision": "allowed",
"MatchedStatements": [
{
"SourcePolicyId": "AdministratorAccess",
"StartPosition": {
"Line": 3,
"Column": 17
},
"EndPosition": {
"Line": 8,
"Column": 6
}
}
],
"MissingContextValues": []
},
{
"EvalActionName": "iam:PutObject",
"EvalResourceName": "arn:aws:s3:::somebucket",
"EvalDecision": "allowed",
"MatchedStatements": [
{
"SourcePolicyId": "AdministratorAccess",
"StartPosition": {
"Line": 3,
"Column": 17
},
"EndPosition": {
"Line": 8,
"Column": 6
}
}
],
"MissingContextValues": []
}
]
}
我错过了什么?
这是我的政策:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::somebucket",
]
},
{
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": [
"arn:aws:s3:::somebucket",
"arn:aws:s3:::somebucket/*",
]
}
]
}
【问题讨论】:
-
您的政策对我来说非常有效(一旦我删除了几个错误的逗号)。我可以毫无错误地运行
aws s3 cp s3://my-bucket . --recursive。您是否有可能会干扰存储桶的存储桶策略? -
不,存储桶策略在控制台中显示
No。 -
嗯,它对我来说很好用。您应该确认该策略适用于用户,并且您正在使用与该用户关联的凭据。首先使用
aws s3 ls确认您可以列出存储桶的内容。
标签: amazon-web-services amazon-s3 permissions amazon-iam aws-cli