Criar um conjunto de pilhas usando o console do CloudFormation ou a AWS CLI - AWS CloudFormation

Criar um conjunto de pilhas usando o console do CloudFormation ou a AWS CLI

É possível criar um conjunto de pilhas usando o console do CloudFormation ou usando os comandos do CloudFormation na AWS CLI. Você pode criar um conjunto de pilhas com as permissões service-managed ou self-managed.

Criar um conjunto de pilhas com permissões autogerenciadas

Com permissões self-managed, você pode implantar instâncias de pilha em Contas da AWS específicas de regiões específicas. Para fazer isso, você deve primeiro criar as funções do IAM necessárias para estabelecer uma relação de confiança entre a conta na qual você está administrando o conjunto de pilhas e a conta na qual você está implantando as instâncias de pilha. Para ter mais informações, consulte Conceder permissões autogerenciadas.

nota

Antes de concluir um dos procedimentos a seguir, verifique se os perfis do IAM AWSCloudFormationStackSetExecutionRole e AWSCloudFormationStackSetAdministrationRole existem na sua conta de administrador. Para iniciar pilhas em contas diferentes da sua conta de administrador, verifique se o perfil do IAM AWSCloudFormationStackSetExecutionRole existe nas contas de destino.

Criar um conjunto de pilhas com permissões autogerenciadas usando o console do CloudFormation

  1. Faça login no AWS Management Console e abra o console AWS CloudFormation em https://console.aws.amazon.com/cloudformation.

  2. Na barra de navegação na parte superior da tela, escolha a Região da AWS na qual você deseja gerenciar o conjunto de pilhas.

  3. No painel de navegação, escolha StackSets.

  4. Na parte superior da página StackSets, escolha Criar StackSet.

  5. Ignore as Permissões para usar os perfis do IAM chamados AWSCloudFormationStackSetExecutionRole e AWSCloudFormationStackSetAdministrationRole que você criou anteriormente.

  6. Em Prerequisite - Prepare template (Pré-requisito - preparar modelo), escolha Use a sample template (Usar um modelo de exemplo).

  7. No menu suspenso em Selecionar um modelo de exemplo, escolha o modelo Habilitar AWS Config. Escolha Próximo.

  8. Na página Especificar detalhes do conjunto de pilhas, em Nome do StackSet, forneça um nome para o conjunto de pilhas. Os nomes dos conjuntos de pilhas precisam começar com um caractere alfabético e conter apenas letras, números e hifens. Neste passo a passo, usamos o nome my-awsconfig-stackset.

  9. Em Descrição do StackSet, forneça uma descrição para o conjunto de pilhas.

  10. Em Parâmetros, revise os parâmetros do modelo que são usados pelo AWS Config.

    nota

    Para fins deste passo a passo, use as configurações padrão descritas nesta seção.

    1. Para Configuração do gravador, revise os valores padrão. Para obter mais informações sobre esses parâmetros, consulte Configurar o AWS Config com o console no Guia do desenvolvedor do AWS Config.

    2. (Opcional) Em Configuração do canal de entrega, revise os valores padrão do canal de entrega quanto a atualizações e notificações. Para obter mais informações sobre o canal de entrega no AWS Config, consulte Gerenciar o canal de entrega no Guia de desenvolvedor do AWS Config.

    3. (Opcional) Em Notificações de entrega, revise a configuração padrão das notificações do Amazon Simple Notification Service (SNS).

  11. Escolha Próximo para continuar.

  12. Na página Configure StackSet options (Configurar opções de StackSet), adicione uma tag ao especificar um par de chave e valor. Neste passo-a-passo, criaremos uma tag chamada Fase com um valor Teste. As tags que você aplica aos conjuntos de pilhas são aplicadas a todos os recursos criados pelas suas pilhas. Para obter mais informações sobre como as tags são usadas na AWS, consulte Organizar e acompanhar custos usando tags de alocação de custos da AWS no Guia do usuário do AWS Billing and Cost Management.

  13. Para Execution configuration (Configuração de execução), escolha Active (Ativo) para que o StackSets execute operações não conflitantes simultaneamente e enfileire operações conflitantes. Depois do término das operações conflitantes, o StackSets inicia as operações em fila na ordem de solicitação.

    nota

    Se já houver operações em execução ou em fila, o StackSets enfileirará todas as operações de entrada, mesmo que não sejam conflitantes.

    Não será possível modificar a configuração de execução do conjunto de pilhas enquanto houver operações em execução ou em fila para esse conjunto de pilhas.

  14. Se o seu modelo contém recursos do IAM, em Recursos, escolha Eu reconheço que este modelo pode criar recursos do IAM para especificar que você deseja usar recursos do IAM no modelo. Para ter mais informações, consulte Confirmar recursos do IAM em modelos do CloudFormation.

  15. Escolha Próximo.

  16. Na página Definir opções de implantação, em Adicionar pilhas ao conjunto de pilhas, escolha Implantar novas pilhas.

  17. Em Accounts (Contas), escolha Deploy stacks in accounts (Implantar pilhas em contas). Cole os números da sua Conta da AWS de destino na caixa de texto, separando-os com vírgulas.

  18. Em Specify regions (Especificar regiões), escolha Leste dos EUA (Norte da Virgínia) Região. Repita para a Região Oeste dos EUA (Oregon). Clique na seta para cima ao lado de Região Oeste dos EUA (Oregon) a fim de movê-la para ser a primeira entrada na lista. A ordem das regiões em Specify regions (Especificar regiões) determina a ordem de implantação.

    Por padrão, o CloudFormation implantará pilhas nas contas especificadas na primeira região, depois passará para a próxima e assim por diante, desde que as falhas de implantação de uma região não excedam uma tolerância a falhas especificada.

  19. Em Deployment options (Opções de implantação):

    • Em Maximum concurrent accounts (Máximo de contas concorrentes), mantenha os valores padrão de Number (Número) e 1.

      Isso significa que o CloudFormation implantará sua pilha em apenas uma conta de cada vez.

    • Em Failure tolerance (Tolerância a falhas), mantenha os padrões de Number (Número) e 0.

      Isso significa que, no máximo, uma implantação de pilha poderá falhar em uma das suas regiões especificadas para que o CloudFormation interrompa a implantação na região atual e cancele a implantação nas regiões restantes.

    • Em Simultaneidade de regiões, selecione Sequencial ou Paralela para determinar a ordem de implantação de StackSets por regiões especificadas. Por padrão, a opção Sequential (Sequencial) é selecionada.

    • Em Modo de simultaneidade, atualize o Modo de simultaneidade conforme necessário ou vá para a próxima etapa.

  20. Escolha Próximo.

  21. Na página Analisar, examine suas escolhas. Para fazer alterações, escolha Editar na seção relacionada.

  22. Quando estiver pronto para criar seu conjunto de pilhas, escolha Submit (Enviar).

    O CloudFormation começa a criar seu conjunto de pilhas. Visualize o progresso e o status da criação das pilhas em seu conjunto de pilhas na página de detalhes do conjunto de pilhas que é aberta ao escolher Submit (Enviar).

