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)
Questa sezione è destinata 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
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 disponibili.
Per dettagli sulle ultime versioni della funzionalità AWS Control Tower Account Factory for Terraform (AFT), consulta il file
Prerequisiti di distribuzione
Prima di configurare e avviare l'ambiente AFT, è necessario disporre delle seguenti risorse:
-
Una regione principale per la zona di destinazione di AWS Control Tower. Per ulteriori informazioni, consulta How Regioni AWS work with AWS Control Tower.
-
Una zona di atterraggio di AWS Control Tower. Per ulteriori informazioni, consulta Pianificare la zona di atterraggio di AWS Control Tower.
Un account di gestione AFT, di cui puoi eseguire il provisioning in AWS Control Tower o con altri mezzi e registrarlo in AWS Control Tower.
-
Una versione e una distribuzione Terraform. Per ulteriori informazioni, consulta le versioni Terraform e AFT.
-
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, vedere Che cos'è AWS CodeCommit? nella Guida AWS CodeCommit per l'utente.
Se stai implementando AFT per la prima volta e non disponi di un CodeCommit repository esistente, devi scegliere un provider VCS esterno, ad esempio o. GitHub BitBucket Per ulteriori informazioni, consulta Alternative per il controllo della versione del codice sorgente 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à.
Configura e avvia il tuo AWS Control Tower Account Factory per Terraform
I passaggi seguenti presuppongono che tu abbia familiarità con il flusso di lavoro Terraform. Puoi anche saperne di più sull'implementazione di AFT seguendo l'Introduzione all'AFT
Fase 1: Avvia la tua landing zone di AWS Control Tower
Per istruzioni su come iniziare a usare AWS Control Tower, consulta Guida introduttiva ad AWS Control Tower. Qui è possibile creare l'account di gestione di AWS Control Tower e configurare la zona di destinazione di AWS Control Tower.
Nota
Assicurati di creare un ruolo per l'account di gestione di AWS Control Tower con AdministratorAccess credenziali. Per ulteriori informazioni, consulta gli argomenti seguenti:
-
Identità IAM (utenti, gruppi di utenti e ruoli) nella Guida per l'AWS Identity and Access Management utente
-
AdministratorAccessnella 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 zona di destinazione di AWS Control Tower. In questa unità organizzativa si effettua 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.
Fase 3: Eseguire il provisioning dell'account di gestione AFT
AFT richiede la creazione di un AWS account dedicato alle operazioni di gestione AFT. Crea l'account di gestione AFT quando accedi all'account di gestione AWS Control Tower associato alla tua zona di destinazione di 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 Provisioning degli account con AWS Service Catalog Account Factory.
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.
Passaggio 4: verifica 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
Nota
AFT supporta la versione Terraform 1.6.1 o successiva.
Fase 5: Configurazioni opzionali
-
Opzionalmente, imposta la configurazione del cloud privato virtuale (VPC)
Il modulo AFT include un
aft_enable_vpcparametro 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.trueSe imposti questo parametro sufalse, AWS Control Tower distribuisce AFT senza l'uso di un VPC e di risorse di rete private, come NAT Gateway o endpoint VPC. La disabilitazioneaft_enable_vpcpuò aiutare a ridurre il costo operativo di AFT per alcuni modelli di utilizzo. L'aggiunta di qualsiasi configurazione VPC sostituisce il parametro su cui si sta impostandoaft_enable_vpc.falseNota
Re-enabling il
aft_enable_vpcparametro (commutando il valore dafalseatrue) potrebbe richiedere l'esecuzione delterraform applycomando 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 ID di sottorete privati 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 o CodePipeline che dipendano 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_namePer impostazione predefinita, AFT inserisce la distribuzione nel progetto «predefinito» in HCP Terraform 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
tagsparametro. Questi tag aiutano l'organizzazione delle risorse, l'allocazione dei costi e il 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 da tag personalizzati.Nota
I tag personalizzati possono essere aggiunti in qualsiasi momento, non solo durante la distribuzione iniziale.
-
Facoltativamente, è possibile applicare una chiave di crittografia (CMK) AWS KMS gestita dal cliente ai gruppi di log e agli CloudWatch 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_encryptionsns_topic_enable_cmk_encryptionSe attivi queste impostazioni, AFT utilizza il CMK esistente per crittografare i log e alias/aft gli argomenti CloudWatch SNS. Questo CMK viene creato quando AFT viene distribuito nell'account di gestione AFT e può essere applicato ai gruppi di log e agli argomenti SNS.
Se la variabile
cloudwatch_log_group_enable_cmk_encryptionè impostata su true, i gruppi di CloudWatch log per AFT vengono crittografati utilizzando il CMK. Se la variabile è impostata su false, che è il valore predefinito, i log vengono crittografati utilizzando la crittografia lato server con i CloudWatch log predefiniti.Se la variabile
sns_topic_enable_cmk_encryptionè impostata su true, le notifiche inviate agli argomenti AFT SNS (aft-notification e aft-failure-notification) vengono crittografate utilizzando la CMK. Se la variabile è impostata su false, che è il valore predefinito, i messaggi SNS vengono crittografati con la chiave: /sns. AWS-managed alias/aws Per ulteriori informazioni, consulta i termini chiave SSE.
-
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_typePer informazioni sui tipi di elaborazione accettati, vedere Informazioni sui tipi di ambiente on-demand. Il tipo di elaborazione predefinito è.
BUILD_GENERAL1_MEDIUM -
Facoltativamente, configura OpenID Connect (OIDC) per Terraform
I clienti che utilizzano Terraform Enterprise o HCP Terraform (ex Terraform Cloud) possono utilizzare i token di identità Workload di Terraform (o le credenziali dinamiche del provider), basati sul protocollo OIDC, per connettere e autenticare in modo sicuro gli spazi di lavoro con AFT.
È possibile
trueabilitare l'integrazione OIDC per gli spazi di lavoro AFT impostando il parametro su.terraform_oidc_integrationIl valore del parametro èfalseper impostazione predefinita. Quando si abilita questo parametro, iterraform_oidc_hostnameparametriterraform_oidc_aws_audienceand devono essere rivisti e configurati se i valori predefiniti (aws.workload.identityeapp.terraform.io, rispettivamente) non corrispondono all'ambiente.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 credenziali. AdministratorAccess AWS Control Tower esegue il provisioning di 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
Se nel tuo ambiente sono presenti pipeline predisposte 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 Servizio di token di sicurezza AWS (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 per l'AWS Identity and Access Management utente.
Nota
Potresti attendere fino a 30 minuti affinché AFT termini la distribuzione tramite il modulo Terraform.
Passaggio 7: gestisci il file di stato Terraform
Quando si distribuisce AFT, viene generato un file di stato Terraform. Questo artefatto descrive lo stato delle risorse create da Terraform. Se prevedi di aggiornare la versione AFT, assicurati di conservare il file di stato di 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 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 normale nel file di stato Terraform. Per ulteriori informazioni, consulta Dati sensibili in stato