防止所有用户删除特定的 cloudformation 堆栈

prevent all users from deleting a specific cloudformation stack

我有这个 IAM 政策:

{
    "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 将此策略添加到除我(堆栈所有者)以外的所有用户?

或:

有什么方法可以删除除我(堆栈所有者)以外的所有用户的权限 DeleteStack

我试过这个:

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

但是没有用。

实现此目的的一个简单方法是:

  1. 正在创建一个 IAM 组 并将您的拒绝策略附加到它
  2. 将除您自己以外的所有用户添加到群组

这将是 AWS 推荐的执行方式。