

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

# Provisionar contas com o Account Factory for Terraform (AFT) do AWS Control Tower
<a name="taf-account-provisioning"></a>

O AWS Control Tower Account Factory for Terraform (AFT) adota um GitOps modelo que automatiza o processo de provisionamento e atualização de contas na AWS Control Tower. 

Com o AFT, você cria um arquivo do Terraform de solicitação de conta, que contém a entrada que invoca o fluxo de trabalho do AFT. Após o término do provisionamento e da atualização da conta, o fluxo de trabalho do AFT continua executando o framework de provisionamento de contas do AFT e as etapas de personalização da conta. 

O AFT não afeta o desempenho do fluxo de trabalho no AWS Control Tower. Se você provisionar uma conta por meio do AFT ou do Account Factory, o mesmo fluxo de trabalho de backend ocorrerá.

## Pré-requisitos
<a name="aft-prerequisites"></a>

**nota**  
O provisionamento da conta AFT deve ter como alvo uma unidade organizacional (OU) AWSControl TowerBaseline habilitada no AWS Control Tower. Para obter detalhes sobre AWSControlTowerBaseline, consulte:[Tipos de linha de base que se aplicam no nível da OU](types-of-baselines.md#ou-baseline-types).

Quando você está começando a usar o AFT, deve criar o seguinte: 
+ No AWS Control Tower, crie a UO e, em seguida, a conta gerencial do AFT para seu ambiente do AFT. Anote o ID da conta, para que você possa inseri-lo no arquivo `main.tf` posteriormente, ao implantar o AFT com o módulo Terraform. Você pode ver esse ID da conta na página de **detalhes do Controle** do AWS Control Tower. Para obter mais informações, consulte a [documentação do Terraform](https://developer.hashicorp.com/terraform/tutorials/aws/aws-control-tower-aft). 
+ Um ou mais repositórios `git` em seu ambiente do AFT totalmente implantado. Consulte mais informações em [Post-deployment steps for AFT](https://docs.aws.amazon.com/controltower/latest/userguide/aft-post-deployment.html). 
+ Um ambiente do AFT totalmente implantado. Consulte mais informações em [Overview of AWS Control Tower Account Factory for Terraform (AFT)](https://docs.aws.amazon.com/controltower/latest/userguide/aft-overview.html) e em [Deploy AWS Control Tower Account Factory for Terraform (AFT)](https://docs.aws.amazon.com/controltower/latest/userguide/aft-getting-started.html). Veja também a [documentação do Terraform](https://developer.hashicorp.com/terraform/tutorials/aws/aws-control-tower-aft). 

**dica**  
Você pode criar a conta gerencial do AFT no console do AWS Control Tower com **Criar conta**. Para obter mais informações, consulte [Métodos de provisionamento](https://docs.aws.amazon.com//controltower/latest/userguide/methods-of-provisioning.html).  
Além disso, opcionalmente, você pode criar uma pasta de modelos de conta para ajudar a definir suas contas adicionais no **aft-account-customizations**repositório. 

Para contas inscritas por meio do Auto Enroll:
+ A criação de novas contas por meio do AFT continua funcionando normalmente.
+ A importação de contas existentes requer etapas adicionais:
  + Registre a OU para criar os produtos provisionados necessários antes da importação.
  + `CreateManagedAccount`Registre ou emitirá `UpdateManagedAccount` eventos, permitindo personalizações do AFT.

Para obter informações sobre Regiões da AWS onde o AFT tem limitações de implantação, consulte [Limitações e cotas no AWS Control Tower](limits.md) [Limitações de controle](control-limitations.md) e.

A [documentação do Terraform](https://developer.hashicorp.com/terraform/tutorials/aws/aws-control-tower-aft) contém uma boa visão geral de como configurar Account Factory for Terraform (AFT) do AWS Control Tower.

# Visão geral do Account Factory for Terraform (AFT) do AWS Control Tower
<a name="aft-overview"></a>

 O Account Factory for Terraform (AFT) configura um pipeline do Terraform para ajudar a provisionar e personalizar contas no AWS Control Tower. O AFT oferece a vantagem do provisionamento de contas baseado no Terraform, ao mesmo tempo que permite controlar contas com o AWS Control Tower. 

 Com o AFT, você cria um *arquivo do Terraform de solicitação de conta* para receber a entrada que aciona o fluxo de trabalho do AFT para provisionamento de contas. Depois que o estágio de provisionamento de conta for concluído, o AFT executará automaticamente uma série de etapas antes do início do estágio de personalização de conta. Consulte mais informações em [AFT account provisioning pipeline](https://docs.aws.amazon.com/controltower/latest/userguide/aft-provisioning-framework.html). 

 O AFT é compatível com Terraform Cloud, Terraform Enterprise e Terraform Community Edition. Com o AFT, é possível iniciar a criação da conta usando um arquivo de entrada e um comando `git push` simples e personalizar contas novas ou existentes. A criação de contas inclui todos os benefícios de governança e personalizações de contas do AWS Control Tower que ajudam você a cumprir os procedimentos de segurança padrão e as diretrizes de conformidade da sua organização. 

 O AFT permite o rastreamento de solicitações de personalização de conta. Toda vez que você envia uma solicitação de personalização de conta, o AFT gera um token de rastreamento exclusivo que passa por uma máquina de AWS Step Functions estado de personalizações do AFT, que registra o token como parte de sua execução. Em seguida, você pode usar as consultas de insights do Amazon CloudWatch Logs para pesquisar intervalos de timestamp e recuperar o token da solicitação. Como resultado, é possível ver as cargas úteis que acompanham o token, para que você possa rastrear sua solicitação de personalização de conta em todo o fluxo de trabalho do AFT. Para obter informações sobre CloudWatch Logs e Step Functions, consulte o seguinte: 
+  [O que é o Amazon CloudWatch Logs?](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) no *Guia do usuário do Amazon CloudWatch Logs* 
+  [O que é o AWS Step Functions?](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html) no *Guia do desenvolvedor do AWS Step Functions * 

O AFT combina os recursos de outros AWS serviços[Serviços de componentes](aft-components.md), como criar uma estrutura, com pipelines que implantam o Terraform Infrastructure as Code (IaC). O AFT permite:
+ Envie solicitações de provisionamento e atualização de contas em um modelo GitOps 
+ Armazenar metadados da conta e histórico de auditoria
+ Aplicar tags no nível da conta
+ Adicionar personalizações a todas as contas, a um conjunto de contas ou a contas individuais
+ Habilitar opções de recursos

O AFT cria uma conta separada, chamada de *conta de gerenciamento do AFT*, para implantar os recursos do AFT. Antes de configurar o AFT, você deve ter uma zona de pouso existente do AWS Control Tower. A conta de gerenciamento do AFT não é igual à conta de gerenciamento do AWS Control Tower.

**O AFT oferece flexibilidade**
+ **Flexibilidade para sua plataforma:** o AFT permite qualquer distribuição do Terraform para implantação inicial e operação contínua: Community Edition, Cloud e Enterprise.
+ **Flexibilidade para seu sistema de controle de versão:** suportes AWS CodeCommit AFT e fontes alternativas de controle de versão por meio de Conexões de código da AWS.

**O AFT oferece opções de recursos**

É possível habilitar várias opções de recursos, com base nas práticas recomendadas:
+ Criação de um nível organizacional CloudTrail para registrar eventos de dados
+ Excluindo a VPC AWS padrão para contas
+ Inscrevendo contas provisionadas no plano Enterprise Support AWS 

**nota**  
O pipeline do AFT não se destina ao uso na implantação de recursos, como instâncias do Amazon EC2, que suas contas precisam para executar suas aplicações. Ele se destina exclusivamente ao provisionamento e à personalização automáticos de contas do AWS Control Tower.

## Vídeo de demonstração
<a name="terraform-provisioning-video"></a>

Este vídeo (7:33) descreve como implantar contas com o Account Factory for Terraform do AWS Control Tower. Para uma melhor visualização, selecione o ícone no canto inferior direito do vídeo para ampliá-lo em tela cheia. A legenda está disponível.

[![AWS Videos](http://img.youtube.com/vi/eDbNvHz02dk/0.jpg)](http://www.youtube.com/watch?v=eDbNvHz02dk)


# Arquitetura do AFT
<a name="aft-architecture"></a>

## Ordem de operações
<a name="aft-operation"></a>

 Você executa operações do AFT na conta de gerenciamento do AFT. Para um fluxo de trabalho completo de provisionamento de contas, a ordem dos estágios da esquerda para a direita no diagrama é a seguinte: 

1.  As solicitações de conta são criadas e enviadas ao pipeline. É possível criar e enviar mais de uma solicitação de conta por vez. O Account Factory processa solicitações em um first-in-first-out pedido. Consulte mais informações em [Submit multiple account requests](https://docs.aws.amazon.com/controltower/latest/userguide/aft-multiple-account-requests.html). 

1.  Cada conta é provisionada. Esse estágio é executado na conta de gerenciamento do AWS Control Tower. 

1.  As personalizações globais são executadas nos pipelines criados para cada conta fornecida. 

1.  Se as personalizações forem especificadas nas solicitações iniciais de provisionamento da conta, as personalizações serão executadas somente em contas específicas. Se você tem uma conta que já está provisionada, você deve iniciar outras personalizações manualmente no pipeline da conta. 

**Account Factory for Terraform do AWS Control Tower: fluxo de trabalho de provisionamento de contas **

![\[Figura: diagrama do fluxo de trabalho do AFT\]](http://docs.aws.amazon.com/pt_br/controltower/latest/userguide/images/high-level-aft-diagram.png)


# Custo
<a name="aft-pricing"></a>

Não há cobrança adicional pelo AFT. Você paga somente pelos recursos implantados pelo AFT, pelos AWS serviços habilitados pelo AFT e pelos recursos implantados no seu ambiente AFT.

A configuração padrão do AFT inclui a alocação de AWS PrivateLink endpoints, para maior proteção e segurança de dados, e um gateway NAT que é necessário para suportar. AWS CodeBuild Consulte detalhes sobre os preços dessa infraestrutura em [Preço do AWS PrivateLink](https://aws.amazon.com//privatelink/pricing/) e em [Preços da Amazon VPC para o NAT Gateway](https://aws.amazon.com//vpc/pricing/). Entre em contato com seu representante de AWS conta para obter informações mais específicas sobre como gerenciar esses custos. Você pode alterar essas configurações padrão do AFT.

# Account Factory for Terraform (AFT) do AWS Control Tower
<a name="aft-getting-started"></a>

 Esta seção é para administradores de ambientes do AWS Control Tower que desejam configurar o Account Factory for Terraform (AFT) em seu ambiente atual. Ela descreve como configurar um ambiente do Account Factory for Terraform (AFT) com uma nova conta de gerenciamento dedicada do AFT. 

**nota**  
 Um módulo Terraform implanta o AFT. Este módulo está disponível no [repositório AFT](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main) em GitHub, e todo o repositório AFT é considerado o módulo.   
 Recomendamos que você consulte os módulos AFT em GitHub vez de clonar o repositório AFT. Dessa forma, você pode controlar e consumir atualizações dos módulos à medida que estiverem disponíveis. 

 Para obter detalhes sobre os últimos lançamentos da funcionalidade AWS Control Tower Account Factory for Terraform (AFT), consulte [o arquivo de lançamentos](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/releases) desse GitHub repositório.

 **Pré-requisitos de implantação** 

Antes de configurar e iniciar seu ambiente do AFT, você deve ter os seguintes recursos disponíveis: 
+  Uma região de origem para a zona de pouso do AWS Control Tower. Consulte mais informações em [How Regiões da AWS work with AWS Control Tower](https://docs.aws.amazon.com/controltower/latest/userguide/region-how.html). 
+  Uma zona de pouso do AWS Control Tower. Consulte mais informações em [Plan your AWS Control Tower landing zone](https://docs.aws.amazon.com/controltower/latest/userguide/planning-your-deployment.html). 
+  Uma conta gerencial do AFT, que você pode provisionar no AWS Control Tower ou provisionar por outros meios e se inscrever no AWS Control Tower. 
+  Uma versão e distribuição do Terraform. Consulte mais informações em [Terraform and AFT versions](https://docs.aws.amazon.com/controltower/latest/userguide/version-supported.html). 
+  Um provedor de VCS para rastrear e gerenciar alterações no código e em outros arquivos. Por padrão, o AFT usa AWS CodeCommit. Para obter mais informações, consulte [O que é AWS CodeCommit?](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) no *Guia do AWS CodeCommit usuário*.

  Se você estiver implantando o AFT pela primeira vez e não tiver um CodeCommit repositório existente, deverá escolher um provedor externo de VCS, como ou. GitHub BitBucket Consulte mais informações em [Alternatives for version control of source code in AFT](https://docs.aws.amazon.com/controltower/latest/userguide/aft-alternative-vcs.html). 
+  Um ambiente de runtime em que você pode executar o módulo do Terraform que instala o AFT. 
+  Opções de recursos do AFT. Consulte mais informações em [Enable feature options](https://docs.aws.amazon.com/controltower/latest/userguide/aft-feature-options.html). 

## Configurar e iniciar o Account Factory for Terraform do AWS Control Tower
<a name="aft-configure-and-launch"></a>

 Essas etapas a seguir presumem que você está familiarizado com o fluxo de trabalho do Terraform. Você também pode aprender mais sobre a implantação do AFT seguindo o laboratório de [Introdução ao AFT](https://catalog.workshops.aws/control-tower/en-US/customization/aft) no site do AWS Workshop Studio. 

 **Etapa 1: inicie a zona de pouso do AWS Control Tower** 

 Conclua as etapas em [Getting started with AWS Control Tower](https://catalog.workshops.aws/control-tower/en-US/customization/aft). É aqui que você cria a conta de gerenciamento do AWS Control Tower e configura a zona de pouso do AWS Control Tower. 

**nota**  
 Certifique-se de criar uma função para a conta de gerenciamento do AWS Control Tower que tenha **AdministratorAccess**credenciais. Consulte mais informações em:   
 Consulte [Identidades do IAM (usuários, grupos e perfis)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html) no *Guia do usuário do AWS Identity and Access Management * 
 [AdministratorAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AdministratorAccess.html)no *Guia de referência de políticas AWS gerenciadas* 

 **Etapa 2: crie uma nova unidade organizacional para o AFT (fortemente recomendado)** 

 Recomendamos que você crie uma UO separada na zona de pouso do AWS Control Tower. Essa UO é onde você provisiona a conta gerencial do AFT. Crie a UO e a conta gerencial do AFT com base na conta gerencial do AWS Control Tower. Consulte mais informações em [Create a new OU](https://docs.aws.amazon.com/controltower/latest/userguide/create-new-ou.html). 

 **Etapa 3: provisione a conta de gerenciamento do AFT** 

 O AFT exige que você provisione uma AWS conta dedicada às operações de gerenciamento do AFT. Crie a conta gerencial do AFT quando estiver conectado à conta gerencial do AWS Control Tower associada à zona de pouso do AWS Control Tower. Você pode provisionar a conta gerencial do AFT a partir do console do AWS Control Tower selecionando **Criar conta** na página **da organização** ou por outros meios. Para obter mais informações, consulte [Provisionar contas com o AWS Service Catalog Account Factory](https://docs.aws.amazon.com/controltower/latest/userguide/provision-as-end-user.html). 

**nota**  
Se você criou uma UO separada para o AFT, selecione essa UO ao criar a conta de gerenciamento do AFT. 

Pode levar até 30 minutos para provisionar totalmente a conta de gerenciamento do AFT. 

 **Etapa 4: verifique se o ambiente do Terraform está disponível para implantação** 

 Essa etapa pressupõe que você tenha experiência com o Terraform e tenha procedimentos implementados para executar o Terraform. Para obter mais informações, consulte [Command: init](https://developer.hashicorp.com/terraform/cli/commands/init) no site do HashiCorp desenvolvedor. 

**nota**  
 O AFT é compatível com o Terraform versão `1.6.0` ou posterior. 

 **Etapa 5: configurações opcionais**
+ **Opcionalmente, defina a configuração da nuvem privada virtual (VPC)**

  O módulo do AFT inclui um parâmetro `aft_enable_vpc` que especifica se o AWS Control Tower provisiona recursos da conta dentro de uma VPC na conta gerencial central do AFT. Por padrão, o parâmetro é definido como `true`. Se você definir esse parâmetro como `false`, o AWS Control Tower implanta o AFT *sem* o uso de uma VPC e recursos de rede privada, como gateways NAT ou endpoints da VPC. Desabilitar `aft_enable_vpc` pode ajudar a reduzir o custo operacional do AFT *para alguns padrões de uso*. Adicionar qualquer configuração de VPC substitui o parâmetro `aft_enable_vpc` que está sendo definido como `false`.
**nota**  
Reabilitar o parâmetro `aft_enable_vpc` (mudando o valor de `false` para `true`) pode exigir que você execute o comando `terraform apply` duas vezes consecutivas.

  Em vez de provisionar uma VPC nova, você pode configurar a AFT para usar uma VPC existente em sua conta. Para usar a sua própria VPC, forneça os seguintes parâmetros de configuração da VPC:
  + `aft_customer_vpc_id`: o ID da sua VPC existente
  + `aft_customer_private_subnets`- Uma lista de sub-redes privadas IDs em sua VPC

  Exemplo de configuração:

  ```
  module "aft" {
    source = "github.com/aws-ia/terraform-aws-control_tower_account_factory"
    
    # VPC configuration
    aft_customer_vpc_id = "vpc-0123456789abcdef0"
    aft_customer_private_subnets = ["subnet-0123456789abcdef0", "subnet-0123456789abcdef1"]
    
    # Other AFT parameters...
  }
  ```
**Importante**  
Não é recomendável usar a opção VPC personalizada se você tiver uma implantação existente do AFT. Você pode ter dependências nas funções do Lambda CodePipeline ou que dependam de recursos dentro da VPC existente subjacente.
+ **Opcionalmente, configure o nome do projeto Terraform**

  Você pode personalizar o nome do projeto Terraform usado pelo AFT definindo o parâmetro `terraform_project_name`. Por padrão, o AFT coloca a implantação no projeto “padrão” no Terraform Cloud ou no Terraform Enterprise.

  Exemplo de configuração:

  ```
  module "aft" {
    source = "github.com/aws-ia/terraform-aws-control_tower_account_factory"
    
    # Project name configuration
    terraform_project_name = "my-organization-aft"
    
    # Other AFT parameters...
  }
  ```
**nota**  
Esse parâmetro é aplicável somente às implantações do Terraform Enterprise ou do Terraform Cloud.
+ **Opcionalmente, aplique etiquetas personalizadas aos recursos do AFT**

  Você pode aplicar tags personalizadas a todos os recursos do AFT usando o parâmetro `tags`. Essas tags ajudam na organização de recursos, alocação de custos e controle de acesso.

  Exemplo de configuração:

  ```
  module "aft" {
    source = "github.com/aws-ia/terraform-aws-control_tower_account_factory"
    
    # Custom tags configuration
    tags = {
      Environment = "Production"
      CostCenter = "IT-12345"
      Project = "AFT-Deployment"
      Owner = "platform-team@example.com"
    }
    
    # Other AFT parameters...
  }
  ```

  Essas tags são aplicadas a todos os recursos criados pelo módulo AFT. O AFT adiciona automaticamente uma tag `managed_by = "AFT"` a todos os recursos, que não pode ser substituída por tags personalizadas.
**nota**  
As tags personalizadas podem ser adicionadas a qualquer momento, não apenas durante a implantação inicial.
+ **Opcionalmente, aplique uma chave de criptografia AWS KMS gerenciada pelo cliente (CMK) a grupos de CloudWatch registros e tópicos do SNS**

  Para habilitar a criptografia CMK do KMS para grupos de log e tópicos do SNS, defina as variáveis `cloudwatch_log_group_enable_cmk_encryption` e `sns_topic_enable_cmk_encryption`.

  Se você optar por essas configurações, o AFT usará a CMK existente, *alias/aft*, para criptografar CloudWatch registros e tópicos do SNS. Essa CMK é criada quando o AFT é implantado na conta gerencial do AFT e pode ser aplicada a grupos de logs e tópicos do SNS. 
  + Se a variável `cloudwatch_log_group_enable_cmk_encryption` for definida como **verdadeira**, os grupos de CloudWatch log do AFT serão criptografados usando a CMK. Se a variável for definida como **false**, que é o valor padrão, os registros serão criptografados usando [criptografia do lado do servidor com os CloudWatch registros padrão](https://docs.aws.amazon.com//AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html).
  +  Se a variável `sns_topic_enable_cmk_encryption` for definida como **verdadeira**, as notificações enviadas aos tópicos do AFT SNS (*aft-notifications* e *aft-failure-notifications*) serão criptografadas usando a CMK. Se a variável for definida como **false**, que é o valor padrão, as mensagens do SNS são criptografadas com a chave gerenciada pela AWS:. *alias/aws/sns* Para obter mais informações, consulte [Termos de chaves de SSE](https://docs.aws.amazon.com//sns/latest/dg/sns-server-side-encryption.html#sse-key-terms).
+ **Opcionalmente, altere seu tipo de CodeBuild computação**

  Durante a implantação, para alterar o tipo de computação usado pelo AFT CodeBuild, defina a variável`aft_codebuild_compute_type`.

  Para obter informações sobre os tipos de computação aceitos, consulte [Sobre os tipos de ambiente sob demanda.](https://docs.aws.amazon.com//codebuild/latest/userguide/build-env-ref-compute-types.html#environment.types) O tipo de computação padrão é `BUILD_GENERAL1_MEDIUM`. 
+ **Opcionalmente, configure o OpenID Connect (OIDC) para Terraform**

  Os clientes que usam o Terraform Enterprise ou o HCP Terraform (antigo Terraform Cloud) podem usar os tokens de identidade Workload do Terraform (ou credenciais dinâmicas do provedor), baseados no protocolo OIDC, para conectar e autenticar com segurança os espaços de trabalho com o AFT.

  Você pode habilitar a integração do OIDC para espaços de trabalho AFT definindo o `terraform_oidc_integration` parâmetro como. `true` Esse parâmetro é definido como `false` por padrão. Ao ativar esse parâmetro, os `terraform_oidc_hostname` parâmetros `terraform_oidc_aws_audience` e devem ser revisados e configurados se os padrões (`aws.workload.identity`e`app.terraform.io`, respectivamente) não corresponderem ao seu ambiente.

  Exemplo de configuração:

  ```
  module "aft" {
    source = "github.com/aws-ia/terraform-aws-control_tower_account_factory"
    
    # Terraform distribution must be "tfc" or "tfe" for OIDC
    terraform_distribution = "tfc"
  
    # Terraform OIDC Configuration
    terraform_oidc_integration  = true
    terraform_oidc_aws_audience = "aws.workload.identity"  # default
    terraform_oidc_hostname     = "app.terraform.io"       # default; set to your TFE hostname if applicable
    
    # Other AFT parameters...
  }
  ```
**nota**  
Esse parâmetro é aplicável somente às implantações do Terraform Enterprise ou do HCP Terraform.
**nota**  
Se você está atualmente utilizando um provedor OIDC para Terraform na conta de gerenciamento do AFT, você deve excluir esse provedor antes de optar por essa integração. A AFT recriará esse provedor para você após a implantação.

**Etapa 6: chame o módulo Account Factory for Terraform para implantar o AFT** 

 Chame o módulo AFT com a função que você criou para a conta de gerenciamento do AWS Control Tower que tem **AdministratorAccess**credenciais. O AWS Control Tower provisiona um módulo do Terraform por meio da conta de gerenciamento do AWS Control Tower, que estabelece toda a infraestrutura necessária para orquestrar solicitações do Account Factory do AWS Control Tower. 

 Você pode visualizar o módulo AFT no [repositório AFT](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main) em GitHub. Todo o GitHub repositório é considerado o módulo AFT. Consulte informações sobre as entradas necessárias para executar o módulo do AFT e implantar o AFT no [arquivo README](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/blob/main/README.md). Como alternativa, você pode visualizar o módulo do AFT em [Terraform Registry](https://registry.terraform.io/modules/aws-ia/control_tower_account_factory/aws/latest). 

 Se tiver pipelines em seu ambiente que estão estabelecidos para gerenciar o Terraform, você poderá integrar o módulo do AFT ao fluxo de trabalho existente. Caso contrário, execute o módulo do AFT em qualquer ambiente autenticado com as credenciais necessárias. 

 O tempo limite faz com que a implantação falhe. Recomendamos o uso de credenciais AWS Security Token Service (STS) para garantir que você tenha um tempo limite suficiente para uma implantação completa. O tempo limite mínimo para AWS STS credenciais é de 60 minutos. Consulte mais informações em [Credenciais de segurança temporárias no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) no *Guia do usuário do AWS Identity and Access Management *. 

**nota**  
 Você pode esperar até 30 minutos para que o AFT termine a implantação por meio do módulo do Terraform. 

 **Etapa 7: gerenciar o arquivo de estado do Terraform** 

 Um arquivo de estado do Terraform é gerado quando você implanta o AFT. Esse artefato descreve o estado dos recursos que o Terraform criou. Se você planeja atualizar a versão do AFT, preserve o arquivo de estado do Terraform ou configure um backend do Terraform usando o Amazon S3 e o DynamoDB. O módulo do AFT não gerencia um estado de backend do Terraform. 

**nota**  
 Você é responsável por proteger o arquivo de estado do Terraform. Algumas variáveis de entrada podem conter valores confidenciais, como uma chave `ssh` privada ou um token do Terraform. Dependendo do método de implantação, esses valores podem ser visualizados como texto simples no arquivo de estado do Terraform. Para obter mais informações, consulte [Dados confidenciais no estado](https://www.terraform.io/docs/language/state/sensitive-data.html) no HashiCorp site. 

# Etapas de pós-implantação
<a name="aft-post-deployment"></a>

Depois que a implantação da infraestrutura do AFT for concluída, siga estas etapas adicionais para concluir o processo de configuração e se preparar para provisionar contas. 

**Etapa 1: Conclua CodeConnections com o provedor de VCS desejado**

Se você escolher um provedor de VCS terceirizado, a AFT estabelecerá CodeConnections e você o confirmará. Consulte [Alternativas para controle de versão do código-fonte no AFT](aft-alternative-vcs.md) saber como configurar o AFT com seu VCS preferido.

A etapa inicial de estabelecer a AWS CodeStar conexão é realizada pela AFT. Você deve confirmar a conexão.

**Etapa 2: preencha cada repositório**

O AFT exige que você gerencie [quatro repositórios](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main/sources/aft-customizations-repos):

1. Solicitações de conta: esse repositório lida com a colocação ou atualização de solicitações de conta. [Exemplos disponíveis](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main/sources/aft-customizations-repos/aft-account-request). Consulte mais informações sobre solicitações de conta do AFT em [Provisionar uma nova conta com o AFT](aft-provision-account.md).

1. Personalizações de provisionamento de contas do AFT: esse repositório gerencia as personalizações que são aplicadas a todas as contas criadas e gerenciadas com o AFT, antes de iniciar o estágio global de personalizações. [Exemplos disponíveis](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main/sources/aft-customizations-repos/aft-account-provisioning-customizations). Consulte como criar personalizações de provisionamento de contas do AFT em [Criar sua conta do AFT, provisionando máquina de estado de personalizações](aft-provisioning-framework.md#aft-create-customizations).

1. Personalizações globais: esse repositório gerencia personalizações que são aplicadas a todas as contas criadas e gerenciadas com o AFT. [Exemplos disponíveis](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main/sources/aft-customizations-repos/aft-global-customizations). Para criar personalizações globais do AFT, consulte [Aplicar personalizações globais](aft-account-customization-options.md#aft-global-customizations).

1. Personalizações de conta: esse repositório gerencia personalizações que são aplicadas somente a contas específicas criadas e gerenciadas com o AFT. [Exemplos disponíveis](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main/sources/aft-customizations-repos/aft-account-customizations). Para criar personalizações de contas do AFT, consulte [Aplicar personalizações de conta](aft-account-customization-options.md#aft-account-customizations).

 O AFT espera que cada um desses repositórios siga uma estrutura de diretórios específica. Os modelos usados para preencher seus repositórios e as instruções que descrevem como preencher os modelos estão disponíveis no módulo do Account Factory for Terraform no [repositório github do AFT](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main/sources/aft-customizations-repos). 

# Provisionar uma nova conta com o AFT
<a name="aft-provision-account"></a>

*Esta seção pressupõe que você já tenha configurado o AFT e sua conta gerencial do AFT e esteja provisionando contas adicionais.*

Para provisionar uma nova conta com o AFT, crie um arquivo do Terraform de solicitação de conta. Esse arquivo contém a entrada para parâmetros no **aft-account-request**repositório. Depois de criar um arquivo do Terraform de solicitação de conta, comece a processar a solicitação de conta executando `git push`. Esse comando invoca a `ct-aft-account-request` operação no AWS CodePipeline, que é criada na conta de gerenciamento do AFT após a conclusão do provisionamento da conta. Consulte mais informações em [AFT account provisioning pipeline](https://docs.aws.amazon.com/controltower/latest/userguide/aft-provisioning-framework.html). 

## Parâmetros do arquivo do Terraform de solicitação de conta
<a name="w2aac44c33c15b7"></a>

 É necessário incluir os seguintes parâmetros no arquivo do Terraform de solicitação de conta. Você pode ver [um exemplo de arquivo Terraform de solicitação de conta](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main/sources/aft-customizations-repos/aft-account-request) em. GitHub 
+  O valor de `module name` deve ser exclusivo de acordo com a solicitação de Conta da AWS . 
+  O valor de `module source` é o caminho para o módulo do Terraform de solicitação de conta que o AFT fornece. 
+  O valor de `control_tower_parameters` captura a entrada necessária para criar uma conta do AWS Control Tower. O valor inclui os seguintes campos de entrada: 
  + `AccountEmail`
  + `AccountName`
  +  `ManagedOrganizationalUnit` 
  + `SSOUserEmail`
  + `SSOUserFirstName`
  + `SSOUserLastName`

**nota**  
 A entrada que você fornece para `control_tower_parameters` não pode ser alterada durante o provisionamento da conta.   
 Os formatos compatíveis para especificação `ManagedOrganizationalUnit` no **aft-account-request**repositório incluem e. `OUName` `OUName (OU-ID)` 
+  `account_tags`captura chaves e valores definidos pelo usuário, que podem ser marcados de Contas da AWS acordo com os critérios comerciais. Para obter mais informações, consulte [Tagging AWS Organizations resources](https://docs.aws.amazon.com//organizations/latest/userguide/orgs_tagging.html) no *Guia do usuário do AWS Organizations *. 
+  O valor de `change_management_parameters` captura informações adicionais, como por que uma solicitação de conta foi criada e quem a iniciou. O valor inclui os seguintes campos de entrada: 
  + `change_reason`
  + `change_requested_by`
+  `custom_fields`**captura metadados adicionais com chaves e valores que são implantados como parâmetros SSM na conta vendida em/-fields/. aft/account-request/custom** Você pode consultar esses metadados durante as personalizações da conta para implantar os controles adequados. Por exemplo, uma conta sujeita à conformidade regulatória pode implantar outras Regras do AWS Config. Os metadados que você coleta com `custom_fields` podem invocar processamento adicional durante o provisionamento e a atualização da conta. Se um campo personalizado for removido da solicitação de conta, ele será removido do SSM Parameter Store da conta fornecida. 
+  (Opcional) `account_customizations_name` captura a pasta do modelo de conta no **aft-account-customizations**repositório. Consulte mais informações em [Account customizations](https://docs.aws.amazon.com/controltower/latest/userguide/aft-account-customization-options.html). 

# Enviar várias solicitações de contas
<a name="aft-multiple-account-requests"></a>

 O AFT processa as solicitações de conta uma por vez, mas você pode enviar várias solicitações de conta para o pipeline do AFT. Quando você envia várias solicitações de conta para o pipeline do AFT, o AFT enfileira e processa as solicitações da conta em uma ordem de primeiro a entrar e primeiro a sair. 

**nota**  
 Você pode criar um arquivo do Terraform de solicitação de conta para cada conta que deseja que o AFT provisione ou distribuir várias solicitações de conta em um único arquivo do Terraform de solicitação de conta. 

# Atualizar uma conta existente
<a name="aft-update-account"></a>

**Compatibilidade com inscrição automática**  
Se sua organização usa o Registro Automático para inscrição automática de contas, esteja ciente de que o AFT tem limitações na importação dessas contas. As contas inscritas por meio do Auto Enroll não têm os produtos provisionados do Service Catalog exigidos pelo fluxo de trabalho de importação da AFT.  
**Solução alternativa:** use o recurso Registrar OU para criar produtos provisionados para contas inscritas automaticamente. Isso permite os eventos de ciclo de vida necessários para personalizações do AFT.

 Você pode atualizar as contas provisionadas pelo AFT editando as solicitações de conta enviadas anteriormente e executando `git push`. Esse comando invoca o fluxo de trabalho de provisionamento da conta e pode processar solicitações de atualização da conta. Você pode atualizar a entrada para `ManagedOrganizationalUnit`, que faz parte do valor necessário para `control_tower_parameters`.

`ManagedOrganizationalUnit` é o único parâmetro que pode ser atualizado, dentre todos `control_tower_parameters`. No entanto, outros parâmetros que fazem parte do arquivo do Terraform da solicitação de conta podem ser atualizados, como `custom_fields`. Consulte mais informações em [Provision a new account with AFT](https://docs.aws.amazon.com/controltower/latest/userguide/aft-provision-account.html). 

Por exemplo, para atualizar o nome ou endereço de e-mail de uma conta do AFT, você pode definir os detalhes como `custom_fields` no arquivo de solicitação de conta. Ao fazer isso, você cria parâmetros SSM, que podem ser passados para o recurso `aws_account_alternate_contact` durante personalizações globais.

```
resource "aws_account_alternate_contact" "operations" {

  alternate_contact_type = "OPERATIONS"

  name          = "Example"
  title         = "Example"
  email_address = "someone@example.com"
  phone_number  = "+1234567890"
}
```

Você pode adicionar campos semelhantes para outros tipos de contato, como operações e segurança. Em Personalizações globais, adicione pesquisas de dados para cada campo personalizado, para garantir que você procure todos os campos criados na Solicitação de conta:

```
data "aws_ssm_parameter" "billing_name" {
            name = "/aft/account-request/custom-fields/billing_name"
            }
            
            data "aws_ssm_parameter" "billing_title" {
            name = "/aft/account-request/custom-fields/billing_title"
            }
            
            data "aws_ssm_parameter" "billing_email_address" {
            name = "/aft/account-request/custom-fields/billing_email_address"
            }
            
            data "aws_ssm_parameter" "billing_phone_number" {
            name = "/aft/account-request/custom-fields/billing_phone_number"
            }
```

Por fim, também no arquivo de personalizações globais, crie os recursos de contato alternativos. Você precisará definir um desses blocos para cada tipo de contato criado na Solicitação de conta:

```
resource "aws_account_alternate_contact" "billing" {
            
            alternate_contact_type = "BILLING"
            
            name          = data.aws_ssm_parameter.billing_name.value
            title         = data.aws_ssm_parameter.billing_title.value
            email_address = data.aws_ssm_parameter.billing_email_address.value
            phone_number  = data.aws_ssm_parameter.billing_phone_number.value
            }
```

**nota**  
 A entrada que você fornece para `control_tower_parameters` não pode ser alterada durante o provisionamento da conta.   
 Os formatos compatíveis para especificação `ManagedOrganizationalUnit` no **aft-account-request**repositório incluem e. `OUName` `OUName (OU-ID)` 

## Atualizar uma conta que o AFT não provisiona
<a name="aft-update-account-not-provision"></a>

 Você pode atualizar as contas do AWS Control Tower criadas fora do AFT especificando a conta no **aft-account-request**repositório. 

**nota**  
 Certifique-se de que todos os detalhes da conta estejam corretos e consistentes com a organização do AWS Control Tower e o respectivo produto AWS Service Catalog provisionado. 

**Pré-requisitos para atualizar um existente com o AFT Conta da AWS**
+  Eles Conta da AWS devem estar inscritos no AWS Control Tower. 
+  Eles Conta da AWS devem fazer parte da organização do AWS Control Tower. 

# Versões do AFT e Terraform
<a name="version-supported"></a>

O Account Factory for Terraform (AFT) é compatível com o Terraform versão `1.6.0` ou posterior. Você deve fornecer uma versão do Terraform como parâmetro de entrada para o processo de implantação do AFT, conforme mostrado no exemplo a seguir.

```
terraform_version = "1.6.0"
```

## Distribuições do Terraform
<a name="terraform-distributions"></a>

O AFT permite três distribuições do Terraform:
+ Terraform Community Edition
+ Terraform Cloud
+ Terraform Enterprise

Essas distribuições serão explicadas nas seções a seguir. Forneça a distribuição do Terraform de sua escolha como um parâmetro de entrada durante o processo de inicialização do AFT. Consulte mais informações sobre a implantação do AFT e os parâmetros de entrada em [Account Factory for Terraform (AFT) do AWS Control Tower](aft-getting-started.md).

Se você escolher as distribuições Terraform Cloud ou Terraform Enterprise, o [token de API](https://www.terraform.io/cloud-docs/users-teams-organizations/api-tokens) especificado para `terraform_token `deverá ser um token de API de usuário ou equipe. Um token de organização não é compatível com todas as APIs necessárias. Por motivos de segurança, você deve evitar verificar o valor desse token em seu sistema de controle de versão (VCS) atribuindo uma [variável do terraform](https://www.terraform.io/cloud-docs/workspaces/variables/managing-variables), conforme mostrado no exemplo a seguir.

```
 # Sensitive variable managed in Terraform Cloud:
 terraform_token = var.terraform_cloud_token
```

### Terraform Community Edition
<a name="terraform-oss"></a>

Quando você seleciona o Terraform Community Edition como distribuição, o AFT gerencia o backend do Terraform para você na conta de gerenciamento do AFT. O AFT baixa a `terraform-cli` da versão especificada do Terraform para ser executada durante a implantação do AFT e as fases do pipeline do AFT. A configuração de estado do Terraform resultante será armazenada em um bucket do Amazon S3, nomeado com o seguinte formato:

```
aft-backend-[account_id]-primary-region
```

O AFT também cria um bucket do Amazon S3 que replica sua configuração de estado do Terraform em outra Região da AWS, para fins de recuperação de desastres, nomeado com o seguinte formato:

```
aft-backend-[account_id]-secondary-region
```

Recomendamos que você habilite a autenticação multifator (MFA) para excluir funções nesses buckets do Amazon S3 no estado do Terraform. Para saber mais sobre o Terraform Community Edition, consulte [a documentação do Terraform](https://www.terraform.io/docs/cli/index.html).

Para selecionar o Terraform OSS como sua distribuição, forneça o seguinte parâmetro de entrada:

```
terraform_distribution = "oss"
```

### Terraform Cloud
<a name="terraform-cloud"></a>

 Quando você seleciona o Terraform Cloud como sua distribuição, o AFT cria áreas de trabalho para os seguintes componentes em sua organização do Terraform Cloud, o que inicia um fluxo de trabalho orientado por API. 
+  Solicitação de conta 
+  Personalizações do AFT para contas provisionadas pelo AFT 
+  Personalizações de conta para contas provisionadas pelo AFT 
+  Personalizações globais para contas provisionadas pelo AFT 

 O Terraform Cloud gerencia a configuração de estado resultante do Terraform. 

 Ao selecionar o Terraform Cloud como sua distribuição, forneça os seguintes parâmetros de entrada: 
+  `terraform_distribution = "tfc"` 
+  `terraform_token`: esse parâmetro contém o valor do token do Terraform Cloud. O AFT marca como confidencial e armazena o valor como uma string segura no armazenamento de parâmetros do SSM na conta de gerenciamento do AFT. Recomendamos que você alterne periodicamente o valor do token do Terraform de acordo com as políticas de segurança e as diretrizes de conformidade da sua empresa. O token do Terraform deve ser um token de API de nível de usuário ou equipe. Os tokens da organização não são permitidos. 
+  `terraform_org_name`: esse parâmetro contém o nome da sua organização do Terraform Cloud. 

**nota**  
 Não há suporte para várias implantações do AFT em uma única organização do Terraform Cloud. 

 Consulte informações sobre como configurar o Terraform Cloud na [documentação do Terraform](https://www.terraform.io/docs/cloud/index.html). 

### Terraform Enterprise
<a name="terraform-enterprise"></a>

Quando você seleciona o Terraform Enterprise como sua distribuição, o AFT cria áreas de trabalho para os seguintes componentes em sua organização do Terraform Enterprise e aciona um fluxo de trabalho orientado por API para as execuções resultantes do Terraform.
+ Solicitação de conta
+ Personalizações de provisionamento de contas do AFT para contas provisionadas pelo AFT
+ Personalizações de conta para contas provisionadas pelo AFT
+ Personalizações globais para contas provisionadas pelo AFT

A configuração de estado resultante do Terraform é gerenciada pela configuração do Terraform Enterprise.

Para selecionar o Terraform Enterprise como sua distribuição, forneça os seguintes parâmetros de entrada:
+  `terraform_distribution = "tfe"` 
+ `terraform_token`: esse parâmetro contém o valor do seu token do Terraform Enterprise. O AFT marca seu valor como confidencial e o armazena como uma string segura no armazenamento de parâmetros do SSM, na conta de gerenciamento do AFT. Recomendamos que você alterne periodicamente o valor do token do Terraform de acordo com as políticas de segurança e as diretrizes de conformidade da sua empresa.
+ `terraform_org_name`: esse parâmetro contém o nome da sua organização do Terraform Enterprise.
+ `terraform_api_endpoint`: esse parâmetro contém o URL do seu ambiente do Terraform Enterprise. O valor desse parâmetro deve estar no formato:

  ```
  https://{fqdn}/api/v2/
  ```

Consulte [a documentação do Terraform](https://www.terraform.io/docs/enterprise/index.html) para saber mais sobre como configurar o Terraform Enterprise.

# Verificar a versão do AFT
<a name="check-aft-version"></a>

Você pode verificar sua versão do AFT implantada consultando a chave do AWS SSM Parameter Store:

```
/aft/config/aft/version
```

Se você usar o método de registro, poderá fixar a versão.

```
module "control_tower_account_factory" {
  source  = "aws-ia/control_tower_account_factory/aws"
  version = "1.3.2"
  # insert the 6 required variables here
}
```

Consulte mais informações sobre as versões do AFT no [repositório do AFT](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main).

# Atualizar a versão do AFT
<a name="update-aft-version"></a>

Entre na conta gerencial do AWS Control Tower para iniciar essa atualização do AFT.

Você pode atualizar a versão implantada do AFT retirando-a da ramificação do repositório `main`:

```
terraform get -update
```

Depois que a extração for concluída, você poderá executar novamente o plano do Terraform ou executar a aplicação para atualizar a infraestrutura do AFT com as alterações mais recentes.

# Habilitar opções de recursos
<a name="aft-feature-options"></a>

O AFT oferece opções de recursos com base nas práticas recomendadas. Você pode optar por esses recursos, por meio de sinalizadores de recursos, durante a implantação do AFT. Consulte mais informações sobre os parâmetros de configuração de entrada do AFT em [Provisionar uma nova conta com o AFT](aft-provision-account.md).

Esses recursos não são habilitados por padrão. Você deve habilitar explicitamente cada um em seu ambiente.

**Topics**
+ [AWS CloudTrail eventos de dados](#cloudtrail-data-event-option)
+ [AWS Plano de Enterprise Support](#enterprise-support-option)
+ [Exclua a AWS VPC padrão](#delete-default-vpc-option)

## AWS CloudTrail eventos de dados
<a name="cloudtrail-data-event-option"></a>

Quando ativada, a opção AWS CloudTrail de eventos de dados configura esses recursos.
+ Cria uma trilha organizacional na conta de gerenciamento do AWS Control Tower, para CloudTrail
+ Ativa o registro em log para eventos de dados do Amazon S3 e do Lambda
+ Criptografa e exporta todos os eventos de CloudTrail dados para um bucket `aws-aft-logs-*` S3 na conta do AWS Control Tower Log Archive, com criptografia AWS KMS 
+ Ativa a configuração de **Validação do arquivo de log**

Para habilitar essa opção, defina o seguinte sinalizador de recursos como **True** em sua configuração da entrada de implantação do AFT.

```
aft_feature_cloudtrail_data_events
```

**Pré-requisito**

Antes de habilitar essa opção de recurso, certifique-se de que o acesso confiável para AWS CloudTrail esteja habilitado em sua organização. 

**Para verificar o status do acesso confiável para CloudTrail :**

1. Navegue até o AWS Organizations console.

1. Escolha **Serviços > CloudTrail**.

1. Depois, selecione **Habilitar acesso confiável** no canto superior direito, se necessário.

Você pode receber uma mensagem de aviso recomendando o uso do AWS CloudTrail console, mas, nesse caso, ignore o aviso. O AFT cria a trilha como parte da habilitação dessa opção de recurso, depois que você permite o acesso confiável. Se o acesso confiável não estiver habilitado, você receberá uma mensagem de erro quando o AFT tentar criar a trilha para eventos de dados.

**nota**  
Essa configuração funciona no nível da organização. A ativação dessa configuração afeta todas as contas AWS Organizations, sejam elas gerenciadas pelo AFT ou não. Todos os buckets na conta de arquivamento de logs do AWS Control Tower no momento da habilitação estão excluídos dos eventos de dados do Amazon S3. Consulte [o Guia AWS CloudTrail do usuário](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html) para saber mais sobre CloudTrail.

## AWS Plano de Enterprise Support
<a name="enterprise-support-option"></a>

Quando essa opção está ativada, o pipeline AFT ativa o plano AWS Enterprise Support para contas provisionadas pela AFT.

AWS Por padrão, as contas vêm com o plano AWS Basic Support ativado. O AFT fornece inscrição automática no nível de suporte corporativo para contas provisionadas pelo AFT. O processo de provisionamento abre um ticket de suporte para a conta, solicitando que ela seja adicionada ao plano Enterprise AWS Support.

Para habilitar a opção do Enterprise Support, defina o seguinte sinalizador de recursos como **True** em sua configuração da entrada de implantação do AFT.

```
aft_feature_enterprise_support=false
```

Consulte [Compare AWS Support Plans](https://aws.amazon.com/premiumsupport/plans/) para saber mais sobre AWS Support Plans.

**nota**  
Para permitir que esse recurso funcione, você deve inscrever a conta pagante no plano Enterprise Support.

## Exclua a AWS VPC padrão
<a name="delete-default-vpc-option"></a>

 Quando você ativa essa opção, o AFT exclui todos os AWS valores padrão VPCs na conta de gerenciamento do AFT Regiões da AWS, mesmo que não tenha implantado recursos do AWS Control Tower nelas. Regiões da AWS

 O AFT não exclui VPCs automaticamente o AWS padrão de nenhuma conta da AWS Control Tower provisionada pelo AFT ou de AWS contas existentes que você inscreva na AWS Control Tower por meio do AFT. 

Novas AWS contas são criadas com uma VPC configurada em cada uma Região da AWS, por padrão. Sua empresa pode ter práticas padrão de criação VPCs, que exigem que você exclua a VPC AWS padrão e evite ativá-la, especialmente para a conta de gerenciamento do AFT. 

Para habilitar essa opção, defina o seguinte sinalizador de recursos como **True** em sua configuração da entrada de implantação do AFT.

```
aft_feature_delete_default_vpcs_enabled
```

Veja a seguir um exemplo de uma configuração de entrada de implantação do AFT.

```
module "aft" {
  source = "github.com/aws-ia/terraform-aws-control_tower_account_factory"
  ct_management_account_id    = var.ct_management_account_id
  log_archive_account_id      = var.log_archive_account_id
  audit_account_id            = var.audit_account_id
  aft_management_account_id   = var.aft_management_account_id
  ct_home_region              = var.ct_home_region
  tf_backend_secondary_region = var.tf_backend_secondary_region

  vcs_provider                                  = "github"
  account_request_repo_name                     = "${var.github_username}/learn-terraform-aft-account-request"
  account_provisioning_customizations_repo_name = "${var.github_username}/learn-terraform-aft-account-provisioning-customizations"
  global_customizations_repo_name               = "${var.github_username}/learn-terraform-aft-global-customizations"
  account_customizations_repo_name              = "${var.github_username}/learn-terraform-aft-account-customizations"

  # Optional Feature Flags
  aft_feature_delete_default_vpcs_enabled = true
  aft_feature_cloudtrail_data_events      = false
  aft_feature_enterprise_support          = false
}
```

Consulte [VPC padrão e sub-redes padrão](https://docs.aws.amazon.com/vpc/latest/userguide/default-vpc.html) para saber mais sobre o padrão. VPCs

# Considerações sobre recursos do Account Factory for Terraform do AWS Control Tower
<a name="aft-resources"></a>

Quando você configura sua landing zone usando o AWS Control Tower Account Factory for Terraform, vários tipos de AWS recursos são criados em suas AWS contas.

**Pesquisa de recursos**
+ Você pode usar tags para pesquisar a lista mais atualizada de recursos do AFT. O par de chave-valor da pesquisa é:

  ```
  Key: managed_by | Value: AFT
  ```
+ Para serviços de componentes que não permitem tags, você pode localizar recursos com uma pesquisa por `aft` nos nomes dos recursos.

**nota**  
O AFT não cria nenhum recurso AWS de Backup na conta de gerenciamento.

**Tabelas de recursos inicialmente criadas, por conta**


**Conta de gerenciamento do Account Factory for Terraform do AWS Control Tower**  

| **AWS service** | **Tipo de atributo** | **Nome do recurso** | 
| --- | --- | --- | 
| AWS Identity and Access Management | Perfis |  AWSAFTAdmin AWSAFTExecution AWSAFTService ct-aft-\$1 aft-\$1 codebuild\$1trigger\$1role python-layer-builder-aft-common-\$1 | 
| AWS Identity and Access Management | Políticas | aft-\$1 | 
| CodeCommit | Repositórios | aft-\$1 | 
| CodeBuild | Projetos de build | aft-\$1 ct-aft-\$1 python-layer-builder-aft-common-\$1  | 
| Pipeline de código | Pipelines | **YourAccountId**-customizations-pipeline | 
| Amazon S3 | Buckets | aft-\$1  | 
| Lambda | Funções | aft-\$1 | 
| Lambda | Layers | aft-common-\$1 | 
| DynamoDB | Tabelas | aft-request aft-request-audit aft-request-metadata aft-controltower-events | 
| Step Functions | Máquinas de estado | aft-account-provisioning-customizations aft-account-provisioning-framework aft-feature-options aft-invoke-customizations | 
| VPC | VPC | aft-management-vpc | 
| Amazon SNS | Tópicos | aft-notifications aft-failure-notifications | 
| Amazon EventBridge | Barramentos de eventos | aft-events-from-ct-management | 
| Amazon EventBridge | Regras de eventos | aft-account-provisioning-customizations-trigger aft-account-request-codepipeline-trigger aft-lambda-account-request-processor aft-controltower-event-logger | 
| Key Management Service (KMS) | Chaves gerenciadas pelo cliente | aft-backend-\$1-kms-key aft | 
| AWS Systems Manager | Parameter Store | /aft/\$1  | 
| Amazon SQS | Queues (Filas) | aft-account-request.fifo aft-account-request-dlg.fifo | 
| CloudWatch | Grupos de logs | /aws/\$1/ct-aft-\$1 /aws/\$1/aft-\$1 /aws/codebuild/python-layer-builder-aft-common-\$1 | 
| AWS Backup | Cofres | aft-controltower-backup-vault | 
| AWS Backup | Planos | aft-controltower-backup-plan | 
| AWS Support Center (opcional) | Planos de suporte | Enterprise | 


**AWS contas provisionadas por meio do AWS Control Tower Account Factory for Terraform**  

| **AWS service** | **Tipo de atributo** | **Nome do recurso** | 
| --- | --- | --- | 
| AWS Identity and Access Management | Perfis | AWSAFTExecution | 
| AWS Support Center (opcional) | Planos de suporte | Enterprise | 


**Conta de gerenciamento do AWS Control Tower**  

| **AWS service** | **Tipo de atributo** | **Nome do recurso** | 
| --- | --- | --- | 
| AWS Identity and Access Management | Perfis |  AWSAFTExecution AWSAFTService aft-controltower-events-rule  | 
| AWS Systems Manager | Parameter Store | /aft/\$1 | 
| EventBridge | Regras de eventos | aft-capture-ct-events | 
| CloudTrail (Opcional) | Trilhas | aws-aft-CustomizationsCloudTrail | 
| AWS Support Center (opcional) | Planos de suporte | Enterprise | 


**Conta de arquivamento de logs do AWS Control Tower**  

| **AWS service** | **Tipo de atributo** | **Nome do recurso** | 
| --- | --- | --- | 
| AWS Identity and Access Management | Perfis |  AWSAFTExecution AWSAFTService  | 
| Key Management Service (KMS) | Chaves gerenciadas pelo cliente | aft | 
| Amazon S3 | Buckets | aws-aft-logs-\$1 aws-aft-s3-access-logs-\$1 | 
| AWS Support Center (opcional) | Planos de suporte | Enterprise | 


**Conta de auditoria do AWS Control Tower**  

| **AWS service** | **Tipo de atributo** | **Nome do recurso** | 
| --- | --- | --- | 
| AWS Identity and Access Management | Perfis |  AWSAFTExecution AWSAFTService  | 
| AWS Support Center (opcional) | Planos de suporte | Enterprise | 

# Perfis necessários
<a name="aft-required-roles"></a>

Em geral, os perfis e as políticas fazem parte do Identity and Access Management (IAM) na AWS. Consulte mais informações no [https://docs.aws.amazon.com//IAM/latest/UserGuide/introduction.html](https://docs.aws.amazon.com//IAM/latest/UserGuide/introduction.html).

O AFT cria várias políticas e perfil do IAM nas contas de gerenciamento do AFT e do AWS Control Tower para apoiar as operações do pipeline do AFT. Esses perfis são criados com base no modelo de acesso com privilégio mínimo, que restringe a permissão aos conjuntos mínimos de ações e recursos necessários para cada perfil e política. Essas funções e políticas são atribuídas a um `key:value` par de AWS tags, ` managed_by:AFT` para identificação. 

Além desses perfis do IAM, o AFT cria três perfis essenciais:
+ o perfil `AWSAFTAdmin`
+ o perfil `AWSAFTExecution`
+ o perfil `AWSAFTService`

Esses perfis são explicados nas seções a seguir.

**O AWSAFTAdmin papel, explicado**

Quando você implanta o AFT, o perfil `AWSAFTAdmin` é criado na conta de gerenciamento do AFT. Esse perfil permite que o pipeline do AFT assuma o perfil `AWSAFTExecution` nas contas provisionadas do AWS Control Tower e do AFT, realizando, assim, ações relacionadas ao provisionamento e às personalizações da conta.

Aqui está a política em linha (artefato JSON) anexada ao perfil `AWSAFTAdmin`: 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Resource": [
                "arn:aws:iam::*:role/AWSAFTExecution",
                "arn:aws:iam::*:role/AWSAFTService"
            ]
        }
    ]
}
```

------

O artefato JSON a seguir mostra a relação de confiança do perfil `AWSAFTAdmin`. O número do espaço reservado `012345678901` é substituído pelo número de ID da conta de gerenciamento do AFT.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::012345678901:root"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

**O AWSAFTExecution papel, explicado**

Ao implantar o AFT, o perfil `AWSAFTExecution` é criado nas contas de gerenciamento do AFT e do AWS Control Tower. Posteriormente, o pipeline do AFT cria o perfil `AWSAFTExecution` em cada conta provisionada do AFT durante o estágio de provisionamento de conta do AFT.

 O AFT utiliza o perfil `AWSControlTowerExecution` inicialmente, para criar o perfil `AWSAFTExecution` em contas especificadas. O perfil `AWSAFTExecution` permite que o pipeline do AFT execute as etapas que são realizadas durante os estágios de provisionamento e personalização do framework do AFT, para contas provisionadas e contas compartilhadas do AFT.

**Perfis distintos ajudam a limitar o escopo**  
Como prática recomendada, mantenha as permissões de personalização separadas das permissões concedidas durante a implantação inicial dos recursos. Lembre-se de que o perfil `AWSAFTService` se destina ao provisionamento de contas e o perfil `AWSAFTExecution` à personalização de contas. Essa separação limita o escopo das permissões concedidas durante cada fase do pipeline. Essa distinção é especialmente importante se você estiver personalizando as contas compartilhadas do AWS Control Tower, porque as contas compartilhadas podem conter informações confidenciais, como detalhes de faturamento ou informações do usuário.

Permissões para `AWSAFTExecution` função: **AdministratorAccess**— uma política gerenciada pela AWS 

O artefato JSON a seguir mostra a política do IAM (relação de confiança) anexada ao perfil `AWSAFTExecution`. O número do espaço reservado `012345678901` é substituído pelo número de ID da conta de gerenciamento do AFT.

Política de confiança para `AWSAFTExecution`

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::012345678901:role/AWSAFTAdmin"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

**O AWSAFTService papel, explicado**

O perfil `AWSAFTService` implanta recursos do AFT em todas as contas registradas e gerenciadas, incluindo as contas compartilhadas e a conta de gerenciamento. Anteriormente, os recursos eram implantados somente pelo perfil `AWSAFTExecution`.

O perfil `AWSAFTService` deve ser usado pela infraestrutura de serviços para implantar recursos durante o estágio de provisionamento, e o perfil `AWSAFTExecution` deve ser usado somente para implantar personalizações. Ao assumir os perfis dessa forma, você pode manter um controle de acesso mais granular durante cada estágio.

Permissões para `AWSAFTService` função: **AdministratorAccess**— uma política gerenciada pela AWS 

O artefato JSON a seguir mostra a política do IAM (relação de confiança) anexada ao perfil `AWSAFTService`. O número do espaço reservado `012345678901` é substituído pelo número de ID da conta de gerenciamento do AFT.

Política de confiança para `AWSAFTService`

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::012345678901:role/AWSAFTAdmin"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

# Serviços de componentes
<a name="aft-components"></a>

Quando você implanta o AFT, componentes são adicionados ao seu AWS ambiente a partir de cada um desses AWS serviços.
+ **[AWS Control Tower](https://docs.aws.amazon.com//controltower/latest/userguide/what-is-control-tower.html)**: o AFT usa o Account Factory do AWS Control Tower na conta de gerenciamento do AWS Control Tower para provisionar contas.
+ **[Amazon DynamoDB](https://docs.aws.amazon.com//amazondynamodb/latest/developerguide/Introduction.html)**: o AFT cria tabelas do Amazon DynamoDB na conta de gerenciamento do AFT, que armazenam solicitações de contas, histórico de auditoria de atualizações da conta, metadados da conta e eventos do ciclo de vida do AWS Control Tower. O AFT também cria gatilhos do Lambda do DynamoDB para iniciar processos posteriores, como iniciar o fluxo de trabalho de provisionamento de contas do AFT. 
+ **[Amazon Simple Storage Service](https://docs.aws.amazon.com//AmazonS3/latest/userguide/Welcome.html)** — O AFT cria buckets do Amazon Simple Storage Service (S3) na conta de gerenciamento do AFT e na conta de arquivo de log do AWS Control Tower, que armazenam os registros gerados pelos AWS serviços exigidos pelo pipeline do AFT. O AFT também cria um bucket S3 de back-end do Terraform, primário e secundário Regiões da AWS, para armazenar os estados do Terraform gerados durante os fluxos de trabalho do pipeline do AFT.
+ **[Amazon Simple Notification Service](https://docs.aws.amazon.com//sns/latest/dg/welcome.html)**: o AFT cria tópicos do Amazon Simple Notification Service (SNS) na conta de gerenciamento do AFT, que armazena notificações de sucesso e falha após processar cada solicitação de conta do AFT. Você pode receber essas mensagens usando o protocolo de sua escolha.
+ **[Amazon Simple Queuing Service](https://docs.aws.amazon.com//AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html)**: o AFT cria uma fila FIFO do Amazon Simple Queuing Service (Amazon SQS) na conta de gerenciamento do AFT. A fila permite que você envie várias solicitações de conta em paralelo, mas envia uma solicitação por vez ao AWS Control Tower Account Factory, para processamento sequencial.
+ **[AWS CodeBuild](https://docs.aws.amazon.com//codebuild/latest/userguide/welcome.html)** — A AFT cria projetos de CodeBuild construção da AWS na conta de gerenciamento da AFT para inicializar, compilar, testar e aplicar planos do Terraform para o código-fonte da AFT em vários estágios de construção.
+ **[AWS CodePipeline](https://docs.aws.amazon.com//codepipeline/latest/userguide/welcome.html)** — A AFT cria CodePipeline pipelines da AWS na conta de gerenciamento da AFT para se integrar ao seu provedor de CodeStar conexões da AWS selecionado e suportado para o código-fonte da AFT e para acionar trabalhos de construção na AWS CodeBuild.
+ **[AWS Lambda](https://docs.aws.amazon.com//lambda/latest/dg/welcome.html)**: o AFT cria camadas e funções do AWS Lambda na conta de gerenciamento do AFT para realizar etapas durante a solicitação da conta, o provisionamento da conta do AFT e os processos de personalização da conta.
+ **[O AWS Systems Manager Parameter Store](https://docs.aws.amazon.com//systems-manager/latest/userguide/systems-manager-parameter-store.html)**: o AFT configura o AWS Systems Manager Parameter Store na conta de gerenciamento do AFT, para armazenar os parâmetros de configuração necessários para os processos do pipeline do AFT.
+ **[Amazon CloudWatch](https://docs.aws.amazon.com//AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html)** — A AFT cria grupos de CloudWatch registros da Amazon na conta de gerenciamento da AFT para armazenar registros gerados pelos serviços da AWS empregados pelo pipeline da AFT. O período de retenção CloudWatch dos registros está definido como`Never Expire`.
+ **[Amazon VPC](https://docs.aws.amazon.com//vpc/latest/userguide/what-is-amazon-vpc.html)**: o AFT cria uma Amazon Virtual Private Cloud (VPC) para isolar serviços e recursos na conta de gerenciamento da AFT em um ambiente de rede separado, para maior segurança.
+ **[AWS KMS](https://docs.aws.amazon.com//kms/latest/developerguide/overview.html)**: o AFT usa o AWS Key Management Service (KMS) na conta de gerenciamento do AFT e na conta de arquivamento de logs do AWS Control Tower. O AFT cria chaves para criptografar estados do Terraform, dados armazenados em tabelas do DynamoDB e tópicos do SNS. Esses logs e artefatos são gerados quando os recursos e serviços da AWS são implantados pelo AFT. As chaves do KMS criadas pelo AFT têm a rotação anual habilitada por padrão.
+ **[AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com//IAM/latest/UserGuide/introduction.html)** — O AFT segue o modelo de privilégios mínimos recomendado. Ele cria funções e políticas do AWS Identity and Access Management (IAM) na conta de gerenciamento do AFT, nas contas da AWS Control Tower e nas contas provisionadas do AFT, conforme necessário, para realizar as ações necessárias durante o fluxo de trabalho do pipeline do AFT.
+ **[AWS Step Functions](https://docs.aws.amazon.com//step-functions/latest/dg/welcome.html)** — O AFT cria máquinas de estado do AWS Step Functions na conta de gerenciamento do AFT. Essas máquinas de estado orquestram e automatizam o processo e as etapas da estrutura e das personalizações de provisionamento de contas do AFT.
+ **[Amazon EventBridge](https://docs.aws.amazon.com//eventbridge/latest/userguide/eb-what-is.html)** — A AFT cria um barramento de EventBridge eventos da Amazon na conta de gerenciamento da AFT e da AWS Control Tower para capturar e armazenar eventos do ciclo de vida da AWS Control Tower a longo prazo na tabela do DynamoDB da conta de gerenciamento da AFT. A AFT cria regras de CloudWatch eventos da Amazon nas contas de gerenciamento da AFT e da AWS Control Tower, que acionam várias etapas necessárias durante a execução do fluxo de trabalho do pipeline da AFT
+ **[AWS CloudTrail (Opcional)](https://docs.aws.amazon.com//awscloudtrail/latest/userguide/cloudtrail-user-guide.html)** — Quando esse recurso é ativado, o AFT cria uma trilha AWS CloudTrail organizacional na conta de gerenciamento do AWS Control Tower, para registrar eventos de dados para buckets do Amazon S3 e funções AWS Lambda. O AFT envia esses logs para um bucket central do S3 na conta de arquivamento de logs do AWS Control Tower.
+ **[AWS Support (opcional)](https://aws.amazon.com//premiumsupport/)** — Quando esse recurso está ativado, o AFT ativa o plano AWS Enterprise Support para contas provisionadas pelo AFT. Por padrão,AWS as contas são criadas com o plano AWS Basic Support ativado.

# Pipeline de provisionamento de contas do AFT
<a name="aft-provisioning-framework"></a>

Após a conclusão do estágio de provisionamento de contas do pipeline, o framework do AFT continua. Ele executa automaticamente uma série de etapas para garantir que as contas recém-provisionadas tenham os detalhes definidos antes do início da etapa [Personalizações da conta](aft-account-customization-options.md).

**Aqui estão as próximas etapas que o pipeline do AFT executa.**

1. Valida a entrada da solicitação de conta.

1. Recupera informações sobre a conta provisionada, por exemplo, o ID da conta.

1. Armazena os metadados da conta em uma tabela do DynamoDB na conta de gerenciamento do AFT.

1. Cria a função **AWSAFTExecution**do IAM na conta recém-provisionada. O AFT assume esse perfil para realizar o estágio de personalização da conta, porque esse perfil concede acesso ao portfólio do Account Factory. 

1. Aplica as tags de conta que você forneceu como parte dos parâmetros de entrada de solicitação de conta.

1. Aplica as opções de recursos do AFT que você escolheu no momento da implantação do AFT.

1. Aplica as personalizações de provisionamento da conta do AFT que você forneceu. A próxima seção explica mais sobre como configurar essas personalizações com uma máquina de estado do AWS Step Functions, em um repositório `git`. Às vezes, esse estágio é chamado de estágio do *framework de provisionamento de contas*. Isso faz parte do processo principal de provisionamento, mas você já configurou um framework que fornece integrações personalizadas como parte do fluxo de trabalho de provisionamento de contas, antes que mais personalizações sejam adicionadas às contas na próxima etapa.

1. Para cada conta provisionada, ele cria uma conta AWS CodePipeline de gerenciamento do AFT, que será executada para realizar a próxima etapa (global)[Personalizações da conta](aft-account-customization-options.md).

1. Invoca o pipeline de personalizações de conta para cada conta provisionada (e direcionada).

1. Envia uma notificação de sucesso ou falha para o tópico do SNS, por meio da qual é possível recuperar as mensagens.

## Configurar as personalizações do framework de provisionamento de contas com uma máquina de estado
<a name="aft-customizations"></a>

Se você configurar integrações personalizadas que não sejam do Terraform antes de provisionar suas contas, essas personalizações serão incluídas no fluxo de trabalho de provisionamento de contas do AFT. Por exemplo, você pode exigir determinadas personalizações para garantir que todas as contas criadas pelo AFT estejam em conformidade com os padrões e políticas da sua organização, como os padrões de segurança, e esses padrões podem ser adicionados às contas antes da personalização adicional. Essas personalizações do *framework de provisionamento de contas* são implementadas em todas as contas provisionadas, antes do próximo estágio global de personalização de conta começar.

**nota**  
O recurso do AFT descrito nesta seção é destinado a usuários avançados que entendem o funcionamento do AWS Step Functions. Como alternativa, recomendamos que você trabalhe com os auxiliares globais no estágio de personalização de conta.

O framework de provisionamento de contas do AFT chama uma máquina de estado do AWS Step Functions, que você define, para implementar suas personalizações. Consulte a [documentação do AWS Step Functions](https://docs.aws.amazon.com//step-functions/latest/dg/welcome.html) para saber mais sobre as possíveis integrações de máquinas de estado.

Aqui estão algumas integrações comuns.
+ Funções do AWS Lambda na linguagem de sua escolha
+ Tarefas do AWS ECS ou AWS Fargate, usando contêineres do Docker
+ Atividades do AWS Step Functions usando operadores personalizados, hospedados na AWS ou no ambiente on-premises
+ Integrações com o Amazon SNS ou SQS

Se nenhuma máquina de estado do AWS Step Functions for definida, o estágio passa como “sem operação”. Para criar uma máquina de estado de personalizações de provisionamento de contas do AFT, siga as instruções em [Criar sua conta do AFT, provisionando máquina de estado de personalizações](#aft-create-customizations). Antes de adicionar personalizações, verifique se você tem os pré-requisitos estabelecidos.

Esses tipos de integrações não fazem parte do AWS Control Tower e não podem ser adicionados durante o estágio global de pré-API da personalização de contas do AFT. Em vez disso, o pipeline do AFT permite que você configure essas personalizações como parte do processo de provisionamento, e elas são executadas no fluxo de trabalho de provisionamento. Você deve implementar essas personalizações criando sua máquina de estado com antecedência, antes de iniciar o estágio de provisionamento de contas do AFT, conforme descrito nas seções a seguir. 

**Pré-requisitos para criar uma máquina de estado**
+ Um AFT totalmente implantado. Consulte mais informações sobre implantações do AFT em [Account Factory for Terraform (AFT) do AWS Control Tower](aft-getting-started.md).
+ Configure um repositório `git` em seu ambiente para personalizações de provisionamento de contas do AFT. Consulte [Etapas de pós-implantação](aft-post-deployment.md) para obter mais informações.

## Criar sua conta do AFT, provisionando máquina de estado de personalizações
<a name="aft-create-customizations"></a>

**Etapa 1: modifique a definição da máquina de estado**

Modifique o exemplo `customizations.asl.json` de definição da máquina de estado. O exemplo está disponível no repositório `git` que você configurou para armazenar personalizações de provisionamento de contas do AFT, em suas [etapas de pós-implantação](https://docs.aws.amazon.com//controltower/latest/userguide/aft-post-deployment.html). Consulte o [Guia do desenvolvedor do AWS Step Functions](https://docs.aws.amazon.com//step-functions/latest/dg/welcome.html) para saber mais sobre as definições de máquina de estado.

**Etapa 2: inclua a configuração correspondente do Terraform**

Inclua arquivos do Terraform com a extensão `.tf` no mesmo repositório `git` com a definição da máquina de estado para sua integração personalizada. Por exemplo, se você optar por chamar uma função do Lambda na definição da tarefa da máquina de estado, inclua o arquivo `lambda.tf` no mesmo diretório. Certifique-se de incluir as permissões e os perfis do IAM necessários para as configurações personalizadas.

Quando você fornece a entrada apropriada, o pipeline do AFT invoca automaticamente sua máquina de estado e implanta suas personalizações como parte do estágio da estrutura de provisionamento de contas do AFT. 

## Como reiniciar o framework e as personalizações de provisionamento de contas do AFT
<a name="aft-provisioining-considerations"></a>

O AFT executa a estrutura de provisionamento de contas e as etapas de personalização para cada conta fornecida pelo pipeline do AFT. Para reiniciar as personalizações de provisionamento de conta, você pode usar um destes dois métodos:

1. Faça qualquer alteração em uma conta existente no repositório de solicitações de conta.

1. Provisione uma nova conta com o AFT.

# Personalizações da conta
<a name="aft-account-customization-options"></a>

O AFT pode implantar configurações padrão ou personalizadas em contas provisionadas. Na conta de gerenciamento do AFT, o AFT fornece um pipeline para cada conta. Com esse pipeline, você pode implementar suas personalizações em todas as contas, em um conjunto de contas ou em contas individuais. Você pode executar scripts Python, scripts bash e configurações do Terraform, ou pode interagir com a AWS CLI como parte do estágio de personalização da conta.

## Visão geral do
<a name="aft-customizations-overview"></a>

Depois que suas personalizações forem especificadas nos repositórios `git` escolhidos, seja aquele em que você armazena suas personalizações globais ou onde você armazena as personalizações da conta, o estágio de personalização da conta é concluído automaticamente pelo pipeline do AFT. Para personalizar contas retroativamente, consulte [Invocar novamente personalizações](#aft-re-invoke-customizations).

**Personalizações globais (opcional)**

Você pode optar por aplicar determinadas personalizações a todas as contas provisionadas pelo AFT. Por exemplo, se você precisar criar um perfil do IAM específico ou implantar um controle personalizado em cada conta, o estágio de personalizações globais no pipeline do AFT permite fazer isso automaticamente.

**Personalizações de conta (opcional)**

Para personalizar uma conta individual ou um conjunto de contas de forma diferente de outras contas provisionadas pelo AFT, você pode utilizar a parte de personalizações de conta do pipeline do AFT para implementar configurações específicas da conta. Por exemplo, somente uma determinada conta pode exigir acesso a um gateway da internet. 

## Pré-requisitos de personalização
<a name="aft-account-customization-prerequisites"></a>

Antes de começar a personalizar contas, verifique se esses pré-requisitos estão em vigor.
+ Um AFT totalmente implantado. Consulte informações sobre como implantar em [Configurar e iniciar o Account Factory for Terraform do AWS Control Tower](aft-getting-started.md#aft-configure-and-launch).
+ Repositórios `git` pré-preenchidos para personalizações globais e personalizações de contas em seu ambiente. Consulte mais informações em *Etapa 3: preencher cada repositório* em [Etapas de pós-implantação](aft-post-deployment.md).

## Aplicar personalizações globais
<a name="aft-global-customizations"></a>

Para aplicar personalizações globais, você deve enviar uma estrutura de pastas específica para o repositório escolhido.
+ Se as suas configurações personalizadas estiverem na forma de programas ou scripts em Python, coloque-as na pasta **api\$1helpers/python** em seu repositório.
+ Se as suas configurações personalizadas estiverem na forma de scripts Bash, coloque-as na pasta **api\$1helpers** em seu repositório.
+ Se as suas configurações personalizadas estiverem no formato do Terraform, coloque-as na pasta **terraform** em seu repositório.
+ Consulte mais detalhes sobre a criação de configurações personalizadas no arquivo README de personalizações globais.

**nota**  
As personalizações globais são aplicadas automaticamente, após o estágio do framework de provisionamento da conta do AFT no pipeline do AFT.

## Aplicar personalizações de conta
<a name="aft-account-customizations"></a>

****

 Você pode aplicar personalizações de conta enviando uma estrutura de pastas específica para o repositório escolhido. As personalizações de conta são aplicadas automaticamente no pipeline do AFT e após o estágio global de personalizações. Você também pode criar várias pastas que contêm diferentes personalizações de conta no seu repositório de personalizações de conta. Para cada personalização de conta que você precisar, use as etapas a seguir. 

**Como aplicar personalizações de conta**

1.  **Etapa 1: criar uma pasta para uma personalização de conta** 

    No repositório escolhido, copie a pasta `ACCOUNT_TEMPLATE` fornecida pelo AFT para uma nova pasta. O nome da sua nova pasta deve corresponder ao `account_customizations_name` que você forneceu na sua solicitação de conta. 

1.  **Adicionar as configurações à pasta específica de personalizações de conta** 

    Você pode adicionar configurações à pasta de personalizações de conta com base no formato das configurações. 
   +  Se suas configurações personalizadas estiverem na forma de programas ou scripts em Python, coloque-as na pasta /api\$1helpers/python que está ***[account\$1customizations\$1name]*no** seu repositório. 
   +  Se suas configurações personalizadas estiverem na forma de scripts Bash, coloque-as na pasta ***[account\$1customizations\$1name]*/api\$1helpers** que está no seu repositório. 
   +  Se suas configurações personalizadas estiverem no formato do Terraform, coloque-as na pasta ***[account\$1customizations\$1name]*/terraform** que está no seu repositório. 

    Consulte mais informações sobre como criar configurações personalizadas no arquivo README das personalizações de conta. 

1.  ** Consultar o parâmetro `account_customizations_name` específico no arquivo de solicitação de conta ** 

    O arquivo de solicitação de conta do AFT inclui o parâmetro de entrada `account_customizations_name`. Insira o nome da personalização de conta como o valor desse parâmetro. 

**nota**  
 Você pode enviar várias solicitações de conta para contas em seu ambiente. Quando quiser aplicar personalizações de conta diferentes ou semelhantes, especifique as personalizações da conta usando o parâmetro de entrada `account_customizations_name` em suas solicitações de conta. Consulte mais informações em [Submit multiple account requests](https://docs.aws.amazon.com/controltower/latest/userguide/aft-multiple-account-requests.html). 

## Invocar novamente personalizações
<a name="aft-re-invoke-customizations"></a>

O AFT fornece uma maneira de invocar novamente personalizações no pipeline do AFT. Esse método é útil quando você adiciona uma nova etapa de personalização ou quando está fazendo alterações em uma personalização existente. Quando você invoca novamente, o AFT inicia o pipeline de personalizações para fazer alterações na conta provisionada do AFT. Uma event-source-based nova invocação permite que você aplique personalizações a contas individuais, a todas as contas, às contas de acordo com sua OU ou às contas selecionadas de acordo com as tags.

Siga estas três etapas para invocar novamente as personalizações para contas provisionadas pelo AFT.

**Etapa 1: envie alterações para repositórios `git` globais ou de personalizações de contas**

Você pode atualizar suas personalizações globais e de conta conforme necessário e enviar as alterações de volta aos repositórios `git`. Neste momento, nada acontece. O pipeline de personalizações deve ser invocado por uma fonte de eventos, conforme explicado nas próximas duas etapas.

**Etapa 2: inicie uma execução de função do AWS Step Functions para invocar novamente personalizações**

O AFT fornece uma função do AWS Step Functions chamada `aft-invoke-customizations` na conta de gerenciamento do AFT. O objetivo dessa função é invocar novamente o pipeline de personalização para contas provisionadas pelo AFT.

Aqui está um exemplo de um esquema de evento (formato JSON) que você pode criar para passar a entrada para a função `aft-invoke-customizations` do AWS Step Functions.

```
{
  "include": [
    {
      "type": "all"
    },
    {
      "type": "ous",
      "target_value": [ "ou1","ou2"]
    },
    {
      "type": "tags",
      "target_value": [ {"key1": "value1"}, {"key2": "value2"}]
    },
    {
      "type": "accounts",
      "target_value": [ "acc1_ID","acc2_ID"]
    }
  ],

  "exclude": [
    {
      "type": "ous",
      "target_value": [ "ou1","ou2"]
    },
    {
      "type": "tags",
      "target_value": [ {"key1": "value1"}, {"key2": "value2"}]
    },
    {
      "type": "accounts",
      "target_value": [ "acc1_ID","acc2_ID"]
    }
  ]
}
```

 O exemplo de esquema de eventos mostra que você pode escolher contas para incluir ou excluir do processo de nova invocação. Você pode filtrar por unidade organizacional (UO), tags de conta e ID de conta. Se você não aplicar nenhum filtro e incluir a instrução `"type":"all"`, a personalização de todas as contas provisionadas pelo AFT será invocada novamente. 

**nota**  
 Se sua versão do AWS Control Tower Account Factory for Terraform (AFT) for 1.6.5 ou posterior, você pode segmentar (aninhado OUs com a sintaxe). `OU Name (ou-id-1234` Para obter mais informações, consulte o tópico a seguir em [GitHub](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/issues/280). 

 Depois de preencher os parâmetros do evento, o Step Functions é executado e invoca as personalizações correspondentes. O AFT pode invocar, no máximo, cinco personalizações por vez. O Step Functions espera e repete até que todas as contas que correspondem aos critérios do evento sejam concluídas. 

**Etapa 3: Monitore a saída do AWS Step Function e observe a CodePipeline execução da AWS**
+ A saída resultante da Step Function contém uma conta IDs que corresponde à fonte do evento de entrada da Step Function.
+ Navegue até a AWS CodePipeline em **Developer Tools** e veja os canais de personalização correspondentes para o ID da conta.

## Solução de problemas com o rastreamento de solicitações de personalização de conta do AFT
<a name="aft-customization-request"></a>

 Fluxos de trabalho de personalização de contas baseados em registros de emissão contendo a conta de destino e a solicitação de AWS Lambda personalização. IDs O AFT permite que você rastreie e solucione problemas de solicitações de personalização com o Amazon CloudWatch Logs, fornecendo consultas do CloudWatch Logs Insights que você pode usar para filtrar CloudWatch os registros relacionados à sua solicitação de personalização pela sua conta de destino ou ID da solicitação de personalização. Para obter mais informações, consulte [Análise de dados de log com o Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html) no *Guia do usuário do Amazon CloudWatch Logs*. 

**Para usar o CloudWatch Logs Insights para AFT**

1. Abra o CloudWatch console em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1.  No painel de navegação à esquerda, escolha **Logs** e, depois, **Log Insights**. 

1.  Escolha **Consultas**. 

1.  Em **Exemplos de consultas**, escolha **Account Factory for Terraform** e selecione uma das seguintes consultas: 
   +  **Logs de personalização por ID da conta** 
**nota**  
 Certifique-se de *"YOUR-ACCOUNT-ID"* substituir pelo ID da sua conta de destino. 

     ```
     fields @timestamp, log_message.account_id as target_account_id, log_message.customization_request_id as customization_request_id, log_message.detail as detail, @logStream
     | sort @timestamp desc
     | filter log_message.account_id == "YOUR-ACCOUNT-ID" and @message like /customization_request_id/
     ```
   +  **Logs de personalização por ID de solicitação de personalização** 
**nota**  
 Certifique-se de *"YOUR-CUSTOMIZATION-REQUEST-ID"* substituir pelo ID da solicitação de personalização. Você pode encontrar seu ID de solicitação de personalização na saída da máquina de estado da estrutura AWS Step Functions de provisionamento de contas AFT. Consulte mais informações sobre a estrutura de provisionamento de contas do AFT em [AFT account provisioning pipeline](https://docs.aws.amazon.com/controltower/latest/userguide/aft-provisioning-framework.html). 

     ```
     fields @timestamp, log_message.account_id as target_account_id, log_message.customization_request_id as customization_request_id, log_message.detail as detail, @logStream
     | sort @timestamp desc
     | filter log_message.customization_request_id == "YOUR-CUSTOMIZATION-REQUEST-ID"
     ```

1.  Depois de selecionar uma consulta, escolha um intervalo de tempo e selecione **Executar consulta**. 

# Alternativas para controle de versão do código-fonte no AFT
<a name="aft-alternative-vcs"></a>

O AFT usa AWS CodeCommit um sistema de controle de versão de código-fonte (VCS) e permite outros [CodeConnections](https://docs.aws.amazon.com//dtconsole/latest/userguide/supported-versions-connections.html)que atendam aos requisitos de seus negócios ou à arquitetura existente.

Se você estiver implantando o AFT pela primeira vez e não tiver um CodeCommit repositório existente, deverá especificar um provedor externo de VCS, como parte dos pré-requisitos de implantação do AFT.

**O AFT permite as seguintes alternativas de controle de código-fonte:**
+ GitHub
+ GitHub Servidor corporativo
+ BitBucket
+ GitLab
+ GitLab Autogerenciado

**nota**  
Se você especificar AWS CodeCommit como seu VCS, nenhuma etapa adicional será necessária. O AFT cria os repositórios `git` necessários em seu ambiente, com nomes padrão. No entanto, você pode substituir os nomes padrão do repositório para CodeCommit, conforme necessário, estar em conformidade com seus padrões organizacionais.

## Configurar um sistema alternativo de controle de versão de código-fonte (VCS personalizado) com o AFT
<a name="aft-alternate-vcs-steps"></a>

Para configurar um sistema alternativo de controle de versão de código-fonte para sua implantação do AFT, siga estas etapas.

**Etapa 1: crie repositórios `git` em um sistema de controle de versão (VCS) de terceiros compatível.**

Se você não estiver usando AWS CodeCommit, deverá criar `git` repositórios em seu ambiente de provedor de VCS terceirizado suportado pelo AFT para os seguintes itens.
+ **Solicitações de conta do AFT.** [Amostra de código disponível](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main/sources/aft-customizations-repos/aft-account-request). Consulte mais informações sobre solicitações de conta do AFT em [Provisionar uma nova conta com o AFT](aft-provision-account.md).
+ **Personalizações de provisionamento de contas do AFT.** [Amostra de código disponível](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main/sources/aft-customizations-repos/aft-account-provisioning-customizations). Consulte mais informações sobre personalizações de provisionamento de contas do AFT em [Criar sua conta do AFT, provisionando máquina de estado de personalizações](aft-provisioning-framework.md#aft-create-customizations).
+ **Personalizações globais do AFT.** [Amostra de código disponível](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main/sources/aft-customizations-repos/aft-global-customizations). Consulte mais informações sobre personalizações globais do AFT em [Personalizações da conta](aft-account-customization-options.md).
+ **Personalizações da conta do AFT.** [Amostra de código disponível](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main/sources/aft-customizations-repos/aft-account-customizations). Consulte mais informações sobre as etapas de personalização em [Personalizações da conta](aft-account-customization-options.md).

**Etapa 2: especifique os parâmetros de configuração do VCS necessários para a implantação do AFT**

Os seguintes parâmetros de entrada são necessários para configurar seu provedor de VCS como parte da implantação do AFT.
+ **vcs\$1provider**: Se você não estiver usando AWS CodeCommit, especifique o provedor VCS como`"bitbucket"`,,, ou `"github"` `"githubenterprise"``"gitlab"`, com base no seu caso de uso.
+ **github\$1enterprise\$1url**: somente para clientes GitHub corporativos, especifique a URL. GitHub 
+ **account\$1request\$1repo\$1name**: para AWS CodeCommit usuários, esse valor é definido como. `aft-account-request` Em um ambiente de provedor de VCS de terceiros compatível com o AFT, atualize esse valor de entrada com o nome real do repositório. Para BitBucket Github, GitHub Enterprise e GitLab Self-managed GitLab, o nome do repositório deve ter o formato. `[Org]/[Repo]`
+ **account\$1customizations\$1repo\$1name**: para usuários, esse valor é definido como. AWS CodeCommit `aft-account-customizations` Em um ambiente de provedor de VCS de terceiros compatível com o AFT, atualize esse valor de entrada com o nome do repositório. Para BitBucket Github, GitHub Enterprise e GitLab Self-managed GitLab, o nome do repositório deve ter o formato. `[Org]/[Repo]`
+ **account\$1provisioning\$1customizations\$1repo\$1name**: para usuários do AWS CodeCommit , esse valor é definido como `aft-account-provisioning-customizations`. Em um ambiente de provedor de VCS de terceiros compatível com o AFT, atualize esse valor de entrada com o nome do repositório. Para BitBucket Github, GitHub Enterprise e GitLab Self-managed GitLab, o nome do repositório deve ter o formato. `[Org]/[Repo]`
+ **global\$1customizations\$1repo\$1name**: para usuários, esse valor é definido como. AWS CodeCommit `aft-global-customizations` Em um ambiente de provedor de VCS de terceiros compatível com o AFT, atualize esse valor de entrada com o nome do repositório. Para BitBucket Github, GitHub Enterprise e GitLab Self-managed GitLab, o nome do repositório deve ter o formato. `[Org]/[Repo]`
+ **account\$1request\$1repo\$1branch**: a ramificação é `main` por padrão, mas o valor pode ser substituído.

Por padrão, o AFT é originado da ramificação `main` de cada repositório `git`. Você pode substituir o valor do nome da ramificação por um parâmetro de entrada adicional. Consulte mais informações sobre os parâmetros de entrada no arquivo README no [módulo do Terraform do AFT](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/blob/main/README.md#inputs).

**Para AWS CodeCommit clientes existentes**  
 Se você criar um CodeCommit repositório com um novo nome para AFT, poderá atualizar o nome do repositório atualizando os valores desses parâmetros de entrada.

**Etapa 3: Concluir a AWS CodeCommit conexão para provedores de VCS terceirizados**

Quando sua implantação é executada, o AFT cria os AWS CodeCommit repositórios necessários ou cria uma AWS CodeCommit conexão para o provedor de VCS terceirizado escolhido. No último caso, você deve entrar manualmente no console da conta de gerenciamento do AFT para concluir a CodeCommit conexão pendente. Consulte [a AWS CodeCommit documentação](https://docs.aws.amazon.com//dtconsole/latest/userguide/connections-update.html) para obter mais instruções sobre como concluir a CodeCommit conexão. 

# Mova o AFT AWS CodeCommit de outro provedor de VCS
<a name="move-a-vcs"></a>

Esta seção fornece uma visão geral de como você pode mover o AWS Control Tower Account Factory for Terraform (AFT) do AWS CodeCommit seu sistema de controle de versão (VCS) para outro provedor de VCS.

**Etapa 1.** Configure novos repositórios no VCS de sua escolha.

**Etapa 2.** Adicione esses repositórios como novos controles remotos no `git`.

**Etapa 3.** Execute `git push` no novo provedor do VCS.

**nota**  
A estrutura do repositório que você cria deve ser a mesma de AWS CodeCommit. Alterar a estrutura impede a capacidade do AFT de executar o código desejado.  
aft-account-request
 aft-account-customizations
 aft-global-customizations
aft-account-provisioning-customizations

**Etapa 4.** Na sua conta gerencial do AWS Control Tower, atualize o módulo Terraform (bootstrap) para apontar para seu provedor do VCS, conforme mostrado no exemplo a seguir:

**Exemplo: GitLab ** [com o Terraform OSS](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/blob/main/examples/gitlab%2Btf_oss/main.tf)

— Execute `terraform plan` para visualizar as alterações, em seguida, `terraform apply`.

**Etapa 5.** Conclua as etapas para concluir a configuração do CodeConnection (anteriormente conhecido como CodeStar): 

1. Fazer login na sua conta gerencial do AFT

1. Localize e conclua o pendente AWS CodeConnections para o novo provedor VCS, conforme descrito em [Atualizar uma conexão pendente](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-update.html), ou no AWS console, [`https://us-east-1.console.aws.amazon.com/codesuite/settings/connections`].

1. Referência: [Etapas de pós-implantação](https://docs.aws.amazon.com//controltower/latest/userguide/aft-post-deployment.html)

**nota**  
Os pipelines da conta retêm a fonte anterior até que a *etapa de funções* `aft-invoke-customizations` seja invocada. Essa invocação pode ser feita como parte da atualização ou como parte das próximas invocações de personalizações.

Para obter mais informações, consulte este blog: [Como migrar seu AWS CodeCommit repositório para outro provedor Git](https://aws.amazon.com/blogs/devops/how-to-migrate-your-aws-codecommit-repository-to-another-git-provider).

# Proteção de dados
<a name="aft-data-protection"></a>

O [modelo de responsabilidade compartilhada da AWS](https://aws.amazon.com//compliance/shared-responsibility-model/) se aplica à proteção de dados no AFT. Para fins de proteção de dados, aconselhamos as práticas recomendadas a seguir.
+ Siga as diretrizes de proteção de dados fornecidas pelo AWS Control Tower. Para obter detalhes, consulte [Proteção de dados no AWS Control Tower](controltower-console-encryption.md).
+ Preserve a configuração de estado do Terraform gerada no momento da implantação do AFT. Para obter detalhes, consulte [Account Factory for Terraform (AFT) do AWS Control Tower](aft-getting-started.md).
+ Alterne as credenciais confidenciais periodicamente, conforme indicado pela política de segurança da sua organização. Exemplos de segredos são tokens do Terraform, tokens `git` e assim por diante.

 **Criptografia em repouso** 

O AFT cria buckets do Amazon S3, tópicos do Amazon SNS, filas do Amazon SQS e bancos de dados do Amazon DynamoDB que são criptografados em repouso com chaves do Key Management Service.AWS As chaves do KMS criadas pelo AFT têm a rotação anual habilitada por padrão. Se você escolher as distribuições Terraform Cloud ou Terraform Enterprise do Terraform, o AFT incluirá um SecureString parâmetro AWS Systems Manager para armazenar valores de token do Terraform que são confidenciais.

O AFT usa AWS serviços descritos em [Serviços de componentes](aft-components.md) que, por padrão, são criptografados em repouso. Para obter detalhes, consulte a AWS documentação de cada AWS serviço componente do AFT e conheça as práticas de proteção de dados seguidas por cada serviço.

 **Criptografia em trânsito** 

A AFT depende dos AWS serviços descritos em [Serviços de componentes](aft-components.md) que, por padrão, empregam criptografia em trânsito. Para obter detalhes, consulte a AWS documentação de cada AWS serviço componente do AFT e conheça as práticas de proteção de dados seguidas por cada serviço.

 Para distribuições do Terraform Cloud ou do Terraform Enterprise, o AFT chama uma API de endpoint HTTPS para acessar sua organização do Terraform. Se você escolher um provedor de VCS terceirizado suportado por AWS CodeStar conexões, o AFT chamará uma API de endpoint HTTPS para acessar sua organização provedora de VCS.

# Remover uma conta do AFT
<a name="aft-remove-account"></a>

 Este tópico descreve como remover uma conta do AFT para que o pipeline do AFT pare de implantar e atualizar a conta. 

**Importante**  
 A remoção de uma conta do pipeline do AFT é irreversível e pode resultar em perda de estado. 

 Você pode remover uma conta do AFT quando quiser fechar a conta de uma aplicação retirada, isolar uma conta comprometida ou mover uma conta de uma organização para outra. 

**nota**  
 Remover uma conta do AFT é diferente de excluir uma conta do AWS Control Tower ou uma Conta da AWS. Quando você remove uma conta do AFT, o AWS Control Tower ainda gerencia a conta. Para excluir uma conta do AWS Control Tower ou Conta da AWS consulte o seguinte:   
 [Unmanage an account](https://docs.aws.amazon.com/controltower/latest/userguide/unmanage-account.html) no *Guia do usuário do AWS Control Tower*. 
 [Encerrar uma Conta da AWS](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/close-account.html) no *Guia do usuário do AWS Billing *. 

**Como remover uma conta dos pipelines do AFT**

 O procedimento a seguir descreve como remover uma conta do AFT. 

1.  **Remover conta do repositório `git` que armazena solicitações de conta** 

    No repositório `git` em que você armazena as solicitações de conta, exclua a solicitação de conta da conta que você deseja remover do AFT. 

    Quando você remove uma solicitação de conta do repositório de solicitações de conta, o AFT exclui o pipeline de personalização e os metadados da conta. Para obter mais informações, consulte as [notas de versão 1.8.0 do](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/releases/tag/1.8.0) AFT on. GitHub 

1.  ** Excluir a área de trabalho do Terraform (somente para clientes do Terraform Cloud e do Terraform Enterprise) ** 

    Exclua as personalizações globais e as áreas de trabalho de personalizações de conta da conta que deseja remover do AFT. 

1.  ** Excluir o estado do Terraform do backend do Amazon S3 ** 

    Na conta de gerenciamento do AFT, exclua todas as pastas relevantes dentro dos buckets do Amazon S3 para a conta que você deseja remover do AFT. 
**dica**  
 Nos exemplos a seguir, substitua `012345678901` pelo número do ID da conta de gerenciamento do AFT. 

**Exemplo: Terraform OSS**  
 Ao escolher o Terraform OSS, você encontra três pastas para cada conta nos buckets `aft-backend-012345678901-primary-region` e `aft-backend-012345678901-secondary-region` do Amazon S3. Essas pastas estão relacionadas ao *estado das personalizações da conta*, ao *estado do pipeline de personalizações* e ao *estado das personalizações globais*. 

**Exemplo: Terraform Cloud ou Terraform Enterprise**  
 Ao escolher o Terraform Cloud ou Terraform Enterprise, você encontra uma pasta para cada conta nos buckets `aft-backend-012345678901-primary-region` e `aft-backend-012345678901-secondary-region` do Amazon S3. Essas pastas estão relacionadas ao *estado do pipeline de personalizações*. 

# Métricas operacionais
<a name="aft-operational-metrics"></a>

Por padrão, o *Account Factory for Terraform (AFT)* envia métricas operacionais anônimas para a AWS. Usamos esses dados para entender como os clientes estão usando o AFT para que possamos melhorar a qualidade e os recursos da solução. Você pode cancelar a coleta de dados alterando um parâmetro durante a implantação do AFT. Quando a coleta é habilitada, os seguintes dados são enviados para a AWS:
+ **Solução:** o identificador específico do AFT
+ **Versão:** a versão do AFT
+ **Identificador único universal (UUID)**: identificador exclusivo gerado aleatoriamente para cada implantação do AFT
+ **Carimbo de data/hora:** carimbo de data/hora da coleta de dados
+ **Dados:** configuração do AFT e ações realizadas pelo cliente

A AWS possui os dados coletados. A coleta de dados está sujeita à [Política de privacidade da AWS](https://aws.amazon.com/privacy/).

**nota**  
As versões do AFT anteriores à 1.6.0 não relatam métricas de uso para a AWS.

Como desabilitar o relatório de métricas:
+ Defina o valor de entrada de `aft_metrics_reporting` como `false` no arquivo de configuração de entrada do Terraform, conforme mostrado no exemplo a seguir, e reimplante o AFT. Esse valor é definido como `true` por padrão, se você não defini-lo explicitamente.

Se você copiar o exemplo, lembre-se de substituir seus valores reais de ID e região pelos itens fornecidos em strings com `x`.

```
    module "control_tower_account_factory" {
    source = "aws-ia/control_tower_account_factory/aws"
    
    # Required Vars
    ct_management_account_id    = "xxxxxxxxxxx"
    log_archive_account_id      = "xxxxxxxxxxx"
    audit_account_id            = "xxxxxxxxxxx"
    aft_management_account_id   = "xxxxxxxxxxx"
    ct_home_region              = "xx-xxxx-x"
    tf_backend_secondary_region = "xx-xxxx-x"
    
    # Optional Vars
    aft_metrics_reporting = false    # to opt out, set this value to false 
    }
```

# Guia de solução de problemas do Account Factory for Terraform (AFT)
<a name="account-troubleshooting-guide"></a>

 Esta seção pode ajudar a solucionar problemas comuns que você pode encontrar ao usar o Account Factory for Terraform (AFT). 

**Topics**
+ [Problemas gerais](#w2aac44c33c45b7)
+ [Problemas relacionados ao provisionamento/registro da conta](#w2aac44c33c45b9)
+ [Problemas relacionados à invocação de personalizações](#w2aac44c33c45c11)
+ [Problemas relacionados ao fluxo de trabalho de personalização da conta](#w2aac44c33c45c13)

## Problemas gerais
<a name="w2aac44c33c45b7"></a>
+  **Cotas de AWS recursos excedidas** 

   [Se seus grupos de registros indicarem que você excedeu as cotas de AWS recursos, entre em contato com o Support AWS .](https://aws.amazon.com/premiumsupport/) O Account Factory usa Serviços da AWS com cotas de recursos que incluem AWS CodeBuild AWS Organizations, e. AWS Systems Manager Para saber mais, consulte: 
  +  [O que é o AWS CodeBuild?](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) no *CodeBuild Guia do usuário* 
  +  [O que é AWS Organizations?](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html) no *Guia do Usuário do Organizations*. 
  +  [O que é AWS Systems Manager?](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html) no Guia do *usuário do Systems Manager*. 
+  **Versão desatualizada do Account Factory** 

   Se encontrar um problema e achar que é um erro, verifique se você tem versão mais recente do Account Factory. Consulte mais informações em [Updating the Account Factory version](https://docs.aws.amazon.com/controltower/latest/userguide/update-aft-version.html). 
+  **Foram feitas alterações locais no código-fonte do Account Factory** 

   O Account Factory é um projeto de código aberto. O AWS Control Tower é compatível com o código principal do Account Factory. Se você fizer uma alteração local no código principal do Account Factory, o AWS Control Tower só permitirá sua implantação do Account Factory com base no melhor esforço. 
+ **Permissões insuficientes do perfil do Account Factory** 

   O Account Factory cria políticas e perfis do IAM para gerenciar implantações e personalizações de contas fornecidas. Se você alterar esses perfis ou políticas, o pipeline do Account Factory poderá não conseguir realizar determinadas ações. Consulte mais informações em [Required roles](https://docs.aws.amazon.com/controltower/latest/userguide/aft-required-roles.html). 
+  **Repositórios de contas não preenchidos corretamente ** 

   Certifique-se de seguir as [etapas de pós-implantação](https://docs.aws.amazon.com/controltower/latest/userguide/aft-post-deployment.html) antes de provisionar contas. 
+  **Não é detectado o desvio após alterar a UO manualmente** 
**nota**  
 O AWS Control Tower detecta o desvio automaticamente. Consulte informações sobre como resolver desvios em [Detect and resolve drift in AWS Control Tower](https://docs.aws.amazon.com/controltower/latest/userguide/drift.html#resolving-drift). 

   O desvio não é detectado quando a unidade organizacional (UO) é alterada manualmente. Isso se deve à natureza orientada por eventos do Account Factory. Quando uma solicitação de conta é enviada, o recurso que o Terraform gerencia é um item do Amazon DynamoDB, não uma conta direta. Depois que um item é alterado, a solicitação é colocada em uma fila, onde o AWS Control Tower a processa por meio do Service Catalog (o serviço que gerencia os detalhes da conta). Se você altera a UO manualmente, o desvio não é detectado porque a solicitação da conta não foi alterada. 

## Problemas relacionados ao provisionamento/registro da conta
<a name="w2aac44c33c45b9"></a>
+  **A solicitação de conta (endereço de e-mail/nome) já existe** 

   O problema geralmente resulta em uma falha do produto do Service Catalog durante o provisionamento ou como `ConditionalCheckFailedException`. 

   Você pode encontrar mais informações sobre o problema seguindo um destes procedimentos: 
  +  Revise seus grupos de registros do Terraform ou do CloudWatch Logs. 
  +  Analise as falhas que são emitidas para o tópico `aft-failure-notifications` do Amazon SNS. 
+  **Solicitação de conta criada incorretamente ** 

   Certifique-se de que sua solicitação de conta siga o esquema esperado. Para ver exemplos, consulte [terraform-aws-control\$1tower\$1account\$1factory em](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main/sources/aft-customizations-repos/aft-account-request/examples). GitHub 
+  **Cotas de recursos excedidas da AWS Organizations** 

   Certifique-se de que sua solicitação de conta não exceda as cotas AWS Organizations de recursos. Para obter mais informações, consulte [Quotas for AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_limits.html). 

## Problemas relacionados à invocação de personalizações
<a name="w2aac44c33c45c11"></a>
+  ** Conta de destino não integrada ao Account Factory ** 

   Certifique-se de que todas as contas incluídas em uma solicitação de personalização tenham sido integradas ao Account Factory. Consulte mais informações em [Update an existing account](https://docs.aws.amazon.com/controltower/latest/userguide/aft-update-account.html). 
+  **Conta que os destinos da solicitação de personalização existem na tabela `aft-request-metadata` do DynamoDB, mas não no repositório de solicitações de conta** 

   Formate sua solicitação de invocação de personalização para excluir a conta incorreta seguindo um destes procedimentos: 
  +  Na tabela `aft-request-metadata` do DynamoDB, exclua a entrada que faz referência à conta que não está mais no seu repositório de solicitações de conta. 
  +  Não use “tudo” como destino. 
  +  Não use como destino a OU à qual a conta pertence. 
  +  Não use como destino a conta diretamente. 
+  ** Usou o token incorreto para o Terraform Cloud ** 

   Verifique se configurou o token correto. O Terraform Cloud é compatível apenas com tokens baseados em equipe, não com tokens baseados em organização. 
+  **Falha ao criar a conta antes da criação do pipeline de personalização da conta; não é possível personalizar a conta** 

   Faça uma alteração na especificação da conta no repositório de solicitações de conta. Quando você faz uma alteração, como no valor de uma tag de uma conta, o Account Factory segue o caminho que tenta criar o pipeline, mesmo que ele não exista. 

## Problemas relacionados ao fluxo de trabalho de personalização da conta
<a name="w2aac44c33c45c13"></a>

 Se você estiver enfrentando problemas relacionados ao fluxo de trabalho de personalização da conta, certifique-se de que sua versão do AFT seja 1.8.0 ou posterior e exclua todas as instâncias de metadados relacionados à conta da tabela de solicitações do DynamoDB. 

 Para obter informações sobre a versão 1.8.0 do AFT, consulte a [versão 1.8.0](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/releases/tag/1.8.0) ativada. GitHub 

 Consulte mais informações sobre como verificar e atualizar sua versão do AFT em: 
+  [Check the AFT version](https://docs.aws.amazon.com/controltower/latest/userguide/check-aft-version.html) 
+  [Update the AFT version](https://docs.aws.amazon.com/controltower/latest/userguide/update-aft-version.html) 

 Você também pode rastrear e solucionar problemas de solicitações de personalização usando as consultas do Amazon CloudWatch Logs Insights para filtrar registros contendo sua conta de destino e sua solicitação de personalização. IDs Consulte mais informações em [Troubleshooting with AFT account customization request tracing](https://docs.aws.amazon.com/controltower/latest/userguide/aft-account-customization-options.html). 