以下是一次创建的策略规则,但是一旦通过cloudFormation创建后就无法删除该策略。这些是托管策略。
- Effect: Deny
Action:
- "iam:CreatePolicyVersion"
- "iam:DeletePolicy"
- "iam:DeletePolicyVersion"
- "iam:SetDefaultPolicyVersion"
Resource:
- !Sub "arn:aws:iam::${AWS::AccountId}:policy/some-permission-boundary"
- !Sub "arn:aws:iam::${AWS::AccountId}:policy/some-policy"
- Effect: Deny
Action:
- "iam:DeleteRolePermissionsBoundary"
Resource:
- "*"
但是通过AWS控制台,我通过选择策略Policy actions
---> delete
后来我删除了创建这两个策略的堆栈。
如何避免删除政策?为什么以上规则没有避免删除政策?给定任何Principal
答案 0 :(得分:1)
策略仅影响它们所附属的主体。
创建拒绝(或允许)任何操作的策略实际上并不会做任何事情来拒绝(或允许)该操作,除非该策略随后附加到主体(IAM用户,组或角色)。 / p>
您可以通过创建策略并将其附加到IAM身份(用户,用户组或角色)或AWS资源来管理AWS中的访问。策略是AWS中的一个对象,与身份或资源关联时定义其权限。 (添加了重点)
https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html
由于默认情况下最初拒绝所有操作,因此您可以删除策略,这意味着您的IAM用户一定已被授予删除策略的权限(很可能您有权删除 any 策略)-您已经有一个附加到用户的策略允许该操作。防止操作的最佳方法是不授予执行操作的权限。您还可以将此策略与所有用户或一组所有用户相关联,然后只有您帐户的root用户才能删除它-但这通常是错误的解决方案,因为它可以取消最初授予权限的错误配置。>