Criar um conjunto de pilhas com permissões autogerenciadas usando a AWS CLI

Ao criar conjuntos de pilhas usando os comandos da AWS CLI, você executa dois comandos separados: create-stack-set para carregar seu modelo e criar o contêiner do conjunto de pilhas e create-stack-instances para criar as pilhas dentro do seu conjunto de pilhas.

  1. Comece executando o comando create-stack-set a seguir para carregar o modelo de exemplo que habilita o AWS Config. Para a opção --template-url, forneça o URL do bucket do Amazon S3 em que seu modelo está localizado. Neste passo a passo, usaremos my-awsconfig-stackset como o valor da opção --stack-set-name.

    aws cloudformation create-stack-set \ --stack-set-name my-awsconfig-stackset \ --template-url https://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/EnableAWSConfig.yml
    nota

    Se já houver operações em execução ou em fila, o StackSets enfileirará todas as operações de entrada, mesmo que não sejam conflitantes.

    Não será possível modificar a configuração de execução do conjunto de pilhas enquanto houver operações em execução ou em fila para esse conjunto de pilhas.

  2. Quando o comando create-stack-set estiver concluído, execute o comando list-stack-sets para ver qual conjunto de pilhas foi criado. Sua nova pilha configurada deve ser visualizada nos resultados.

    aws cloudformation list-stack-sets
  3. Execute o comando create-stack-instances para adicionar instâncias de pilha ao conjunto de pilhas. Neste passo a passo, usaremos us-west-2 e us-east-1 como os valores da opção --regions.

    aws cloudformation create-stack-instances \ --stack-set-name my-awsconfig-stackset \ --accounts '["account_ID_1","account_ID_2"]' \ --regions '["us-west-2","us-east-1"]'

    Para especificar suas preferências sobre como o CloudFormation executa essa operação de conjunto de pilhas, especifique a opção --operation-preferences, como no exemplo a seguir. Para fins deste exemplo, usaremos conta, e não porcentagem. Para aplicar porcentagens, use FailureTolerancePercentage ou MaxConcurrentPercentage.

    --operation-preferences FailureToleranceCount=0,MaxConcurrentCount=1
    nota

    O valor de MaxConcurrentCount depende do valor de FailureToleranceCount. MaxConcurrentCount é, no máximo, um a mais do que MaxConcurrentCount.

    Importante

    Aguarde até que uma operação seja concluída antes de iniciar outra. Você só pode executar uma operação por vez.

  4. Usando o operation-id que foi retornado como parte da saída de create-stack-instances na etapa 4, execute o comando describe-stack-set-operation a seguir para verificar se suas instâncias de pilha foram criadas com êxito.

    aws cloudformation describe-stack-set-operation \ --stack-set-name my-awsconfig-stackset \ --operation-id operation_ID

