View a markdown version of this page

Implementa AWS Control Tower Account Factory per Terraform (AFT) - AWS Control Tower

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

Per dettagli sulle ultime versioni della funzionalità AWS Control Tower Account Factory for Terraform (AFT), consulta il file Releases di questo GitHub repository.

Prerequisiti di distribuzione

Prima di configurare e avviare l'ambiente AFT, è necessario disporre delle seguenti risorse:

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 lab sul sito Web di AWS Workshop Studio.

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:

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 sul sito Web degli sviluppatori. HashiCorp

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_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 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 disabilitazione aft_enable_vpc può 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. false

    Nota

    Re-enabling il aft_enable_vpc parametro (commutando il valore da false atrue) potrebbe 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 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_name Per 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 tags parametro. 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_encryption sns_topic_enable_cmk_encryption

    Se 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_type

    Per 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 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 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 su GitHub. L'intero GitHub repository è considerato il modulo AFT. Fate riferimento al file README 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 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 sul sito Web. HashiCorp