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