

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Esegui il provisioning degli account con AWS Control Tower Account Factory for Terraform (AFT)
<a name="taf-account-provisioning"></a>

AWS Control Tower Account Factory for Terraform (AFT) adotta un GitOps modello che automatizza il processo di provisioning e aggiornamento degli account in AWS Control Tower. 

Con AFT, crei un file Terraform di richiesta di account, che contiene l'input che richiama il flusso di lavoro AFT. Al termine del provisioning e dell'aggiornamento dell'account, il flusso di lavoro AFT continua eseguendo il framework di provisioning degli account AFT e le fasi di personalizzazione dell'account. 

AFT non influisce sulle prestazioni del flusso di lavoro in AWS Control Tower. Se si effettua il provisioning di un account tramite AFT o Account Factory, si verifica lo stesso flusso di lavoro di backend.

## Prerequisiti
<a name="aft-prerequisites"></a>

**Nota**  
La fornitura di account AFT deve essere indirizzata a un'unità organizzativa (OU) AWSControl TowerBaseline abilitata in AWS Control Tower. Per i dettagli di AWSControlTowerBaseline, consulta:[Tipi di base applicabili a livello di unità organizzativa](types-of-baselines.md#ou-baseline-types).

Quando inizierai con AFT, creerai quanto segue: 
+ In AWS Control Tower crea l'unità organizzativa e quindi l'account di gestione AFT per il tuo ambiente AFT. Prendi nota dell'ID dell'account, in modo da poterlo inserire nel `main.tf` file in un secondo momento, quando distribuisci AFT con il modulo Terraform. Puoi visualizzare questo ID account nella pagina dei **dettagli di AWS Control Tower Control**. Per ulteriori informazioni, consulta la [documentazione di Terraform](https://developer.hashicorp.com/terraform/tutorials/aws/aws-control-tower-aft). 
+ Uno o più `git` repository per l'ambiente AFT completamente distribuito. Per ulteriori informazioni, consulta le [fasi successive all'implementazione di AFT](https://docs.aws.amazon.com/controltower/latest/userguide/aft-post-deployment.html). 
+ Un ambiente AFT completamente distribuito. Per ulteriori informazioni, consulta [Panoramica di AWS Control Tower Account Factory for Terraform (AFT)](https://docs.aws.amazon.com/controltower/latest/userguide/aft-overview.html) e [Deploy AWS Control Tower Account Factory for Terraform (](https://docs.aws.amazon.com/controltower/latest/userguide/aft-getting-started.html)AFT). [Consulta anche la documentazione di Terraform.](https://developer.hashicorp.com/terraform/tutorials/aws/aws-control-tower-aft) 

**Suggerimento**  
Puoi creare l'account di gestione AFT dalla console AWS Control Tower con **Create account**. Per ulteriori informazioni, consulta [Metodi di provisioning](https://docs.aws.amazon.com//controltower/latest/userguide/methods-of-provisioning.html).  
Inoltre, facoltativamente, puoi creare una cartella di modelli di account per aiutarti a definire i tuoi account aggiuntivi, nel **aft-account-customizations**repository. 

Per gli account registrati tramite Registrazione automatica:
+ La creazione di nuovi account tramite AFT continua a funzionare normalmente.
+ L'importazione di account esistenti richiede passaggi aggiuntivi:
  + Registra OU per creare i prodotti predisposti necessari prima dell'importazione.
  + Register OU emetterà `UpdateManagedAccount` eventi `CreateManagedAccount` e abiliterà le personalizzazioni AFT.

Per informazioni su Regioni AWS dove AFT presenta limitazioni di distribuzione, vedere [Limitazioni e quote in AWS Control Tower](limits.md) e. [Limitazioni di controllo](control-limitations.md)

La [documentazione di Terraform](https://developer.hashicorp.com/terraform/tutorials/aws/aws-control-tower-aft) contiene una buona panoramica su come configurare AWS Control Tower Account Factory for Terraform (AFT).

# Panoramica di AWS Control Tower Account Factory for Terraform (AFT)
<a name="aft-overview"></a>

 Account Factory for Terraform (AFT) configura una pipeline Terraform per aiutarti a fornire e personalizzare gli account in AWS Control Tower. AFT ti offre il vantaggio del provisioning degli account basato su Terraform, consentendoti al contempo di governare i tuoi account con AWS Control Tower. 

 Con AFT crei un *file Terraform di richiesta di account* per ottenere l'input che attiva il flusso di lavoro AFT per il provisioning degli account. Una volta completata la fase di fornitura dell'account, AFT esegue automaticamente una serie di passaggi prima che inizi la fase di personalizzazione dell'account. Per ulteriori informazioni, consulta [AFT Account Provisioning](https://docs.aws.amazon.com/controltower/latest/userguide/aft-provisioning-framework.html) Pipeline. 

 AFT supporta Terraform Cloud, Terraform Enterprise e Terraform Community Edition. Con AFT è possibile avviare la creazione di account utilizzando un file di input e un semplice `git push` comando e personalizzare account nuovi o esistenti. La creazione di account include tutti i vantaggi di governance di AWS Control Tower e le personalizzazioni degli account che ti aiutano a soddisfare le procedure di sicurezza standard e le linee guida di conformità della tua organizzazione. 

 AFT supporta il tracciamento delle richieste di personalizzazione dell'account. Ogni volta che si invia una richiesta di personalizzazione dell'account, AFT genera un token di tracciamento univoco che passa attraverso una macchina a AWS Step Functions stati delle personalizzazioni AFT, che registra il token come parte della sua esecuzione. Puoi quindi utilizzare le query di Amazon CloudWatch Logs Insights per cercare intervalli di timestamp e recuperare il token di richiesta. Di conseguenza, puoi vedere i payload che accompagnano il token, in modo da poter tracciare la richiesta di personalizzazione dell'account durante l'intero flusso di lavoro AFT. Per informazioni su CloudWatch Logs and Step Functions, vedere quanto segue: 
+  [Che cos'è Amazon CloudWatch Logs?](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) nella Guida per l'*utente di Amazon CloudWatch Logs* 
+  [Che cos'è AWS Step Functions?](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html) nella *Guida per gli sviluppatori di AWS Step Functions * 

AFT combina le funzionalità di altri AWS servizi come[Servizi per i componenti](aft-components.md), per creare un framework, con pipeline che implementano Terraform Infrastructure as Code (IaC). AFT ti consente di:
+ Inviare richieste di fornitura e aggiornamento dell'account in un modello GitOps 
+ Archivia i metadati dell'account e la cronologia delle verifiche
+ Applica tag a livello di account
+ Aggiungi personalizzazioni a tutti gli account, a un set di account o a singoli account
+ Abilita le opzioni delle funzionalità

AFT crea un account separato, chiamato *account di gestione AFT*, per implementare le funzionalità AFT. Prima di poter configurare AFT, devi disporre di una landing zone AWS Control Tower esistente. L'account di gestione AFT non è lo stesso dell'account di gestione AWS Control Tower.

**AFT offre flessibilità**
+ **Flessibilità per la piattaforma:** AFT supporta qualsiasi distribuzione Terraform per la distribuzione iniziale e il funzionamento continuo: Community Edition, Cloud ed Enterprise.
+ **Flessibilità per il sistema di controllo delle versioni:** AFT supporta AWS CodeCommit e utilizza fonti di controllo delle versioni alternative. AWS CodeConnections

**AFT offre opzioni di funzionalità**

È possibile abilitare diverse opzioni di funzionalità, in base alle migliori pratiche:
+ Creazione di un livello di organizzazione per la registrazione degli eventi relativi CloudTrail ai dati
+ Eliminazione del VPC AWS predefinito per gli account
+ Registrazione degli account assegnati al piano Enterprise AWS Support

**Nota**  
La pipeline AFT non è pensata per l'uso nella distribuzione di risorse, come le istanze Amazon EC2, necessarie ai tuoi account per eseguire le tue applicazioni. È destinato esclusivamente al provisioning e alla personalizzazione automatizzati degli account AWS Control Tower.

## Procedura guidata: video
<a name="terraform-provisioning-video"></a>

Questo video (7:33) descrive come distribuire account con AWS Control Tower Account Factory for Terraform. Per una migliore visualizzazione, seleziona l'icona nell'angolo in basso a destra del video per ingrandirlo a schermo intero. È disponibile la didascalia.

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


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

## Ordine delle operazioni
<a name="aft-operation"></a>

 Le operazioni AFT vengono eseguite nell'account di gestione AFT. Per un flusso di lavoro completo di provisioning dell'account, l'ordine delle fasi da sinistra a destra nel diagramma è il seguente: 

1.  Le richieste di account vengono create e inviate alla pipeline. Puoi creare e inviare più di una richiesta di account alla volta. Account Factory elabora le richieste in un first-in-first-out ordine. Per ulteriori informazioni, consulta [Inviare più richieste di account](https://docs.aws.amazon.com/controltower/latest/userguide/aft-multiple-account-requests.html). 

1.  Ogni account viene fornito. Questa fase viene eseguita nell'account di gestione AWS Control Tower. 

1.  Le personalizzazioni globali vengono eseguite nelle pipeline create per ogni account venduto. 

1.  Se le personalizzazioni sono specificate nelle richieste iniziali di provisioning dell'account, le personalizzazioni vengono eseguite solo su account mirati. Se disponi di un account già fornito, devi avviare ulteriori personalizzazioni manualmente nella pipeline dell'account. 

**AWS Control Tower Account Factory for Terraform: flusso di lavoro per il provisioning degli account**

![\[Figura: Diagramma del flusso di lavoro AFT\]](http://docs.aws.amazon.com/it_it/controltower/latest/userguide/images/high-level-aft-diagram.png)


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

Non sono previsti costi aggiuntivi per AFT. Paghi solo per le risorse distribuite da AFT, i AWS servizi abilitati da AFT e le risorse distribuite nel tuo ambiente AFT.

La configurazione AFT predefinita include l'allocazione degli AWS PrivateLink endpoint, per una maggiore protezione e sicurezza dei dati, e un gateway NAT necessario per il supporto. AWS CodeBuild Per informazioni dettagliate sui prezzi di questa infrastruttura, consulta i [AWS PrivateLink prezzi e i prezzi](https://aws.amazon.com//privatelink/pricing/) di [Amazon VPC per NAT Gateway](https://aws.amazon.com//vpc/pricing/). Contatta il rappresentante AWS del tuo account per informazioni più specifiche sulla gestione di questi costi. È possibile modificare queste impostazioni predefinite per AFT.

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

 Questa sezione è dedicata agli amministratori di ambienti AWS Control Tower che desiderano configurare Account Factory for Terraform (AFT) nel loro ambiente esistente. Descrive come configurare un ambiente Account Factory for Terraform (AFT) con un nuovo account di gestione AFT dedicato. 

**Nota**  
 Un modulo Terraform implementa AFT. Questo modulo è disponibile nel [repository AFT](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main) su GitHub e l'intero repository AFT è considerato il modulo.   
 Si consiglia di fare riferimento ai moduli AFT su GitHub invece di clonare il repository AFT. In questo modo è possibile controllare e utilizzare gli aggiornamenti dei moduli non appena sono disponibili. 

 Per informazioni dettagliate sulle versioni più recenti della funzionalità AWS Control Tower Account Factory for Terraform (AFT), consulta [il file Releases](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/releases) per questo GitHub repository.

 **Prerequisiti di distribuzione** 

Prima di configurare e avviare l'ambiente AFT, è necessario disporre delle seguenti risorse: 
+  Una regione d'origine per la tua landing zone di AWS Control Tower. Per ulteriori informazioni, consulta [How Regioni AWS work with AWS Control Tower](https://docs.aws.amazon.com/controltower/latest/userguide/region-how.html). 
+  Una landing zone di AWS Control Tower. Per ulteriori informazioni, consulta [Pianifica la tua landing zone di AWS Control Tower](https://docs.aws.amazon.com/controltower/latest/userguide/planning-your-deployment.html). 
+  Un account di gestione AFT, che puoi fornire in AWS Control Tower o fornire con altri mezzi e registrarlo in AWS Control Tower. 
+  Una versione e una distribuzione di Terraform. Per ulteriori informazioni, consulta le versioni [Terraform e AFT](https://docs.aws.amazon.com/controltower/latest/userguide/version-supported.html). 
+  Un provider VCS per il monitoraggio e la gestione delle modifiche al codice e ad altri file. Per impostazione predefinita, AFT utilizza AWS CodeCommit. Per ulteriori informazioni, vedete [Cos'è AWS CodeCommit?](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) nella *Guida AWS CodeCommit per l'utente*.

  Se state distribuendo AFT per la prima volta e non disponete di un CodeCommit repository esistente, dovete scegliere un provider VCS esterno, ad esempio o. GitHub BitBucket Per ulteriori informazioni, consulta [Alternative per il controllo della versione del codice sorgente](https://docs.aws.amazon.com/controltower/latest/userguide/aft-alternative-vcs.html) in AFT. 
+  Un ambiente di runtime in cui è possibile eseguire il modulo Terraform che installa AFT. 
+  Opzioni delle funzionalità AFT. Per ulteriori informazioni, vedete [Abilitare le opzioni delle funzionalità](https://docs.aws.amazon.com/controltower/latest/userguide/aft-feature-options.html). 

## Configura e avvia il tuo AWS Control Tower Account Factory per Terraform
<a name="aft-configure-and-launch"></a>

 I passaggi seguenti presuppongono che tu abbia familiarità con il flusso di lavoro Terraform. Puoi anche saperne di più sulla distribuzione di AFT seguendo il laboratorio [Introduzione a AFT](https://catalog.workshops.aws/control-tower/en-US/customization/aft) sul sito Web di AWS Workshop Studio. 

 **Fase 1: Avvia la landing zone di AWS Control Tower** 

 Completa i passaggi descritti in [Guida introduttiva a AWS Control Tower](https://catalog.workshops.aws/control-tower/en-US/customization/aft). Qui puoi creare l'account di gestione AWS Control Tower e configurare la tua landing zone AWS Control Tower. 

**Nota**  
 Assicurati di creare un ruolo per l'account di gestione AWS Control Tower con **AdministratorAccess**credenziali. Per ulteriori informazioni, consulta gli argomenti seguenti:   
 [https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html) 
 [AdministratorAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AdministratorAccess.html)nella *AWS Managed Policy Reference Guide* 

 **Fase 2: Creare una nuova unità organizzativa per AFT (fortemente consigliata)** 

 Ti consigliamo di creare un'unità organizzativa separata nella landing zone di AWS Control Tower. Questa unità organizzativa è il luogo in cui viene effettuato il provisioning dell'account di gestione AFT. Crea la nuova unità organizzativa e l'account di gestione AFT dal tuo account di gestione AWS Control Tower. Per ulteriori informazioni, consulta [Creare una nuova unità organizzativa](https://docs.aws.amazon.com/controltower/latest/userguide/create-new-ou.html). 

 **Fase 3: Eseguire il provisioning dell'account di gestione AFT** 

 AFT richiede il provisioning di un AWS account dedicato alle operazioni di gestione AFT. Crea l'account di gestione AFT dopo aver effettuato l'accesso all'account di gestione AWS Control Tower associato alla tua landing zone AWS Control Tower. Puoi effettuare il provisioning dell'account di gestione AFT dalla console AWS Control Tower selezionando **Crea account** nella pagina **Organizzazione** o con altri mezzi. Per ulteriori informazioni, consulta [Fornire account con AWS Service Catalog Account Factory](https://docs.aws.amazon.com/controltower/latest/userguide/provision-as-end-user.html). 

**Nota**  
Se hai creato un'unità organizzativa separata per AFT, assicurati di selezionarla quando crei l'account di gestione AFT. 

Il provisioning completo dell'account di gestione AFT può richiedere fino a 30 minuti. 

 **Fase 4: Verificare che l'ambiente Terraform sia disponibile per l'implementazione** 

 Questo passaggio presuppone che tu abbia esperienza con Terraform e disponga di procedure per l'esecuzione di Terraform. Per ulteriori informazioni, consulta [Command: init](https://developer.hashicorp.com/terraform/cli/commands/init) sul sito Web per sviluppatori. HashiCorp 

**Nota**  
 AFT supporta la versione Terraform `1.6.0` o successiva. 

 **Fase 5: configurazioni opzionali**
+ **Impostare facoltativamente la configurazione del cloud privato virtuale (VPC)**

  Il modulo AFT include un `aft_enable_vpc` parametro che specifica se AWS Control Tower effettua il provisioning delle risorse dell'account all'interno di un VPC nell'account di gestione AFT centrale. Per impostazione predefinita, il parametro è impostato su. `true` Se imposti questo parametro su`false`, AWS Control Tower distribuisce AFT *senza* l'uso di un VPC e di risorse di rete private, come gateway NAT o endpoint VPC. *La disabilitazione `aft_enable_vpc` può aiutare a ridurre i costi operativi di AFT per alcuni modelli di utilizzo.* L'aggiunta di qualsiasi configurazione VPC ha la precedenza sul parametro impostato su. `aft_enable_vpc` `false`
**Nota**  
La riattivazione del `aft_enable_vpc` parametro (commutazione del valore da `false` a`true`) può richiedere l'esecuzione del `terraform apply` comando due volte di seguito.

  Invece di effettuare il provisioning di un nuovo VPC, puoi configurare AFT per utilizzare un VPC esistente nel tuo account. Per utilizzare il tuo VPC, fornisci i seguenti parametri di configurazione VPC:
  + `aft_customer_vpc_id`- L'ID del tuo VPC esistente
  + `aft_customer_private_subnets`- Un elenco di sottoreti private IDs nel tuo VPC

  Configurazione di esempio:

  ```
  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**  
Non è consigliabile utilizzare l'opzione VPC personalizzata se si dispone di una distribuzione AFT esistente. Potresti avere dipendenze dalle funzioni Lambda CodePipeline o dipendere dalle risorse all'interno del VPC esistente sottostante.
+ **Facoltativamente, configura il nome del progetto Terraform**

  È possibile personalizzare il nome del progetto Terraform utilizzato da AFT impostando il parametro. `terraform_project_name` Per impostazione predefinita, AFT inserisce l'implementazione nel progetto «predefinito» in Terraform Cloud o Terraform Enterprise.

  Configurazione di esempio:

  ```
  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**  
Questo parametro è applicabile solo alle implementazioni Terraform Enterprise o Terraform Cloud.
+ **Facoltativamente, applica tag personalizzati alle risorse AFT**

  È possibile applicare tag personalizzati a tutte le risorse AFT utilizzando il `tags` parametro. Questi tag aiutano nell'organizzazione delle risorse, nell'allocazione dei costi e nel controllo degli accessi.

  Configurazione di esempio:

  ```
  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...
  }
  ```

  Questi tag vengono applicati a tutte le risorse create dal modulo AFT. AFT aggiunge automaticamente un `managed_by = "AFT"` tag a tutte le risorse, che non può essere sovrascritto dai tag personalizzati.
**Nota**  
I tag personalizzati possono essere aggiunti in qualsiasi momento, non solo durante la distribuzione iniziale.
+ **È possibile applicare una chiave di crittografia AWS KMS gestita dal cliente (CMK) ai gruppi di CloudWatch log e agli argomenti SNS**

  Per abilitare la crittografia KMS CMK per i gruppi di log e gli argomenti SNS, imposta le variabili and. `cloudwatch_log_group_enable_cmk_encryption` `sns_topic_enable_cmk_encryption`

  Se attivi queste impostazioni, AFT utilizza la CMK esistente, *alias/aft*, per crittografare i log e gli argomenti SNS. CloudWatch Questo CMK viene creato quando AFT viene distribuito nell'account di gestione AFT e può essere applicato a gruppi di log e argomenti SNS. 
  + Se la variabile `cloudwatch_log_group_enable_cmk_encryption` è impostata su **true**, i gruppi di CloudWatch log per AFT vengono crittografati utilizzando CMK. Se la variabile è impostata su **false**, che è il valore predefinito, i registri vengono crittografati utilizzando la [crittografia lato server con l'impostazione predefinita dei CloudWatch log](https://docs.aws.amazon.com//AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html).
  +  Se la variabile `sns_topic_enable_cmk_encryption` è impostata su **true**, le notifiche inviate agli argomenti AFT SNS (*aft-notifications* and *aft-failure-notifications*) vengono crittografate utilizzando CMK. Se la variabile è impostata su **false**, che è il valore predefinito, i messaggi SNS vengono crittografati con la chiave gestita da AWS:. *alias/aws/sns* Per ulteriori informazioni, consulta i termini chiave [SSE](https://docs.aws.amazon.com//sns/latest/dg/sns-server-side-encryption.html#sse-key-terms).
+ **Facoltativamente, modifica il tipo di elaborazione CodeBuild **

  Durante la distribuzione, per modificare il tipo di calcolo utilizzato da AFT CodeBuild, imposta la variabile. `aft_codebuild_compute_type`

  Per informazioni sui tipi di calcolo accettati, consulta [Informazioni sui tipi di ambiente on-demand](https://docs.aws.amazon.com//codebuild/latest/userguide/build-env-ref-compute-types.html#environment.types). Il tipo di calcolo predefinito è. `BUILD_GENERAL1_MEDIUM` 
+ **Configura opzionalmente OpenID Connect (OIDC) per Terraform**

  I clienti che utilizzano Terraform Enterprise o HCP Terraform (precedentemente Terraform Cloud) possono utilizzare i token di identità Workload di Terraform (o credenziali dinamiche del provider), basati sul protocollo OIDC, per connettere e autenticare in modo sicuro gli spazi di lavoro con AFT.

  È possibile `true` abilitare l'integrazione OIDC per gli spazi di lavoro AFT impostando il parametro su. `terraform_oidc_integration` Il valore del parametro è `false` per impostazione predefinita. Quando si abilita questo parametro, i `terraform_oidc_hostname` parametri `terraform_oidc_aws_audience` and devono essere esaminati e configurati se i valori predefiniti (`aws.workload.identity`e`app.terraform.io`, rispettivamente) non corrispondono all'ambiente in uso.

  Configurazione di esempio:

  ```
  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**  
Questo parametro è applicabile solo alle implementazioni Terraform Enterprise o HCP Terraform.
**Nota**  
Se attualmente stai utilizzando un provider OIDC per Terraform nell'account di gestione AFT, devi eliminare quel provider prima di aderire a questa integrazione. AFT ricreerà quel provider per te al momento della distribuzione.

**Passaggio 6: chiama il modulo Account Factory for Terraform per implementare AFT** 

 Chiama il modulo AFT con il ruolo che hai creato per l'account di gestione AWS Control Tower con **AdministratorAccess**credenziali. AWS Control Tower fornisce un modulo Terraform tramite l'account di gestione AWS Control Tower, che stabilisce tutta l'infrastruttura necessaria per orchestrare le richieste di AWS Control Tower Account Factory. 

 [È possibile visualizzare il modulo AFT nel repository AFT su.](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main) GitHub L'intero GitHub repository è considerato il modulo AFT. Fate riferimento al [file README](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/blob/main/README.md) per informazioni sugli input necessari per eseguire il modulo AFT e distribuire AFT. [In alternativa, puoi visualizzare il modulo AFT nel registro Terraform.](https://registry.terraform.io/modules/aws-ia/control_tower_account_factory/aws/latest) 

 Se nel tuo ambiente disponi di pipeline stabilite per la gestione di Terraform, puoi integrare il modulo AFT nel tuo flusso di lavoro esistente. Altrimenti, esegui il modulo AFT da qualsiasi ambiente autenticato con le credenziali richieste. 

 Il timeout causa il fallimento della distribuzione. Ti consigliamo di utilizzare le credenziali AWS Security Token Service (STS) per assicurarti di avere un timeout sufficiente per una distribuzione completa. Il timeout minimo per le AWS STS credenziali è di 60 minuti. *Per ulteriori informazioni, consulta [Credenziali di sicurezza temporanee in IAM nella Guida](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) per l'AWS Identity and Access Management utente.* 

**Nota**  
 Potresti attendere fino a 30 minuti prima che AFT completi la distribuzione tramite il modulo Terraform. 

 **Passaggio 7: gestire il file di stato Terraform** 

 Un file di stato Terraform viene generato quando si distribuisce AFT. Questo artefatto descrive lo stato delle risorse create da Terraform. Se prevedi di aggiornare la versione AFT, assicurati di conservare il file di stato Terraform o di configurare un backend Terraform utilizzando Amazon S3 e DynamoDB. Il modulo AFT non gestisce uno stato Terraform di backend. 

**Nota**  
 Sei responsabile della protezione del file di stato di Terraform. Alcune variabili di input potrebbero contenere valori sensibili, come una `ssh` chiave privata o un token Terraform. A seconda del metodo di distribuzione, questi valori possono essere visualizzati come testo semplice nel file di stato Terraform. Per ulteriori informazioni, consulta [Dati sensibili nello stato sul HashiCorp sito](https://www.terraform.io/docs/language/state/sensitive-data.html) Web. 

# Fasi successive all'implementazione
<a name="aft-post-deployment"></a>

Una volta completata l'implementazione dell'infrastruttura AFT, segui questi passaggi aggiuntivi per completare il processo di configurazione e prepararti al provisioning degli account. 

**Fase 1: Completare CodeConnections con il provider VCS desiderato**

Se scegliete un provider VCS di terze parti, AFT lo stabilisce e voi CodeConnections lo confermate. Fate riferimento [Alternative per il controllo della versione del codice sorgente in AFT](aft-alternative-vcs.md) a come configurare AFT con il vostro VCS preferito.

La fase iniziale per stabilire la AWS CodeStar connessione viene eseguita da AFT. È necessario confermare la connessione.

**Fase 2: Compila ogni repository**

AFT richiede la gestione di [quattro repository:](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main/sources/aft-customizations-repos)

1. Richieste di account: questo repository gestisce l'inserimento o l'aggiornamento delle richieste di account. [Esempi disponibili.](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main/sources/aft-customizations-repos/aft-account-request) Per ulteriori informazioni sulle richieste di account AFT, vedere[Fornisci un nuovo account con AFT](aft-provision-account.md).

1. Personalizzazioni del provisioning degli account AFT: questo repository gestisce le personalizzazioni che vengono applicate a tutti gli account creati e gestiti con AFT, prima di iniziare la fase di personalizzazione globale. [Esempi disponibili.](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main/sources/aft-customizations-repos/aft-account-provisioning-customizations) Per creare personalizzazioni per il provisioning degli account AFT, vedere. [Crea il tuo account AFT (provisioning customizations state machine)](aft-provisioning-framework.md#aft-create-customizations)

1. Personalizzazioni globali: questo repository gestisce le personalizzazioni applicate a tutti gli account creati e gestiti con AFT. [Esempi disponibili.](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main/sources/aft-customizations-repos/aft-global-customizations) Per creare personalizzazioni globali AFT, vedere[Applica personalizzazioni globali](aft-account-customization-options.md#aft-global-customizations).

1. Personalizzazioni degli account: questo repository gestisce le personalizzazioni applicate solo a account specifici creati e gestiti con AFT. [Esempi disponibili.](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main/sources/aft-customizations-repos/aft-account-customizations) Per creare personalizzazioni dell'account AFT, vedere[Applica le personalizzazioni dell'account](aft-account-customization-options.md#aft-account-customizations).

 AFT prevede che ciascuno di questi repository segua una struttura di directory specifica. [I modelli utilizzati per popolare i repository e le istruzioni che descrivono come compilare i modelli sono disponibili nel modulo Account Factory for Terraform nel repository github AFT.](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main/sources/aft-customizations-repos) 

# Fornisci un nuovo account con AFT
<a name="aft-provision-account"></a>

*Questa sezione presuppone che abbiate già configurato AFT e il vostro account di gestione AFT e che stiate fornendo account aggiuntivi.*

Per fornire un nuovo account con AFT, crea un file Terraform di richiesta di account. Questo file contiene l'input per i parametri nel **aft-account-request**repository. Dopo aver creato un file Terraform per la richiesta di account, inizia a elaborare la richiesta dell'account eseguendo. `git push` Questo comando richiama l'`ct-aft-account-request`operazione nel AWS CodePipeline, che viene creata nell'account di gestione AFT al termine del provisioning dell'account. Per ulteriori informazioni, vedete [AFT Account](https://docs.aws.amazon.com/controltower/latest/userguide/aft-provisioning-framework.html) Provisioning Pipeline. 

## Parametri del file Terraform di richiesta dell'account
<a name="w2aac44c33c15b7"></a>

 È necessario includere i seguenti parametri nel file Terraform di richiesta dell'account. È possibile visualizzare [un esempio di file Terraform di richiesta di account su](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main/sources/aft-customizations-repos/aft-account-request). GitHub 
+  Il valore di `module name` deve essere univoco per la Account AWS richiesta. 
+  Il valore di `module source` è il percorso del modulo Terraform di richiesta dell'account fornito da AFT. 
+  Il valore di `control_tower_parameters` acquisisce l'input richiesto per creare un account AWS Control Tower. Il valore include i seguenti campi di input: 
  + `AccountEmail`
  + `AccountName`
  +  `ManagedOrganizationalUnit` 
  + `SSOUserEmail`
  + `SSOUserFirstName`
  + `SSOUserLastName`

**Nota**  
 L'input fornito non `control_tower_parameters` può essere modificato durante il provisioning dell'account.   
 I formati supportati per la specificazione `ManagedOrganizationalUnit` nel **aft-account-request**repository includono e. `OUName` `OUName (OU-ID)` 
+  `account_tags`acquisisce chiavi e valori definiti dall'utente, che possono essere etichettati in Account AWS base a criteri aziendali. *Per ulteriori informazioni, consulta [Taggare AWS Organizations le risorse nella Guida per](https://docs.aws.amazon.com//organizations/latest/userguide/orgs_tagging.html) l'AWS Organizations utente.* 
+  Il valore di `change_management_parameters` acquisisce informazioni aggiuntive, ad esempio il motivo per cui è stata creata una richiesta di account e chi ha avviato la richiesta di account. Il valore include i seguenti campi di input: 
  + `change_reason`
  + `change_requested_by`
+  `custom_fields`**acquisisce metadati aggiuntivi con chiavi e valori che vengono distribuiti come parametri SSM nell'account fornito in/-fields/. aft/account-request/custom** Puoi fare riferimento a questi metadati durante le personalizzazioni dell'account per implementare i controlli appropriati. Ad esempio, un account soggetto alla conformità normativa potrebbe implementarne altri. Regole di AWS Config I metadati con cui raccogli `custom_fields` possono richiedere un'ulteriore elaborazione durante il provisioning e l'aggiornamento dell'account. Se un campo personalizzato viene rimosso dalla richiesta dell'account, il campo personalizzato viene rimosso dall'archivio dei parametri SSM per l'account fornito. 
+  (Facoltativo) `account_customizations_name` acquisisce la cartella del modello di account nel repository. **aft-account-customizations** Per ulteriori informazioni, consulta Personalizzazioni [dell'account](https://docs.aws.amazon.com/controltower/latest/userguide/aft-account-customization-options.html). 

# Invia più richieste di account
<a name="aft-multiple-account-requests"></a>

 AFT elabora le richieste di account una alla volta, ma è possibile inviare più richieste di account alla pipeline AFT. Quando inviate più richieste di account alla pipeline AFT, AFT mette in coda ed elabora le richieste di account secondo un ordine di primo ingresso e primo di uscita. 

**Nota**  
 È possibile creare un file Terraform di richiesta di account per ogni account di cui si desidera che AFT fornisca o raggruppi più richieste di account in un singolo file Terraform di richiesta di account. 

# Aggiorna un account esistente
<a name="aft-update-account"></a>

**Compatibilità con registrazione automatica**  
Se la tua organizzazione utilizza la registrazione automatica per la registrazione automatica degli account, tieni presente che AFT ha delle limitazioni all'importazione di questi account. Gli account registrati tramite Auto Enroll non dispongono dei prodotti forniti dal Service Catalog richiesti dal flusso di lavoro di importazione di AFT.  
**Soluzione alternativa:** utilizzate la funzione Register OU per creare prodotti predisposti per gli account registrati automaticamente. Ciò abilita gli eventi del ciclo di vita necessari per le personalizzazioni AFT.

 È possibile aggiornare gli account forniti da AFT modificando le richieste di account inviate in precedenza ed eseguendoli. `git push` Questo comando richiama il flusso di lavoro per il provisioning degli account e può elaborare le richieste di aggiornamento degli account. È possibile aggiornare l'input per`ManagedOrganizationalUnit`, che fa parte del valore richiesto per. `control_tower_parameters`

`ManagedOrganizationalUnit`è l'unico parametro che può essere aggiornato, tra tutti`control_tower_parameters`. Tuttavia, è possibile aggiornare altri parametri che fanno parte del file Terraform di richiesta dell'account, ad esempio`custom_fields`. Per ulteriori informazioni, consulta [Fornire un nuovo account con AFT](https://docs.aws.amazon.com/controltower/latest/userguide/aft-provision-account.html). 

Ad esempio, per aggiornare il nome o l'indirizzo e-mail di un account AFT, è possibile definire le specifiche come `custom_fields` nel file Account Request. In questo modo, create parametri SSM, che potete passare alla `aws_account_alternate_contact` risorsa durante le personalizzazioni globali.

```
resource "aws_account_alternate_contact" "operations" {

  alternate_contact_type = "OPERATIONS"

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

È possibile aggiungere campi simili per altri tipi di contatto, ad esempio operazioni e sicurezza. In Personalizzazioni globali, aggiungi ricerche di dati per ogni campo personalizzato, per assicurarti di cercare tutti i campi che hai creato in Account Request:

```
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"
            }
```

Infine, sempre nel file Global Customizations, crea le risorse di contatto alternative. Dovrai definire uno di questi blocchi per ogni tipo di contatto creato in Account Request:

```
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**  
 L'input fornito non `control_tower_parameters` può essere modificato durante il provisioning dell'account.   
 I formati supportati per la specificazione `ManagedOrganizationalUnit` nel **aft-account-request**repository includono e. `OUName` `OUName (OU-ID)` 

## Aggiorna un account che AFT non fornisce
<a name="aft-update-account-not-provision"></a>

 Puoi aggiornare gli account AWS Control Tower creati al di fuori di AFT specificando l'account nel **aft-account-request**repository. 

**Nota**  
 Assicurati che tutti i dettagli dell'account siano corretti e coerenti con l'organizzazione AWS Control Tower e il rispettivo prodotto AWS Service Catalog fornito. 

**Prerequisiti per l'aggiornamento di un sistema esistente con AFT Account AWS**
+  Account AWS Devono essere registrati in AWS Control Tower. 
+  Account AWS Devono far parte dell'organizzazione AWS Control Tower. 

# Versioni Terraform e AFT
<a name="version-supported"></a>

Account Factory for Terraform (AFT) supporta la versione Terraform `1.6.0` o successiva. È necessario fornire una versione Terraform come parametro di input per il processo di distribuzione AFT, come mostrato nell'esempio che segue.

```
terraform_version = "1.6.0"
```

## Distribuzioni Terraform
<a name="terraform-distributions"></a>

AFT supporta tre distribuzioni Terraform:
+ Terraform Community Edition
+ Terraform Cloud
+ Terraform Enterprise

Queste distribuzioni sono spiegate nelle sezioni che seguono. Fornisci la distribuzione Terraform di tua scelta come parametro di input durante il processo di bootstrap AFT. Per ulteriori informazioni sulla distribuzione di AFT e sui parametri di input, vedere. [Implementa AWS Control Tower Account Factory per Terraform (AFT)](aft-getting-started.md)

Se scegli le distribuzioni Terraform Cloud o Terraform Enterprise, il [token API](https://www.terraform.io/cloud-docs/users-teams-organizations/api-tokens) che specifichi `terraform_token ` deve essere un token API User o Team. Un token Organization non è supportato per tutti i requisiti. APIs Per motivi di sicurezza, è necessario evitare di registrare il valore di questo token nel sistema di controllo della versione (VCS) assegnando una [variabile terraform](https://www.terraform.io/cloud-docs/workspaces/variables/managing-variables), come mostrato nell'esempio che segue.

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

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

Quando selezioni Terraform Community Edition come distribuzione, AFT gestisce il backend Terraform per te nell'account di gestione AFT. AFT scarica la versione `terraform-cli` di Terraform specificata per eseguirla durante le fasi di implementazione di AFT e la pipeline AFT. La configurazione dello stato Terraform risultante viene archiviata in un bucket Amazon S3, denominato con il seguente modulo:

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

AFT crea anche un bucket Amazon S3 che replica la configurazione dello stato di Terraform in un altro Regione AWS, per scopi di disaster recovery, denominato con il seguente modulo:

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

Ti consigliamo di abilitare l'autenticazione a più fattori (MFA) per le funzioni di eliminazione su questi bucket Amazon S3 dello stato Terraform. [Per saperne di più su Terraform Community Edition, consulta la documentazione di Terraform.](https://www.terraform.io/docs/cli/index.html)

Per selezionare Terraform OSS come distribuzione, fornisci il seguente parametro di input:

```
terraform_distribution = "oss"
```

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

 Quando selezionate Terraform Cloud come distribuzione, AFT crea spazi di lavoro per i seguenti componenti nella vostra organizzazione Terraform Cloud, che avvia un flusso di lavoro basato sulle API. 
+  Richiesta di account 
+  Personalizzazioni AFT per gli account forniti da AFT 
+  Personalizzazioni degli account per gli account che prevedono AFT 
+  Personalizzazioni globali per gli account forniti da AFT 

 Terraform Cloud gestisce la configurazione dello stato Terraform risultante. 

 Quando selezioni Terraform Cloud come distribuzione, fornisci i seguenti parametri di input: 
+  `terraform_distribution = "tfc"` 
+  `terraform_token`— Questo parametro contiene il valore del token Terraform Cloud. AFT lo contrassegna come sensibile e memorizza il valore come stringa sicura nell'archivio dei parametri SSM nell'account di gestione AFT. Ti consigliamo di ruotare periodicamente il valore del token Terraform in base alle politiche di sicurezza e alle linee guida di conformità della tua azienda. Il token Terraform deve essere un token API a livello di utente o team. I token organizzativi non sono supportati. 
+  `terraform_org_name`— Questo parametro contiene il nome della tua organizzazione Terraform Cloud. 

**Nota**  
 Non sono supportate più implementazioni AFT in una singola organizzazione Terraform Cloud. 

 [Per informazioni su come configurare Terraform Cloud, consulta la documentazione di Terraform.](https://www.terraform.io/docs/cloud/index.html) 

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

Quando selezioni Terraform Enterprise come distribuzione, AFT crea spazi di lavoro per i seguenti componenti nella tua organizzazione Terraform Enterprise e attiva un flusso di lavoro basato sull'API per le esecuzioni Terraform risultanti.
+ Richiesta di account
+ Personalizzazioni del provisioning degli account AFT per gli account forniti da AFT
+ Personalizzazioni degli account per gli account forniti da AFT
+ Personalizzazioni globali per gli account forniti da AFT

La configurazione dello stato Terraform risultante è gestita dalla configurazione di Terraform Enterprise.

Per selezionare Terraform Enterprise come distribuzione, fornisci i seguenti parametri di input:
+  `terraform_distribution = "tfe"` 
+ `terraform_token`— Questo parametro contiene il valore del token Terraform Enterprise. AFT contrassegna il suo valore come sensibile e lo memorizza come stringa sicura nell'archivio dei parametri SSM, nell'account di gestione AFT. Ti consigliamo di ruotare periodicamente il valore del token Terraform, in base alle politiche di sicurezza e alle linee guida di conformità della tua azienda.
+ `terraform_org_name`— Questo parametro contiene il nome della tua organizzazione Terraform Enterprise.
+ `terraform_api_endpoint`— Questo parametro contiene l'URL del tuo ambiente Terraform Enterprise. Il valore di questo parametro deve essere nel formato:

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

Consulta [la documentazione di Terraform](https://www.terraform.io/docs/enterprise/index.html) per saperne di più su come configurare Terraform Enterprise.

# Controlla la versione AFT
<a name="check-aft-version"></a>

Puoi controllare la versione AFT distribuita interrogando la chiave AWS SSM Parameter Store:

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

Se si utilizza il metodo del registro, è possibile aggiungere la versione.

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

È possibile visualizzare ulteriori informazioni sulle versioni AFT nel [repository AFT](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main).

# Aggiornate la versione AFT
<a name="update-aft-version"></a>

Accedi all'account di gestione AWS Control Tower per avviare questo aggiornamento AFT.

Puoi aggiornare la versione AFT distribuita estraendola dal ramo del `main` repository:

```
terraform get -update
```

Una volta completato il pull, puoi eseguire nuovamente il piano Terraform o eseguire apply per aggiornare l'infrastruttura AFT con le ultime modifiche.

# Abilita le opzioni delle funzionalità
<a name="aft-feature-options"></a>

AFT offre opzioni di funzionalità basate sulle migliori pratiche. È possibile attivare queste funzionalità, tramite i flag di funzionalità, durante l'implementazione di AFT. [Fornisci un nuovo account con AFT](aft-provision-account.md)Per ulteriori informazioni sui parametri di configurazione di input AFT, fare riferimento a.

Queste funzionalità non sono abilitate per impostazione predefinita. È necessario abilitarle in modo esplicito nel proprio ambiente.

**Topics**
+ [

## AWS CloudTrail eventi relativi ai dati
](#cloudtrail-data-event-option)
+ [

## AWS Piano Enterprise Support
](#enterprise-support-option)
+ [

## Eliminare il AWS VPC predefinito
](#delete-default-vpc-option)

## AWS CloudTrail eventi relativi ai dati
<a name="cloudtrail-data-event-option"></a>

Se abilitata, l'opzione AWS CloudTrail data events configura queste funzionalità.
+ Crea un Organization Trail nell'account di gestione AWS Control Tower, per CloudTrail
+ Attiva la registrazione per gli eventi relativi ai dati di Amazon S3 e Lambda
+ Crittografa ed esporta tutti gli eventi CloudTrail relativi ai dati in un bucket `aws-aft-logs-*` S3 nell'account AWS Control Tower Log Archive, con crittografia AWS KMS 
+ Attiva l'impostazione di convalida del **file di registro**

Per abilitare questa opzione, imposta il seguente flag di funzionalità su **True** nella configurazione di input della distribuzione AFT.

```
aft_feature_cloudtrail_data_events
```

**Prerequisito**

Prima di abilitare questa opzione di funzionalità, assicuratevi che l'accesso affidabile per AWS CloudTrail sia abilitato nella vostra organizzazione. 

**Per verificare lo stato dell'accesso affidabile per CloudTrail :**

1. Vai alla AWS Organizations console.

1. Scegli **Servizi > CloudTrail**.

1. Quindi seleziona **Abilita accesso affidabile** in alto a destra, se necessario.

Potresti ricevere un messaggio di avviso che ti consiglia di utilizzare la AWS CloudTrail console, ma in questo caso ignora l'avviso. AFT crea il percorso come parte dell'attivazione di questa opzione di funzionalità, dopo aver consentito l'accesso attendibile. Se l'accesso affidabile non è abilitato, riceverai un messaggio di errore quando AFT tenta di creare il percorso per gli eventi relativi ai dati.

**Nota**  
Questa impostazione funziona a livello di organizzazione. L'attivazione di questa impostazione ha effetto su tutti gli account AWS Organizations, indipendentemente dal fatto che siano gestiti da AFT o meno. Tutti i bucket presenti nell'account AWS Control Tower Log Archive al momento dell'attivazione sono esclusi dagli eventi relativi ai dati di Amazon S3. Per ulteriori informazioni, consulta [la Guida per l' AWS CloudTrail utente](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html). CloudTrail

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

Quando questa opzione è abilitata, la pipeline AFT attiva il piano AWS Enterprise Support per gli account forniti da AFT.

AWS per impostazione predefinita, gli account hanno il piano AWS Basic Support abilitato. AFT fornisce l'iscrizione automatica al livello di supporto aziendale, per gli account forniti da AFT. Il processo di provisioning apre un ticket di supporto per l'account, richiedendo che venga aggiunto al piano Enterprise AWS Support.

Per abilitare l'opzione Enterprise Support, imposta il seguente flag di funzionalità su **True** nella configurazione di input della distribuzione AFT.

```
aft_feature_enterprise_support=false
```

[Consulta Compare AWS Support Plans](https://aws.amazon.com/premiumsupport/plans/) per saperne di più sui piani di AWS supporto.

**Nota**  
Per consentire il funzionamento di questa funzionalità, è necessario registrare l'account del pagatore nel piano Enterprise Support.

## Eliminare il AWS VPC predefinito
<a name="delete-default-vpc-option"></a>

 Quando abiliti questa opzione, AFT elimina tutte le AWS impostazioni predefinite VPCs nell'account di gestione AFT e in tutto Regioni AWS, anche se non sono state distribuite le risorse AWS Control Tower in tali account. Regioni AWS

 AFT non elimina VPCs automaticamente le AWS impostazioni predefinite per nessun account AWS Control Tower di cui AFT fornisce o per AWS gli account esistenti registrati in AWS Control Tower tramite AFT. 

Per impostazione predefinita, i nuovi AWS account vengono creati con un VPC configurato in ciascuno Regione AWS di essi. La tua azienda potrebbe avere procedure standard per la creazione VPCs, che richiedono di eliminare il VPC AWS predefinito ed evitare di abilitarlo, in particolare per l'account di gestione AFT. 

Per abilitare questa opzione, imposta il seguente flag di funzionalità su **True** nella configurazione di input della distribuzione AFT.

```
aft_feature_delete_default_vpcs_enabled
```

Di seguito è riportato un esempio di configurazione di input di distribuzione 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
}
```

Consulta [VPC predefinito e sottoreti predefinite](https://docs.aws.amazon.com/vpc/latest/userguide/default-vpc.html) per saperne di più sulle impostazioni predefinite. VPCs

# Considerazioni sulle risorse per AWS Control Tower Account Factory for Terraform
<a name="aft-resources"></a>

Quando configuri una landing zone utilizzando AWS Control Tower Account Factory for Terraform, all'interno dei tuoi AWS account vengono creati diversi tipi di AWS risorse.

**Cerca risorse**
+ È possibile utilizzare i tag per cercare l'elenco più aggiornato di risorse AFT. La coppia chiave-valore per la ricerca è:

  ```
  Key: managed_by | Value: AFT
  ```
+ Per i servizi dei componenti che non supportano i tag, è possibile individuare le risorse con una ricerca `aft` nei nomi delle risorse.

**Nota**  
AFT non crea alcuna risorsa AWS di Backup nell'account di gestione.

**Tabelle delle risorse create inizialmente, per account**


**Account di gestione AWS Control Tower Account Factory per Terraform**  

| **AWS service** | **Tipo di risorsa** | **Nome risorsa** | 
| --- | --- | --- | 
| AWS Identity and Access Management | Roles |  AWSAFTAdmin AWSAFTExecution AWSAFTService ct-aft-\$1 aft-\$1 codebuild\$1trigger\$1role python-layer-builder-aft-common-\$1 | 
| AWS Identity and Access Management | Policy | aft-\$1 | 
| CodeCommit | Repositories | aft-\$1 | 
| CodeBuild | Progetti di compilazione | aft-\$1 ct-aft-\$1 python-layer-builder-aft-common-\$1  | 
| Codice Pipeline | Pipelines | **YourAccountId**-customizations-pipeline | 
| Simple Storage Service (Amazon S3) | Bucket | aft-\$1  | 
| Lambda | Funzioni | aft-\$1 | 
| Lambda | Livelli | aft-common-\$1 | 
| DynamoDB | Tabelle | aft-request aft-request-audit aft-request-metadata aft-controltower-events | 
| Step Functions | Macchine statali | aft-account-provisioning-customizations aft-account-provisioning-framework aft-feature-options aft-invoke-customizations | 
| VPC | VPC | aft-management-vpc | 
| Amazon SNS | Argomenti | aft-notifications aft-failure-notifications | 
| Amazon EventBridge | Autobus per eventi | aft-events-from-ct-management | 
| Amazon EventBridge | Regole dell'evento | aft-account-provisioning-customizations-trigger aft-account-request-codepipeline-trigger aft-lambda-account-request-processor aft-controltower-event-logger | 
| Servizio di gestione delle chiavi (KMS) | Chiavi gestite dal cliente | aft-backend-\$1-kms-key aft | 
| AWS Systems Manager | Archivio dei parametri | /aft/\$1  | 
| Amazon SQS | Queues | aft-account-request.fifo aft-account-request-dlg.fifo | 
| CloudWatch | Gruppi di log | /aws/\$1/ct-aft-\$1 /aws/\$1/aft-\$1 /aws/codebuild/python-layer-builder-aft-common-\$1 | 
| AWS Backup | Vault | aft-controltower-backup-vault | 
| AWS Backup | Piani | aft-controltower-backup-plan | 
| AWS Support Center (opzionale) | Piani di supporto | Enterprise | 


**AWS account forniti tramite AWS Control Tower Account Factory per Terraform**  

| **AWS service** | **Tipo di risorsa** | **Nome risorsa** | 
| --- | --- | --- | 
| AWS Identity and Access Management | Roles | AWSAFTExecution | 
| AWS Support Center (opzionale) | Piani di supporto | Enterprise | 


**Account di gestione AWS Control Tower**  

| **AWS service** | **Tipo di risorsa** | **Nome risorsa** | 
| --- | --- | --- | 
| AWS Identity and Access Management | Roles |  AWSAFTExecution AWSAFTService aft-controltower-events-rule  | 
| AWS Systems Manager | Archivio dei parametri | /aft/\$1 | 
| EventBridge | Regole degli eventi | aft-capture-ct-events | 
| CloudTrail (Facoltativo) | Trail | aws-aft-CustomizationsCloudTrail | 
| AWS Support Center (opzionale) | Piani di supporto | Enterprise | 


**Account di archiviazione dei log AWS Control Tower**  

| **AWS service** | **Tipo di risorsa** | **Nome risorsa** | 
| --- | --- | --- | 
| AWS Identity and Access Management | Roles |  AWSAFTExecution AWSAFTService  | 
| Servizio di gestione delle chiavi (KMS) | Chiavi gestite dal cliente | aft | 
| Simple Storage Service (Amazon S3) | Bucket | aws-aft-logs-\$1 aws-aft-s3-access-logs-\$1 | 
| AWS Support Center (opzionale) | Piani di supporto | Enterprise | 


**Account di audit AWS Control Tower**  

| **AWS service** | **Tipo di risorsa** | **Nome risorsa** | 
| --- | --- | --- | 
| AWS Identity and Access Management | Roles |  AWSAFTExecution AWSAFTService  | 
| AWS Support Center (opzionale) | Piani di supporto | Enterprise | 

# Ruoli richiesti
<a name="aft-required-roles"></a>

In generale, i ruoli e le politiche fanno parte della gestione delle identità e degli accessi (IAM) in. AWS Per ulteriori informazioni, consulta la [https://docs.aws.amazon.com//IAM/latest/UserGuide/introduction.html](https://docs.aws.amazon.com//IAM/latest/UserGuide/introduction.html).

AFT crea diversi ruoli e policy IAM nella gestione AFT e negli account di gestione AWS Control Tower per supportare le operazioni della pipeline AFT. Questi ruoli vengono creati sulla base del modello di accesso con privilegi minimi, che limita le autorizzazioni ai set di azioni e risorse minimamente richiesti per ogni ruolo e policy. A questi ruoli e politiche viene assegnata una `key:value` coppia di AWS tag, per quanto riguarda ` managed_by:AFT` l'identificazione. 

Oltre a questi ruoli IAM, AFT crea tre ruoli essenziali:
+ il `AWSAFTAdmin` ruolo
+ il `AWSAFTExecution` ruolo
+ il `AWSAFTService` ruolo

Questi ruoli sono spiegati nelle sezioni seguenti.

**Il AWSAFTAdmin ruolo, spiegato**

Quando si distribuisce AFT, il `AWSAFTAdmin` ruolo viene creato nell'account di gestione AFT. Questo ruolo consente alla pipeline AFT di assumere il `AWSAFTExecution` ruolo negli account forniti da AWS Control Tower e AFT, eseguendo quindi azioni relative al provisioning e alle personalizzazioni degli account.

Ecco la policy in linea (artefatto JSON) allegata al ruolo: `AWSAFTAdmin` 

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

****  

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

------

Il seguente artefatto JSON mostra la relazione di fiducia per il ruolo. `AWSAFTAdmin` Il numero segnaposto `012345678901` viene sostituito dal numero ID dell'account di gestione AFT.

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

****  

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

------

**Il AWSAFTExecution ruolo, spiegato**

Quando si distribuisce AFT, il `AWSAFTExecution` ruolo viene creato negli account di gestione AFT e AWS Control Tower. Successivamente, la pipeline AFT crea il `AWSAFTExecution` ruolo in ogni account fornito da AFT durante la fase di provisioning dell'account AFT.

 AFT utilizza inizialmente il `AWSControlTowerExecution` ruolo per creare il `AWSAFTExecution` ruolo in account specifici. Il `AWSAFTExecution` ruolo consente alla pipeline AFT di eseguire i passaggi eseguiti durante le fasi di personalizzazione del provisioning e del provisioning del framework AFT, per gli account con provisioning AFT e per gli account condivisi.

**I ruoli distinti aiutano a limitare l'ambito**  
Come procedura ottimale, mantieni le autorizzazioni di personalizzazione separate dalle autorizzazioni consentite durante la distribuzione iniziale delle risorse. Ricorda che il `AWSAFTService` ruolo è destinato al provisioning degli account e il `AWSAFTExecution` ruolo è destinato alla personalizzazione dell'account. Questa separazione limita l'ambito delle autorizzazioni consentite durante ogni fase della pipeline. Questa distinzione è particolarmente importante se si personalizzano gli account condivisi di AWS Control Tower, poiché gli account condivisi possono contenere informazioni sensibili, come dettagli di fatturazione o informazioni sull'utente.

Autorizzazioni per il `AWSAFTExecution` ruolo: **AdministratorAccess**— una policy gestita da AWS 

Il seguente artefatto JSON mostra la policy IAM (relazione di fiducia) associata al ruolo. `AWSAFTExecution` Il numero segnaposto `012345678901` viene sostituito dal numero ID dell'account di gestione AFT.

Politica di fiducia per `AWSAFTExecution`

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

****  

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

------

**Il AWSAFTService ruolo, spiegato**

Il `AWSAFTService` ruolo distribuisce le risorse AFT in tutti gli account registrati e gestiti, inclusi gli account condivisi e l'account di gestione. In precedenza le risorse venivano utilizzate solo in base al ruolo. `AWSAFTExecution`

Il `AWSAFTService` ruolo è destinato all'utilizzo da parte dell'infrastruttura di servizio per distribuire risorse durante la fase di provisioning e deve essere utilizzato `AWSAFTExecution` solo per implementare personalizzazioni. Assumendo i ruoli in questo modo, è possibile mantenere un controllo degli accessi più granulare durante ogni fase.

Autorizzazioni per il `AWSAFTService` ruolo: **AdministratorAccess**— una policy gestita da AWS 

Il seguente artefatto JSON mostra la policy IAM (relazione di fiducia) associata al ruolo. `AWSAFTService` Il numero segnaposto `012345678901` viene sostituito dal numero ID dell'account di gestione AFT.

Politica di fiducia per `AWSAFTService`

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

****  

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

------

# Servizi per i componenti
<a name="aft-components"></a>

Quando si distribuisce AFT, i componenti vengono aggiunti all' AWS ambiente da ciascuno di questi AWS servizi.
+ **[AWS Control Tower](https://docs.aws.amazon.com//controltower/latest/userguide/what-is-control-tower.html)**: AFT utilizza AWS Control Tower Account Factory nell'account di gestione AWS Control Tower per effettuare il provisioning degli account.
+ **[Amazon DynamoDB](https://docs.aws.amazon.com//amazondynamodb/latest/developerguide/Introduction.html)**: AFT crea tabelle Amazon DynamoDB nell'account di gestione AFT, che memorizzano le richieste degli account, la cronologia di controllo degli aggiornamenti degli account, i metadati degli account e gli eventi del ciclo di vita di AWS Control Tower. AFT crea anche trigger DynamoDB Lambda per avviare processi a valle, come l'avvio del flusso di lavoro di provisioning degli account AFT. 
+ **[Amazon Simple Storage Service](https://docs.aws.amazon.com//AmazonS3/latest/userguide/Welcome.html)**: AFT crea i bucket Amazon Simple Storage Service (S3) nell'account di gestione AFT e nell'account di archivio dei log AWS Control Tower, che archiviano i log generati dai AWS servizi richiesti dalla pipeline AFT. AFT crea anche un bucket S3 di backend Terraform, primario e secondario, per archiviare gli stati Terraform generati durante i flussi di lavoro della Regioni AWS pipeline AFT.
+ **[Amazon Simple Notification Service](https://docs.aws.amazon.com//sns/latest/dg/welcome.html)**: AFT crea argomenti Amazon Simple Notification Service (SNS) nell'account di gestione AFT, che memorizza le notifiche di successo e di fallimento dopo l'elaborazione di ogni richiesta di account AFT. Puoi ricevere questi messaggi utilizzando il protocollo che preferisci.
+ **[Amazon Simple Queuing Service](https://docs.aws.amazon.com//AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html)**: AFT crea una coda FIFO Amazon Simple Queuing Service (Amazon SQS) nell'account di gestione AFT. La coda consente di inviare più richieste di account in parallelo, ma invia una richiesta alla volta ad AWS Control Tower Account Factory, per l'elaborazione sequenziale.
+ **[AWS CodeBuild](https://docs.aws.amazon.com//codebuild/latest/userguide/welcome.html)** — AFT crea progetti di CodeBuild build AWS nell'account di gestione AFT per inizializzare, compilare, testare e applicare i piani Terraform per il codice sorgente AFT in varie fasi di compilazione.
+ **[AWS CodePipeline](https://docs.aws.amazon.com//codepipeline/latest/userguide/welcome.html)**: AFT crea CodePipeline pipeline AWS nell'account di gestione AFT per integrarle con il provider di CodeStar connessioni AWS selezionato e supportato per il codice sorgente AFT e per avviare lavori di costruzione in AWS CodeBuild.
+ **[AWS Lambda](https://docs.aws.amazon.com//lambda/latest/dg/welcome.html)** — AFT crea funzioni e livelli AWS Lambda nell'account di gestione AFT per eseguire i passaggi durante la richiesta dell'account, il provisioning dell'account AFT e i processi di personalizzazione dell'account.
+ **[AWS Systems Manager Parameter Store](https://docs.aws.amazon.com//systems-manager/latest/userguide/systems-manager-parameter-store.html)** — AFT configura AWS Systems Manager Parameter Store nell'account di gestione AFT, per memorizzare i parametri di configurazione richiesti per i processi della pipeline AFT.
+ **[Amazon CloudWatch](https://docs.aws.amazon.com//AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html)** — AFT crea gruppi di CloudWatch log Amazon nell'account di gestione AFT per archiviare i log generati dai servizi AWS utilizzati dalla pipeline AFT. Il periodo di conservazione dei CloudWatch log è impostato su. `Never Expire`
+ **[Amazon VPC](https://docs.aws.amazon.com//vpc/latest/userguide/what-is-amazon-vpc.html)**: AFT crea un Amazon Virtual Private Cloud (VPC) per isolare i servizi e le risorse nell'account di gestione AFT in un ambiente di rete separato, per una maggiore sicurezza.
+ **[AWS KMS](https://docs.aws.amazon.com//kms/latest/developerguide/overview.html)** — AFT utilizza AWS Key Management Service (KMS) nell'account di gestione AFT e nell'account di archiviazione dei log di AWS Control Tower. AFT crea chiavi per crittografare gli stati Terraform, i dati archiviati nelle tabelle DynamoDB e gli argomenti SNS. Questi log e artefatti vengono generati quando le risorse e i servizi AWS vengono distribuiti da AFT. Per impostazione predefinita, le chiavi KMS create da AFT hanno la rotazione annuale abilitata.
+ **[AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com//IAM/latest/UserGuide/introduction.html)** — AFT segue il modello Least Privilege consigliato. Crea ruoli e policy di AWS Identity and Access Management (IAM) nell'account di gestione AFT, negli account AWS Control Tower e negli account con provisioning AFT, secondo necessità, per eseguire le azioni richieste durante il flusso di lavoro della pipeline AFT.
+ **[AWS Step Functions](https://docs.aws.amazon.com//step-functions/latest/dg/welcome.html)** — AFT crea macchine a stati AWS Step Functions nell'account di gestione AFT. Queste macchine a stati orchestrano e automatizzano il processo e le fasi per il framework di provisioning degli account AFT e le personalizzazioni.
+ **[Amazon EventBridge](https://docs.aws.amazon.com//eventbridge/latest/userguide/eb-what-is.html)** — AFT crea un bus di EventBridge eventi Amazon nell'account di gestione AFT e AWS Control Tower per acquisire e archiviare gli eventi del ciclo di vita di AWS Control Tower a lungo termine nella tabella DynamoDB dell'account di gestione AFT. AFT crea regole di CloudWatch eventi Amazon negli account di gestione AFT e AWS Control Tower, che attivano più passaggi necessari durante l'esecuzione del flusso di lavoro della pipeline AFT
+ **[AWS CloudTrail (Facoltativo)](https://docs.aws.amazon.com//awscloudtrail/latest/userguide/cloudtrail-user-guide.html)**: quando questa funzionalità è abilitata, AFT crea un percorso AWS CloudTrail organizzativo nell'account di gestione AWS Control Tower, per registrare gli eventi relativi ai dati per i bucket Amazon S3 AWS e le funzioni Lambda. AFT invia questi log a un bucket S3 centrale nell'account di archiviazione dei log di AWS Control Tower.
+ **[AWS Supporto (opzionale)](https://aws.amazon.com//premiumsupport/)**: quando questa funzionalità è abilitata, AFT attiva il piano AWS Enterprise Support per gli account forniti da AFT. Per impostazione predefinita, AWS gli account vengono creati con il piano AWS Basic Support abilitato.

# Pipeline di fornitura degli account AFT
<a name="aft-provisioning-framework"></a>

Una volta completata la fase di fornitura degli account della pipeline, il framework AFT continua. Esegue automaticamente una serie di passaggi per garantire che gli account appena assegnati dispongano dei dettagli necessari, prima dell'inizio della [Personalizzazioni dell'account](aft-account-customization-options.md) fase.

**Ecco i passaggi successivi eseguiti dalla pipeline AFT.**

1. Convalida l'input della richiesta dell'account.

1. Recupera informazioni sull'account fornito, ad esempio l'ID dell'account.

1. Memorizza i metadati dell'account in una tabella DynamoDB nell'account di gestione AFT.

1. Crea il ruolo **AWSAFTExecution**IAM nell'account appena assegnato. AFT assume questo ruolo per eseguire la fase di personalizzazione dell'account, poiché questo ruolo garantisce l'accesso al portafoglio Account Factory. 

1. Applica i tag dell'account che hai fornito come parte dei parametri di input della richiesta di account.

1. Applica le opzioni di funzionalità AFT scelte al momento della distribuzione di AFT.

1. Applica le personalizzazioni di provisioning degli account AFT fornite. La sezione successiva fornisce ulteriori informazioni su come configurare queste personalizzazioni con una macchina a stati AWS Step Functions, in un `git` repository. Questa fase viene talvolta definita fase del framework di *provisioning degli account*. Fa parte del processo di provisioning di base, ma in precedenza avete impostato un framework che fornisce integrazioni personalizzate come parte del flusso di lavoro di provisioning degli account, prima che vengano aggiunte ulteriori personalizzazioni agli account nella fase successiva.

1. Per ogni account fornito, viene creato un AWS CodePipeline account di gestione AFT, che verrà eseguito per eseguire la fase (successiva, globale). [Personalizzazioni dell'account](aft-account-customization-options.md)

1. Richiama la pipeline di personalizzazione degli account per ogni account assegnato (e scelto come target).

1. Invia una notifica di esito positivo o negativo all'argomento SNS, da cui è possibile recuperare i messaggi.

## Configura le personalizzazioni del framework di provisioning degli account con una macchina a stati
<a name="aft-customizations"></a>

Se configuri integrazioni personalizzate non Terraform prima di effettuare il provisioning dei tuoi account, queste personalizzazioni sono incluse nel flusso di lavoro di provisioning degli account AFT. Ad esempio, potreste richiedere alcune personalizzazioni per garantire che tutti gli account creati da AFT siano conformi agli standard e alle politiche della vostra organizzazione, come gli standard di sicurezza, e questi standard possono essere aggiunti agli account prima di ulteriori personalizzazioni. Queste personalizzazioni del *framework di provisioning degli account* vengono implementate su ogni account fornito, prima che inizi la fase successiva di personalizzazione globale dell'account.

**Nota**  
La funzionalità AFT descritta in questa sezione è destinata agli utenti esperti che comprendono il funzionamento di AWS Step Functions. In alternativa, ti consigliamo di collaborare con gli aiutanti globali nella fase di personalizzazione dell'account.

Il framework di provisioning degli account AFT richiama una macchina a stati AWS Step Functions, definita dall'utente, per implementare le personalizzazioni. Consulta la [documentazione di AWS Step Functions](https://docs.aws.amazon.com//step-functions/latest/dg/welcome.html) per ulteriori informazioni sulle possibili integrazioni di macchine a stati.

Ecco alcune integrazioni comuni.
+ Le funzioni di AWS Lambda nella lingua che preferisci
+ Attività AWS ECS o AWS Fargate, utilizzando contenitori Docker
+ Attività di AWS Step Functions con worker personalizzati, ospitati in AWS o in locale
+ Integrazioni Amazon SNS o SQS

Se non è definita alcuna macchina a stati AWS Step Functions, la fase passa con un no-op. Per creare una macchina a stati per il provisioning delle personalizzazioni dell'account AFT, segui le istruzioni riportate in. [Crea il tuo account AFT (provisioning customizations state machine)](#aft-create-customizations) Prima di aggiungere personalizzazioni, assicurati di disporre dei prerequisiti.

Questi tipi di integrazioni non fanno parte di AWS Control Tower e non possono essere aggiunti durante la fase globale pre-API della personalizzazione dell'account AFT. Invece, la pipeline AFT consente di impostare queste personalizzazioni come parte del processo di provisioning e vengono eseguite nel flusso di lavoro di provisioning. È necessario implementare queste personalizzazioni creando la macchina a stati in anticipo, prima di avviare la fase di provisioning dell'account AFT, come descritto nelle sezioni seguenti. 

**Prerequisiti per la creazione di una macchina a stati**
+ Un AFT completamente distribuito. [Implementa AWS Control Tower Account Factory per Terraform (AFT)](aft-getting-started.md)Per ulteriori informazioni sulla distribuzione di AFT, vedere.
+ Configura un `git` repository nel tuo ambiente per le personalizzazioni del provisioning degli account AFT. Per ulteriori informazioni, consulta [Fasi successive all'implementazione](aft-post-deployment.md).

## Crea il tuo account AFT (provisioning customizations state machine)
<a name="aft-create-customizations"></a>

**Fase 1: Modificare la definizione della macchina a stati**

Modificare la definizione di macchina a `customizations.asl.json` stati di esempio. [L'esempio è disponibile nel `git` repository configurato per archiviare le personalizzazioni del provisioning degli account AFT, nelle fasi successive alla distribuzione.](https://docs.aws.amazon.com//controltower/latest/userguide/aft-post-deployment.html) Consulta la [AWS Step Functions Developer Guide](https://docs.aws.amazon.com//step-functions/latest/dg/welcome.html) per ulteriori informazioni sulle definizioni delle macchine a stati.

**Fase 2: Includi la configurazione Terraform corrispondente**

Includi i file Terraform con l'`.tf`estensione nello stesso `git` repository con la definizione della macchina a stati per la tua integrazione personalizzata. Ad esempio, se scegli di chiamare una funzione Lambda nella definizione dell'attività della macchina a stati, includerai il `lambda.tf` file nella stessa directory. Assicurati di includere i ruoli e le autorizzazioni IAM richiesti per le configurazioni personalizzate.

Quando fornite l'input appropriato, la pipeline AFT richiama automaticamente la vostra macchina a stati e implementa le vostre personalizzazioni come parte della fase del framework di provisioning degli account AFT. 

## Per riavviare il framework di provisioning degli account AFT e le personalizzazioni
<a name="aft-provisioining-considerations"></a>

AFT esegue il framework di provisioning degli account e le fasi di personalizzazione per ogni account venduto attraverso la pipeline AFT. Per riavviare le personalizzazioni del provisioning degli account, puoi utilizzare uno di questi due metodi:

1. Apporta qualsiasi modifica a un account esistente nel repository di richieste di account.

1. Fornisci un nuovo account con AFT.

# Personalizzazioni dell'account
<a name="aft-account-customization-options"></a>

AFT può implementare configurazioni standard o personalizzate negli account assegnati. Nell'account di gestione AFT, AFT fornisce una pipeline per ogni account. Con questa pipeline, puoi implementare le tue personalizzazioni in tutti gli account, in un set di account o in singoli account. Puoi eseguire script Python, script bash e configurazioni Terraform oppure puoi interagire con la CLI di AWS come parte della fase di personalizzazione dell'account.

## Panoramica di
<a name="aft-customizations-overview"></a>

Dopo aver specificato le personalizzazioni nei `git` repository prescelti, quello in cui memorizzi le personalizzazioni globali o in cui memorizzi le personalizzazioni dell'account, la fase di personalizzazione dell'account viene completata automaticamente dalla pipeline AFT. Per personalizzare gli account in modo retroattivo, vedere. [Richiama nuovamente le personalizzazioni](#aft-re-invoke-customizations)

**Personalizzazioni globali (facoltative)**

È possibile scegliere di applicare determinate personalizzazioni a tutti gli account forniti da AFT. Ad esempio, se è necessario creare un particolare ruolo IAM o implementare un controllo personalizzato in ogni account, la fase di personalizzazione globale della pipeline AFT consente di farlo automaticamente.

**Personalizzazioni dell'account (facoltative)**

Per personalizzare un singolo account, o un insieme di conti, in modo diverso dagli altri account forniti da AFT, puoi sfruttare la parte dedicata alle personalizzazioni degli account della pipeline AFT per implementare configurazioni specifiche dell'account. Ad esempio, solo un determinato account può richiedere l'accesso a un gateway Internet. 

## Prerequisiti per la personalizzazione
<a name="aft-account-customization-prerequisites"></a>

Prima di iniziare a personalizzare gli account, assicurati che questi prerequisiti siano soddisfatti.
+ Un AFT completamente distribuito. Per informazioni su come eseguire la distribuzione, vedere. [Configura e avvia il tuo AWS Control Tower Account Factory per Terraform](aft-getting-started.md#aft-configure-and-launch)
+ `git`Archivi precompilati per personalizzazioni globali e personalizzazioni degli account nell'ambiente in uso. Per ulteriori informazioni, consulta la *Fase 3: Compila ogni repository*. [Fasi successive all'implementazione](aft-post-deployment.md)

## Applica personalizzazioni globali
<a name="aft-global-customizations"></a>

Per applicare personalizzazioni globali, devi inserire una struttura di cartelle specifica nel repository prescelto.
+ **Se le tue configurazioni personalizzate sono sotto forma di programmi o script Python, inseriscili nella cartella api\$1helpers/python nel tuo repository.**
+ **Se le tue configurazioni personalizzate sono sotto forma di script Bash, inseriscile nella cartella api\$1helpers del tuo repository.**
+ **Se le tue configurazioni personalizzate sono sotto forma di Terraform, inseriscile nella cartella terraform del tuo repository.**
+ Fai riferimento al file README delle personalizzazioni globali per maggiori dettagli sulla creazione di configurazioni personalizzate.

**Nota**  
Le personalizzazioni globali vengono applicate automaticamente, dopo la fase del framework di provisioning degli account AFT nella pipeline AFT.

## Applica le personalizzazioni dell'account
<a name="aft-account-customizations"></a>

****

 Puoi applicare personalizzazioni all'account inserendo una struttura di cartelle specifica nel repository prescelto. Le personalizzazioni degli account vengono applicate automaticamente nella pipeline AFT e dopo la fase di personalizzazione globale. Puoi anche creare più cartelle che contengono diverse personalizzazioni dell'account nel tuo repository di personalizzazioni dell'account. Per ogni personalizzazione dell'account richiesta, utilizza i seguenti passaggi. 

**Per applicare le personalizzazioni dell'account**

1.  **Passaggio 1: creare una cartella per la personalizzazione dell'account** 

    Nel repository prescelto, copia la `ACCOUNT_TEMPLATE` cartella fornita da AFT in una nuova cartella. Il nome della nuova cartella deve corrispondere a `account_customizations_name` quello fornito nella richiesta dell'account. 

1.  **Aggiungi le configurazioni alla cartella di personalizzazione dell'account specifica** 

    Puoi aggiungere configurazioni alla cartella delle personalizzazioni dell'account in base al formato delle configurazioni. 
   +  Se le tue configurazioni personalizzate sono sotto forma di programmi o script Python, inseriscile nella cartella /api\$1helpers/python che si ***[account\$1customizations\$1name]*trova nel** tuo repository. 
   +  **Se le tue configurazioni personalizzate sono sotto forma di script Bash, inseriscile nella cartella /api\$1helpers che si trova nel tuo repository. *[account\$1customizations\$1name]*** 
   +  **Se le tue configurazioni personalizzate sono in forma di Terraform, inseriscile nella cartella /terraform che si trova nel tuo repository. *[account\$1customizations\$1name]*** 

    Per ulteriori informazioni sulla creazione di configurazioni personalizzate, consulta il file README per le personalizzazioni dell'account. 

1.  **Fai riferimento al `account_customizations_name` parametro specifico nel file di richiesta dell'account** 

    Il file di richiesta dell'account AFT include il parametro di input`account_customizations_name`. Immettete il nome della personalizzazione dell'account come valore per questo parametro. 

**Nota**  
 È possibile inviare più richieste di account per gli account presenti nel proprio ambiente. Quando desideri applicare personalizzazioni dell'account diverse o simili, specifica le personalizzazioni dell'account utilizzando il parametro di `account_customizations_name` input nelle richieste dell'account. Per ulteriori informazioni, consulta [Inviare](https://docs.aws.amazon.com/controltower/latest/userguide/aft-multiple-account-requests.html) più richieste di account. 

## Richiama nuovamente le personalizzazioni
<a name="aft-re-invoke-customizations"></a>

AFT offre un modo per richiamare nuovamente le personalizzazioni nella pipeline AFT. Questo metodo è utile quando è stata aggiunta una nuova fase di personalizzazione o quando si apportano modifiche a una personalizzazione esistente. Quando si richiama nuovamente, AFT avvia la pipeline di personalizzazioni per apportare modifiche all'account fornito da AFT. Una event-source-based nuova richiamata consente di applicare personalizzazioni a singoli account, a tutti gli account, agli account in base alla rispettiva unità organizzativa o agli account selezionati in base ai tag.

Segui questi tre passaggi per richiamare nuovamente le personalizzazioni per gli account forniti da AFT.

**Passaggio 1: invia le modifiche agli archivi di personalizzazione globali o degli account `git`**

Puoi aggiornare le personalizzazioni globali e dell'account secondo necessità e inviare le modifiche ai tuoi repository. `git` A questo punto, non succede nulla. La pipeline di personalizzazioni deve essere richiamata da una fonte di eventi, come spiegato nei due passaggi successivi.

**Fase 2: Avvia un'esecuzione di AWS Step Function per richiamare nuovamente le personalizzazioni**

AFT fornisce una AWS Step Function richiamata `aft-invoke-customizations` nell'account di gestione AFT. Lo scopo di tale funzione è richiamare nuovamente la pipeline di personalizzazione per gli account forniti da AFT.

Ecco un esempio di schema di eventi (formato JSON) che puoi creare per passare l'input a `aft-invoke-customizations` AWS Step Function.

```
{
  "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"]
    }
  ]
}
```

 Lo schema di eventi di esempio mostra che puoi scegliere gli account da includere o escludere dal processo di reinvoke. È possibile filtrare per unità organizzativa (OU), tag di account e ID account. Se non applichi alcun filtro e includi l'estratto conto`"type":"all"`, viene nuovamente richiamata la personalizzazione per tutti gli account forniti da AFT. 

**Nota**  
 Se la tua versione di AWS Control Tower Account Factory for Terraform (AFT) è la 1.6.5 o successiva, puoi scegliere come target nested ( OUs con la sintassi). `OU Name (ou-id-1234` Per ulteriori informazioni, consulta il seguente argomento su. [GitHub](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/issues/280) 

 Dopo aver compilato i parametri dell'evento, Step Functions viene eseguito e richiama le personalizzazioni corrispondenti. AFT può richiamare un massimo di 5 personalizzazioni alla volta. Step Functions attende e si ripete fino al completamento di tutti gli account che soddisfano i criteri dell'evento. 

**Fase 3: Monitora l'output di AWS Step Function e guarda AWS CodePipeline in esecuzione**
+ L'output Step Function risultante contiene account IDs che corrispondono alla fonte dell'evento di input di Step Function.
+ Accedi ad AWS CodePipeline in **Developer Tools** e visualizza le pipeline di personalizzazione corrispondenti per l'ID dell'account.

## Risoluzione dei problemi relativi al tracciamento delle richieste di personalizzazione dell'account AFT
<a name="aft-customization-request"></a>

 Flussi di lavoro di personalizzazione degli account basati su registri di emissione contenenti l'account di AWS Lambda destinazione e la richiesta di personalizzazione. IDs AFT ti consente di tracciare e risolvere i problemi delle richieste di personalizzazione con Amazon CloudWatch Logs fornendoti le query di CloudWatch Logs Insights che puoi utilizzare per filtrare i CloudWatch log relativi alla tua richiesta di personalizzazione in base all'account di destinazione o all'ID della richiesta di personalizzazione. Per ulteriori informazioni, consulta [Analyzing log data with Amazon CloudWatch Logs nella *Amazon CloudWatch Logs*](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html) User Guide. 

**Per utilizzare CloudWatch Logs Insights for AFT**

1. Apri la CloudWatch console all'indirizzo [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1.  Dal riquadro di navigazione, scegli **Logs**, quindi seleziona **Logs insights.** 

1.  **Scegli Query.** 

1.  In **Query di esempio**, scegli **Account Factory for Terraform**, quindi seleziona una delle seguenti query: 
   +  **Registri di personalizzazione per ID account** 
**Nota**  
 Assicurati di sostituirlo *"YOUR-ACCOUNT-ID"* con l'ID dell'account di destinazione. 

     ```
     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/
     ```
   +  **Registri di personalizzazione in base all'ID della richiesta di personalizzazione** 
**Nota**  
 Assicurati di sostituirlo *"YOUR-CUSTOMIZATION-REQUEST-ID"* con l'ID della richiesta di personalizzazione. È possibile trovare l'ID della richiesta di personalizzazione nell'output della macchina a stati del framework di provisioning dell'AFT Account Provisioning Framework AWS Step Functions . Per ulteriori informazioni sul framework di provisioning degli account AFT, vedete [AFT](https://docs.aws.amazon.com/controltower/latest/userguide/aft-provisioning-framework.html) account provisioning pipeline 

     ```
     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.  **Dopo aver selezionato una query, assicuratevi di selezionare un intervallo di tempo, quindi scegliete Esegui query.** 

# Alternative per il controllo della versione del codice sorgente in AFT
<a name="aft-alternative-vcs"></a>

AFT utilizza un sistema AWS CodeCommit di controllo della versione del codice sorgente (VCS) e ne consente altri [CodeConnections](https://docs.aws.amazon.com//dtconsole/latest/userguide/supported-versions-connections.html)che soddisfano i requisiti aziendali o l'architettura esistente.

Se state implementando AFT per la prima volta e non disponete di un CodeCommit repository esistente, dovete specificare un provider VCS esterno, come parte dei prerequisiti per la distribuzione di AFT.

**AFT supporta le seguenti alternative di controllo del codice sorgente:**
+ GitHub
+ GitHub Enterprise Server
+ BitBucket
+ GitLab
+ GitLab Gestito in modo automatico

**Nota**  
Se lo si specifica AWS CodeCommit come VCS, non sono necessari passaggi aggiuntivi. AFT crea i `git` repository necessari nell'ambiente, con nomi predefiniti. Tuttavia, è possibile sovrascrivere i nomi dei repository predefiniti per conformarsi CodeCommit, se necessario, agli standard organizzativi.

## Configurate un sistema di controllo della versione del codice sorgente alternativo (VCS personalizzato) con AFT
<a name="aft-alternate-vcs-steps"></a>

Per configurare un sistema di controllo della versione del codice sorgente alternativo per la tua implementazione AFT, segui questi passaggi.

**Passaggio 1: creare `git` repository in un sistema di controllo delle versioni (VCS) di terze parti supportato.**

Se non lo si utilizza AWS CodeCommit, è necessario creare `git` repository nell'ambiente di provider VCS di terze parti supportato da AFT per i seguenti elementi.
+ **Richieste di account AFT.** [Codice di esempio disponibile](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main/sources/aft-customizations-repos/aft-account-request). Per ulteriori informazioni sulle richieste di account AFT, vedere[Fornisci un nuovo account con AFT](aft-provision-account.md).
+ **Personalizzazioni del provisioning degli account AFT.** [Codice di esempio disponibile.](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main/sources/aft-customizations-repos/aft-account-provisioning-customizations) Per ulteriori informazioni sulle personalizzazioni del provisioning degli account AFT, vedere. [Crea il tuo account AFT (provisioning customizations state machine)](aft-provisioning-framework.md#aft-create-customizations)
+ **Personalizzazioni globali AFT.** [Codice di esempio disponibile.](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main/sources/aft-customizations-repos/aft-global-customizations) Per ulteriori informazioni sulle personalizzazioni globali AFT, vedere[Personalizzazioni dell'account](aft-account-customization-options.md).
+ **Personalizzazioni dell'account AFT.** [Codice di esempio disponibile.](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main/sources/aft-customizations-repos/aft-account-customizations) Per ulteriori informazioni sulle personalizzazioni degli account AFT, vedere[Personalizzazioni dell'account](aft-account-customization-options.md).

**Fase 2: Specificare i parametri di configurazione VCS necessari per l'implementazione di AFT**

I seguenti parametri di input sono necessari per configurare il provider VCS come parte della distribuzione AFT.
+ **vcs\$1provider**: se non lo utilizzi AWS CodeCommit, specifica il provider VCS come,, o `"bitbucket"` `"github"` `"githubenterprise"``"gitlab"`, in base al tuo caso d'uso.
+ **github\$1enterprise\$1url: solo per i clienti Enterprise**, specifica l'URL. GitHub GitHub 
+ **account\$1request\$1repo\$1name: per gli utenti, questo valore è impostato** su. AWS CodeCommit `aft-account-request` In un ambiente di provider VCS di terze parti supportato da AFT, aggiorna questo valore di input con il nome effettivo del repository. Per Github BitBucket, GitHub Enterprise e GitLab Self-managed GitLab, il nome del repository deve avere lo stesso formato. `[Org]/[Repo]`
+ **account\$1customizations\$1repo\$1name**: per gli utenti, questo valore è impostato su. AWS CodeCommit `aft-account-customizations` In un ambiente di provider VCS di terze parti supportato da AFT, aggiorna questo valore di input con il nome del repository. Per Github BitBucket, GitHub Enterprise e GitLab Self-managed GitLab, il nome del repository deve avere lo stesso formato. `[Org]/[Repo]`
+ **account\$1provisioning\$1customizations\$1repo\$1name: per gli utenti, questo valore** è impostato su. AWS CodeCommit `aft-account-provisioning-customizations` In un ambiente di provider VCS di terze parti supportato da AFT, aggiorna questo valore di input con il nome del repository. Per Github BitBucket, GitHub Enterprise e GitLab Self-managed GitLab, il nome del repository deve avere lo stesso formato. `[Org]/[Repo]`
+ **global\$1customizations\$1repo\$1name**: per gli utenti, questo valore è impostato su. AWS CodeCommit `aft-global-customizations` In un ambiente di provider VCS di terze parti supportato da AFT, aggiorna questo valore di input con il nome del repository. Per Github BitBucket, GitHub Enterprise e GitLab Self-managed GitLab, il nome del repository deve avere lo stesso formato. `[Org]/[Repo]`
+ **account\$1request\$1repo\$1branch**: il ramo è predefinito, ma il valore può essere sovrascritto. `main`

Per impostazione predefinita, AFT proviene dal ramo di ogni repository. `main` `git` È possibile sovrascrivere il valore del nome del ramo con un parametro di input aggiuntivo. Per ulteriori informazioni sui parametri di input, fare riferimento al file README nel modulo [AFT Terraform](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/blob/main/README.md#inputs).

**Per i clienti esistenti AWS CodeCommit**  
 Se si crea un CodeCommit repository con un nuovo nome per AFT, è possibile aggiornare il nome del repository aggiornando i valori di questi parametri di input.

**Fase 3: Completare la AWS CodeCommit connessione per i provider VCS di terze parti**

Quando la distribuzione viene eseguita, AFT crea i AWS CodeCommit repository richiesti oppure crea una AWS CodeCommit connessione per il provider VCS di terze parti scelto. In quest'ultimo caso, è necessario accedere manualmente alla console dell'account di gestione AFT per completare la connessione in sospeso CodeCommit . Consulta [la AWS CodeCommit documentazione](https://docs.aws.amazon.com//dtconsole/latest/userguide/connections-update.html) per ulteriori istruzioni sul completamento della CodeCommit connessione. 

# Spostare AFT AWS CodeCommit da un altro provider VCS
<a name="move-a-vcs"></a>

Questa sezione fornisce una panoramica di come spostare AWS Control Tower Account Factory for Terraform (AFT) da AWS CodeCommit sistema di controllo della versione (VCS) a un altro provider VCS.

**Fase 1: ** Configura nuovi repository nel VCS di tua scelta.

**Fase 2.** Aggiungi questi repository come nuovi telecomandi. `git`

**Fase 3.** Esegui `git push` sul nuovo provider VCS.

**Nota**  
La struttura del repository che crei dovrebbe essere la stessa di. AWS CodeCommit La modifica della struttura impedisce a AFT di eseguire il codice desiderato.  
aft-account-request
 aft-account-customizations
 aft-global-customizations
aft-account-provisioning-customizations

**Fase 4.** Nel tuo account di gestione AWS Control Tower, aggiorna il modulo Terraform (bootstrap) in modo che punti al tuo provider VCS, come mostrato nell'esempio seguente:

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

— Esegui `terraform plan` per visualizzare in anteprima le modifiche, quindi`terraform apply`.

**Fase 5:** Completa i passaggi per completare la configurazione di CodeConnection (precedentemente noto come CodeStar): 

1. Accedi al tuo account di gestione AFT

1. Individua e completa la cartella in sospeso AWS CodeConnections per il nuovo provider VCS, come descritto in [Aggiornare una connessione in sospeso](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-update.html), o nella AWS console, []. `https://us-east-1.console.aws.amazon.com/codesuite/settings/connections`

1. [Riferimento: fasi successive all'implementazione](https://docs.aws.amazon.com//controltower/latest/userguide/aft-post-deployment.html)

**Nota**  
Le pipeline degli account mantengono la fonte precedente fino a quando non viene `aft-invoke-customizations` *richiamato Step Functions*. Questa chiamata può essere eseguita come parte dell'aggiornamento o come parte delle successive chiamate di personalizzazione.

Per maggiori informazioni, consulta questo blog: [Come migrare il tuo AWS CodeCommit repository verso un altro provider Git](https://aws.amazon.com/blogs/devops/how-to-migrate-your-aws-codecommit-repository-to-another-git-provider).

# Protezione dei dati
<a name="aft-data-protection"></a>

Il [modello di responsabilitàAWS condivisa](https://aws.amazon.com//compliance/shared-responsibility-model/) si applica alla protezione dei dati in AFT. Ai fini della protezione dei dati, consigliamo le seguenti migliori pratiche per la sicurezza.
+ Segui le linee guida sulla protezione dei dati fornite da AWS Control Tower. Per informazioni dettagliate, vedi [Protezione dei dati in AWS Control Tower](controltower-console-encryption.md).
+ Conserva la configurazione dello stato di Terraform generata al momento della distribuzione AFT. Per informazioni dettagliate, vedi [Implementa AWS Control Tower Account Factory per Terraform (AFT)](aft-getting-started.md).
+ Ruota periodicamente le credenziali sensibili come indicato dalla politica di sicurezza della tua organizzazione. Esempi di segreti sono i token Terraform, i token e `git` così via.

 **Crittografia dei dati inattivi** 

AFT crea bucket Amazon S3, argomenti Amazon SNS, code Amazon SQS e database Amazon DynamoDB crittografati a riposo con chiavi del Key Management Service. AWS Per impostazione predefinita, le chiavi KMS create da AFT hanno la rotazione annuale abilitata. Se scegli le distribuzioni Terraform Cloud o Terraform Enterprise di Terraform, AFT include un SecureString parametro AWS Systems Manager per memorizzare i valori dei token Terraform sensibili.

AFT utilizza i AWS servizi descritti in [Servizi per i componenti](aft-components.md) che, per impostazione predefinita, sono crittografati a riposo. Per i dettagli, consulta la AWS documentazione per ogni AWS servizio componente di AFT e scopri le pratiche di protezione dei dati seguite da ciascun servizio.

 **Crittografia in transito** 

AFT si basa sui AWS servizi descritti in [Servizi per i componenti](aft-components.md) che utilizzano la crittografia in transito, per impostazione predefinita. Per i dettagli, consulta la AWS documentazione per ogni AWS servizio componente di AFT e scopri le pratiche di protezione dei dati seguite da ciascun servizio.

 Per le distribuzioni Terraform Cloud o Terraform Enterprise, AFT chiama un'API endpoint HTTPS per l'accesso alla tua organizzazione Terraform. Se scegli un provider VCS di terze parti supportato da AWS CodeStar connessioni, AFT chiama un'API di endpoint HTTPS per l'accesso all'organizzazione del tuo provider VCS.

# Rimuovere un account da AFT
<a name="aft-remove-account"></a>

 Questo argomento descrive come rimuovere un account da AFT, in modo che la pipeline AFT interrompa la distribuzione e l'aggiornamento dell'account. 

**Importante**  
 La rimozione di un account dalla pipeline AFT è irreversibile e può comportare una perdita di stato. 

 È possibile rimuovere un account da AFT quando si desidera chiudere un account per un'applicazione ritirata, isolare un account compromesso o spostare un account da un'organizzazione a un'altra organizzazione. 

**Nota**  
 La rimozione di un account da AFT è diversa dall'eliminazione di un account AWS Control Tower o Account AWS. Quando rimuovi un account da AFT, AWS Control Tower continua a gestirlo. Per eliminare un account AWS Control Tower oppure Account AWS, consulta quanto segue:   
 [Annulla la gestione di un account](https://docs.aws.amazon.com/controltower/latest/userguide/unmanage-account.html) nella *AWS Control Tower User Guide*. 
 [Chiusura di un account](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/close-account.html) nella *Guida per l'AWS Billing utente*. 

**Per rimuovere un account dalle pipeline AFT**

 La procedura seguente descrive come rimuovere un account da AFT. 

1.  **Rimuovi l'account dal `git` repository che memorizza le richieste di account** 

    Nell'`git`archivio in cui memorizzate le richieste di account, eliminate la richiesta di account per l'account che desiderate rimuovere da AFT. 

    Quando rimuovi una richiesta di account dall'archivio delle richieste di account, AFT elimina la pipeline di personalizzazione e i metadati dell'account. Per ulteriori informazioni, consultate le note di rilascio della versione [1.8.0](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/releases/tag/1.8.0) per AFT on. GitHub 

1.  **Elimina l'area di lavoro Terraform (solo per i clienti Terraform Cloud e Terraform Enterprise)** 

    Elimina gli spazi di lavoro per le personalizzazioni globali e le personalizzazioni degli account per l'account che desideri rimuovere da AFT. 

1.  **Elimina lo stato Terraform dal backend di Amazon S3** 

    Nell'account di gestione AFT, elimina tutte le cartelle pertinenti all'interno dei bucket Amazon S3 per l'account che desideri rimuovere da AFT. 
**Suggerimento**  
 Negli esempi seguenti, sostituiscilo `012345678901` con il numero ID dell'account di gestione AFT. 

**Esempio: Terraform OSS**  
 Quando scegli Terraform OSS, trovi 3 cartelle per ogni account nei bucket `aft-backend-012345678901-primary-region` e `aft-backend-012345678901-secondary-region` Amazon S3. *Queste cartelle sono correlate allo stato delle *personalizzazioni dell'account, allo stato* della *pipeline di personalizzazione e allo stato delle* personalizzazioni globali* 

**Esempio: Terraform Cloud o Terraform Enterprise**  
 Quando scegli Terraform Cloud o Terraform Enterprise, trovi una cartella per ogni account nei bucket `aft-backend-012345678901-primary-region` e Amazon `aft-backend-012345678901-secondary-region` S3. *Queste cartelle sono correlate allo stato della pipeline di personalizzazione.* 

# Parametri operativi
<a name="aft-operational-metrics"></a>

Per impostazione predefinita, *Account Factory for Terraform (AFT)* invia metriche operative anonime a. AWS Utilizziamo questi dati per capire in che modo i clienti utilizzano AFT in modo da poter migliorare la qualità e le funzionalità della soluzione. È possibile disattivare la raccolta dei dati modificando un parametro durante l'implementazione di AFT. Quando la raccolta è abilitata, i seguenti dati vengono inviati a AWS:
+ **Soluzione: l'identificatore** specifico di AFT
+ **Versione: la versione** di AFT
+ **Identificatore univoco universale (UUID): identificatore** univoco generato casualmente per ogni implementazione AFT
+ **Timestamp**: marcatura temporale di raccolta dati
+ **Dati: configurazione** AFT e azioni intraprese dal cliente

AWS possiede i dati raccolti. La raccolta dei dati è soggetta all'[AWS Informativa sulla privacy](https://aws.amazon.com/privacy/).

**Nota**  
Le versioni di AFT precedenti alla 1.6.0 non riportano le metriche di utilizzo a. AWS

Per disattivare le metriche di rendicontazione:
+ Imposta il valore di input `aft_metrics_reporting` to `false` nel tuo file di configurazione di input Terraform, come mostrato nell'esempio che segue, e ridistribuisci AFT. Questo valore è impostato su di `true` default, se non lo impostate in modo esplicito.

Se copi l'esempio, ricordati di sostituire i valori ID e Region effettivi con gli elementi forniti nelle stringhe con. `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 
    }
```

# Guida alla risoluzione dei problemi di Account Factory for Terraform (AFT)
<a name="account-troubleshooting-guide"></a>

 Questa sezione può aiutarti a risolvere i problemi più comuni che potresti riscontrare durante l'utilizzo di Account Factory for Terraform (AFT). 

**Topics**
+ [

## Problemi generali
](#w2aac44c33c45b7)
+ [

## Problemi relativi alla fornitura/registrazione dell'account
](#w2aac44c33c45b9)
+ [

## Problemi relativi all'invocazione delle personalizzazioni
](#w2aac44c33c45c11)
+ [

## Problemi relativi al flusso di lavoro di personalizzazione degli account
](#w2aac44c33c45c13)

## Problemi generali
<a name="w2aac44c33c45b7"></a>
+  **Quote di risorse superate AWS ** 

   [Se i tuoi gruppi di log indicano che hai superato le quote di AWS risorse, contatta l'assistenza AWS .](https://aws.amazon.com/premiumsupport/) Account Factory utilizza Servizi AWS quote di risorse che includono AWS CodeBuild AWS Organizations, e AWS Systems Manager. Per ulteriori informazioni, consulta gli argomenti seguenti: 
  +  [Che cos'è AWS CodeBuild?](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) nella *Guida CodeBuild per l'utente*. 
  +  [Che cos'è AWS Organizations?](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html) nella *Organizations User Guide*. 
  +  [Che cos'è AWS Systems Manager?](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html) nella *Guida per l'utente di Systems Manager*. 
+  **Versione obsoleta di Account Factory** 

   Se riscontri un problema e ritieni che si tratti di un bug, assicurati di disporre della versione più recente di Account Factory. Per ulteriori informazioni, vedere [Aggiornamento della versione di Account Factory](https://docs.aws.amazon.com/controltower/latest/userguide/update-aft-version.html). 
+  **Sono state apportate modifiche locali al codice sorgente di Account Factory** 

   Account Factory è un progetto open source. AWS Control Tower supporta il codice di base di Account Factory. Se apporti una modifica locale al codice di base di Account Factory, AWS Control Tower supporta la distribuzione di Account Factory solo se possibile. 
+ **Autorizzazioni di ruolo Account Factory insufficienti** 

   Account Factory crea ruoli e policy IAM per gestire le implementazioni e le personalizzazioni degli account forniti. Se modifichi questi ruoli o politiche, la pipeline Account Factory potrebbe non essere in grado di eseguire determinate azioni. Per ulteriori informazioni, consulta [Ruoli obbligatori](https://docs.aws.amazon.com/controltower/latest/userguide/aft-required-roles.html). 
+  **Gli archivi degli account non sono stati compilati correttamente** 

   Assicurati di seguire i [passaggi successivi alla distribuzione](https://docs.aws.amazon.com/controltower/latest/userguide/aft-post-deployment.html) prima di effettuare il provisioning degli account. 
+  **Non viene rilevata la deriva dopo aver modificato manualmente l'unità organizzativa** 
**Nota**  
 AWS Control Tower rileva automaticamente la deriva. Per informazioni sulla risoluzione della deriva, consulta [Rileva e risolvi la deriva in AWS](https://docs.aws.amazon.com/controltower/latest/userguide/drift.html#resolving-drift) Control Tower. 

   La deriva non viene rilevata quando l'unità organizzativa (OU) viene modificata manualmente. Ciò è dovuto alla natura di Account Factory basata sugli eventi. Quando viene inviata una richiesta di account, la risorsa gestita da Terraform è un elemento Amazon DynamoDB, non un account diretto. Dopo che un elemento è stato modificato, la richiesta viene messa in coda, dove AWS Control Tower la elabora tramite Service Catalog (il servizio che gestisce i dettagli dell'account). Se modifichi l'unità organizzativa manualmente, la deriva non viene rilevata perché la richiesta dell'account non è cambiata. 

## Problemi relativi alla fornitura/registrazione dell'account
<a name="w2aac44c33c45b9"></a>
+  **La richiesta di account (indirizzo e-mail/nome) esiste già** 

   Il problema in genere causa un guasto del prodotto Service Catalog durante il provisioning o durante il provisioning. `ConditionalCheckFailedException` 

   Puoi trovare ulteriori informazioni sul problema effettuando una delle seguenti operazioni: 
  +  Controlla i tuoi gruppi di log Terraform o CloudWatch Logs. 
  +  Esamina gli errori che vengono emessi nell'argomento Amazon SNS. `aft-failure-notifications` 
+  **Richiesta di account non valida** 

   Assicurati che la richiesta dell'account segua lo schema previsto. Per esempi, vedi [terraform-aws-control\$1tower\$1account\$1factory](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main/sources/aft-customizations-repos/aft-account-request/examples) su. GitHub 
+  **Quote di risorse Exceeded AWS Organizations** 

   Assicurati che la richiesta del tuo account non superi le quote di AWS Organizations risorse. Per ulteriori informazioni, vedere [Quotas for AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_limits.html). 

## Problemi relativi all'invocazione delle personalizzazioni
<a name="w2aac44c33c45c11"></a>
+  **Account Target non registrato su Account Factory** 

   Assicurati che tutti gli account inclusi in una richiesta di personalizzazione siano stati inseriti in Account Factory. Per ulteriori informazioni, consulta [Aggiornare un account esistente](https://docs.aws.amazon.com/controltower/latest/userguide/aft-update-account.html). 
+  **L'account a cui è destinata la richiesta di personalizzazione esiste nella `aft-request-metadata` tabella DynamoDB, ma non nell'archivio delle richieste di account** 

   Formattate la richiesta di chiamata di personalizzazione per escludere l'account incriminato effettuando una delle seguenti operazioni: 
  +  Nella `aft-request-metadata` tabella DynamoDB, elimina la voce che fa riferimento all'account che non si trova più nell'archivio delle richieste dell'account. 
  +  Non usare «tutti» come obiettivo. 
  +  Non si rivolge all'unità organizzativa a cui appartiene l'account. 
  +  Non mirare direttamente all'account. 
+  **Token errato utilizzato per Terraform Cloud** 

   Assicurati di aver impostato il token corretto. Terraform Cloud supporta solo token basati sul team, non token basati sull'organizzazione. 
+  **Impossibile creare l'account prima della creazione della pipeline di personalizzazione dell'account; impossibile personalizzare l'account** 

   Apporta una modifica alle specifiche dell'account nell'archivio delle richieste di account. Quando apporti una modifica, ad esempio la modifica del valore di un tag per un account, Account Factory segue il percorso che tenta di creare la pipeline, anche se la pipeline non esiste. 

## Problemi relativi al flusso di lavoro di personalizzazione degli account
<a name="w2aac44c33c45c13"></a>

 Se riscontri problemi relativi al flusso di lavoro di personalizzazione degli account, assicurati che la tua versione di AFT sia 1.8.0 o successiva e di eliminare tutte le istanze di metadati relativi all'account dalla tabella delle richieste DynamoDB. 

 [Per informazioni sulla versione 1.8.0 di AFT, consultate la release 1.8.0 su.](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/releases/tag/1.8.0) GitHub 

 Per informazioni su come controllare e aggiornare la versione di AFT in uso, consultate quanto segue: 
+  [Controllate la versione AFT](https://docs.aws.amazon.com/controltower/latest/userguide/check-aft-version.html) 
+  [Aggiorna la versione AFT](https://docs.aws.amazon.com/controltower/latest/userguide/update-aft-version.html) 

 Puoi anche tracciare e risolvere i problemi delle richieste di personalizzazione utilizzando le query di Amazon CloudWatch Logs Insights per filtrare i log contenenti l'account di destinazione e la richiesta di personalizzazione. IDs Per ulteriori informazioni, consulta [Risoluzione dei problemi relativi](https://docs.aws.amazon.com/controltower/latest/userguide/aft-account-customization-options.html) alla tracciabilità delle richieste di personalizzazione dell'account AFT. 