Exemplo de políticas baseadas em identidade para o CloudFormation - AWS Orientação prescritiva

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Exemplo de políticas baseadas em identidade para o CloudFormation

Esta seção contém exemplos de políticas baseadas em identidade que demonstram como conceder e negar permissões para o CloudFormation. Você pode usar esses exemplos de políticas para começar a projetar suas próprias políticas que sigam o princípio de privilégio mínimo.

Para obter uma lista de ações e condições específicas do CloudFormation, consulte Actions, resources, and condition keys for AWS CloudFormation e AWS CloudFormation conditions. Para obter uma lista dos tipos de recursos para usar com condições, consulte Referência de tipos de propriedades e recursos da AWS.

Permitir acesso às visualizações

O acesso à visualização é o tipo de acesso de privilégio mínimo ao CloudFormation. Esse tipo de política pode ser apropriado para as entidades principais do IAM que desejam visualizar todas as pilhas do CloudFormation na Conta da AWS. O exemplo de política a seguir concede permissões para visualizar os detalhes de qualquer pilha do CloudFormation na conta.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:DescribeStacks", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackResources" ], "Resource": "*" } ] }

Permitir a criação de pilhas com base no modelo

O exemplo de política a seguir permite que as entidades principais do IAM criem pilhas usando somente os modelos do CloudFormation que estão armazenados em um bucket específico do Amazon Simple Storage Service (Amazon S3). O nome de um bucket é my-CFN-templates. Você pode carregar modelos aprovados para esse bucket. A chave de condição cloudformation:TemplateUrl na política impede que a entidade principal do IAM use qualquer outro modelo para criar pilhas.

Importante

Permita que a entidade principal do IAM tenha acesso somente leitura a esse bucket do S3. Isso ajuda a impedir que a entidade principal do IAM adicione, remova ou modifique os modelos aprovados.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:CreateStack" ], "Resource": "*", "Condition": { "StringLike": { "cloudformation:TemplateUrl": "https:// my-CFN-templates.s3.amazonaws.com/*" } } } ] }

Negar a atualização ou exclusão de uma pilha

Para ajudar a proteger pilhas específicas do CloudFormation que provisionam recursos essenciais da AWS para os negócios, você pode restringir as ações de atualização e exclusão dessa pilha específica. Você pode permitir essas ações somente para algumas entidades principais do IAM especificadas e negá-las para qualquer outra entidade principal do IAM no ambiente. A instrução de política a seguir nega permissões para atualizar ou excluir uma pilha específica do CloudFormation em uma Região da AWS ou Conta da AWS específica.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "cloudformation:DeleteStack", "cloudformation:UpdateStack" ], "Resource": "arn:aws:cloudformation:us-east-1:123456789012:stack/MyProductionStack/<stack_ID>" } ] }

Essa instrução de política nega permissões para atualizar ou excluir a pilha MyProductionStack do CloudFormation, que está na Região da AWS us-east-1 e na Conta da AWS 123456789012. Você pode visualizar o ID da pilha no console do CloudFormation. Confira abaixo alguns exemplos de como modificar o elemento Resource dessa instrução para seu caso de uso:

  • Você pode adicionar vários IDs de pilha do CloudFormation no elemento Resource dessa política.

  • Você pode usar arn:aws:cloudformation:us-east-1:123456789012:stack/* para impedir que as entidades principais do IAM atualizem ou excluam qualquer pilha que esteja na Região da AWS us-east-1 e na conta 123456789012.

Uma etapa importante é decidir qual política deve conter essa instrução. Você pode adicionar essa instrução às seguintes políticas:

  • A política baseada em identidade anexada à entidade principal do IAM: colocar a instrução nessa política impede que a entidade principal específica do IAM crie ou exclua uma pilha específica do CloudFormation.

  • Um limite de permissões vinculado à entidade principaldo IAM: colocar a instrução nessa política cria uma barreira de proteção de permissão. Ela impede que mais de uma entidade principal do IAM crie ou exclua uma pilha específica do CloudFormation, mas não restringe todas as entidades principais em seu ambiente.

  • Um SCP anexado a uma conta, unidade organizacional ou organização: colocar a instrução nessa política cria uma barreira de proteção de permissão. Ela impede que todas as entidades principais do IAM na conta, unidade organizacional ou organização de destino criem ou excluam uma pilha específica do CloudFormation.

    No entanto, se você não permitir que pelo menos uma entidade principal do IAM, uma entidade principal privilegiada, atualize ou exclua a pilha do CloudFormation, você não poderá fazer nenhuma alteração, quando necessário, nos recursos provisionados por meio dessa pilha. Um usuário ou um pipeline de desenvolvimento (recomendado) pode assumir essa entidade principal privilegiada. Se você quiser implantar a restrição como uma SCP, recomendamos a instrução de política a seguir.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "cloudformation:DeleteStack", "cloudformation:UpdateStack" ], "Resource": "arn:aws:cloudformation:us-east-1:123456789012:stack/MyProductionStack/<stack_ID>", "Condition": { "ArnNotLike": { "aws:PrincipalARN": [ "<ARN of the allowed privilege IAM principal>" ] } } } ] }

    Nessa instrução, o elemento Condition define a entidade principal do IAM que é excluída da SCP. Essa instrução nega qualquer permissão para a entidade principal do IAM para atualizar ou excluir pilhas do CloudFormation, a menos que o ARN da entidade principal do IAM corresponda ao ARN no elemento Condition. A chave de condição aws:PrincipalARN aceita uma lista, o que significa que você pode excluir mais de uma entidade principal do IAM das restrições, conforme necessário para seu ambiente. Para uma SCP semelhante que impede modificações nos recursos do CloudFormation, consulte SCP-CLOUDFORMATION-1 (GitHub).