View a markdown version of this page

Stellen Sie AWS Control Tower Account Factory für Terraform (AFT) bereit - AWS Control Tower

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Stellen Sie AWS Control Tower Account Factory für Terraform (AFT) bereit

Dieser Abschnitt richtet sich an Administratoren von AWS Control Tower-Umgebungen, die Account Factory for Terraform (AFT) in ihrer bestehenden Umgebung einrichten möchten. Es wird beschrieben, wie eine Account Factory for Terraform (AFT) -Umgebung mit einem neuen, dedizierten AFT-Verwaltungskonto eingerichtet wird.

Anmerkung

Ein Terraform-Modul stellt AFT bereit. Dieses Modul ist im AFT-Repository verfügbar GitHub, und das gesamte AFT-Repository wird als Modul betrachtet.

Wir empfehlen, dass Sie sich auf die AFT-Module beziehen, GitHub anstatt das AFT-Repository zu klonen. Auf diese Weise können Sie Aktualisierungen der Module kontrollieren und nutzen, sobald sie verfügbar sind.

Einzelheiten zu den neuesten Versionen der Funktionen von AWS Control Tower Account Factory for Terraform (AFT) finden Sie in der Release-Datei für dieses GitHub Repository.

Voraussetzungen für die Bereitstellung

Bevor Sie Ihre AFT-Umgebung konfigurieren und starten, müssen Ihnen die folgenden Ressourcen zur Verfügung stehen:

  • Eine Heimatregion für Ihre AWS Control Tower-Landezone. Weitere Informationen finden Sie unter So AWS-Regionen arbeiten Sie mit dem AWS Control Tower.

  • Eine Landezone für den AWS Control Tower. Weitere Informationen finden Sie unter Planen Sie Ihre AWS Control Tower-Landezone.

  • Ein AFT-Verwaltungskonto, das Sie im AWS Control Tower bereitstellen oder auf andere Weise bereitstellen und sich bei AWS Control Tower registrieren können.

  • Eine Terraform-Version und -Distribution. Weitere Informationen finden Sie unter Terraform- und AFT-Versionen.

  • Ein VCS-Anbieter für die Verfolgung und Verwaltung von Änderungen an Code und anderen Dateien. Standardmäßig verwendet AWS CodeCommit AFT. Weitere Informationen finden Sie unter Was ist AWS CodeCommit? im AWS CodeCommit Benutzerhandbuch.

    Wenn Sie AFT zum ersten Mal bereitstellen und kein vorhandenes CodeCommit Repository haben, müssen Sie einen externen VCS-Anbieter wie GitHub oder BitBucket auswählen. Weitere Informationen finden Sie unter Alternativen zur Versionskontrolle von Quellcode in AFT.

  • Eine Laufzeitumgebung, in der Sie das Terraform-Modul ausführen können, das AFT installiert.

  • AFT-Funktionsoptionen. Weitere Informationen finden Sie unter Funktionsoptionen aktivieren.

Konfigurieren und starten Sie Ihre AWS Control Tower Account Factory für Terraform

Bei den folgenden Schritten wird davon ausgegangen, dass Sie mit dem Terraform-Workflow vertraut sind. Sie können auch mehr über den Einsatz von AFT erfahren, indem Sie der Einführung in AFT Lab auf der AWS Workshop Studio-Website folgen.

Schritt 1: Starten Sie Ihre AWS Control Tower-Landezone

Anweisungen für die ersten Schritte mit AWS Control Tower finden Sie unter Erste Schritte mit AWS Control Tower. Hier erstellen Sie das AWS Control Tower-Verwaltungskonto und richten Ihre AWS Control Tower-Landezone ein.

Anmerkung

Stellen Sie sicher, dass Sie eine Rolle für das AWS Control Tower-Verwaltungskonto erstellen, das über AdministratorAccess Anmeldeinformationen verfügt. Weitere Informationen finden Sie hier:

Schritt 2: Erstellen Sie eine neue Organisationseinheit für AFT (dringend empfohlen)

