

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á.

# Fundamentos de nuvem
<a name="cloudfoundations-pattern-list"></a>

**Topics**
+ [Automatize a criação de contas usando o Landing Zone Accelerator em AWS](automate-account-creation-lza.md)
+ [Faça o inventário automático de AWS recursos em várias contas e regiões](automate-aws-resource-inventory.md)
+ [Crie uma AWS landing zone que inclua o MongoDB Atlas](build-aws-landing-zone-that-includes-mongodb-atlas.md)
+ [Configure os registros de fluxo da VPC para centralização em Contas da AWS](configure-vpc-flow-logs-for-centralization-across-aws-accounts.md)
+ [Gerencie conjuntos de AWS permissões dinamicamente usando o Terraform](manage-aws-permission-sets-dynamically-by-using-terraform.md)
+ [Marque anexo do gateway de trânsito automaticamente usando o AWS Organizations](tag-transit-gateway-attachments-automatically-using-aws-organizations.md)
+ [Mais padrões](cloudfoundations-more-patterns-pattern-list.md)

# Automatize a criação de contas usando o Landing Zone Accelerator em AWS
<a name="automate-account-creation-lza"></a>

*Justin Kuskowski, Joe Behrens e Nathan Scott, Amazon Web Services*

## Resumo
<a name="automate-account-creation-lza-summary"></a>

