如何避免删除现有的托管策略?

时间:2019-07-27 21:08:36

标签: amazon-web-services amazon-iam

以下是一次创建的策略规则,但是一旦通过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

1 个答案:

答案 0 :(得分:1)

策略仅影响它们所附属的主体。

创建拒绝(或允许)任何操作的策略实际上并不会做任何事情来拒绝(或允许)该操作,除非该策略随后附加到主体(IAM用户,组或角色)。 / p>

  

您可以通过创建策略并将其附加到IAM身份(用户,用户组或角色)或AWS资源来管理AWS中的访问。策略是AWS中的一个对象,与身份或资源关联时定义其权限。 (添加了重点)

     

https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html

由于默认情况下最初拒绝所有操作,因此您可以删除策略,这意味着您的IAM用户一定已被授予删除策略的权限(很可能您有权删除 any 策略)-您已经有一个附加到用户的策略允许该操作。防止操作的最佳方法是不授予执行操作的权限。您还可以将此策略与所有用户或一组所有用户相关联,然后只有您帐户的root用户才能删除它-但这通常是错误的解决方案,因为它可以取消最初授予权限的错误配置。