Wir empfehlen Ihnen, eine separate Organisationseinheit in Ihrer AWS Control Tower-Landezone zu erstellen. In dieser OU stellen Sie das AFT-Verwaltungskonto bereit. Erstellen Sie die neue OU und das AFT-Verwaltungskonto von Ihrem AWS Control Tower-Verwaltungskonto aus. Weitere Informationen finden Sie unter Neue OU erstellen.

Schritt 3: Stellen Sie das AFT-Verwaltungskonto bereit

AFT erfordert, dass Sie ein AWS Konto einrichten, das für AFT-Verwaltungsvorgänge vorgesehen ist. Erstellen Sie das AFT-Verwaltungskonto, wenn Sie bei dem AWS Control Tower-Verwaltungskonto angemeldet sind, das Ihrer AWS Control Tower-Landezone zugeordnet ist. Sie können das AFT-Verwaltungskonto von der AWS Control Tower-Konsole aus bereitstellen, indem Sie auf der Seite Organisation die Option Konto erstellen auswählen, oder auf andere Weise. Weitere Informationen finden Sie unter Bereitstellen von Konten mit AWS Service Catalog Account Factory.

Anmerkung

Wenn Sie eine separate Organisationseinheit für AFT erstellt haben, achten Sie darauf, diese Organisationseinheit auszuwählen, wenn Sie das AFT-Verwaltungskonto erstellen.

Die vollständige Bereitstellung des AFT-Verwaltungskontos kann bis zu 30 Minuten dauern.

Schritt 4: Stellen Sie sicher, dass die Terraform-Umgebung für die Bereitstellung verfügbar ist

Bei diesem Schritt wird davon ausgegangen, dass Sie Erfahrung mit Terraform haben und über Verfahren zur Ausführung von Terraform verfügen. Weitere Informationen finden Sie unter Command: init auf der Entwickler-Website. HashiCorp

Anmerkung

AFT unterstützt die Terraform-Version 1.6.1 oder höher.

