这是我的政策:
{
"Version": "2012-10-17",
"Id": "Policy1477084949492",
"Statement": [
{
"Sid": "Stmt1477084932198",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:*",
"Resource": "arn:aws:s3:::__redacted__"
},
{
"Sid": "Stmt1477084947291",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:*",
"Resource": "arn:aws:s3:::__redacted__/*"
}
]
}
我可以通过aws s3 ls
查看存储桶中的文件,但无法下载。
我的理解是这些权限应该提供对任何AWS标识的完全访问权限。
问题 - 这里有什么理由不是这样吗?
答案 0 :(得分:1)
当我在帐户中测试时,您的政策适用于我。
在IAM中,拒绝覆盖允许,我怀疑你在某处有一个冲突的政策。检查所有用户策略以及用户所属的组是否存在冲突策略。
你没有明确表示你这样做,只是为了涵盖所有基础。如果您正在运行s3 get on一个与其关联的IAM角色的实例,请检查以确保IAM角色权限是合适的。
根据您的实际情况,这可以解释您的情况。如果您正在使用具有IAM角色的EC2实例,则默认情况下它将使用该IAM角色而不是您的IAM用户权限。如果您运行aws configure并使用IAM用户发布密钥和密钥显式配置它,那么它将使用IAM用户策略。
最佳实践说,如果您正在EC2实例上执行工作,请尽可能在您的用例允许的情况下执行;您不应该在主机上使用密钥和机密,而是使用EC2 IAM角色。
补充阅读:
IAM政策评估逻辑 http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html