Criar um conjunto de pilhas com permissões gerenciadas pelo serviço

Com as permissões service-managed, você pode implantar instâncias de pilhas em contas gerenciadas pelo AWS Organizations em regiões específicas. Com esse modelo, você não precisa criar os perfis do IAM necessários. O StackSets cria esses perfis do IAM em seu nome. Você também pode habilitar implantações automáticas em contas adicionadas a uma organização de destino ou unidade organizacional (OU) no futuro. Com implantações automáticas habilitadas, o StackSets excluirá automaticamente instâncias de pilha de uma conta se ela for removida de uma organização de destino ou OU. Para ter mais informações, consulte Ativar o acesso confiável para conjuntos de pilhas com o Organizations.

Considerações ao criar um conjunto de pilhas com permissões gerenciadas pelo serviço

Antes de criar um conjunto de pilha com permissões gerenciadas por serviço, considere o seguinte:

  • Os conjuntos de pilha com permissões gerenciadas por serviço são criados na conta de gerenciamento, incluindo conjuntos de pilha criados por administradores delegados.

  • O conjunto de pilhas pode ter como destino toda a sua organização ou unidades organizacionais (OUs) especificadas. Se o conjunto de pilhas tiver como destino a sua organização, ele também terá como destino todas as contas em todas as OUs da organização. Se o conjunto de pilhas tiver como destino OUs especificadas, ela também terá todas as contas nessas OUs como destino.

  • Se o conjunto de pilhas tiver uma OU pai como destino, o conjunto de pilhas também terá qualquer OU filha como destino.

  • Vários conjuntos de pilhas podem ter como destino a mesma organização ou OU.

  • O conjunto de pilhas não pode ter contas fora da organização como destino.

  • Seu conjunto de pilhas não pode implantar pilhas aninhadas.

  • O StackSets não implanta instâncias de pilha na conta de gerenciamento da organização, mesmo que a conta de gerenciamento esteja em sua organização ou em uma OU na sua organização.

  • A implantação automática é definida no nível do conjunto de pilhas. Não é possível ajustar implantações automáticas seletivamente para OUs, contas ou regiões.

  • As permissões da entidade principal do IAM (usuário, função ou grupo) que você usa para fazer login na conta de gerenciamento determinam se você está autorizado a implantar com o StackSets. Para obter um exemplo de política do IAM que concede permissões para implantar em uma organização, consulte Exemplo de política que concede permissões de conjunto de pilhas gerenciadas pelo serviço.

  • Os administradores delegados têm permissões completas para implantar em contas em sua organização. A conta de gerenciamento não pode limitar as permissões de administrador delegado para implantar em OUs específicas ou para executar operações específicas de conjunto de pilhas.

