创build一个IAM策略,允许除了IAM外的所有事情,除了PassRole

我正在尝试修改IAM策略,以便用户可以将IAMangular色与允许只读权限的EC2实例关联到我们的S3存储桶。

我们的团队在AWS上做了相当多的研发工作,所以我不愿意限制对IAM之外的任何AWS服务的访问,这将允许升级权限。

我已经使用这个问题中的信息来添加iam:PassRole,但是策略在模拟器中无法validation。

{ "Statement": [ { "Effect": "Allow", "NotAction": "iam:*", "Resource": "*" }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::ACCOUNTID:role/MYROLE" } ] } 

如果将第二个语句的资源更改为"Resource": "*"validation成功,并且模拟器显示PassRole已被明确允许,则IAM中的所有其他内容都将被隐式拒绝,并且明确允许S3中的所有内容。

我在做什么错误的angular色? 通过允许所有的PassRole(我假设政策模拟器不是纤维),安全性的影响是什么。 有没有更好的方法来实现我想要的?

对我来说,这似乎是在策略模拟器中的一个错误。 就连亚马逊自己在他们的例子中也宣布了一个和你一样的政策。 模拟器抱怨,但实际上附加这个政策给用户工作得很好。

我在做什么错误的angular色?

据我所知,没有什么。

通过允许所有的PassRole(我假设政策模拟器不是纤维),安全性的影响是什么。

那么,你会让任何angular色的iam:PassRole行动。 这基本上意味着具有此策略的用户将能够启动附加了任何IAMangular色的EC2实例。 这也在我上面链接的AWS文档中进行了解释:

或者,您可以授予IAM用户访问您的所有angular色的权限,方法是在此策略中将资源指定为“*”。 但是,请考虑启动具有angular色的实例(存在或稍后创build的实例)的用户是否可能被授予了他们不需要或不应该拥有的权限。