我正在尝试修改 IAM 策略,以便用户可以将 IAM 角色与允许对我们的 S3 存储桶具有只读权限的 EC2 实例相关联。
我们的团队使用 AWS 进行了大量研发,因此我不愿意限制对除 IAM 之外的任何 AWS 服务的访问,因为 IAM 会允许权限升级。
我已使用此问题中的信息添加了 iam:PassRole,但该策略无法在模拟器中验证。
{
"Statement": [
{
"Effect": "Allow",
"NotAction": "iam:*",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "iam:PassRole",
"Resource": "arn:aws:iam::ACCOUNTID:role/MYROLE"
}
]
}
Run Code Online (Sandbox Code Playgroud)
如果我将第二条语句的 Resource 更改为"Resource": "*"
验证成功并且模拟器显示明确允许 PassRole,则 IAM 中的所有其他内容都被隐式拒绝,而 S3 中的所有内容都被明确允许。
我在命名角色上做错了什么?允许所有人都使用 PassRole 会带来什么安全隐患(我假设策略模拟器不是骗人的)。有没有更好的方法来实现我想要的?