Schritt 5: Optionale Konfigurationen

  • Legen Sie optional die Virtual Private Cloud (VPC) -Konfiguration fest

    Das AFT-Modul enthält einen aft_enable_vpc Parameter, der angibt, ob AWS Control Tower Kontoressourcen innerhalb einer VPC im zentralen AFT-Verwaltungskonto bereitstellt. In der Standardeinstellung ist der Parameter auf true festgelegt. Wenn Sie diesen Parameter auf setzenfalse, stellt AWS Control Tower AFT ohne Verwendung einer VPC und privater Netzwerkressourcen wie NAT-Gateways oder VPC-Endpunkte bereit. Die Deaktivierung aft_enable_vpc kann bei einigen Nutzungsmustern dazu beitragen, die Betriebskosten von AFT zu senken. Durch das Hinzufügen von VPC-Konfigurationen wird der aft_enable_vpc Parameter, auf den gesetzt wurde, außer Kraft gesetzt. false

    Anmerkung

    Re-enabling Für den aft_enable_vpc Parameter (Umschalten des Werts von false auftrue) müssen Sie den terraform apply Befehl möglicherweise zweimal hintereinander ausführen.

    Anstatt eine neue VPC bereitzustellen, können Sie AFT so konfigurieren, dass eine vorhandene VPC in Ihrem Konto verwendet wird. Um Ihre eigene VPC zu verwenden, geben Sie die folgenden VPC-Konfigurationsparameter an:

    • aft_customer_vpc_id- Die ID Ihrer vorhandenen VPC

    • aft_customer_private_subnets- Eine Liste der privaten Subnetz-IDs in Ihrer VPC

    Beispielkonfiguration:

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

    Wir empfehlen nicht, die benutzerdefinierte VPC-Option zu verwenden, wenn Sie bereits über eine AFT-Bereitstellung verfügen. Möglicherweise sind Sie von Lambda-Funktionen abhängig oder CodePipeline hängen von Ressourcen innerhalb der zugrunde liegenden vorhandenen VPC ab.

  • Konfigurieren Sie optional den Terraform-Projektnamen

    Sie können den von AFT verwendeten Terraform-Projektnamen anpassen, indem Sie den Parameter festlegen. terraform_project_name Standardmäßig platziert AFT die Bereitstellung in das „Standard“ -Projekt in HCP Terraform oder Terraform Enterprise.

    Beispielkonfiguration:

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

    Dieser Parameter gilt nur für Terraform Enterprise- oder Terraform Cloud-Bereitstellungen.

  • Wenden Sie optional benutzerdefinierte Tags auf AFT-Ressourcen an

    Sie können benutzerdefinierte Tags auf alle AFT-Ressourcen anwenden, indem Sie den tags Parameter verwenden. Diese Tags helfen bei der Ressourcenorganisation, Kostenzuweisung und Zugriffskontrolle.

    Beispielkonfiguration:

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

    Diese Tags werden auf alle Ressourcen angewendet, die vom AFT-Modul erstellt wurden. AFT fügt allen Ressourcen automatisch ein managed_by = "AFT" Tag hinzu, das nicht durch benutzerdefinierte Tags überschrieben werden kann.

    Anmerkung

    Benutzerdefinierte Tags können jederzeit hinzugefügt werden, nicht nur bei der ersten Bereitstellung.

  • Wenden Sie optional einen AWS KMS vom Kunden verwalteten Verschlüsselungsschlüssel (CMK) auf CloudWatch Protokollgruppen und SNS-Themen an

    Um die KMS-CMK-Verschlüsselung für Protokollgruppen und SNS-Themen zu aktivieren, legen Sie die Variablen und fest. cloudwatch_log_group_enable_cmk_encryption sns_topic_enable_cmk_encryption

    Wenn Sie sich für diese Einstellungen entscheiden, verwendet AFT das vorhandene CMK alias/aft, um CloudWatch Protokolle und SNS-Themen zu verschlüsseln. Dieses CMK wird erstellt, wenn AFT im AFT-Verwaltungskonto bereitgestellt wird, und es kann auf Protokollgruppen und SNS-Themen angewendet werden.

    • Wenn die Variable auf true gesetzt cloudwatch_log_group_enable_cmk_encryption ist, werden die CloudWatch Protokollgruppen für AFT mithilfe des CMK verschlüsselt. Wenn die Variable auf False gesetzt ist, was dem Standardwert entspricht, werden die Protokolle mithilfe der serverseitigen Verschlüsselung verschlüsselt, wobei die CloudWatch Protokolle standardmäßig verwendet werden.

    • Wenn die Variable auf true gesetzt sns_topic_enable_cmk_encryption ist, werden Benachrichtigungen, die an die AFT-SNS-Themen (aft-notifications und aft-failure-notifications) gesendet werden, mithilfe des CMK verschlüsselt. Wenn die Variable auf False gesetzt ist, was dem Standardwert entspricht, werden die SNS-Nachrichten mit dem folgenden Schlüssel verschlüsselt: /sns. AWS-managed alias/aws Weitere Informationen finden Sie unter SSE-Schlüsselbegriffe.

  • Ändern Sie optional Ihren CodeBuild Berechnungstyp

    Legen Sie während der Bereitstellung die Variable fest, um den Berechnungstyp zu ändern CodeBuild, für den AFT verwendetaft_codebuild_compute_type.

    Informationen zu akzeptierten Berechnungstypen finden Sie unter Über On-Demand-Umgebungstypen. Der Standard-Berechnungstyp istBUILD_GENERAL1_MEDIUM.

  • Konfigurieren Sie optional OpenID Connect (OIDC) für Terraform

    Kunden, die Terraform Enterprise oder HCP Terraform (ehemals Terraform Cloud) verwenden, können die Workload-Identitätstoken (oder dynamische Anbieteranmeldeinformationen) von Terraform verwenden, die auf dem OIDC-Protokoll basieren, um Arbeitsbereiche sicher mit AFT zu verbinden und zu authentifizieren.

    Sie können die OIDC-Integration für AFT-Workspaces aktivieren, indem Sie den Parameter auf setzen. terraform_oidc_integration true Dieser Parameter ist standardmäßig auf false festgelegt. Wenn Sie diesen Parameter aktivieren, sollten die terraform_oidc_hostname Parameter terraform_oidc_aws_audience und überprüft und konfiguriert werdenapp.terraform.io, falls die Standardwerte (aws.workload.identitybzw.) nicht mit Ihrer Umgebung übereinstimmen.

    Beispielkonfiguration:

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

    Dieser Parameter gilt nur für Terraform Enterprise- oder HCP Terraform-Bereitstellungen.

    Anmerkung

    Wenn Sie derzeit einen OIDC-Anbieter für Terraform im AFT-Verwaltungskonto nutzen, müssen Sie diesen Anbieter löschen, bevor Sie sich für diese Integration anmelden. AFT erstellt diesen Anbieter bei der Bereitstellung für Sie neu.