Criar um conjunto de pilhas com permissões gerenciadas pelo serviço usando o console do CloudFormation

  1. Faça login no AWS Management Console e abra o console AWS CloudFormation em https://console.aws.amazon.com/cloudformation.

  2. Na barra de navegação na parte superior da tela, escolha a Região da AWS na qual você deseja gerenciar o conjunto de pilhas.

  3. No painel de navegação, escolha StackSets.

  4. Na parte superior da página StackSets, escolha Criar StackSet.

  5. Em Permissions (Permissões), escolha Service-managed permissions (Permissões gerenciadas pelo serviço).

    nota

    Se o acesso confiável com o AWS Organizations estiver desabilitado, será exibido um banner. É necessário o acesso confiável para criar ou atualizar um conjunto de pilhas com permissões gerenciadas pelo serviço. Somente o administrador na conta de gerenciamento da organização tem permissões para Ativar o acesso confiável para conjuntos de pilhas com o Organizations.

  6. Em Pré-requisito: prepare o modelo, escolha O modelo está pronto.

  7. Em Specify template (Especificar modelo), escolha especificar o URL para o bucket do S3 que contém o modelo de pilha ou fazer upload de um arquivo de modelo de pilha. Escolha Próximo.

  8. Na página Specify StackSet details (Especificar detalhes do StackSet) forneça um nome para o conjunto de pilhas, especifique quaisquer parâmetros e escolha Next (Próximo).

  9. Na página Configure StackSet options (Configurar opções do StackSet) em Tags, especifique todas as tags a serem aplicadas aos recursos em sua pilha.

  10. Para Execution configuration (Configuração de execução), escolha Active (Ativo) para que o StackSets execute operações não conflitantes simultaneamente e enfileire operações conflitantes. Depois do término das operações conflitantes, o StackSets inicia as operações em fila na ordem de solicitação.

    nota

    Se já houver operações em execução ou em fila, o StackSets enfileirará todas as operações de entrada, mesmo que não sejam conflitantes.

    Não será possível modificar a configuração de execução do conjunto de pilhas enquanto houver operações em execução ou em fila para esse conjunto de pilhas.

  11. Escolha Próximo para continuar e habilitar o acesso confiável caso ainda não esteja habilitado.

  12. Na página Definir opções de implantação, em Destinos de implantação, faça o seguinte:

    • Para implantar em todas as contas em sua organização, escolha Implantar na organização.

    • Para implantar em todas as contas em OUs específicas, escolha Implantar em unidades organizacionais (OUs). Escolha Add an OU (Adicionar uma OU) e cole o ID de destino na caixa de texto. Repita para cada nova OU de destino.

  13. Em Automatic deployment (Implantação automática), escolha se os StackSets serão implantados automaticamente em contas que serão adicionadas à organização de destino ou OUs no futuro.

  14. Se você habilitou a implantação automática, em Account removal behavior (Comportamento de remoção de conta), escolha se os recursos de pilha serão retidos ou excluídos quando uma conta for removida de uma organização ou OU de destino.

    nota

    Com a opção Retain stacks (Reter pilhas) selecionada, as instâncias de pilha são removidas do conjunto de pilhas, mas as pilhas e os recursos associados são retidos. Os recursos permanecem em seu estado atual, mas não farão mais parte do conjunto de pilhas.

  15. Em Especificar regiões, escolha as regiões nas quais você deseja implantar instâncias de pilha.

  16. Em Deployment options (Opções de implantação):

    • Em Máximo de contas simultâneas, configure o máximo de contas simultâneas conforme necessário.

    • Em Tolerância a falhas, configure a tolerância a falhas conforme necessário.

    • Em Simultaneidade de regiões, escolha a simultaneidade de regiões conforme necessário.

    • Em Modo de simultaneidade, escolha o modo de simultaneidade conforme necessário.

  17. Escolha Próximo para continuar.

  18. Na página Review (Revisar), verifique se o StackSets será implantado nas contas corretas nas regiões corretas e escolha Create StackSet (Criar StackSet).

    A página StackSet details (Detalhes do StackSet) é aberta. Você pode visualizar o andamento e o status da criação das pilhas em seu conjunto de pilhas.