Esse padrão explica como usar a AWS solução [Landing Zone Accelerator on](https://aws.amazon.com/solutions/implementations/landing-zone-accelerator-on-aws/) para implantar automaticamente uma nova Conta da AWS quando um usuário autorizado envia uma solicitação. Ele é usado AWS Step Functions para orquestrar várias funções AWS Lambda . As funções do Lambda adicionam as informações da conta a um repositório Git, iniciam um AWS CodePipeline pipeline e validam se os recursos necessários foram provisionados. AWS Quando o processo for concluído, o usuário receberá uma notificação de que a conta foi criada.

Opcionalmente, você pode integrar grupos de ID do Microsoft Entra e atribuir conjuntos de Centro de Identidade do AWS IAM permissões durante o processo de criação da conta. Se sua organização estiver usando o Microsoft Entra ID como fonte de identidade, esse recurso opcional ajuda você a gerenciar e configurar automaticamente o acesso à nova conta.

## Pré-requisitos e limitações
<a name="automate-account-creation-lza-prereqs"></a>

**Pré-requisitos **
+ Acesso à conta de gerenciamento em AWS Organizations
+ AWS Cloud Development Kit (AWS CDK) [https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_install](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_install)
+ Python versão 3.9 ou posterior, [instalado](https://www.python.org/downloads/)
+ AWS Command Line Interface [(AWS CLI) versão 2.13.19 ou posterior, instalada](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)
+ Docker versão 24.0.6 ou posterior, [instalado](https://docs.docker.com/get-started/get-docker/)
+ Landing Zone Accelerator na AWS solução, [implantada](https://docs.aws.amazon.com/solutions/latest/landing-zone-accelerator-on-aws/deploy-the-solution.html) na conta de gerenciamento
+ (Opcional) Microsoft Entra ID e Centro de Identidade do IAM, [integrados](https://docs.aws.amazon.com/singlesignon/latest/userguide/idp-microsoft-entra.html)

**Limitações**

O fluxo de trabalho de criação de contas oferece suporte a execuções sequenciais para implantar uma única Conta da AWS. Essa limitação garante que o fluxo de trabalho de criação da conta seja concluído com êxito sem precisar competir por recursos durante uma execução paralela.

## Arquitetura
<a name="automate-account-creation-lza-architecture"></a>

**Arquitetura de destino**

A imagem a seguir mostra a arquitetura de alto nível de automatização da criação de um novo Conta da AWS usando o Landing Zone Accelerator ativado. AWS AWS Step Functions orquestra a automação. Cada tarefa no fluxo de trabalho do Step Functions é executada por uma ou mais AWS Lambda funções.

![\[Fluxo de trabalho para automatizar a criação de uma nova conta usando o Acelerador de Zona de Pouso na AWS.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/d31abfaa-6854-4923-b896-3b817de9f4d9/images/dfd6503d-a4ed-43df-82d4-082f8153d473.png)


O diagrama mostra o seguinte fluxo de trabalho:

1. O usuário solicita uma conta executando um script Python ou usando o Amazon API Gateway.

1. O fluxo de trabalho do orquestrador de criação de contas começa no AWS Step Functions.

1. O fluxo de trabalho atualiza o arquivo `account-config.yaml` no repositório do código-fonte. Ele também inicia o Landing Zone Accelerator na AWS tubulação e verifica o status da tubulação. Esse pipeline cria e configura a nova conta. Para obter mais informações sobre como isso funciona, consulte [Architecture overview](https://docs.aws.amazon.com/solutions/latest/landing-zone-accelerator-on-aws/architecture-overview.html) para o Acelerador de Zona de Pouso na AWS.

1. (Opcional) Quando o pipeline é concluído, o fluxo de trabalho verifica se o grupo existe no Microsoft Entra ID. Se o grupo não existir no Microsoft Entra ID, o fluxo de trabalho adiciona o grupo ao Microsoft Entra ID.

1. O fluxo de trabalho executa etapas adicionais que o Landing Zone Accelerator na AWS solução não pode realizar. As etapas padrão incluem:
   + Criação de um [alias de conta](https://docs.aws.amazon.com/IAM/latest/UserGuide/console-account-alias.html) no AWS Identity and Access Management (IAM)
   + Anexando [tags](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_tagging.html) à conta em AWS Organizations
   + Criar parâmetros no [AWS Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) com base nas marcações atribuídas à conta

1. (Opcional) O fluxo de trabalho atribui um ou mais [conjuntos de permissões](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) ao grupo do Microsoft Entra ID que você especificou anteriormente. Os conjuntos de permissões permitem que os usuários do grupo acessem a nova conta e executem as ações que você configura.

1. Uma AWS Lambda função executa testes de controle de qualidade e validação. Ele valida a criação de recursos, verifica se as marcações foram criadas e valida se os recursos de segurança foram implantados.

1. O fluxo de trabalho libera a conta e usa o Amazon Simple Email Service (Amazon SES) para notificar o usuário de que o processo foi concluído com sucesso.

Para obter mais informações sobre o fluxo de trabalho do Step Functions, consulte o *diagrama do fluxo de trabalho do Step Functions* na seção [Informações adicionais](#automate-account-creation-lza-additional) deste padrão.

**Aplicações do Microsoft Entra ID**

Se você optar pela integração com o Microsoft Entra ID, crie as duas aplicações a seguir ao implantar esse padrão:
+ Uma aplicação vinculada ao Centro de Identidade do IAM e que garanta que os grupos do Microsoft Entra ID estejam disponíveis no Centro de Identidade do IAM. Neste exemplo, essa aplicação do Microsoft Entra ID se chama `LZA2`.
+ Um aplicativo que permite que uma função Lambda se comunique com o Microsoft Entra ID e chame o [Microsoft](https://learn.microsoft.com/en-us/graph/identity-network-access-overview) Graph. APIs Neste padrão, essa aplicação se chama `create_aws_account`.

Essas aplicações coletam dados que são usados para sincronizar o grupo do Microsoft Entra ID e atribuir conjuntos de permissões.

## Ferramentas
<a name="automate-account-creation-lza-tools"></a>

**Serviços da AWS**
+ [O Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html) ajuda você a criar, publicar, manter, monitorar e proteger REST, HTTP e WebSocket APIs em qualquer escala. Nesse padrão, você usa o API Gateway para verificar a disponibilidade de Conta da AWS nomes, iniciar o AWS Step Functions fluxo de trabalho e verificar o status da execução do Step Functions.
+ [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/v2/guide/home.html)é uma estrutura de desenvolvimento de software que ajuda você a definir e provisionar Nuvem AWS infraestrutura em código.
+ [AWS Control Tower](https://docs.aws.amazon.com/controltower/latest/userguide/what-is-control-tower.html)ajuda você a configurar e administrar um ambiente AWS com várias contas, seguindo as melhores práticas prescritivas.
+  EventBridgeA [Amazon](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) é um serviço de ônibus de eventos sem servidor que ajuda você a conectar seus aplicativos com dados em tempo real de várias fontes. Por exemplo, AWS Lambda funções, endpoints de invocação HTTP usando destinos de API ou barramentos de eventos em outros. Contas da AWS Essa solução usa uma [EventBridge regra](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-rules.html) que inicia uma função Lambda se o estado do fluxo de trabalho do Step Functions mudar para `Failed``Timed-out`, ou. `Aborted`
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ajuda você a gerenciar com segurança o acesso aos seus AWS recursos controlando quem está autenticado e autorizado a usá-los.
+ [Centro de Identidade do AWS IAM](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)ajuda você a gerenciar centralmente o acesso de login único (SSO) a todos os seus Contas da AWS aplicativos e à nuvem.
+ [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) ajuda você a criar e controlar chaves criptográficas para ajudar a proteger seus dados. Nesse padrão, AWS KMS as chaves são usadas para criptografar dados, como dados armazenados no Amazon Simple Storage Service (Amazon S3), variáveis de ambiente Lambda e dados em Step Functions.
+ O [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) é um serviço de computação que ajuda a executar código sem exigir provisionamento ou gerenciamento de servidores. Ele executa o código somente quando necessário e dimensiona automaticamente, assim, você paga apenas pelo tempo de computação usado.
+ [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)é um serviço de gerenciamento de contas que ajuda você a consolidar várias Contas da AWS em uma organização que você cria e gerencia centralmente.
+ [Amazon Simple Email Service (Amazon SES)](https://docs.aws.amazon.com/ses/latest/dg/Welcome.html): ajuda você a enviar e receber e-mails usando seus próprios endereços de e-mail e domínios. Depois que uma nova conta for criada com sucesso, você receberá uma notificação por meio do Amazon SES.
+ O [Amazon Simple Notiﬁcation Service (Amazon SNS)](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) ajuda você a coordenar e gerenciar a troca de mensagens entre publicadores e clientes, incluindo servidores web e endereços de e-mail. Se ocorrer um erro durante o processo de criação da conta, o Amazon SNS enviará uma notificação aos endereços de e-mail que você configurar.
+ [AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html)é um serviço de orquestração sem servidor que ajuda você a combinar AWS Lambda funções e outras Serviços da AWS para criar aplicativos essenciais para os negócios.
+ AWS Systems Manager O [Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) fornece armazenamento seguro e hierárquico para gerenciamento de dados de configuração e gerenciamento de segredos.

**Outras ferramentas**
+ O [awscurl](https://pypi.org/project/awscurl/0.6/) automatiza o processo de assinatura de solicitações de AWS API e ajuda você a fazer solicitações como um comando curl padrão.
+ O [Microsoft Entra ID](https://learn.microsoft.com/en-us/entra/fundamentals/whatis), anteriormente conhecido como *Azure Active Directory*, é um serviço de gerenciamento de identidade e acesso baseado em nuvem.
+ [O Microsoft Graph APIs](https://learn.microsoft.com/en-us/graph/graph-explorer/graph-explorer-overview) ajuda você a acessar dados e inteligência nos serviços de nuvem da Microsoft, como o Microsoft Entra e o Microsoft 365.

**Repositório de código**

O código desse padrão está disponível no GitHub [lza-account-creation-workflow](https://github.com/aws-samples/lza-account-creation-workflow)repositório.

O diretório [lambda\$1layer](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_layer) contém as seguintes camadas, que são referenciadas em mais de uma função do Lambda:
+ [account\$1creation\$1helper](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_layer/account_creation_helper) — Essa camada inclui os módulos para assumir funções e verificar o progresso. AWS Service Catalog
+ [boto3](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_layer/boto3) — Essa camada inclui o [AWS SDK para Python (Boto3)](https://boto3.amazonaws.com/v1/documentation/api/latest/index.html)módulo para garantir que AWS Lambda tenha a versão mais recente.
+ [identity\$1center\$1helper](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_layer/identity_center_helper): essa camada oferece suporte a chamadas para o Centro de Identidade do IAM.

O diretório [lambda\$1src](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src) contém as seguintes funções do Lambda:
+ [AccountTagToSsmParameter](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/event/AccountTagToSsmParameter)— Essa função usa as tags anexadas à conta para criar parâmetros no Parameter Store. AWS Organizations Cada parâmetro é iniciado com o prefixo `/account/tags/`.
+ [AttachPermissionSet](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/stepfunction/AttachPermissionSet)— Essa função adiciona um conjunto de permissões a um grupo do IAM Identity Center.
+ [ADGroupSincronização do Azure](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/stepfunction/AzureADGroupSync) — Essa função sincroniza o grupo de ID Microsoft Entra de destino com o IAM Identity Center.
+ [CheckForRunningProcesses](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/stepfunction/CheckForRunningProcesses)— Essa função verifica se o `AWSAccelerator-Pipeline` pipeline está em execução no momento. Se o pipeline estiver em execução, a função atrasará o AWS Step Functions fluxo de trabalho.
+ [CreateAccount](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/stepfunction/CreateAccount)— Esta função usa AWS Service Catalog e AWS Control Tower para criar o novo Conta da AWS.
+ [CreateAdditionalResources](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/stepfunction/CreateAdditionalResources)— Essa função cria os AWS recursos que não são gerenciados pelo Landing Zone Accelerator ou AWS CloudFormation, como o alias e AWS Service Catalog as tags da conta.
+ [GetAccountStatus](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/stepfunction/GetAccountStatus)— Essa função verifica o produto provisionado AWS Service Catalog para determinar se o processo de criação da conta foi concluído.
+ [GetExecutionStatus](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/api/GetExecutionStatus)— Essa função recupera o status de uma execução em AWS Step Functions execução ou concluída.
+ [NameAvailability](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/api/NameAvailability)— Esta função verifica se um Conta da AWS nome já existe em AWS Organizations.
+ [ReturnResponse](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/stepfunction/ReturnResponse)— Se a criação da conta for bem-sucedida, essa função retornará o ID da nova conta. Se a criação da conta não for bem-sucedida, ela retornará uma mensagem de erro.
+ [RunStepFunction](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/api/RunStepFunction)— Essa função executa o AWS Step Functions fluxo de trabalho que cria a conta.
+ [SendEmailWithSES](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/stepfunction/SendEmailWithSES) — Essa função envia e-mails para os usuários que estão aguardando a conclusão da criação da conta.
+ [Validar o ADGroup SyncTo SSO](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/stepfunction/ValidateAdGroupSyncToSSO) — Essa função verifica se os grupos de ID Microsoft Entra especificados estão sincronizados com o IAM Identity Center.
+ [ValidateResources](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/stepfunction/ValidateResources)— Essa função valida que todas as AWS Control Tower personalizações foram executadas com êxito.

## Práticas recomendadas
<a name="automate-account-creation-lza-best-practices"></a>

Recomendamos as seguintes convenções de nomenclatura para o AWS CDK: 
+ Inicie todos os parâmetros com um prefixo `p`.
+ Inicie todas as condições com um prefixo `c`.
+ Inicie todos os recursos com um prefixo `r`.
+ Inicie todas as saídas com um prefixo `o`.

## Épicos
<a name="automate-account-creation-lza-epics"></a>

### Implantar os perfis do IAM para validação e marcação
<a name="deploy-the-iam-roles-for-validation-and-tagging"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Prepare o Landing Zone Accelerator AWS para personalização. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | AWS DevOps | 
| Prepare-se para implantar o perfil `lza-account-creation-validation`. | Agora, você personaliza a solução para implantar o perfil do `lza-account-creation-validation` IAM em todas as contas, exceto na conta gerencial. Essa função fornece à função do Lambda `ValidateResources` acesso somente leitura às novas contas.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | AWS DevOps | 
| Prepare-se para implantar o perfil `account-tagging-to-ssm-parameter-role`. | Agora, você personaliza a solução para implantar o perfil do `account-tagging-to-ssm-parameter-role` IAM em todas as contas, exceto na conta gerencial. Essa função é usada para criar os parâmetros no AWS Systems Manager Parameter Store.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | AWS DevOps | 
| Prepare-se para implantar o perfil `config-log-validation-role`. | Agora, você personaliza a solução para implantar o perfil do IAM `config-log-validation-role` na conta de arquivamento de logs. Essa função permite que a função `ValidateResources` Lambda acesse o bucket do Amazon S3 para registrar e acessar regras. AWS Config [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | AWS DevOps | 

### (Opcional) Obter dados do Microsoft Entra ID
<a name="optional-get-data-from-microsoft-entra-id"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie a aplicação que permite que uma função do Lambda se comunique com o Microsoft Entra ID. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | Microsoft Entra ID | 
| Recupere os valores da aplicação `create_aws_account`. | Agora, você recupera os valores necessários para a aplicação `create_aws_account`.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | Microsoft Entra ID | 
| Crie a aplicação que integra o Microsoft Entra ID ao Centro de Identidade do IAM. | No centro de administração do Microsoft Entra ID, registre a aplicação `LZA2`. Para obter instruções, consulte [Register an application](https://learn.microsoft.com/en-us/entra/identity-platform/quickstart-register-app) na documentação da Microsoft. | Microsoft Entra ID | 
| Recupere os valores da aplicação `LZA2`. | Agora, você recupera os valores necessários para a aplicação `LZA2`.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | Microsoft Entra ID | 
| Criar um segredo. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | AWS DevOps | 

### Implante a solução
<a name="deploy-the-solution"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Clone o código-fonte. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | DevOps engenheiro | 
| Para atualizar o arquivo `deploy-config.yaml`. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | AWS DevOps | 
| Implante a solução em seu AWS ambiente. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html)Essa solução usará um bucket do Amazon S3 para armazenar o código-fonte dessa solução. Você pode usar o script [upload\$1to\$1source\$1bucket.py](https://github.com/aws-samples/gen-ai-trivia/blob/main/scripts/upload_to_source_bucket.py) para criar um arquivo do código-fonte e fazer upload de uma versão atualizada. | AWS DevOps | 

### Opção 1: crie uma conta usando Python
<a name="option-1-create-an-account-using-python"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Identifique quais argumentos serão usados. | Escolha quais argumentos usar ao executar o script Python que inicia o fluxo de trabalho do Step Functions. Para obter uma lista completa dos argumentos, consulte a seção [Informações adicionais](#automate-account-creation-lza-additional) deste padrão. | AWS DevOps, Python | 
| Inicie o script Python. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | DevOps engenheiro, Python | 

### Opção 2: crie uma conta usando o API Gateway e awscurl
<a name="option-2-create-an-account-using-api-gateway-and-awscurl"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure as variáveis para awscurl. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | AWS DevOps | 
| Verifique a disponibilidade do nome. | Insira o comando a seguir para verificar se o nome está disponível para a Conta da AWS. Substitua `<AWS_ACCOUNT_NAME>` pelo nome da conta de destino:<pre>awscurl --service execute-api \<br />    --region ${AWS_REGION} \<br />    --access_key ${AWS_ACCESS_KEY_ID} \<br />    --secret_key ${AWS_SECRET_ACCESS_KEY} \<br />    --security_token ${AWS_SESSION_TOKEN} \<br />    -X POST ${API_GATEWAY_ENDPOINT}check_name?account_name=<AWS_ACCOUNT_NAME></pre> | AWS DevOps | 
| Execute o fluxo de trabalho de criação da conta. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | AWS DevOps | 

### (Opcional) Limpar a solução
<a name="optional-clean-up-the-solution"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Remova os objetos do bucket do Amazon S3. | Remova qualquer objeto nos seguintes buckets do Amazon S3:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | AWS DevOps | 
| Exclua a CloudFormation pilha. | Digite o seguinte comando para excluir a CloudFormation pilha:<pre>aws cloudformation delete-stack \<br />  --stack-name lza-account-creation-workflow-application<br />aws cloudformation wait stack-delete-complete \<br />  --stack-name lza-account-creation-workflow-application</pre> | AWS DevOps | 
| Exclua o pipeline. | Insira o seguinte comando para excluir o pipeline `lza-account-creation-workflow-pipeline`:<pre>cdk destroy lza-account-creation-workflow-pipeline --force</pre> | AWS DevOps | 

## Recursos relacionados
<a name="automate-account-creation-lza-resources"></a>
+ [Landing Zone Accelerator ativado AWS](https://aws.amazon.com/solutions/implementations/landing-zone-accelerator-on-aws/) (Biblioteca de AWS soluções)
+ [Solução de AWS CDK problemas comuns](https://docs.aws.amazon.com/cdk/v2/guide/troubleshooting.html) (AWS CDK documentação)

## Mais informações
<a name="automate-account-creation-lza-additional"></a>

**Diagrama do fluxo de trabalho do Step Functions**

A imagem a seguir mostra os estados no fluxo de trabalho do Step Functions.

![\[Estados no fluxo de trabalho do Step Functions.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/d31abfaa-6854-4923-b896-3b817de9f4d9/images/d93aa7bf-1144-4f25-9488-aacc534a7813.png)


**Arguments (Argumentos)**

A seguir estão os argumentos que você pode usar ao executar o script Python que inicia o fluxo de trabalho do Step Functions.

Os seguintes argumentos são necessários:
+ `account-name (-a)`(string) — O nome do novo Conta da AWS.
+ `support-dl (-s)` (string): o endereço de e-mail que recebe a notificação quando o processo de criação da conta é concluído.
+ `managed-org-unit (-m)` (string): a [unidade organizacional (UO)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html#organizationalunit) gerenciada que conterá a nova conta.

Os seguintes argumentos são opcionais:
+ `ad-integration (-ad)` (dicionário de strings): o grupo do Microsoft Entra ID e o conjunto de permissões atribuído. Veja a seguir um exemplo de como usar esse argumento:

  ```
  --ad-integration "{\"<PermissionSetName>\": \"<EntraIdGroupName>\"}"
  ```
+ `account-email (-e)`****(string) — O endereço de e-mail do usuário raiz do novo Conta da AWS.
**nota**  
Se esse argumento não for usado, um endereço de e-mail será gerado usando os valores `rootEmailPrefix` e `rootEmailDomain` do arquivo `configs/deploy-config.yaml`. Se um endereço de e-mail não for fornecido, um endereço de e-mail será gerado usando o seguinte formato: `rootEmailPrefix+accountName@rootEmailDomain`.
+ `region (-r)`(string) — Região da AWS Onde o fluxo de trabalho do Step Functions foi implantado. O valor padrão é `us-east-1`.
+ `force-update (-f)`(string Boolean) — Insira `true` para forçar AWS Service Catalog a atualização do produto provisionado.
+ `bypass-creation (-b)` (booleano da string): insira `true` para ignorar a adição da conta ao arquivo `accounts-config.yaml` e ignorar a execução do pipeline `AWSAccelerator-Pipeline`. Esse argumento geralmente é usado para testar o processo de fluxo de trabalho de criação da conta ou para executar o restante das etapas do Step Functions se ocorrer um erro no pipeline do `Landing Zone Accelerator`.
+ `tags (-t)`(string) — Tags adicionais que você deseja adicionar ao Conta da AWS. Por padrão, as seguintes marcações são adicionadas: `account-name`, `support-dl` e `purpose`. Veja a seguir um exemplo de como usar esse argumento:

  ```
  --tags TEST1=VALUE1 TEST2=VALUE2
  ```

# Faça o inventário automático de AWS recursos em várias contas e regiões
<a name="automate-aws-resource-inventory"></a>

*Matej Macek, Amazon Web Services*

## Resumo
<a name="automate-aws-resource-inventory-summary"></a>

Esse padrão descreve uma abordagem automatizada para manter um inventário abrangente de AWS recursos em várias contas e. Regiões da AWS O padrão foi desenvolvido para ajudar engenheiros de infraestrutura e de segurança a aprimorar as práticas de gerenciamento de recursos. Ele usa AWS Config para monitorar alterações de recursos, o Amazon Athena para consultas e o Amazon Quick Sight para painéis interativos. Você implementa essa solução implantando uma AWS CloudFormation pilha.

Essa solução é semelhante à apresentada em [Visualização de AWS Config dados usando o Amazon Athena e o Amazon Quick](https://aws.amazon.com/blogs/mt/visualizing-aws-config-data-using-amazon-athena-and-amazon-quicksight/) Sight AWS (postagem do blog). Esse padrão amplia a solução mencionada para atender aos seguintes requisitos comuns e fornecer os benefícios principais listados abaixo:
+ **Foco em conformidade**: essa abordagem pode ajudar você a atender a requisitos regulatórios, como [PCI DSS](https://www.pcisecuritystandards.org/), [NIST SP 800-53](https://csrc.nist.gov/pubs/sp/800/53/r5/upd1/final), [ISO/IEC 27001](https://www.iso.org/standard/27001), [HIPAA](https://www.hhs.gov/programs/hipaa/index.html), [GDPR](https://gdpr.eu/) e outros requisitos que exigem inventários precisos de ativos.
+ **Estrutura de personalização** — Ela fornece uma base para a criação de painéis do Quick Sight para vários AWS recursos, para que você possa personalizar a solução de acordo com seus requisitos específicos.
+ **Aprimoramentos orientados pelo usuário**: essa abordagem incorpora feedback de casos de uso reais e atende a solicitações por uma solução mais abrangente.

As equipes de infraestrutura, segurança e finanças frequentemente enfrentam desafios de visibilidade e de colaboração em ambientes dinâmicos com várias contas ou regiões. Esta solução foi desenvolvida para enfrentar esses desafios e reduzir significativamente o tempo e o esforço necessários para criar e manter um inventário de recursos. Isso resulta em uma visão centralizada dos recursos, auxiliando na melhoria das decisões de alocação de recursos, na identificação e mitigação de riscos, na otimização de custos e no aumento da visibilidade e da colaboração de maneira geral. Essa abordagem reduz a distância entre soluções conceituais e as necessidades reais de implementação, voltadas à segurança, à conformidade e às operações.

## Pré-requisitos e limitações
<a name="automate-aws-resource-inventory-prereqs"></a>

**Pré-requisitos **
+ As seguintes Contas da AWS devem estar ativas:
  + *Conta gerencial*: uma conta centralizada para faturamento, criação de contas e controle de acesso em toda a organização
  + *Conta de auditoria*: um hub centralizado para monitoramento de segurança, verificações de conformidade e notificações de divergências
  + *Conta de arquivamento de log*: uma conta centralizada para armazenar e analisar os dados coletados
+ Na conta de auditoria, um AWS Config [agregador](https://docs.aws.amazon.com/config/latest/developerguide/aggregate-data.html) que coleta e agrega dados de configuração de suas contas e regiões de destino
+ Na conta de arquivamento de log, configure o seguinte:
  + Um bucket do Amazon Simple Storage Service (Amazon [S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) onde você armazena os dados do agregador AWS Config 
  + Uma [assinatura](https://docs.aws.amazon.com/quicksight/latest/user/signing-up.html) do Amazon Quick
  + Uma [conexão autorizada](https://docs.aws.amazon.com/quicksight/latest/user/athena.html) entre o Quick Sight e o Amazon Athena
  + As [permissões](https://docs.aws.amazon.com/athena/latest/ug/s3-permissions.html) para acessar o bucket do Amazon S3 por meio de uma consulta do Athena
+ AWS Command Line Interface (AWS CLI), [instalado](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) e [configurado](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)
+ Permissões para implantar uma CloudFormation pilha que provisiona os seguintes recursos:
  + Uma AWS Lambda função
  + Uma configuração de notificação do Amazon S3
  + Banco de dados, tabelas e visualizações do Athena
  + Conjuntos de dados e fontes de dados do Quick Sight
+ Permissões para executar automações em AWS Systems Manager
+ Permissões para acessar o Quick

**Limitações**
+ A solução depende de. AWS Config AWS Config geralmente registra as alterações de configuração em seus recursos logo após a detecção de uma alteração ou na frequência especificada por você. Entretanto, esse registro é feito em caráter de melhor esforço e, às vezes, pode demorar mais tempo.
+ Essa solução rastreia somente [os tipos de recursos AWS Config compatíveis](https://docs.aws.amazon.com/config/latest/developerguide/resource-config-reference.html).
+ A solução não rastreia o inventário de recursos em outros provedores de nuvem ou em ambientes on-premises.
+ Alguns Serviços da AWS não estão disponíveis em todos Regiões da AWS. Para saber a disponibilidade da região, consulte a página de [endpoints e cotas do serviço](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) na AWS documentação e escolha o link para o serviço.

## Arquitetura
<a name="automate-aws-resource-inventory-architecture"></a>

O diagrama a seguir mostra um processo simplificado para coletar, organizar, analisar e visualizar dados de configuração e conformidade em várias contas em uma AWS organização.

![\[Coleta e visualização de dados de configuração e de conformidade em toda a organização.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/67a9667a-da19-4dcb-a2fe-62bc94a0541b/images/c9245de1-ac85-4a9e-a0c0-dbcc27a8bb5d.png)


O diagrama mostra o seguinte fluxo de trabalho:

1. Em um cronograma periódico, o AWS Config agregador coleta dados de configuração e conformidade sobre os recursos nas contas e regiões de destino e, em seguida, entrega os dados ao bucket do Amazon S3 na conta de arquivamento de registros.

1. Adicionar novos AWS Config dados ao bucket do Amazon S3 invoca uma função. AWS Lambda 

1. A função do Lambda particiona os dados ao configurar chaves com valores que correspondem à região e à data de cada arquivo de snapshot. Isso ajuda a consultar e processar AWS Glue com eficiência os dados de configuração e conformidade.

1. O Amazon Athena usa um AWS Glue [esquema](https://docs.aws.amazon.com/glue/latest/dg/schema-registry.html) para executar consultas SQL nos dados armazenados no bucket do Amazon S3. Ele utiliza os metadados do esquema AWS Glue para entender a estrutura dos dados.

1. As [visualizações](https://docs.aws.amazon.com/athena/latest/ug/views.html) no Athena definem e extraem os conjuntos de dados de destino.

1. [Os painéis](https://docs.aws.amazon.com/quicksight/latest/user/using-dashboards.html) no Quick Sight ajudam você a visualizar e analisar os conjuntos de dados.

## Ferramentas
<a name="automate-aws-resource-inventory-tools"></a>

**Serviços da AWS**
+ O [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html) é um serviço de consultas interativas que facilita a análise de dados diretamente no Amazon S3 usando SQL padrão.
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)ajuda você a configurar AWS recursos, provisioná-los de forma rápida e consistente e gerenciá-los durante todo o ciclo de vida em Contas da AWS e. Regiões da AWS
+ [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html)fornece uma visão detalhada dos recursos em seu computador Conta da AWS e de como eles estão configurados. Ajuda a identificar como os recursos estão relacionados entre si e como suas configurações foram alteradas ao longo do tempo. Um AWS Config [agregador](https://docs.aws.amazon.com/config/latest/developerguide/aggregate-data.html) coleta dados AWS Config de configuração e conformidade de várias regiões Contas da AWS .
+ O [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html) é um serviço totalmente gerenciado de extração, transformação e carregamento (ETL). Ele ajuda você a categorizar de forma confiável, limpar, enriquecer e mover dados de forma confiável entre armazenamento de dados e fluxos de dados. Esse padrão usa um [registro AWS Glue[de catálogo de dados](https://docs.aws.amazon.com/glue/latest/dg/components-overview.html#data-catalog-intro) e esquema](https://docs.aws.amazon.com/glue/latest/dg/schema-registry.html).
+ O [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) é um serviço de computação que ajuda a executar código sem exigir provisionamento ou gerenciamento de servidores. Ele executa o código somente quando necessário e dimensiona automaticamente, assim, você paga apenas pelo tempo de computação usado.
+ [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)é um serviço de gerenciamento de contas que ajuda você a consolidar várias Contas da AWS em uma organização que você cria e gerencia centralmente.
+ [O Amazon Quick Sight](https://docs.aws.amazon.com/quicksuite/latest/userguide/quick-bi.html) é um serviço de inteligência de negócios (BI) que ajuda você a transformar dados brutos em insights significativos por meio de visualizações, painéis e relatórios interativos. O Quick Sight é um componente essencial do Amazon Quick.
+ O [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) é um serviço de armazenamento de objetos baseado na nuvem que ajuda você a armazenar, proteger e recuperar qualquer quantidade de dados.
+ O [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html) ajuda você a gerenciar suas aplicações e infraestrutura em execução na Nuvem AWS. Ele simplifica o gerenciamento de aplicativos e recursos, reduz o tempo para detectar e resolver problemas operacionais e ajuda você a gerenciar seus AWS recursos com segurança em grande escala. [AWS Systems Manager A automação](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation.html) simplifica as tarefas comuns de manutenção, implantação e remediação para muitos. Serviços da AWS

**Repositório de código**

O AWS CloudFormation modelo para esse padrão está disponível no GitHub repositório de [AWS Config visualização](https://github.com/aws-samples/aws-management-and-governance-samples/blob/master/AWSConfig/AWS-Config-Visualization/README.md). Este CloudFormation modelo implanta um runbook AWS Systems Manager de automação configurado AWS Config para uso com o Amazon Athena. Essa automação se prepara AWS Glue para se conectar ao bucket designado do Amazon S3, cria visualizações no Amazon Athena e configura o Quick Sight para visualização do painel.

## Práticas recomendadas
<a name="automate-aws-resource-inventory-best-practices"></a>
+ Recomendamos que você siga as melhores práticas em [Configurar e governar um AWS ambiente seguro com várias contas sem orientação AWS Control Tower](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-aws-environment/welcome.html) AWS prescritiva.
+ Recomendamos que você crie um AWS Config agregador que colete dados de configuração e conformidade de toda AWS a organização. Para obter mais informações, consulte [Agregação de dados multirregionais de várias contas na documentação](https://docs.aws.amazon.com/config/latest/developerguide/aggregate-data.html). AWS Config 
+ [Antes de implantar essa solução, recomendamos que você revise as informações de preços atuais do [Amazon](https://aws.amazon.com/s3/pricing/) S3 [AWS Config](https://aws.amazon.com/config/pricing/), [Athena](https://aws.amazon.com/athena/pricing/) e Quick.](https://aws.amazon.com/quicksight/pricing/)

## Épicos
<a name="automate-aws-resource-inventory-epics"></a>

### Implante a CloudFormation pilha
<a name="deploy-the-cfnshort-stack"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Faça o download do CloudFormation modelo. | Baixe o modelo [Config- QuickSight CloudFormation -Visualization-ssm-automation.yaml](https://github.com/aws-samples/aws-management-and-governance-samples/blob/master/AWSConfig/AWS-Config-Visualization/cft/Config-QuickSight-Visualization-SSM-Automation.yaml). | Administrador da AWS, administrador de nuvem, DevOps engenheiro | 
| Modifique o CloudFormation modelo. | Conclua esta etapa somente se você estiver usando [AWS Control Tower](https://aws.amazon.com/controltower/)e AWS Config for gerenciado por AWS Control Tower. Você precisa modificar o CloudFormation modelo.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/automate-aws-resource-inventory.html) | DevOps engenheiro, administrador da AWS | 
| Crie uma CloudFormation pilha. | Siga as instruções em [Criar uma pilha a partir do CloudFormation console](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html). Observe o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/automate-aws-resource-inventory.html) | Administrador da AWS, administrador de nuvem, DevOps engenheiro | 

### Execução da automação no Systems Manager
<a name="run-the-automation-in-sys"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Encontre seu nome de usuário do Quick. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/automate-aws-resource-inventory.html) | Administrador da AWS, administrador de nuvem, DevOps engenheiro | 
| Localize o nome do canal de entrega e o nome do bucket do Amazon S3. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/automate-aws-resource-inventory.html) | Administrador da AWS, administrador de nuvem, DevOps engenheiro | 
| Execute a automação no Systems Manager. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/automate-aws-resource-inventory.html) | Administrador da AWS, administrador de nuvem, DevOps engenheiro | 

### Visualize dados no Quick Sight
<a name="visualize-data-in-qsight"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Atualize os dados. | Para agendar a atualização de conjuntos de dados de acordo com suas necessidades específicas, siga as instruções apresentadas em [Refreshing SPICE data](https://docs.aws.amazon.com/quicksight/latest/user/refreshing-imported-data.html). | Administrador da AWS, DevOps engenheiro, administrador de nuvem | 
| Crie uma análise do . | Para criar um painel no Quick Sight que ajude você a visualizar os recursos, siga as instruções em [Iniciando uma análise no Quick Sight](https://docs.aws.amazon.com/quicksuite/latest/userguide/creating-an-analysis.html). | Administrador do Quick Suite | 
| Crie um dashboard. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/automate-aws-resource-inventory.html) | Administrador do Quick Suite | 

### Limpar (opcional)
<a name="optional-clean-up"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Exclua os recursos criados pela automação do Systems Manager. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/automate-aws-resource-inventory.html) | Administrador da AWS, administrador de nuvem, DevOps engenheiro | 
| Exclua a CloudFormation pilha. | Para excluir os recursos na `Config-QuickSight-Visualization-SSM-Automation` pilha, siga as instruções em [Excluir uma pilha do CloudFormation console](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html). | Administrador da AWS, administrador de nuvem, DevOps engenheiro | 

## Solução de problemas
<a name="automate-aws-resource-inventory-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| O Amazon Quick está tentando se conectar ao `us-east-1` Região da AWS, mas a criação de recursos nessa região não é permitida. | Uma política de controle de serviços está restringindo sua assinatura do Amazon Quick nesta região. Na política de controle de serviço, especifique manualmente o alvo Região da AWS. Substitua `<REGION_ID>` pelo identificador da região apropriada:<pre>https://<REGION_ID>.quicksight.aws.amazon.com/sn/start/dashboards</pre>Este é um exemplo:<pre>https://eu-central-1.quicksight.aws.amazon.com/sn/start/dashboards</pre> | 
| Ao usar o Amazon Athena, você recebe a seguinte mensagem:`Before you run your first query, you need to set up a query result location in Amazon S3.` | Certifique-se de ter preparado um bucket do Amazon S3 no qual você armazenará os resultados das consultas do Amazon Athena. Em seguida, siga as instruções apresentadas em [Especificar um local para resultados de consultas com uso do console do Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/query-results-specify-location-console.html). | 

## Recursos relacionados
<a name="automate-aws-resource-inventory-resources"></a>

**AWS documentação**
+ [AWS Config documentação](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html)
+ [Documentação do Amazon Quick](https://docs.aws.amazon.com/quicksuite/latest/userguide/what-is.html)

**AWS postagem no blog**
+ [Automatize a visualização AWS Config de dados com AWS Systems Manager](https://aws.amazon.com/blogs/mt/automate-aws-config-data-visualization-with-aws-systems-manager/)
+ [Como registrar alterações na configuração de recursos periodicamente com AWS Config](https://aws.amazon.com/blogs/mt/how-to-record-resource-configuration-changes-periodically-with-aws-config/)

**Outros recursos**
+ [Centro de aprendizagem da comunidade Amazon Quick](https://community.amazonquicksight.com/c/learning-center/10/none)
+ [Galeria da comunidade Amazon Quick](https://community.amazonquicksight.com/c/gallery/44)

# Crie uma AWS landing zone que inclua o MongoDB Atlas
<a name="build-aws-landing-zone-that-includes-mongodb-atlas"></a>

*Igor Alekseev, Amazon Web Services*

*Anuj Panchal, MongoDB*

## Resumo
<a name="build-aws-landing-zone-that-includes-mongodb-atlas-summary"></a>

Esse padrão descreve como criar uma AWS landing zone integrada a um cluster MongoDB Atlas. A infraestrutura é implantada automaticamente por meio de um script do Terraform. 

Um AWS ambiente bem estruturado e com várias contas, chamado de [landing zone](https://docs.aws.amazon.com/prescriptive-guidance/latest/strategy-migration/aws-landing-zone.html), oferece escalabilidade e segurança, especialmente para empresas. Esse ambiente serve como base para a rápida implantação de workloads e aplicações, além de garantir a confiabilidade da segurança e da infraestrutura A criação de uma zona de pouso exige uma análise cuidadosa de fatores técnicos e de negócios, incluindo estrutura de contas, redes, segurança e gerenciamento de acesso. Essas considerações devem estar alinhadas com o crescimento futuro e com os objetivos de negócios da sua organização.

Os casos de uso para esse padrão incluem:
+ **Plataformas SaaS e PaaS corporativas: aplicativos de software como** serviço (SaaS) multilocatários e plataformas de plataforma como serviço (PaaS) executados em AWS podem usar essa configuração para ajudar a fornecer acesso seguro e privado ao MongoDB Atlas sem expor dados na Internet pública.
+ **Setores altamente regulamentados**: cargas de trabalho bancárias, de serviços financeiros, de saúde e governamentais que exigem conformidade estrita com padrões como a Lei de Portabilidade e Responsabilidade de Seguros de Saúde (HIPAA), o Padrão de Segurança de Dados do Setor de Cartões de Pagamento (PCI DSS), os Controles de Sistemas e Organizações 2 () e o Regulamento Geral de Proteção de Dados (GDPRSOC2) se beneficiam de:
  + Conectividade criptografada e privada por meio de AWS PrivateLink
  + Alta disponibilidade multi-AZ de conjuntos de réplicas do MongoDB
+ ** AI/ML Cargas de trabalho seguras**: pipelines de treinamento ou inferência no Amazon Bedrock, SageMaker Amazon AI ou modelos personalizados de IA podem buscar e armazenar dados com segurança no MongoDB Atlas over. PrivateLink
+ **Recuperação de desastres e continuidade dos negócios:** o projeto multi-AZ garante que nenhuma falha em uma única zona de disponibilidade interrompa as workloads. Um conjunto de réplicas do Atlas distribuído por zonas de disponibilidade garante o failover automático. Isso é fundamental para serviços que exigem disponibilidade constante, como aplicativos de tecnologia financeira (fintech), bancos digitais ou monitoramento de serviços de saúde.

## Pré-requisitos e limitações
<a name="build-aws-landing-zone-that-includes-mongodb-atlas-prereqs"></a>

**Pré-requisitos **
+ Acesso de proprietário da organização ao MongoDB Atlas para que você possa criar chaves de API do Atlas. Para obter informações sobre esse requisito, consulte [Manage Organization Access](https://www.mongodb.com/docs/atlas/tutorial/manage-organizations/) na documentação do MongoDB.
+ Uma [Conta da AWS](https://aws.amazon.com/resources/create-account/) ativa.
+ [Terraform](https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli), instalado e configurado.
+ Um cluster do MongoDB Atlas, criado com a versão 6.0 ou com versões posteriores do MongoDB.
+ Familiaridade com o MongoDB e o MongoDB Atlas. Para obter mais informações, consulte a [documentação do MongoDB Atlas](https://www.mongodb.com/docs/atlas/).

**Limitações**
+ Alguns Serviços da AWS não estão disponíveis em todos Regiões da AWS. Para conferir a disponibilidade de uma região, consulte [Serviços da AWS by Region](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Para endpoints específicos, consulte [Service endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) e clique no link correspondente ao serviço desejado.

## Arquitetura
<a name="build-aws-landing-zone-that-includes-mongodb-atlas-architecture"></a>

O diagrama de arquitetura de referência a seguir ilustra a configuração de implantação de uma AWS landing zone integrada a um endpoint privado MongoDB Atlas. Essa arquitetura de referência demonstra como estabelecer uma AWS landing zone segura, escalável e altamente disponível integrada ao MongoDB Atlas. Ao combinar as AWS melhores práticas, como implantação Multi-AZ, controles de segurança com privilégios mínimos e conectividade privada, esse design permite que as organizações provisionem um ambiente robusto para aplicativos modernos.

![\[Arquitetura multi-AZ para a Zona de Pouso da AWS integrada ao MongoDB Atlas.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/72d335b9-b5b1-4fe2-9972-65edbec60ab1/images/82a8cc98-6f22-4e28-a236-57a809930055.png)


Essa arquitetura consiste nos seguintes elementos:

**VPC**
+ Uma única nuvem privada virtual (VPC) abrange três zonas de disponibilidade.
+ A VPC é subdividida em sub-redes alinhadas a cada zona de disponibilidade. Essas sub-redes distribuem as workloads para garantir alta disponibilidade.

**Acesso à Internet**
+ Um gateway da internet fornece conectividade de saída para a internet a recursos que necessitam dela, como aplicações ou bastion hosts.
+ As sub-redes públicas podem hospedar gateways NAT, que permitem que workloads de sub-redes privadas façam o download de atualizações, apliquem patches e outros pacotes necessários sem expô-las diretamente à internet pública.

**Sub-redes privadas e tabelas de rotas**
+ Os componentes da aplicação, microsserviços ou outros recursos sensíveis geralmente ficam localizados em sub-redes privadas.
+ As tabelas de rotas dedicadas controlam os fluxos de tráfego. As rotas direcionam o tráfego de saída das sub-redes privadas para os gateways NAT, garantindo acesso seguro à internet por estar restrito à saída.
+ As solicitações de entrada provenientes da internet passam por balanceadores de carga elásticos ou bastion hosts (se utilizados) em sub-redes públicas e, em seguida, são roteadas adequadamente para os recursos da sub-rede privada.

**Conectividade MongoDB Atlas por meio de PrivateLink**
+ A arquitetura usa PrivateLink (por meio de um VPC endpoint) para se conectar com segurança ao MongoDB Atlas sem expor seus dados à Internet pública.
+ As solicitações permanecem na rede AWS de backbone. Os dados em trânsito se beneficiam da PrivateLink criptografia e nunca são roteados pela Internet pública.
+ A VPC dedicada do MongoDB Atlas hospeda seus nós primários e secundários, proporcionando um ambiente seguro e isolado para o seu cluster de banco de dados gerenciado.

**Implantação multi-AZ**
+ Os componentes críticos da infraestrutura (como os gateways NAT e as sub-redes de aplicações) são distribuídos em, pelo menos, três zonas de disponibilidade. Se uma zona de disponibilidade sofrer uma interrupção, esta arquitetura garante que as workloads nas zonas de disponibilidade restantes permaneçam operacionais.
+ O MongoDB Atlas, por padrão, oferece alta disponibilidade por meio de conjuntos de réplicas e garante que sua camada de banco de dados permaneça com tolerância a falhas. A infraestrutura crítica é distribuída em, pelo menos, três zonas de disponibilidade para garantir resiliência.

## Ferramentas
<a name="build-aws-landing-zone-that-includes-mongodb-atlas-tools"></a>

**Serviços da AWS**
+ O [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) facilita a substituição de credenciais codificadas no seu código, incluindo senhas, por uma chamada de API para recuperar o segredo de forma programática.

**Outros produtos e ferramentas**
+ O [MongoDB Atlas](https://www.mongodb.com/atlas) é um banco de dados como serviço (DBaaS) totalmente gerenciado para implantar e gerenciar bancos de dados do MongoDB na nuvem.
+ [O Terraform](https://www.terraform.io/) é uma ferramenta de infraestrutura como código (IaC) HashiCorp que ajuda você a criar e gerenciar recursos na nuvem e no local. Nesse padrão, você usa o Terraform para executar um script para facilitar a implantação dos recursos necessários no MongoDB AWS Atlas.

**Repositório de código**

O código desse padrão está disponível no repositório [MongoDB Atlas](https://github.com/mongodb-partners/AWS-MongoDB-Atlas-Landing-Zone) Landing Zone.AWS GitHub 

## Épicos
<a name="build-aws-landing-zone-that-includes-mongodb-atlas-epics"></a>

### Conclusão da descoberta e da avaliação
<a name="complete-discovery-and-assessment"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Identifique as principais partes interessadas. | Identifique todas as principais partes interessadas e os membros da equipe envolvidos no seu projeto de zona de pouso. Isso pode incluir perfis como:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-aws-landing-zone-that-includes-mongodb-atlas.html) | Líder de migração | 
| Crie um esquema estrutural. | Crie um plano que descreva a estrutura desejada da sua e da landing zone habilitada para o AWS MongoDB Atlas. | Líder de migração | 
| Crie um plano de arquitetura. | Colabore com seus arquitetos de aplicações para analisar os requisitos e criar uma arquitetura resiliente e com tolerância a falhas. Esse padrão fornece um modelo inicial de arquitetura para sua referência. Você pode personalizar esse modelo conforme as necessidades de segurança e de infraestrutura da sua organização. | Arquiteto de nuvem | 
| Planeje a configuração e a implantação. | Determine, em conjunto com todas as partes interessadas, como a arquitetura será implantada, como as medidas de segurança serão implementadas e quaisquer outros aspectos necessários para garantir o alinhamento com os interesses da organização e da equipe solicitante. | Líder de migração, DevOps engenheiro, DBA | 

### Configuração do ambiente do MongoDB Atlas
<a name="set-up-the-mongodb-atlas-environment"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Clonar o repositório. | Clone o código do [GitHub repositório](https://github.com/mongodb-partners/AWS-MongoDB-Atlas-Landing-Zone) executando o comando:<pre>git clone https://github.com/mongodb-partners/AWS-MongoDB-Atlas-Landing-Zone</pre> | Desenvolvedor de aplicativos, DevOps engenheiro | 
| Obtenha o ID da organização do Atlas. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-aws-landing-zone-that-includes-mongodb-atlas.html) | DBA | 
| Gere chaves de API do Atlas em nível organizacional. | Para gerar suas chaves de API em nível organizacional no Atlas, siga as instruções apresentadas na [documentação do MongoDB](https://www.mongodb.com/docs/atlas/configure-api-access/#grant-programmatic-access-to-an-organization). | DBA | 
| Crie um segredo em AWS Secrets Manager. | Armazene as chaves da API do MongoDB Atlas geradas na etapa anterior como um segredo de chave/valor no Secrets Manager. Para obter instruções, consulte a [documentação do Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html). | DevOps engenheiro | 
| Selecione o nível do cluster do Atlas. | Para selecionar o nível do cluster do Atlas mais adequado, siga as instruções apresentadas na [documentação do MongoDB](https://www.mongodb.com/docs/atlas/sizing-tier-selection/). | DBA | 

### Configure os AWS ambientes
<a name="set-up-the-aws-environments"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Modifique o script do Terraform. | Em sua cópia local do GitHub repositório, atualize o nome secreto no [modules/mongodb-atlas/mainarquivo.tf](https://github.com/mongodb-partners/AWS-MongoDB-Atlas-Landing-Zone/blob/3748350730ec2ac7ab64662d536b67b4840c667c/modules/mongodb-atlas/main.tf#L12) (linha 12), para que o Terraform possa recuperar as credenciais do Secrets Manager durante a implantação. | DevOps engenheiro | 
| Crie um ID de chave de AWS acesso e uma chave secreta. | Para criar seu ID de chave de AWS acesso e chave secreta, siga as instruções no artigo AWS re:POST [Como faço para criar uma chave de AWS acesso](https://repost.aws/knowledge-center/create-access-key)?É uma prática recomendada atribuir políticas com o privilégio mínimo necessário, mas, neste caso, selecione a política `AdministratorAccess`.Após criar sua chave de acesso, consulte [Práticas recomendadas de segurança no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) para aprender sobre as práticas recomendadas para gerenciar chaves de acesso. | DevOps engenheiro | 
| Aloque endereços IP elásticos. | Aloque pelo menos dois endereços IDs IP elásticos. Para obter instruções, consulte a [documentação da Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/WorkWithEIPs.html). | DevOps engenheiro | 
| Criar um bucket do S3. | Crie um bucket do S3 para armazenar o estado da implantação do Terraform seguindo as instruções apresentadas na [documentação do Amazon Simple Storage Service (Amazon S3).](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) | DevOps engenheiro | 
| Atualize o bucket do S3 para armazenamento. | Atualize as informações do bucket do S3 na sua versão local de [environments/development/main.tf](https://github.com/mongodb-partners/AWS-MongoDB-Atlas-Landing-Zone/blob/83e0b52cc4a8c12b24b54edeecbae496880d3615/environments/development/main.tf#L16) para que correspondam ao nome e à região do bucket que você criou na etapa anterior e especifique um prefixo de chave. Por exemplo:<pre>terraform {<br />       ...<br />  backend "s3" {<br />    bucket = "startup-name-product-terraform"<br />    key    = "network/dev"<br />    region = "ap-southeast-1"<br />  }<br />}</pre>Para este exemplo, configure o Terraform para usar o prefixo de chave `network/dev` para organizar o arquivo de estado do Terraform. É possível alterar o valor para `prod` ou `staging` para corresponder ao ambiente que deseja criar. Para obter informações sobre o uso de diversos ambientes, consulte a última etapa desta seção.Para obter mais informações sobre os prefixos de chave do Amazon S3, consulte [Organizar objetos usando prefixos](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-prefixes.html) na documentação do Amazon S3. | DevOps engenheiro | 
| Defina as variáveis do Terraform. | A zona de pouso de amostra define os valores das variáveis de entrada usando [arquivos de definição de variáveis do Terraform](https://www.terraform.io/docs/language/values/variables.html#variable-definitions-tfvars-files).O arquivo da variável está localizado em [environments/development/variables.tf.](https://github.com/mongodb-partners/AWS-MongoDB-Atlas-Landing-Zone/blob/main/environments/development/variables.tf) Você pode definir os valores das variáveis no [environments/development/terraformarquivo.tfvars](https://github.com/mongodb-partners/AWS-MongoDB-Atlas-Landing-Zone/blob/main/environments/development/terraform.tfvars). Configure essas variáveis conforme descrito no [arquivo Readme do](https://github.com/mongodb-partners/AWS-MongoDB-Atlas-Landing-Zone/blob/main/README.md#terraform-variables) GitHub repositório. | DevOps engenheiro | 
| Configure as variáveis de ambiente. | Se você planeja executar o script do Terraform na sua máquina local, configure as seguintes variáveis de ambiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-aws-landing-zone-that-includes-mongodb-atlas.html)Para mais informações sobre como configurar variáveis de ambiente, consulte a [documentação da AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html#envvars-set). | DevOps engenheiro | 
| Verifique as configurações da VPC. | Para seguir as melhores práticas recomendadas por AWS, defina as configurações de VPC e sub-rede CIDRs, gateways NAT, rotas e tabelas de rotas no script do Terraform para atender às necessidades da sua organização. Para obter detalhes, consulte o [arquivo Readme do repositório](https://github.com/mongodb-partners/AWS-MongoDB-Atlas-Landing-Zone/blob/main/README.md#vpc-configurations). GitHub  | DevOps engenheiro | 
| Marcar recursos do . | Você pode marcar seus AWS recursos para monitorá-los quando eles são implantados pelo script Terraform. Para ver exemplos, consulte o [arquivo Readme](https://github.com/mongodb-partners/AWS-MongoDB-Atlas-Landing-Zone/blob/main/README.md#resource-taggings) do GitHub repositório. Para obter informações sobre o monitoramento de recursos por meio de tags de custo, uso e assim por diante, consulte [Ativação de etiquetas de alocação de custos definidas pelo usuário na documentação](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/activating-tags.html). AWS Billing  | DevOps engenheiro | 
| Use vários ambientes. | O GitHub repositório fornece uma pasta de `development` ambiente. Você também pode adicionar seus próprios ambientes na pasta de ambientes.Para adicionar um ambiente, copie a pasta `development` para uma nova pasta (por exemplo, `prod` ou `staging`) dentro de `environments`. Em seguida, atualize o arquivo `terraform.tfvars` com o novo valor. | DevOps engenheiro | 

### Implantar a zona de pouso
<a name="deploy-the-landing-zone"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Iniciar o diretório de trabalho do Terraform. | Para inicializar o diretório de trabalho e fazer o download dos pacotes necessários, execute o comando:<pre>terraform init</pre> | DevOps engenheiro | 
| Crie um plano de execução. | Para criar um plano de execução e visualizar as alterações que o Terraform fará na sua infraestrutura, execute o comando:<pre>terraform plan</pre> | DevOps engenheiro | 
| Implante as alterações. | Para implantar as alterações em sua infraestrutura, conforme descrito no código, execute o comando:<pre>terraform apply</pre> | DevOps engenheiro | 
| Valide a implantação. | Valide os componentes que o Terraform criou ou modificou na sua infraestrutura.Para testar a configuração, provisione um recurso computacional (por exemplo, uma EC2 instância ou AWS Lambda função da Amazon) na VPC ou anexada a ela. | DevOps engenheiro, desenvolvedor de aplicativos | 

### Remover o recurso .
<a name="remove-resources"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Limpeza. | Quando terminar os testes, execute o seguinte comando para remover os recursos que o Terraform implantou na sua infraestrutura:<pre>terraform destroy</pre> | DevOps engenheiro | 

## Recursos relacionados
<a name="build-aws-landing-zone-that-includes-mongodb-atlas-resources"></a>

**Descoberta e avaliação**
+ [Dicas administrativas para configuração da landing zone](https://docs.aws.amazon.com/controltower/latest/userguide/tips-for-admin-setup.html) (AWS Control Tower documentação)
+ [Expectativas para a configuração da landing zone](https://docs.aws.amazon.com/controltower/latest/userguide/getting-started-configure.html) (AWS Control Tower documentação)
+ [Melhores práticas para atualizações da landing zone](https://docs.aws.amazon.com/controltower/latest/userguide/lz-update-best-practices.html) (AWS Control Tower documentação)

**Configurando o MongoDB Atlas e ambientes AWS **
+ [Getting MongoDB Atlas](https://aws.amazon.com/marketplace/pp/prodview-pp445qepfdy34) (AWS Marketplace)
+ [Memória](https://docs.atlas.mongodb.com/sizing-tier-selection/#memory) (documentação do MongoDB Atlas)
+ [Exemplo de dimensionamento com conjuntos de dados de amostra do Atlas](https://www.mongodb.com/docs/atlas/sizing-tier-selection/#example--the-service-sample-data-sets) (documentação do MongoDB Atlas)
+ [Exemplo de dimensionamento para aplicativos móveis](https://www.mongodb.com/docs/atlas/sizing-tier-selection/#example--mobile-app) (documentação do MongoDB Atlas)
+ [Tráfego de rede](https://docs.atlas.mongodb.com/sizing-tier-selection/#network-traffic) (documentação do MongoDB Atlas)
+ [Escalonamento automático de cluster](https://www.mongodb.com/docs/atlas/sizing-tier-selection/#cluster-auto-scaling) (documentação do MongoDB Atlas)
+ [Modelo de dimensionamento do Atlas](https://www.mongodb.com/docs/atlas/sizing-tier-selection/) (documentação do MongoDB Atlas)
+ [Configurar uma conexão de pareamento de rede](https://docs.atlas.mongodb.com/security-vpc-peering/) (documentação do MongoDB Atlas)
+ [Endpoints privados no Atlas](https://docs.atlas.mongodb.com/security-private-endpoint/) (documentação do MongoDB Atlas)
+ [Criptografia no nível de campo do cliente](https://docs.mongodb.com/manual/core/security-client-side-encryption) (documentação relacionada ao banco de dados do MongoDB)
+ [Criptografia automática](https://docs.mongodb.com/manual/core/security-automatic-client-side-encryption) (documentação relacionada ao banco de dados do MongoDB)
+ [Selecione o nível de cluster](https://www.mongodb.com/docs/atlas/manage-clusters/#select-cluster-tier) (documentação do MongoDB Atlas)

**Implantação da zona de pouso**
+ [Terraform na AWS](https://docs.aws.amazon.com/whitepapers/latest/cicd_for_5g_networks_on_aws/terraform.html) (*CI/CD para redes 5G na AWS* apresentado no whitepaper)
+ [MongoDB Atlas with Terraform](https://www.mongodb.com/developer/products/atlas/mongodb-atlas-with-terraform/) (documentação do MongoDB)

# Configure os registros de fluxo da VPC para centralização em Contas da AWS
<a name="configure-vpc-flow-logs-for-centralization-across-aws-accounts"></a>

*Benjamin Morris e Aman Kaur Gandhi, Amazon Web Services*

## Resumo
<a name="configure-vpc-flow-logs-for-centralization-across-aws-accounts-summary"></a>

Em uma nuvem privada AWS virtual (VPC), o recurso VPC Flow Logs pode fornecer dados úteis para solução de problemas operacionais e de segurança. No entanto, há limitações no uso de logs de fluxo de VPC em um ambiente com várias contas. Especificamente, os registros de fluxo entre contas do Amazon CloudWatch Logs não são suportados. Em vez disso, centralize os logs configurando um bucket do Amazon Simple Storage Service (Amazon S3) com a política de bucket apropriada.

**nota**  
Este padrão aborda os requisitos para enviar os logs de fluxo para um local centralizado. No entanto, se você também quiser que os logs estejam disponíveis localmente nas contas dos membros, você pode criar vários logs de fluxo para cada VPC. Usuários que não têm acesso à conta de arquivamento de logs podem visualizar os logs de tráfego para solução de problemas. Como alternativa, você pode configurar um único registro de fluxo para cada VPC que envia registros para CloudWatch o Logs. Em seguida, você pode usar um filtro de assinatura do Amazon Data Firehose para encaminhar os logs para um bucket do S3. Para obter mais informações, consulte a seção [Recursos relacionados](#configure-vpc-flow-logs-for-centralization-across-aws-accounts-resources).

## Pré-requisitos e limitações
<a name="configure-vpc-flow-logs-for-centralization-across-aws-accounts-prereqs"></a>

**Pré-requisitos **
+ Um ativo Conta da AWS
+ Uma AWS Organizations organização com uma conta usada para centralizar registros (por exemplo, Arquivo de registros)

**Limitações**

Se você usar a chave gerenciada AWS Key Management Service (AWS KMS) `aws/s3` para criptografar seu bucket central, ele não receberá registros de uma conta diferente. Em vez disso, será exibido um código de erro 400, nomeadamente `Unsuccessful`, com uma mensagem como `"LogDestination: <bucketName> is undeliverable"` para o `ResourceId` fornecido. Isso ocorre porque as chaves AWS gerenciadas de uma conta não podem ser compartilhadas entre contas. A solução é usar a criptografia gerenciada do Amazon S3 (SSE-S3) ou uma chave gerenciada pelo AWS KMS cliente que você possa compartilhar com as contas dos membros.

## Arquitetura
<a name="configure-vpc-flow-logs-for-centralization-across-aws-accounts-architecture"></a>

**Arquitetura de destino**

No diagrama a seguir, dois logs de fluxo são implantados para cada VPC. Um envia registros para um grupo local CloudWatch de registros. O outro envia logs para um bucket do S3 em uma conta de registro centralizada. A política de bucket permite que o serviço de entrega de logs grave registros no bucket.

**nota**  
A partir de novembro de 2023, AWS agora oferece suporte à [chave de condição aws: SourceOrg ID](https://aws.amazon.com/about-aws/whats-new/2023/11/organization-wide-iam-condition-keys-restrict-aws-service-to-service-requests/). Essa condição permite que você negue a gravação no bucket centralizado para contas fora da sua AWS Organizations organização.

![\[De cada VPC, um registro de fluxo envia registros para CloudWatch e outro envia registros para o bucket do S3.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/718c29f4-a035-47ab-9c58-bd7d5c1ca77e/images/0b502d82-a6ce-4832-b854-99181d2ed834.png)


**Automação e escala**

Cada VPC é configurada para enviar logs para o bucket do S3 na conta de registro central. Use uma das seguintes soluções de automação para ajudar a garantir que os logs de fluxo sejam configurados adequadamente:
+ [CloudFormation StackSets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html)
+ [AWS Control Tower Account Factory for Terraform (AFT)](https://docs.aws.amazon.com/controltower/latest/userguide/taf-account-provisioning.html)
+ [Uma AWS Config regra com remediação](https://aws.amazon.com/blogs/mt/how-to-enable-vpc-flow-logs-automatically-using-aws-config-rules/)

## Ferramentas
<a name="configure-vpc-flow-logs-for-centralization-across-aws-accounts-tools"></a>

**Ferramentas**
+ O [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) ajuda você a centralizar os registros de todos os seus sistemas e aplicativos, Serviços da AWS para que você possa monitorá-los e arquivá-los com segurança.
+ O [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) é um serviço de armazenamento de objetos baseado na nuvem que ajuda você a armazenar, proteger e recuperar qualquer quantidade de dados.
+ [A Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) ajuda você a lançar AWS recursos em uma rede virtual que você definiu. Essa rede virtual é semelhante a uma rede tradicional que você operaria no próprio datacenter, com os benefícios de usar a infraestrutura escalável da AWS. Este padrão usa o atributo [VPC Flow Logs](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html) para capturar informações sobre o tráfego de IP de e para as interfaces de rede do em sua VPC.

## Práticas recomendadas
<a name="configure-vpc-flow-logs-for-centralization-across-aws-accounts-best-practices"></a>

Usar a infraestrutura como código (IaC) pode simplificar muito o processo de implantação do VPC Flow Logs. Abstrair suas definições de implantação de VPC para incluir uma construção de recurso de log de fluxo implantará VPCs sua com registros de fluxo automaticamente. Isso é demonstrado na próxima seção.

**Logs de fluxo centralizados**

Exemplo de sintaxe para adicionar registros de fluxo centralizados a um módulo VPC no HashiCorp Terraform: esse código cria um registro de fluxo que envia registros de uma VPC para um bucket S3 centralizado. Observe que esse padrão não abrange a criação do bucket do S3. Para obter declarações de política de bucket recomendadas, consulte a seção [Informações adicionais](#configure-vpc-flow-logs-for-centralization-across-aws-accounts-additional).

```
variable "vpc_id" { type = string }
locals { custom_log_format_v5 = "$${version} $${account-id} $${interface-id} $${srcaddr} $${dstaddr} $${srcport} $${dstport} $${protocol} $${packets} $${bytes} $${start} $${end} $${action} $${log-status} $${vpc-id} $${subnet-id} $${instance-id} $${tcp-flags} $${type} $${pkt-srcaddr} $${pkt-dstaddr} $${region} $${az-id} $${sublocation-type} $${sublocation-id} $${pkt-src-aws-service} $${pkt-dst-aws-service} $${flow-direction} $${traffic-path}" }
resource "aws_flow_log" "centralized_flow_log" {
  log_destination      = "arn:aws:s3:::centralized-vpc-flow-logs-<log_archive_account_id>" # Optionally, a prefix can be added after the ARN.
  log_destination_type = "s3"
  traffic_type         = "ALL"
  vpc_id               = var.vpc_id
  log_format           = local.custom_log_format_v5 # If you want fields from VPC Flow Logs v3+, you will need to create a custom log format.
}
```

Para obter mais informações sobre o formato de log personalizado, consulte a [documentação da Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/flow-log-records.html#flow-logs-custom).

**Registros de fluxo locais**

Exemplo de sintaxe para adicionar registros de fluxo locais a um módulo VPC no Terraform com as permissões necessárias: esse código cria um registro de fluxo que envia registros de uma VPC para um grupo local de registros. CloudWatch 

```
data "aws_region" "current" {}
variable "vpc_id" { type = string }
resource "aws_iam_role" "local_flow_log_role" {
  name = "flow-logs-policy-${var.vpc_id}"
  assume_role_policy = <<EOF
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [{
      "Effect": "Allow",
      "Principal": {"Service": "vpc-flow-logs.amazonaws.com"},
      "Action": "sts:AssumeRole"
  }]
}
EOF
}
resource "aws_iam_role_policy" "logs_permissions" {
  name = "flow-logs-policy-${var.vpc_id}"
  role = aws_iam_role.local_flow_log_role.id
  policy = <<EOF
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [{
      "Action": ["logs:CreateLog*", "logs:PutLogEvents", "logs:DescribeLog*", "logs:DeleteLogDelivery"],
      "Effect": "Allow",
      "Resource": "arn:aws:logs:${data.aws_region.current.name}:*:log-group:vpc-flow-logs*"
  }]
}
EOF
}
resource "aws_cloudwatch_log_group" "local_flow_logs" {
  name              = "vpc-flow-logs/${var.vpc_id}"
  retention_in_days = 30
}
resource "aws_flow_log" "local_flow_log" {
  iam_role_arn    = aws_iam_role.local_flow_log_role.arn
  log_destination = aws_cloudwatch_log_group.local_flow_logs.arn
  traffic_type    = "ALL"
  vpc_id          = var.vpc_id
}
```

## Épicos
<a name="configure-vpc-flow-logs-for-centralization-across-aws-accounts-epics"></a>

### Implemente a infraestrutura da VPC Flow Logs
<a name="deploy-vpc-flow-logs-infrastructure"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Determine a estratégia de criptografia e crie a política para o bucket central do S3. | O bucket central não suporta a AWS KMS `aws/s3` chave, então você deve usar o SSE-S3 ou uma chave gerenciada pelo AWS KMS cliente. Se você usar uma AWS KMS chave, a política de chaves deve permitir que as contas dos membros usem a chave. | Compliance | 
| Crie o bucket de log de fluxo central. | Crie o bucket central para o qual os logs de fluxo serão enviados e aplique a estratégia de criptografia escolhida na etapa anterior. Isso deve estar em um arquivo de log ou em uma conta com finalidade semelhante.Obtenha a política de bucket na seção [Informações adicionais](#configure-vpc-flow-logs-for-centralization-across-aws-accounts-additional) e aplique-a ao bucket central após atualizar os espaços reservados com os valores específicos do seu ambiente. | AWS geral | 
| Configure os logs de fluxo da VPC para enviar logs para o bucket central de logs de fluxo. | Adicione logs de fluxo a cada VPC da qual você deseja coletar dados. A maneira mais escalável de fazer isso é usar ferramentas de IaC, como AFT ou. AWS Cloud Development Kit (AWS CDK) Por exemplo, você pode criar um módulo do Terraform que implanta uma VPC junto com um log de fluxo. Se necessário, você adiciona os logs de fluxo manualmente. | Administrador de rede | 
| Configure os registros de fluxo da VPC para serem enviados aos registros locais CloudWatch . | (Opcional) Se você quiser que os registros de fluxo fiquem visíveis nas contas em que os registros estão sendo gerados, crie outro registro de fluxo para enviar dados para o CloudWatch Logs na conta local. Como alternativa, você pode enviar os dados para um bucket S3 específico da conta na conta local. | AWS geral | 

## Recursos relacionados
<a name="configure-vpc-flow-logs-for-centralization-across-aws-accounts-resources"></a>
+ [Como facilitar a análise de dados e atender aos requisitos de segurança usando dados de registro de fluxo centralizados](https://aws.amazon.com/blogs/security/how-to-facilitate-data-analysis-and-fulfill-security-requirements-by-using-centralized-flow-log-data/) (postagem AWS no blog)
+ [Como habilitar os registros de fluxo da VPC automaticamente usando AWS Config regras](https://aws.amazon.com/blogs/mt/how-to-enable-vpc-flow-logs-automatically-using-aws-config-rules/) (AWS postagem do blog)

## Mais informações
<a name="configure-vpc-flow-logs-for-centralization-across-aws-accounts-additional"></a>

**Política de bucket**

Esse exemplo de política de bucket pode ser aplicado ao bucket central do S3 para logs de fluxo, depois de adicionar valores para nomes de espaço reservado.

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AWSLogDeliveryWrite",
            "Effect": "Allow",
            "Principal": {
                "Service": "delivery.logs.amazonaws.com"
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::<BUCKET_NAME>/*",
            "Condition": {
                "StringEquals": {
                    "s3:x-amz-acl": "bucket-owner-full-control",
                    "aws:SourceOrgID": "<ORG_ID>"
                }
            }
        },
        {
            "Sid": "AWSLogDeliveryCheck",
            "Effect": "Allow",
            "Principal": {
                "Service": "delivery.logs.amazonaws.com"
            },
            "Action": "s3:GetBucketAcl",
            "Resource": "arn:aws:s3:::<BUCKET_NAME>",
            "Condition": {
                "StringEquals": {
                    "aws:SourceOrgID": "<ORG_ID>"
                }
            }
        },
        {
            "Sid": "DenyUnencryptedTraffic",
            "Effect": "Deny",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::<BUCKET_NAME>/*",
                "arn:aws:s3:::<BUCKET_NAME>"
            ],
            "Condition": {
                "Bool": {
                    "aws:SecureTransport": "false"
                }
            }
        }
    ]
}
```

# Gerencie conjuntos de AWS permissões dinamicamente usando o Terraform
<a name="manage-aws-permission-sets-dynamically-by-using-terraform"></a>

*Vinicius Elias e Marcos Vinicius Pinto Jordão, Amazon Web Services*

## Resumo
<a name="manage-aws-permission-sets-dynamically-by-using-terraform-summary"></a>

Centro de Identidade do AWS IAM aprimora AWS Identity and Access Management (IAM) fornecendo um hub centralizado para gerenciar o acesso com login único e aplicativos em nuvem. Contas da AWS No entanto, o gerenciamento manual dos [conjuntos de permissões](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) do Centro de Identidade do IAM pode se tornar cada vez mais complexo e propenso a erros à medida que sua organização cresce. Essa complexidade pode levar a possíveis falhas de segurança e sobrecarga administrativa.

Essa solução permite que você gerencie conjuntos de permissões por meio de infraestrutura como código (IaC) usando um pipeline de integração contínua e entrega contínua (CI/CD) criado com Serviços da AWS nativos. Ele permite uma integração perfeita do mecanismo de atribuição do conjunto de permissões com eventos do AWS Control Tower ciclo de vida ou com um ambiente [Account Factory for Terraform](https://docs.aws.amazon.com/controltower/latest/userguide/aft-overview.html) (AFT). Essa abordagem fornece configurações de identidade dinâmicas para novas e existentes Contas da AWS.

 EventBridge As regras da Amazon monitoram a Conta da AWS criação e as atualizações, o que ajuda suas configurações de identidade a permanecerem sincronizadas com sua estrutura organizacional. Depois de criar ou atualizar contas em AWS Control Tower ou AFT, o pipeline é acionado. Ele avalia um conjunto de arquivos JSON com definições de conjuntos de permissões e regras de atribuição. Em seguida, o pipeline aplica e sincroniza as configurações em todas as contas.

Essa abordagem oferece os seguintes benefícios:
+ **Consistência** — elimina o desvio de configuração manual em toda a sua organização AWS 
+ **Auditabilidade**: mantém um histórico completo de todas as alterações no gerenciamento de identidade
+ **Escalabilidade** — aplica configurações automaticamente à medida que seu ambiente cresce AWS 
+ **Segurança**: reduz o erro humano nas atribuições de permissões
+ **Conformidade**: facilita o cumprimento dos requisitos regulatórios por meio de alterações documentadas e regras de atribuição

## Pré-requisitos e limitações
<a name="manage-aws-permission-sets-dynamically-by-using-terraform-prereqs"></a>
+ Um ambiente de várias contas com AWS Control Tower e AWS Organizations configurado. Opcionalmente, você pode usar o AFT com AWS Control Tower.
+ Um administrador delegado do IAM Identity Center Conta da AWS para receber a solução. Para obter mais informações, consulte [Delegated administration](https://docs.aws.amazon.com/singlesignon/latest/userguide/delegated-admin.html) na documentação do Centro de Identidade do IAM.
+ Um repositório do sistema de controle de versão (VCS) para lidar com o código principal. Para ver uma amostra, consulte o GitHub [repositório](https://github.com/aws-samples/sample-terraform-aws-permission-sets-pipeline/tree/main/samples/basic) da solução.
+  AWS Recursos necessários para o gerenciamento de back-end do Terraform, como um bucket do Amazon Simple Storage Service (Amazon S3) e uma tabela do Amazon DynamoDB.

**Limitações**
+ O pipeline usa recursos AWS nativos e o Terraform de código aberto. O pipeline não está preparado para fazer chamadas para ecossistemas de terceiros.
+ Alguns Serviços da AWS não estão disponíveis em todos Regiões da AWS. Para conferir a disponibilidade de uma região, consulte [AWS Services by Region](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Para endpoints específicos, consulte [Service endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) e clique no link correspondente ao serviço desejado.

## Arquitetura
<a name="manage-aws-permission-sets-dynamically-by-using-terraform-architecture"></a>

O diagrama apresentado a seguir ilustra os componentes e o fluxo de trabalho para este padrão.

![\[Componentes e fluxo de trabalho para gerenciar conjuntos de permissões da AWS usando o Terraform.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/69dc79c7-b4cd-4ad0-b0d2-d58cf0c7adaa/images/649e299c-1142-405a-8982-4a6b2e595d53.png)


**AWS Control Tower fluxo de eventos**

A solução começa com a integração de eventos provenientes de qualquer um AWS Control Tower ou do AFT. A escolha entre um ou outro serviço é feita no momento da implementação por meio da definição de variáveis. Independentemente do método usado, o pipeline é acionado sempre que uma conta é criada ou atualizada. O pipeline reconcilia as políticas armazenadas no repositório de gerenciamento de conjuntos de permissões.

A seguir estão os eventos do AWS Control Tower ciclo de vida:
+ `CreateManagedAccount`: quando uma nova conta é criada
+ `UpdateManagedAccount`: quando uma conta existente é atualizada

**Roteamento de eventos**

EventBridge serve como serviço central de processamento de eventos, capturando eventos gerados na AWS Control Tower conta. Quando os eventos ocorrem, os encaminha de EventBridge forma inteligente para um barramento de eventos centralizado na conta da solução. AWS Control Tower os eventos do ciclo de vida seguem padrões de roteamento distintos. Se a AFT for definida como a origem do evento, a conta de gerenciamento da AFT manipulará os eventos em vez da AWS Control Tower conta. Essa arquitetura orientada a eventos permite respostas automatizadas às alterações organizacionais sem intervenção manual.

**Processo de integração do AFT**

Quando os eventos AWS Control Tower do ciclo de vida chegam à conta de gerenciamento do AFT, eles acionam automaticamente vários processos posteriores que são intrínsecos ao AFT. Depois que o fluxo de trabalho de personalização da conta do AFT é concluído, ele publica uma mensagem no tópico dedicado do Amazon Simple Notiﬁcation Service (Amazon SNS) `aft-notifications`. Esse tópico aciona a `aft-new-account-forward-event` AWS Lambda função implementada por essa solução. A função do Lambda envia o evento para o barramento de eventos da conta da solução, onde ele é usado para iniciar o pipeline.

**Pipeline da infraestrutura como código**

O pipeline de soluções opera como um mecanismo de implantação totalmente automatizado. O AWS CodePipeline serviço monitora continuamente o repositório em busca de alterações. Ao detectar novas confirmações, ele inicia automaticamente o fluxo de trabalho de implantação e inicia um processo sequencial que inclui fases de validação e execução. O sistema executa `plan` operações do Terraform para identificar as mudanças propostas, seguidas pelos `apply` comandos do Terraform para implementar essas mudanças no AWS ambiente. É importante notar que o pipeline funciona sem nenhuma porta de aprovação manual. Essa abordagem permite a rápida implantação de mudanças na infraestrutura, mantendo a auditabilidade por meio de logs de pipeline e de arquivos de estado do Terraform.

O pipeline AWS CodeBuild se aproveita para executar as operações do Terraform em um ambiente controlado com as permissões apropriadas. Por meio dessa abordagem de IaC, o pipeline pode realizar operações abrangentes de gerenciamento de permissões, incluindo:
+ Criar novos conjuntos de permissões.
+ Atualizar os conjuntos de permissões existentes.
+ Remover conjuntos de permissões desnecessários.
+ Gerencie a atribuição dessas permissões em contas e grupos dentro das AWS organizações.

Para manter a consistência da infraestrutura e evitar mudanças conflitantes, a solução implementa o sistema de gerenciamento de estado de backend do Terraform usando um bucket do Amazon S3 e uma tabela dedicada do Amazon DynamoDB. Essa abordagem fornece um local de armazenamento persistente para arquivos de estado do Terraform e mecanismos de bloqueio de estado para evitar modificações simultâneas nos mesmos recursos.

O código principal do Terraform usa o módulo oficial do AWS `permission-sets` Terraform. Esse módulo pode gerenciar dinamicamente conjuntos de permissões no Centro de Identidade do IAM, com base em modelos de conjuntos de permissões.

**Gerenciamento de controle de origem**

Os modelos de conjunto de permissões (arquivos JSON) residem em um sistema externo de controle de versão, como, por exemplo GitHub, que fornece um repositório centralizado para configurações de gerenciamento de identidade. Essa abordagem estabelece uma única fonte confiável para as definições do conjunto de permissões, ao mesmo tempo em que permite o desenvolvimento colaborativo por meio de práticas padrão de revisão de código. Usuários autorizados podem confirmar alterações nesses modelos seguindo os processos de gerenciamento de mudanças organizacionais. Essas confirmações servem como o principal gatilho para o pipeline de implantação automatizado, iniciando o processo de atualização da infraestrutura.

Para ver um exemplo de como configurar os conjuntos de permissões usando o arquivo JSON no repositório, consulte [Informações adicionais](#manage-aws-permission-sets-dynamically-by-using-terraform-additional).

## Ferramentas
<a name="manage-aws-permission-sets-dynamically-by-using-terraform-tools"></a>

**Serviços da AWS**
+ O [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) é um serviço de compilação totalmente gerenciado que permite compilar o código-fonte, realizar testes de unidade e produzir artefatos preparados para a implantação.
+ [Conexões de código da AWS](https://docs.aws.amazon.com/dtconsole/latest/userguide/welcome-connections.html)permite que AWS recursos e serviços, como CodePipeline, se conectem a repositórios de código externos, como GitHub.
+ O [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html) ajuda você a modelar e configurar rapidamente os diferentes estágios de uma versão de software, além de automatizar as etapas necessárias para a implantação contínua de alterações.
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) é uma ferramenta de código aberto que ajuda você a interagir Serviços da AWS por meio de comandos em seu shell de linha de comando.
+ [AWS Control Tower](https://docs.aws.amazon.com/controltower/latest/userguide/what-is-control-tower.html)ajuda você a configurar e administrar um ambiente AWS com várias contas, seguindo as melhores práticas prescritivas.
+ O [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) é um serviço de banco de dados NoSQL totalmente gerenciado que fornece performance rápida, previsível e escalável.
+  EventBridgeA [Amazon](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) é um serviço de ônibus de eventos sem servidor que ajuda você a conectar seus aplicativos com dados em tempo real de várias fontes. Por exemplo, AWS Lambda funções, endpoints de invocação HTTP usando destinos de API ou barramentos de eventos em outros. Contas da AWS
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ajuda você a gerenciar com segurança o acesso aos seus AWS recursos controlando quem está autenticado e autorizado a usá-los.
+ [Centro de Identidade do AWS IAM](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)ajuda você a gerenciar centralmente o acesso de login único (SSO) a todos os seus Contas da AWS aplicativos e à nuvem.
+ O [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) é um serviço de computação que ajuda a executar código sem exigir provisionamento ou gerenciamento de servidores. Ele executa o código somente quando necessário e dimensiona automaticamente, assim, você paga apenas pelo tempo de computação usado.
+ [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)é um serviço de gerenciamento de contas que ajuda você a consolidar várias Contas da AWS em uma organização que você cria e gerencia centralmente.
+ O [Amazon Simple Notiﬁcation Service (Amazon SNS)](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) ajuda você a coordenar e gerenciar a troca de mensagens entre publicadores e clientes, incluindo servidores web e endereços de e-mail. Ele permite notificações push para eventos de gerenciamento de contas, garantindo que as partes relevantes sejam informadas sobre mudanças ou ações importantes no sistema.
+ O [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) é um serviço de armazenamento de objetos baseado na nuvem que ajuda você a armazenar, proteger e recuperar qualquer quantidade de dados.

**Outras ferramentas**
+ [O Terraform](https://www.terraform.io/) é uma ferramenta de infraestrutura como código (IaC) HashiCorp que ajuda você a criar e gerenciar recursos na nuvem e no local.

**Repositório de código**

O código desse padrão está disponível na organização AWS Samples ou GitHub no repositório [sample-terraform-aws-permission-sets-pipeline](https://github.com/aws-samples/sample-terraform-aws-permission-sets-pipeline).

## Práticas recomendadas
<a name="manage-aws-permission-sets-dynamically-by-using-terraform-best-practices"></a>
+ Sempre fixe as versões dos módulos e provedores do Terraform usados para executar o código na produção.
+ Use uma ferramenta de análise de código estático, como o [Checkov](https://www.checkov.io/), para verificar seu código e resolver os problemas de segurança.
+ Respeite o princípio de privilégio mínimo, garantindo somente as permissões estritamente necessárias para a execução de uma tarefa. Para obter mais informações, consulte [Concessão de privilégio mínimo](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#grant-least-priv) e [Práticas recomendadas de segurança](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) na documentação do IAM.

## Épicos
<a name="manage-aws-permission-sets-dynamically-by-using-terraform-epics"></a>

### Criar os pré-requisitos (opcional)
<a name="create-the-prerequisites-optional"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie os recursos de backend do Terraform. | Se você ainda não criou seus AWS recursos de back-end do Terraform, use as etapas a seguir para criar um bucket do Amazon S3 `s3-tf-backend-{ACCOUNT_ID}` () e uma tabela do DynamoDB (). `ddb-tf-backend`[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/manage-aws-permission-sets-dynamically-by-using-terraform.html)<pre>aws s3api create-bucket --bucket s3-tf-backend-{ACCOUNT_ID}<br />aws s3api put-bucket-versioning --bucket s3-tf-backend-{ACCOUNT_ID} --versioning-configuration Status=Enabled<br />aws dynamodb create-table --table-name ddb-tf-backend --attribute-definitions AttributeName=LockID,AttributeType=S --key-schema AttributeName=LockID,KeyType=HASH --provisioned-throughput ReadCapacityUnits=1,WriteCapacityUnits=1</pre> | Administrador da AWS | 
| Criar uma função de conta cruzada. | Você deve fornecer uma função do IAM entre contas na configuração do AWS provedor `event-source-account` Terraform. Se ainda não tiver criado esse perfil, use as seguintes etapas para criá-lo:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/manage-aws-permission-sets-dynamically-by-using-terraform.html)<pre>aws iam create-role \<br />    --role-name CrossAccountRole \<br />    --assume-role-policy-document '{<br />        "Version": "2012-10-17",		 	 	 <br />        "Statement": [<br />            {<br />                "Effect": "Allow",<br />                "Principal": {<br />                    "AWS": "arn:aws:iam::{ACCOUNT_ID}:root"<br />                },<br />                "Action": "sts:AssumeRole"<br />            }<br />        ]<br />    }'</pre>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/manage-aws-permission-sets-dynamically-by-using-terraform.html)<pre>aws iam attach-role-policy \<br />    --role-name CrossAccountRole \<br />    --policy-arn arn:aws:iam::aws:policy/AdministratorAccess</pre>Este exemplo usa a política AWS gerenciada do IAM [AdministratorAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AdministratorAccess.html). Se preferir, poderá usar uma política mais específica. | Administrador da AWS | 

### Preparar o repositório do conjunto de permissões
<a name="prepare-the-permission-set-repository"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um repositório dedicado. | Essa tarefa pressupõe que você esteja usando GitHub. Crie um repositório dedicado para armazenar o código principal do Terraform e os arquivos JSON do modelo do conjunto de permissões. | DevOps engenheiro | 
| Prepare o código do conjunto de permissões. | Para obter informações sobre como você pode estruturar os arquivos a seguir, consulte o [sample code](https://github.com/aws-samples/sample-terraform-aws-permission-sets-pipeline/tree/main/samples/basic) no repositório da solução:├── main.tf├── outputs.tf├── providers.jinja└── templatesCopie o conteúdo, mantenha os valores `providers.jinja` e faça os ajustes necessários nos outros arquivos. Por exemplo, adicione os arquivos do modelo de conjunto de permissões em `templates` ou fixe a versão do módulo `aws-ia/permission-sets/aws` no arquivo `main.tf`. | DevOps engenheiro | 
| Confirme suas alterações. | Confirme e envie as alterações para o repositório que você criou anteriormente. Salve o nome do repositório e sua GitHub organização, por exemplo,`myorg/aws-ps-pipeline`. | DevOps engenheiro | 

### Preparar o código de implantação
<a name="prepare-the-deployment-code"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Baixe o conteúdo. | Baixe (clone) o conteúdo do [repositório](https://github.com/aws-samples/sample-terraform-aws-permission-sets-pipeline) da solução. | DevOps engenheiro | 
| Preencha as variáveis. | Crie um arquivo `terraform.tfvars` e adicione as seguintes variáveis necessárias:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/manage-aws-permission-sets-dynamically-by-using-terraform.html)<pre>repository_name                 = "myorg/aws-ps-pipeline"<br />branch_name                     = "main"<br />vcs_provider                    = "github"<br />account_lifecycle_events_source = "CT"</pre>Para obter informações sobre opções adicionais de variáveis, consulte o arquivo [variables.tf](https://github.com/aws-samples/sample-terraform-aws-permission-sets-pipeline/blob/main/variables.tf) no repositório desse padrão. GitHub  | DevOps engenheiro | 
| Ajuste a configuração do backend do Terraform. | No arquivo `backend.tf`, substitua os espaços reservados com seus próprios valores. Use a AWS Control Tower página inicial Região da AWS e forneça os nomes do bucket Amazon S3 e da tabela do DynamoDB criados anteriormente.<pre>terraform {<br />  required_version = ">=1.6"<br />  backend "s3" {<br />    region         = "{region}"<br />    bucket         = "{bucket_name}"<br />    key            = "terraform.tfstate"<br />    dynamodb_table = "{table_name}"<br />    encrypt        = "true"<br />  }<br />}</pre>Se preferir, você pode usar sua própria configuração de backend do Terraform. | DevOps engenheiro | 
| Ajuste a configuração do provedor do Terraform. | No arquivo `providers.tf`, substitua os espaços reservados por suas próprias informações. Use a região de AWS Control Tower origem e forneça o ARN da função IAM entre contas criada anteriormente para o provedor. `event-source-account`<pre>provider "aws" {<br />  region = "{region}"<br />}<br /><br />provider "aws" {<br />  alias  = "event-source-account"<br />  region = "{region}"<br />  assume_role {<br />    role_arn = "{role_arn}"<br />  }<br />}<br /></pre> | DevOps engenheiro | 

### Implantar a solução manualmente
<a name="deploy-the-solution-manually"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Selecione Conta da AWS o. | Recomendamos que você implante a solução na conta do administrador delegado do Centro de Identidade do IAM. No entanto, você também pode implantá-lo na conta AWS Organizations de gerenciamento.Para fazer login na conta selecionada na mesma região da instância do Centro de Identidade do IAM, use a AWS CLI. Certifique-se de que o perfil do IAM que você está usando tenha permissão para assumir o perfil especificado para o provedor `event-source-account` nas etapas anteriores. Além disso, essa função deve ter acesso aos AWS recursos usados na configuração de back-end do Terraform. | Administrador da AWS | 
| Execute o Terraform manualmente. | Para inicializar, planejar e aplicar as configurações, execute os seguintes comandos do Terraform, um de cada vez:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/manage-aws-permission-sets-dynamically-by-using-terraform.html) | DevOps engenheiro | 
| Verificar os resultados da implantação. | Na conta do administrador delegado do Centro de Identidade do IAM, verifique se o pipeline `aws-ps-pipeline` foi criado. Verifique também se há uma Conexões de código da AWS conexão com o status **Pendente**. | AWS DevOps | 
| Conclua a CodeConnections configuração. | Para finalizar a CodeConnections configuração, use as seguintes etapas:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/manage-aws-permission-sets-dynamically-by-using-terraform.html)O pipeline agora deve ter acesso ao repositório do conjunto de permissões.Para obter instruções detalhadas, consulte [Update a pending connection](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-update.html) na documentação do console do Developer Tools.  | AWS DevOps | 

### Escolher um fluxo de execução do pipeline para testar a solução
<a name="choose-a-pipeline-execution-flow-to-test-the-solution"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Execute o pipeline por meio AWS Control Tower de atualizações do AFT. | Depois que uma conta é criada ou alterada usando nosso AWS Control Tower AFT (dependendo do tipo de eventos de ciclo de vida que você escolheu), o pipeline começa. | Administrador da AWS | 
| Execute o pipeline alterando o código. | Depois de alterar o código e confirmá-lo na ramificação `main`, o pipeline é iniciado. | AWS DevOps | 
| Execute o pipeline manualmente. | Para iniciar o pipeline manualmente, use o recurso [Release Change](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipelines-rerun-manually.html) no AWS CodePipeline. | AWS DevOps | 

## Solução de problemas
<a name="manage-aws-permission-sets-dynamically-by-using-terraform-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| Acesso negado | Verifique se você tem as permissões necessárias para implantar a solução. | 
| CodeConnections problemas | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/manage-aws-permission-sets-dynamically-by-using-terraform.html) | 
| Problemas na execução do pipeline | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/manage-aws-permission-sets-dynamically-by-using-terraform.html) | 
| Problemas na implantação dos conjuntos de permissões | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/manage-aws-permission-sets-dynamically-by-using-terraform.html) | 

## Recursos relacionados
<a name="manage-aws-permission-sets-dynamically-by-using-terraform-resources"></a>

**AWS service (Serviço da AWS) documentação**
+ [Centro de Identidade do AWS IAM Guia do usuário](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)
+ [Gerencie Contas da AWS com conjuntos de permissões](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) (documentação do IAM Identity Center)

**Outros recursos**
+ [AWS Módulo de conjuntos de permissões](https://registry.terraform.io/modules/aws-ia/permission-sets/aws/latest) (Terraform)

## Mais informações
<a name="manage-aws-permission-sets-dynamically-by-using-terraform-additional"></a>

**Arquivo JSON com conjunto de permissões de exemplo**

O exemplo a seguir mostra como configurar um conjunto de permissões usando o arquivo JSON no repositório:

```
{
  "Name": "ps-billing", // Permission set identifier
  "Comment": "Sample permission set for billing access", // Comment to document the purpose of the permission set
  "Description": "Billing access in AWS", // Detailed description
  "SessionDuration": "PT4H", // Session duration = 4 hours (ISO 8601 format)
  "ManagedPolicies": [ // List of AWS IAM managed policies
    "arn:aws:iam::aws:policy/job-function/Billing",
    "arn:aws:iam::aws:policy/job-function/SupportUser",
    "arn:aws:iam::aws:policy/AWSSupportAccess",
    "arn:aws:iam::aws:policy/job-function/ViewOnlyAccess"
  ],
  "CustomerPolicies": [], // References to IAM policies previously created
  "CustomPolicy": {}, // Inline IAM policy defined directly in the permission set
  "PermissionBoundary": {  // AWS or customer managed IAM policy to be used as boundary
    "ManagedPolicy": "",
    "CustomerPolicy": ""
  },
  "Assignments": [ // Define the assignment rules
    {
      "all_accounts": true, // Apply to ALL active AWS accounts in organization
      "principal": "G_BILLING_USERS", // Group/user name in Identity Center
      "type": "GROUP", // Can be "GROUP" or "USER"
      "account_id": [], // List of AWS account ID (empty since all_accounts=true)
      "account_ou": [], // List of AWS Organizational Unit IDs with target AWS accounts
      "account_tag": [] // List of tags (key:value) to match AWS Organization accounts tags
    }
  ]
}
```

Para obter mais informações, consulte o esquema JSON na documentação [AWS Permission Sets module](https://registry.terraform.io/modules/aws-ia/permission-sets/aws/latest#json-file-templates) no site do Terraform.

**Dicas**
+ Você pode usar os [blocos de importação](https://developer.hashicorp.com/terraform/language/import) do Terraform para importar um conjunto de permissões existente para a solução.
+ Você pode usar o AFT para implementar o pipeline do conjunto de AWS permissões em uma conta delegada. Para obter mais informações, consulte [AFT Blueprints](https://awslabs.github.io/aft-blueprints/index.html).

# Marque anexo do gateway de trânsito automaticamente usando o AWS Organizations
<a name="tag-transit-gateway-attachments-automatically-using-aws-organizations"></a>

*Richard Milner-Watts, Haris Bin Ayub e John Capps, Amazon Web Services*

## Resumo
<a name="tag-transit-gateway-attachments-automatically-using-aws-organizations-summary"></a>

Na Amazon Web Services (AWS), você pode usar [AWS Resource Access Manager](https://aws.amazon.com/ram/)para compartilhar Conta da AWS além [AWS Transit Gateway](https://aws.amazon.com/transit-gateway/)dos limites. No entanto, quando você cria anexo do gateway de trânsito além dos limites da conta, os anexos são criados sem uma tag de nome. Isso pode tornar a identificação de anexos demorada. 

Esta solução fornece um mecanismo automatizado destinado à coleta de informações sobre cada anexo do gateway de trânsito para as contas pertencentes a uma organização gerenciada pelo [AWS Organizations](https://aws.amazon.com/organizations/). O processo inclui pesquisar o intervalo [Encaminhamento Entre Domínios Sem Classificação ](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)(CIDR) na tabela de rotas do Transit Gateway. Em seguida, a solução aplica uma tag de nome na forma de `<CIDR-range>-<AccountName>` ao anexo na conta que contém o Transit Gateway.

Essa solução pode ser usada junto com uma solução como o [Serverless Transit Network Orchestrator](https://aws.amazon.com/solutions/implementations/serverless-transit-network-orchestrator/) da Solutions Library. AWS O Serverless Transit Network Orchestrator possibilita a criação automatizada de anexos do gateway de trânsito em grande escala.

## Pré-requisitos e limitações
<a name="tag-transit-gateway-attachments-automatically-using-aws-organizations-prereqs"></a>

**Pré-requisitos **
+ Um ativo Conta da AWS
+ Uma AWS Organizations organização que contém todas as contas relacionadas
+ Acesso à conta de gerenciamento da organização, sob a raiz da organização, para criar a função AWS Identity and Access Management (IAM) necessária
+ Uma conta de membro da Rede Compartilhada contendo um ou mais gateways de trânsito que são compartilhados com a organização e têm anexos

## Arquitetura
<a name="tag-transit-gateway-attachments-automatically-using-aws-organizations-architecture"></a>

A captura de tela a seguir Console de gerenciamento da AWS mostra exemplos de anexos do Transit Gateway sem etiqueta de nome associada e dois anexos do Transit Gateway com etiquetas de nome geradas por essa solução. A estrutura da tag de nome gerada é `<CIDR-range>-<AccountName>`.

![\[Console mostrando anexos sem tags de nome e dois anexos com tags de nome.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/4b10dfec-43be-4337-9945-c64df921934a/images/7e7d4a47-f07a-4708-8022-a1d22855bb5d.png)


 

Essa solução é usada [AWS CloudFormation](https://aws.amazon.com/cloudformation/)para implantar um [AWS Step Functions](https://aws.amazon.com/step-functions/)fluxo de trabalho que gerencia a criação de tags de nome do Transit Gateway em todas as configurações Regiões da AWS. O fluxo de trabalho invoca funções do [AWS Lambda](https://aws.amazon.com/lambda/), que executam as tarefas subjacentes.

Depois que a solução obtém os nomes das contas AWS Organizations, a máquina de estado Step Functions obtém todos os anexos do Transit Gateway IDs. Essas IDs são processadas em paralelo por região. Esse processamento inclui a pesquisa do intervalo CIDR para cada anexo. O intervalo CIDR é obtido pesquisando nas tabelas de rotas do Transit Gateway na região por uma ID de anexo do gateway de trânsito correspondente. Se todas as informações necessárias estiverem disponíveis, a solução aplicará uma tag de nome ao anexo. A solução não substituirá nenhuma tag de nome existente.

A solução é executada em uma programação controlada por um EventBridge evento [da Amazon](https://aws.amazon.com/eventbridge/). O evento inicia a solução todos os dias às 06:00 UTC.

**Pilha de tecnologias de destino**
+ Amazon EventBridge
+ AWS Lambda
+ AWS Organizations
+ AWS Transit Gateway
+ Amazon Virtual Private Cloud (Amazon VPC)
+ AWS X-Ray

**Arquitetura de destino**

A arquitetura da solução e o fluxo de trabalho são mostrados no diagrama a seguir.

![\[Processo em nove etapas que envolve contas gerenciais da organização e de rede compartilhada.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/4b10dfec-43be-4337-9945-c64df921934a/images/873cc89f-c6e3-43cd-94ed-59b6ea2b8d49.png)


1. O evento agendado inicia a regra.

1. A EventBridge regra inicia a máquina de estado Step Functions.

1. A máquina de estado invoca a `tgw-tagger-organizations-account-query` função do Lambda.

1. A função do Lambda `tgw-tagger-organizations-account-query` assume a função na conta de gerenciamento da organização.

1. A função `tgw-tagger-organizations-account-query` Lambda chama a API Organizations para retornar Conta da AWS metadados.

1. A máquina de estado invoca a `tgw-tagger-attachment-query` função do Lambda.

1. Para cada região, paralelamente, a máquina de estado invoca a função do Lambda `tgw-tagger-rtb-query` para ler o intervalo CIDR de cada anexo.

1. Para cada região, paralelamente, a máquina de estado invoca a função do Lambda `tgw-tagger-attachment-tagger`****.

1. As tags de nome são criadas para anexo do gateway de trânsito na conta da Rede Compartilhada.

**Automação e escala**

A solução processa cada região em paralelo para reduzir a duração total da execução.

## Ferramentas
<a name="tag-transit-gateway-attachments-automatically-using-aws-organizations-tools"></a>

**Serviços da AWS**
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)fornece uma maneira de modelar uma coleção de recursos relacionados AWS e de terceiros, provisioná-los de forma rápida e consistente e gerenciá-los em todo o ciclo de vida, tratando a infraestrutura como código.
+  CloudWatchA [Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) ajuda você a monitorar as métricas dos seus recursos da AWS e dos aplicativos em que você executa AWS em tempo real.
+  EventBridgeA [Amazon](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) é um serviço de ônibus de eventos sem servidor que você pode usar para conectar seus aplicativos a dados de várias fontes. EventBridge recebe um evento, um indicador de uma mudança no ambiente, e aplica uma regra para rotear o evento até um alvo. As regras fazem a correspondência entre os eventos e os destinos com base na estrutura do evento, chamada padrão do evento ou em um schedule.
+ O [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) é um serviço de computação que permite a execução de código sem a necessidade de provisionar ou gerenciar servidores. O Lambda executa o código somente quando necessário e dimensiona automaticamente, desde algumas solicitações por dia a milhares por segundo. Você paga apenas pelo tempo de computação consumido. Não haverá cobranças quando seu código não estiver em execução.
+ [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)ajuda você a gerenciar e governar centralmente seu ambiente à medida que você cresce e escala seus AWS recursos. Usando o Organizations, você pode criar recursos novos Contas da AWS e alocar programaticamente, agrupar contas para organizar seus fluxos de trabalho, aplicar políticas a contas ou grupos para fins de governança e simplificar o faturamento usando um único método de pagamento para todas as suas contas.
+ [AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html)é um serviço de fluxo de trabalho visual de baixo código usado para orquestrar Serviços da AWS, automatizar processos de negócios e criar aplicativos sem servidor. Os fluxos de trabalho gerenciam falhas, novas tentativas, paralelização, integrações de serviços e observabilidade para que os desenvolvedores possam se concentrar em uma lógica de negócios de maior valor.
+ [AWS Transit Gateway](https://aws.amazon.com/transit-gateway/)conexões VPCs e redes locais por meio de um hub central. Isso simplifica sua rede e acaba com relacionamentos complexos de peering. Ele atua como um roteador na nuvem, de forma que cada nova conexão seja feita apenas uma vez.
+ [A Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) é um serviço para lançar AWS recursos em uma rede virtual logicamente isolada que você define.
+ O [AWS X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html) coleta dados sobre as solicitações atendidas pela sua aplicação e fornece ferramentas que permitem visualizar, filtrar e obter insights sobre esses dados para identificar problemas e oportunidades de otimização.

**Código **

O código-fonte dessa solução está disponível no GitHub repositório [Transit Gateway Attachment Tagger](https://github.com/aws-samples/tgw-attachment-tagger). O repositório inclui os seguintes arquivos:
+ `tgw-attachment-tagger-main-stack.yaml` cria todos os recursos para oferecer suporte a essa solução na conta de rede compartilhada.
+ `tgw-attachment-tagger-organizations-stack.yaml`** **cria uma função na conta de gerenciamento da organização.

## Épicos
<a name="tag-transit-gateway-attachments-automatically-using-aws-organizations-epics"></a>

### Implemente a pilha principal de soluções
<a name="deploy-the-main-solution-stack"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Reúna as informações necessárias sobre os pré-requisitos. | Para configurar o acesso entre contas da função Lambda AWS Organizations à API, você precisa do ID da conta de gerenciamento da organização.****A ordem na qual as duas CloudFormation pilhas são criadas é importante. Primeiro, você deve implantar recursos na conta de rede compartilhada. A função na conta de rede compartilhada já deve existir antes de implantar recursos na conta de gerenciamento da organização. Para obter mais informações, consulte a [documentação do AWS](https://docs.amazonaws.cn/en_us/IAM/latest/UserGuide/id_roles_create_for-user.html). | DevOps engenheiro | 
| Inicie o CloudFormation modelo para a pilha principal de soluções. | O modelo para a pilha principal de soluções implantará as funções do IAM, o fluxo de trabalho Step Functions, as funções Lambda e o evento da Amazon CloudWatch .Abra o Console de gerenciamento da AWS para a conta de rede compartilhada e, em seguida, abra o console: &CFN.  Crie a pilha usando o modelo `tgw-attachment-tagger-main-stack.yaml` e especificando os seguintes valores:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/tag-transit-gateway-attachments-automatically-using-aws-organizations.html)Para obter mais informações sobre o lançamento de uma CloudFormation pilha, consulte a [AWS documentação](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html). | DevOps engenheiro | 
| Verifique se a solução foi iniciada com sucesso. | Aguarde até que a CloudFormation pilha alcance o status **CREATE\$1COMPLETE**. Isso deve levar menos de um minuto.Abra o console Step Functions e verifique se uma nova máquina de estado foi criada com o nome **tgw-attachment-tagger-state-machine**. | DevOps engenheiro | 

### Implante a pilha do AWS Organizations
<a name="deploy-the-aws-organizations-stack"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Reúna as informações necessárias sobre os pré-requisitos. | Para configurar o acesso entre contas da função do Lambda à API do AWS Organizations, você precisa do ID da conta da rede compartilhada. | DevOps engenheiro | 
| Inicie o CloudFormation modelo para a pilha Organizations | O modelo da pilha do AWS Organizations implantará o perfil do IAM na conta de gerenciamento da organização. Acesse o console da AWS para a conta de gerenciamento da organização e, em seguida, abra o CloudFormation console.  Crie a pilha usando o modelo `tgw-attachment-tagger-organizations-stack.yaml` e especificando os seguintes valores:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/tag-transit-gateway-attachments-automatically-using-aws-organizations.html)Para as outras opções de criação de pilha, use os padrões. | DevOps engenheiro | 
| Verifique se a solução foi iniciada com sucesso. | Aguarde até que a CloudFormation pilha alcance o status **CREATE\$1COMPLETE**. Isso deve levar menos de um minuto.Abra o console AWS Identity and Access Management (IAM) e verifique se uma nova função foi criada com o nome **tgw-attachment-tagger-organization-query-role**. | DevOps engenheiro | 

### Verifique a solução
<a name="verify-the-solution"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Execute uma máquina de estado. | Abra o console Step Functions para a conta Shared Networking e escolha **State machines** no painel de navegação.Selecione a máquina de estado **tgw-attachment-tagger-state-máquina** e escolha **Iniciar execução**.  Como a entrada para essa máquina de estado não é usada pela solução, você pode usar o valor padrão.<pre>{<br />    "Comment": "Insert your JSON here"<br />}</pre>Escolha **Start Execution**. | DevOps engenheiro | 
| Observe a máquina de estado até a conclusão. | Na nova página que se abre, você pode assistir à execução da máquina de estado. A duração dependerá do número de anexos do gateway de trânsito a serem processados.Nesta página, você pode examinar cada etapa da máquina de estado. Você pode visualizar as várias tarefas na máquina de estado e seguir os links para os CloudWatch registros das funções do Lambda. Para as tarefas que são executadas paralelamente no mapa, você pode usar a lista suspensa **Índice** para visualizar as implementações específicas para cada região. | DevOps engenheiro | 
| Verifique as etiquetas de anexo do gateway de trânsito. | Abra o console VPC da conta de rede compartilhada e escolha **anexo do gateway de trânsito**.  No console, uma tag de nome é fornecida para anexos que atendem aos critérios (o anexo é propagado para uma tabela de rotas do Transit Gateway e o proprietário do recurso é membro da organização). | DevOps engenheiro | 
| Verifique o início CloudWatch do evento. | Aguarde o início do CloudWatch evento. Isso está programado para às 06:00 UTC. Em seguida, abra o console Step Functions para a conta Shared Networking e escolha **State machines** no painel de navegação.Selecione a máquina de estado **tgw-attachment-tagger-state-máquina**. Verifique se a solução foi executada às 06:00 UTC. | DevOps engenheiro | 

## Recursos relacionados
<a name="tag-transit-gateway-attachments-automatically-using-aws-organizations-resources"></a>
+ [AWS Organizations](https://aws.amazon.com/organizations/)
+ [AWS Resource Access Manager](https://aws.amazon.com/ram/)
+ [Orquestrador de rede de trânsito com tecnologia sem servidor](https://aws.amazon.com/solutions/implementations/serverless-transit-network-orchestrator/)
+ [Criação de perfis do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html)
+ [Criando uma pilha no console AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html)

# Mais padrões
<a name="cloudfoundations-more-patterns-pattern-list"></a>

**Topics**
+ [Automatize as alocações IPv4 IPAM CIDR do Amazon VPC para novos usando o AFT Contas da AWS](automate-amazon-vpc-ipam-ipv4-cidr-allocations-for-new-aws-accounts-by-using-aft.md)
+ [Governança de conjuntos de permissões para várias contas usando o Account Factory para Terraform](govern-permission-sets-aft.md)
+ [Provisione AWS Service Catalog produtos com base em AWS CloudFormation modelos usando GitHub Ações](provision-aws-service-catalog-products-using-github-actions.md)
+ [Provisione funções do IAM com privilégios mínimos implantando uma solução de máquina de venda automática de funções](provision-least-privilege-iam-roles-by-deploying-a-role-vending-machine-solution.md)