我正在尝试创建IAM策略,该策略限制将IAM角色传递给EC2实例,如果实例id不等于 i-1234567890abcd
策略中没有错误,但此策略也没有任何影响 . 如果我从以下策略中删除 Condition
,它可以工作,但它限制了要附加到任何EC2实例的角色 .
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Action": ["iam:PassRole"],
"Resource": ["arn:aws:iam::000000000000:role/MyEC2InstanceSpecificRole"],
"Condition": {
"ArnNotEquals": {
"ec2:SourceInstanceARN": "arn:aws:ec2:us-east-1:000000000000:instance/i-1234567890abcd"
}
}
}
]
}
1 回答
我怀疑这是不可能的 .
Granting a User Permissions to Pass a Role to an AWS Service文档说明:
同样在Using an IAM Role to Grant Permissions to Applications Running on Amazon EC2 Instances它说:
PassRole
的正常用例是确保用户不再授予AWS服务以允许他们自己使用的权限 . 它试图避免非Admin用户将Admin角色传递给服务的情况,然后使用该服务来访问通常不允许访问的资源 . 例如,启动具有Admin角色的Amazon EC2实例,以便他们可以登录到该实例并发出他们通常无权使用的Admin命令 .上述文档建议评估
PassRole
权限以确认其 permission to pass a certain role to a certain service ,而不是该服务将如何使用角色本身(例如,然后将其分配给EC2实例以生成STS凭证) .