Criar um conjunto de pilhas com permissões gerenciadas pelo serviço usando a AWS CLI

Quando cria conjuntos de pilhas usando a AWS CLI, você executa dois comandos separados. Durante o create-stack-set, você carrega seu modelo, cria o contêiner do conjunto de pilhas e gerencia implantações automáticas. Durante create-stack-instances, você cria instâncias de pilha em contas de destino específicas.

Ao atuar como administrador delegado, você deve definir a opção --call-as como DELEGATED_ADMIN toda vez que executar um comando StackSets.

--call-as DELEGATED_ADMIN

Os conjuntos de pilha criados por um administrador delegado são criados na conta de gerenciamento da organização.

  1. Use o comando de CLI de create-stack-set.

    No exemplo a seguir, habilitamos implantações automáticas para permitir que o StackSets implante automaticamente em contas adicionadas à organização de destino ou em OUs no futuro. Retemos recursos de pilha quando uma conta é removida de uma organização ou OU de destino.

    aws cloudformation create-stack-set \ --stack-set-name my-stackset \ --template-url https://s3.us-west-2.amazonaws.com/cloudformation-templates-us-west-2/MyApp.template \ --permission-model SERVICE_MANAGED \ --auto-deployment Enabled=true,RetainStacksOnAccountRemoval=true
    nota

    Se já houver operações em execução ou em fila, o StackSets enfileirará todas as operações de entrada, mesmo que não sejam conflitantes.

    Não será possível modificar a configuração de execução do conjunto de pilhas enquanto houver operações em execução ou em fila para esse conjunto de pilhas.

  2. Quando o comando create-stack-set for concluído, execute o comando list-stack-sets para ver qual conjunto de pilhas foi criado. O novo conjunto de pilhas é listado nos resultados.

    aws cloudformation list-stack-sets
    • Se você definir a opção --call-as como DELEGATED_ADMIN enquanto estiver conectado à sua conta de membro, list-stack-sets retornará todos os conjuntos de pilha com permissões gerenciadas por serviço na conta de gerenciamento da organização.

    • Se você definir a opção --call-as como SELF enquanto estiver conectado à sua Conta da AWS, list-stack-sets retornará todos os conjuntos de pilhas autogerenciados em sua Conta da AWS.

    • Se você definir a opção --call-as como SELF enquanto estiver conectado à conta de gerenciamento da organização, list-stack-sets retornará todos os conjuntos de pilhas na conta de gerenciamento da organização.

  3. Execute o comando create-stack-instances para adicionar instâncias de pilha ao conjunto de pilhas. Para a opção --deployment-targets, especifique o ID da raiz da organização a ser implantada em todas as contas da organização ou especifique IDs de OUs para implantar em todas as contas nessas OUs. Neste exemplo, especificamos OUs com os IDs ou-rcuk-slr5lh0a e ou-rcuk-1x5j1lwo.

    aws cloudformation create-stack-instances --stack-set-name my-stackset \ --deployment-targets OrganizationalUnitIds='["ou-rcuk-1x5j1lwo", "ou-rcuk-slr5lh0a"]' \ --regions '["us-west-2","us-east-1"]'
    Importante

    Aguarde até que uma operação seja concluída antes de iniciar outra. Você só pode executar uma operação por vez.

  4. Usando o operation-id que foi retornado como parte da saída de create-stack-instances na etapa 4, execute o comando describe-stack-set-operation a seguir para verificar se suas instâncias de pilha foram criadas com êxito.

    aws cloudformation describe-stack-set-operation \ --stack-set-name my-awsconfig-stackset \ --operation-id operation_ID