

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

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