【发布时间】:2021-09-30 01:14:08
【问题描述】:
在管理其他人的 AWS 账户时,我尽量在合理的范围内给予用户尽可能开放的权限。
因此,我将“允许”授予“ec2:*”,但随后限制他们使用“拒绝 ec2:*Vpn*”或“拒绝 ec2:Create*”等拒绝语句执行危险操作
但是,假设我发现了一个我不想想要拒绝的操作,例如“ec2:DescribeVpnGateways”。如何从我的“拒绝”声明中省略这一声明并且仅这一声明?
注意:“拒绝 ec2:*Vpn*”算作 显式 拒绝,因此任何尝试“拒绝 ec2:*Vpn*”和“允许 ec2: DescribeVpnGateways”同时会导致“拒绝”规则覆盖“允许”规则。
注意 2: IAM 策略中有一个元素称为“NotAction”。这允许您拒绝除指定操作之外的所有操作。如果我使用“Deny: NotAction: ec2:DescribeVpnGateways”语句,这将拒绝 每一个 AWS 操作,但“ec2:DescribeVpnGateways”除外,这比我们想要的更具破坏性。
注3: AWS does not allow you to combine "Action" and "NotAction" fields in the same policy statement.。如果我们可以并且只使用两个字段之间的交集,那就太酷了。
是否存在解决此问题的方法?我是否需要重构我的 IAM 以仅预先授予我的用户批准的权限,而不是先授予他们所有权限然后再拒绝他们?
【问题讨论】:
标签: amazon-web-services amazon-iam user-permissions