0

我有这样的IAM策略:防止所有用户删除特定cloudformation堆栈

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Effect": "Deny", 
      "Action": [ 
       "cloudformation:UpdateStack", 
       "cloudformation:DeleteStack" 
      ], 
      "Resource": "MystackARN" 
     } 
    ] 
} 

我连接到我的用户测试,然后它试图删除cloudformation栈,然后我得到这个错误:

Failed to delete stack: User: arn:aws:iam::accountId:user/me is not authorized to perform: cloudformation:DeleteStack on resource: arn:aws:cloudformation:eu-west-1:stackARN 

我想为除我以外的所有用户在尝试删除策略中指定的堆栈时发生此错误。

有什么方法可以使用AWS CLI将此策略添加到除我以外的所有用户(堆栈所有者)?

OR:

有什么办法删除所有用户权限DeleteStack除了我(栈老板)?

我尝试这样做:

aws iam attach-user-policy --policy-arn arn:aws:iam::AccountId:policy/cfn-policy --user-name arn:aws:iam::AccountId:user/* 

但没有奏效。

回答

1

一个简单的方法来实现这一目标是:

  1. 创建IAM组和您的拒绝策略附加到它
  2. 除了你自己所有用户添加到组

这成为AWS推荐的做法。

+0

我已经应用此策略来保护堆栈。它工作得很好。但是我有一个问题,当我添加一个新的AWS用户时会发生什么?该用户将能够删除/更新堆栈。是否有任何解决方法? – Somar

+1

将用户添加到正确的组。默认情况下,IAM用户没有任何权限,因此您有责任 – Raf