Criar StackStes do CloudFormation com permissões autogerenciadas
Com permissões autogerenciadas, você pode implantar pilhas em Contas da AWS específicas de regiões específicas. Para fazer isso, você deve primeiro criar os perfis do IAM necessários 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 pilhas. Para obter 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. Para obter mais informações, consulte Concessão de permissões para o gerenciamento de pilhas em todas as contas de destino a todos os usuários da conta do administrador.
O modelo referenciado neste tópico habilita o AWS Config em uma conta de destino nas regiões Oeste dos EUA (Oregon) (us-west-2
) e Leste dos EUA (Norte da Virgínia) (us-east-1
). O modelo para Habilitar o AWS Config está localizado no seguinte bucket do S3: https://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/EnableAWSConfig.yml
Tópicos
Criar um conjunto de pilhas com permissões autogerenciadas (console)
Faça login no AWS Management Console e abra o console AWS CloudFormation em https://console.aws.amazon.com/cloudformation
. -
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.
-
No painel de navegação, escolha StackSets.
-
Na parte superior da página StackSets, escolha Criar StackSet.
-
Ignore as Permissões para usar os perfis do IAM chamados
AWSCloudFormationStackSetExecutionRole
eAWSCloudFormationStackSetAdministrationRole
que você criou anteriormente. -
Em Prerequisite - Prepare template (Pré-requisito - preparar modelo), escolha Use a sample template (Usar um modelo de exemplo).
-
No menu suspenso em Selecionar um modelo de exemplo, escolha o modelo Habilitar AWS Config. Em seguida, escolha Próximo.
-
Na página Especificar detalhes do StackSet, em Nome do StackSet, forneça um nome para o conjunto de pilhas. Os nomes dos conjuntos de pilhas devem começar com um caractere alfabético e conter apenas letras, números e hifens. Nesta explanação, use o nome
my-awsconfig-stackset
. -
Em Descrição do StackSet, forneça uma descrição para o conjunto de pilhas.
-
Em Parâmetros, faça o seguinte:
-
Configure os parâmetros de Configuração do registrador que são usados pelo AWS Config. Para obter mais informações sobre esses parâmetros, consulte Manual setup for AWS Config no AWS Config Developer Guide.
-
Em Compatível com todos os tipos de recursos, mantenha o valor padrão, true, para registrar todos os tipos de recursos compatíveis.
-
Em Incluir os tipos de recursos globais, mantenha o valor padrão, false, para excluir os recursos globais, como os perfis do IAM.
-
Deixe Lista de tipos de recursos se nem todos forem compatíveis definido como <All>. Adicione tipos de recursos específicos apenas se você tiver selecionado false em Compatível com todos os tipos de recursos.
-
Em A região que contém o recurso de perfil vinculado ao serviço de configuração, substitua <DeployToAnyRegion> por
us-west-2
. Isso significa que o perfil vinculado ao serviço denominadoAWSServiceRoleForConfig
será criado apenas se houver uma pilha implantada na região Oeste dos EUA (Oregon). Você escolherá as regiões de implantação mais adiante neste procedimento. -
Em Frequência de registro do registrador de configuração, escolha entre registrar de modo CONTÍNUO ou DIÁRIO.
-
-
(Opcional) Em Configuração do canal de entrega, configure o canal de entrega para 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.
-
(Opcional) Em Notificações de entrega, configure as notificações do Amazon Simple Notification Service (SNS).
-
-
Escolha Próximo para continuar.
-
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 StackSets são aplicadas a todos os recursos criados pelas 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 Gerenciamento de Faturamento e Custos da AWS.
-
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
Quando há operações sendo executas ou na fila, o StackSets coloca na fila todas as operações recebidas, mesmo que elas não gerem conflitos. Você não pode alterar as configurações de execução durante esse período.
-
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 obter mais informações, consulte Confirmar recursos do IAM em modelos do CloudFormation.
-
Escolha Avançar.
-
Na página Definir opções de implantação, em Adicionar pilhas ao conjunto de pilhas, escolha Implantar novas pilhas.
-
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.
-
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.
-
Em Opções de implantação, faça o seguinte:
-
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, escolha o modo Sequencial (padrão) ou Paralelo para determinar a ordem de implantação de StackSets nas regiões especificadas.
-
Em Modo de simultaneidade, atualize o Modo de simultaneidade conforme necessário ou vá para a próxima etapa.
-
-
Escolha Avançar.
-
Na página Analisar, examine suas escolhas. Para fazer alterações, escolha Editar na seção relacionada.
-
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 (AWS CLI)
Ao criar StackSets usando comandos da AWS CLI, você executa dois comandos separados: create-stack-set para carregar o modelo e criar o contêiner do conjunto de pilhas e create-stack-instances para criar as pilhas no conjunto de pilhas.
-
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 exemplo, usamosmy-awsconfig-stackset
como valor da opção--stack-set-name
. A opção--parameters
é incluída para trabalhar com o modeloEnableAWSConfig.yml
que nós incluímos. Se você usar seu próprio modelo, ajuste o comando de acordo com suas necessidades.aws cloudformation create-stack-set \ --stack-set-name
my-awsconfig-stackset
\ --template-urlhttps://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/EnableAWSConfig.yml
\ --parametersParameterKey=ServiceLinkedRoleRegion,ParameterValue="us-west-2" ParameterKey=RecordingFrequency,ParameterValue="DAILY"
-
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
-
Use o comando create-stack-instances para adicionar pilhas ao conjunto de pilhas. Neste passo a passo, usaremos
us-west-2
eus-east-1
como os valores da opção--regions
.Defina o processamento simultâneo de contas e outras preferências de implantação usando a opção
--operation-preferences
. Este exemplo usa configurações baseadas em contagem. Observe queMaxConcurrentCount
não deve excederFailureToleranceCount
+ 1. Para configurações baseadas em porcentagem, useFailureTolerancePercentage
ouMaxConcurrentPercentage
em vez disso.aws cloudformation create-stack-instances \ --stack-set-name
my-awsconfig-stackset
\ --accountsaccount_ID_1 account_ID_2
\ --regionsus-west-2 us-east-1
\ --operation-preferencesMaxConcurrentCount=1,FailureToleranceCount=0
Para obter mais informações, consulte CreateStackInstances na AWS CloudFormation API Reference.
-
Usando o
operation-id
que foi retornado como parte da saída de create-stack-instances, use o comando describe-stack-set-operation a seguir para verificar se as pilhas foram criadas com êxito.aws cloudformation describe-stack-set-operation \ --stack-set-name
my-awsconfig-stackset
\ --operation-idoperation_ID