IAM 访问密钥权限覆盖 IAM 角色中的显式拒绝?
IAM Access Key permissions override an Explicit Deny in an IAM role?
我有一个 EC2 实例,其角色应用了以下策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Deny",
"Action": [
"s3:PutObject"
],
"Resource": "*"
}
]
}
仅应用角色,它按预期工作 - 我可以查看存储桶内容,但无法将对象复制到存储桶。
但是,如果我随后使用 AmazonS3FullAccess
策略为 IAM 用户添加访问密钥,则该实例能够将对象复制到存储桶。
这是怎么允许的?我的理解是,任何相关政策中的任何明确拒绝都是最终的。
发生这种情况是因为硬编码凭据具有 higher priority 然后是实例配置文件。随后,您的拒绝甚至没有被考虑在您的场景中。
最好将这种拒绝放在存储桶策略中,而不是实例角色中。
我有一个 EC2 实例,其角色应用了以下策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Deny",
"Action": [
"s3:PutObject"
],
"Resource": "*"
}
]
}
仅应用角色,它按预期工作 - 我可以查看存储桶内容,但无法将对象复制到存储桶。
但是,如果我随后使用 AmazonS3FullAccess
策略为 IAM 用户添加访问密钥,则该实例能够将对象复制到存储桶。
这是怎么允许的?我的理解是,任何相关政策中的任何明确拒绝都是最终的。
发生这种情况是因为硬编码凭据具有 higher priority 然后是实例配置文件。随后,您的拒绝甚至没有被考虑在您的场景中。
最好将这种拒绝放在存储桶策略中,而不是实例角色中。