Schritt 6: Rufen Sie das Account Factory for Terraform-Modul an, um AFT bereitzustellen

Rufen Sie das AFT-Modul mit der Rolle auf, die Sie für das AWS Control Tower-Verwaltungskonto mit Anmeldeinformationen erstellt haben AdministratorAccess. AWS Control Tower stellt ein Terraform-Modul über das AWS Control Tower-Managementkonto bereit, das die gesamte Infrastruktur einrichtet, die für die Orchestrierung von AWS Control Tower Account Factory-Anfragen erforderlich ist.

Sie können das AFT-Modul im AFT-Repository unter anzeigen GitHub. Das gesamte GitHub Repository wird als AFT-Modul betrachtet. Informationen zu den Eingaben, die für die Ausführung des AFT-Moduls und die Bereitstellung von AFT erforderlich sind, finden Sie in der README-Datei. Alternativ können Sie das AFT-Modul in der Terraform Registry einsehen.

Wenn Sie in Ihrer Umgebung Pipelines haben, die für die Verwaltung von Terraform eingerichtet wurden, können Sie das AFT-Modul in Ihren bestehenden Workflow integrieren. Andernfalls führen Sie das AFT-Modul in einer beliebigen Umgebung aus, die mit den erforderlichen Anmeldeinformationen authentifiziert ist.

Ein Timeout führt dazu, dass die Bereitstellung fehlschlägt. Wir empfehlen die Verwendung von AWS -Security-Token-Service (STS) -Anmeldeinformationen, um sicherzustellen, dass Sie einen Timeout haben, der für eine vollständige Bereitstellung ausreicht. Das Mindest-Timeout für AWS STS Anmeldeinformationen beträgt 60 Minuten. Weitere Informationen finden Sie im AWS Identity and Access Management Benutzerhandbuch unter Temporäre Sicherheitsanmeldeinformationen in IAM.

Anmerkung

Sie können bis zu 30 Minuten warten, bis AFT die Bereitstellung über das Terraform-Modul abgeschlossen hat.

Schritt 7: Verwalten Sie die Terraform-Statusdatei

Eine Terraform-Statusdatei wird generiert, wenn Sie AFT bereitstellen. Dieses Artefakt beschreibt den Zustand der Ressourcen, die Terraform erstellt hat. Wenn Sie vorhaben, die AFT-Version zu aktualisieren, stellen Sie sicher, dass die Terraform-Statusdatei erhalten bleibt, oder richten Sie ein Terraform-Backend mit Amazon S3 und DynamoDB ein. Das AFT-Modul verwaltet keinen Backend-Terraform-Status.

Anmerkung

Sie sind für den Schutz der Terraform-Statusdatei verantwortlich. Einige Eingabevariablen können vertrauliche Werte enthalten, z. B. einen privaten ssh Schlüssel oder ein Terraform-Token. Abhängig von Ihrer Bereitstellungsmethode können diese Werte als Klartext in der Terraform-Statusdatei sichtbar sein. Weitere Informationen finden Sie auf der Website unter Sensible Daten in State. HashiCorp