

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Menyediakan akun dengan AWS Control Tower Account Factory untuk Terraform (AFT)
<a name="taf-account-provisioning"></a>

AWS Control Tower Account Factory for Terraform (AFT) mengadopsi GitOps model yang mengotomatiskan proses penyediaan dan pembaruan akun di AWS Control Tower. 

Dengan AFT, Anda membuat file Terraform permintaan akun, yang berisi input yang memanggil alur kerja AFT. Setelah penyediaan dan pembaruan akun selesai, alur kerja AFT berlanjut dengan menjalankan kerangka kerja penyediaan akun AFT dan langkah-langkah penyesuaian akun. 

AFT tidak memengaruhi kinerja alur kerja di AWS Control Tower. Jika Anda menyediakan akun melalui AFT atau Account Factory, alur kerja backend yang sama akan terjadi.

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

**catatan**  
Penyediaan akun AFT harus menargetkan unit organisasi (OU) yang AWSControl TowerBaseline diaktifkan di AWS Control Tower. Untuk detailnya AWSControlTowerBaseline, lihat:[Jenis dasar yang berlaku di tingkat OU](types-of-baselines.md#ou-baseline-types).

Ketika Anda memulai dengan AFT, Anda akan membuat yang berikut: 
+ Di AWS Control Tower, buat OU, lalu akun manajemen AFT, untuk lingkungan AFT Anda. Catat ID akun, sehingga Anda dapat memasukkannya ke dalam `main.tf` file nanti, saat Anda menggunakan AFT dengan modul Terraform. Anda dapat melihat ID akun ini di halaman **detail AWS Control Tower Control**. Untuk informasi selengkapnya, lihat dokumentasi [Terraform](https://developer.hashicorp.com/terraform/tutorials/aws/aws-control-tower-aft). 
+ Satu atau lebih `git` repositori untuk lingkungan AFT Anda yang sepenuhnya digunakan. Untuk informasi selengkapnya, lihat [Langkah pasca-penerapan untuk](https://docs.aws.amazon.com/controltower/latest/userguide/aft-post-deployment.html) AFT. 
+ Lingkungan AFT yang sepenuhnya digunakan. Untuk informasi selengkapnya, lihat [Ikhtisar AWS Control Tower Account Factory for Terraform (AFT)](https://docs.aws.amazon.com/controltower/latest/userguide/aft-overview.html) dan [Menerapkan AWS Control Tower Account Factory untuk Terraform](https://docs.aws.amazon.com/controltower/latest/userguide/aft-getting-started.html) (AFT). Lihat juga dokumentasi [Terraform](https://developer.hashicorp.com/terraform/tutorials/aws/aws-control-tower-aft). 

**Tip**  
Anda dapat membuat akun manajemen AFT dari konsol AWS Control Tower dengan **Buat akun**. Untuk informasi selengkapnya, lihat [Metode penyediaan](https://docs.aws.amazon.com//controltower/latest/userguide/methods-of-provisioning.html).  
Selain itu, secara opsional, Anda dapat membuat folder template akun untuk membantu menentukan akun tambahan Anda, di **aft-account-customizations**repositori. 

Untuk akun yang terdaftar melalui Auto Enroll:
+ Pembuatan akun baru melalui AFT terus bekerja secara normal.
+ Impor akun yang ada memerlukan langkah-langkah tambahan:
  + Daftarkan OU untuk membuat produk yang disediakan yang diperlukan sebelum mengimpor.
  + Register OU akan memancarkan `CreateManagedAccount` dan `UpdateManagedAccount` acara, memungkinkan kustomisasi AFT.

Untuk informasi tentang Wilayah AWS di mana AFT memiliki batasan penerapan, lihat [Batasan dan kuota di AWS Control Tower](limits.md) dan[Keterbatasan kontrol](control-limitations.md).

[Dokumentasi Terraform](https://developer.hashicorp.com/terraform/tutorials/aws/aws-control-tower-aft) berisi ikhtisar bagus tentang cara menyiapkan AWS Control Tower Account Factory for Terraform (AFT).

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

 Account Factory for Terraform (AFT) menyiapkan pipeline Terraform untuk membantu Anda menyediakan dan menyesuaikan akun di AWS Control Tower. AFT memberi Anda keuntungan dari penyediaan akun berbasis Terraform sambil memungkinkan Anda untuk mengatur akun Anda dengan AWS Control Tower. 

 Dengan AFT Anda membuat *file Terraform permintaan akun* untuk mendapatkan input yang memicu alur kerja AFT untuk penyediaan akun. Setelah tahap penyediaan akun selesai, AFT secara otomatis menjalankan serangkaian langkah sebelum tahap penyesuaian akun dimulai. Untuk informasi selengkapnya, lihat [pipeline penyediaan akun AFT.](https://docs.aws.amazon.com/controltower/latest/userguide/aft-provisioning-framework.html) 

 AFT mendukung Terraform Cloud, Terraform Enterprise, dan Terraform Community Edition. Dengan AFT Anda dapat memulai pembuatan akun menggunakan file input dan `git push` perintah sederhana dan menyesuaikan akun baru atau yang sudah ada. Pembuatan akun mencakup semua manfaat tata kelola AWS Control Tower dan penyesuaian akun yang membantu Anda memenuhi prosedur keamanan standar dan pedoman kepatuhan organisasi Anda. 

 AFT mendukung penelusuran permintaan kustomisasi akun. Setiap kali Anda mengirimkan permintaan kustomisasi akun, AFT menghasilkan token penelusuran unik yang melewati mesin AWS Step Functions status penyesuaian AFT, yang mencatat token sebagai bagian dari pelaksanaannya. Anda kemudian dapat menggunakan kueri wawasan Amazon CloudWatch Logs untuk mencari rentang stempel waktu dan mengambil token permintaan. Akibatnya, Anda dapat melihat muatan yang menyertai token, sehingga Anda dapat melacak permintaan penyesuaian akun Anda di seluruh alur kerja AFT. Untuk informasi tentang CloudWatch Log dan Step Functions, lihat berikut ini: 
+  [Apa itu Amazon CloudWatch Logs?](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) di *Panduan Pengguna CloudWatch Log Amazon* 
+  [Apa itu AWS Step Functions?](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html) di *Panduan Developer AWS Step Functions * 

AFT menggabungkan kemampuan AWS layanan lain sebagai[Layanan komponen](aft-components.md), untuk membangun kerangka kerja, dengan saluran pipa yang menyebarkan Terraform Infrastructure as Code (IAc). AFT memungkinkan Anda untuk:
+ Kirim permintaan penyediaan akun dan perbarui dalam model GitOps 
+ Metadata akun toko dan riwayat audit
+ Terapkan tag tingkat akun
+ Tambahkan penyesuaian ke semua akun, ke satu set akun, atau ke akun individual
+ Aktifkan opsi fitur

AFT membuat akun terpisah, yang disebut *akun manajemen AFT*, untuk menyebarkan kemampuan AFT. Sebelum Anda dapat mengatur AFT, Anda harus memiliki landing zone AWS Control Tower yang sudah ada. Akun manajemen AFT tidak sama dengan akun manajemen AWS Control Tower.

**AFT menawarkan fleksibilitas**
+ **Fleksibilitas untuk platform Anda:** AFT mendukung Distribusi Terraform apa pun untuk penerapan awal dan operasi berkelanjutan: Edisi Komunitas, Cloud, dan Perusahaan.
+ **Fleksibilitas untuk sistem kontrol versi Anda:** Dukungan AFT AWS CodeCommit, dan sumber kontrol versi alternatif melalui AWS CodeConnections.

**AFT menawarkan opsi fitur**

Anda dapat mengaktifkan beberapa opsi fitur, berdasarkan praktik terbaik:
+ Membuat tingkat organisasi CloudTrail untuk mencatat peristiwa data
+ Menghapus VPC AWS default untuk akun
+ Mendaftarkan akun yang disediakan ke dalam paket Enterprise Support AWS 

**catatan**  
Pipeline AFT tidak dimaksudkan untuk digunakan dalam menyebarkan sumber daya, seperti instans Amazon EC2, yang diperlukan akun Anda untuk menjalankan aplikasi Anda. Ini ditujukan semata-mata untuk penyediaan otomatis dan penyesuaian akun AWS Control Tower.

## Panduan Video
<a name="terraform-provisioning-video"></a>

Video ini (7:33) menjelaskan cara menerapkan akun dengan AWS Control Tower Account Factory untuk Terraform. Untuk tampilan yang lebih baik, pilih ikon di sudut kanan bawah video untuk memperbesarnya ke layar penuh. Captioning tersedia.

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


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

## Urutan operasi
<a name="aft-operation"></a>

 Anda menjalankan operasi AFT di akun manajemen AFT. Untuk alur kerja penyediaan akun lengkap, urutan tahapan dari kiri ke kanan dalam diagram adalah sebagai berikut: 

1.  Permintaan akun dibuat dan dikirimkan ke pipeline. Anda dapat membuat dan mengirimkan lebih dari satu permintaan akun sekaligus. Account Factory memproses permintaan dalam first-in-first-out urutan. Untuk informasi selengkapnya, lihat [Mengirimkan beberapa permintaan akun](https://docs.aws.amazon.com/controltower/latest/userguide/aft-multiple-account-requests.html). 

1.  Setiap akun disediakan. Tahap ini berjalan di akun manajemen AWS Control Tower. 

1.  Kustomisasi global berjalan di pipeline yang dibuat untuk setiap akun vended. 

1.  Jika penyesuaian ditentukan dalam permintaan penyediaan akun awal, penyesuaian hanya berjalan pada akun yang ditargetkan. Jika Anda memiliki akun yang sudah disediakan, Anda harus memulai penyesuaian lebih lanjut secara manual di pipeline akun. 

**AWS Control Tower Account Factory untuk Terraform — alur kerja penyediaan akun**

![\[Gambar: Diagram Alur Kerja AFT\]](http://docs.aws.amazon.com/id_id/controltower/latest/userguide/images/high-level-aft-diagram.png)


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

Tidak ada biaya tambahan untuk AFT. Anda hanya membayar untuk sumber daya yang digunakan oleh AFT, AWS layanan yang diaktifkan oleh AFT, dan sumber daya yang Anda terapkan di lingkungan AFT Anda.

Konfigurasi AFT default mencakup alokasi AWS PrivateLink titik akhir, untuk perlindungan dan keamanan data yang ditingkatkan, dan gateway NAT yang diperlukan untuk mendukung. AWS CodeBuild Untuk detail tentang harga infrastruktur ini, lihat [AWS PrivateLink harga dan harga](https://aws.amazon.com//privatelink/pricing/) [VPC Amazon untuk NAT Gateway](https://aws.amazon.com//vpc/pricing/). Hubungi perwakilan AWS akun Anda untuk informasi lebih spesifik tentang mengelola biaya ini. Anda dapat mengubah pengaturan default ini untuk AFT.

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

 Bagian ini ditujukan untuk administrator lingkungan AWS Control Tower yang ingin menyiapkan Account Factory for Terraform (AFT) di lingkungan mereka yang ada. Ini menjelaskan cara menyiapkan Account Factory untuk lingkungan Terraform (AFT) dengan akun manajemen AFT khusus yang baru. 

**catatan**  
 Modul Terraform menyebarkan AFT. Modul ini tersedia di [repositori AFT](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main) aktif GitHub, dan seluruh repositori AFT dianggap sebagai modul.   
 Kami menyarankan Anda merujuk ke modul AFT GitHub alih-alih mengkloning repositori AFT. Dengan cara ini Anda dapat mengontrol dan menggunakan pembaruan modul saat tersedia. 

 Untuk detail tentang rilis terbaru fungsi AWS Control Tower Account Factory for Terraform (AFT), lihat [file Rilis](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/releases) untuk repositori ini GitHub .

 **Prasyarat penyebaran** 

Sebelum Anda mengkonfigurasi dan meluncurkan lingkungan AFT Anda, Anda harus memiliki sumber daya berikut yang tersedia: 
+  Wilayah rumah untuk zona landing zone AWS Control Tower Anda. Untuk informasi selengkapnya, lihat [Cara Wilayah AWS bekerja dengan AWS Control Tower](https://docs.aws.amazon.com/controltower/latest/userguide/region-how.html). 
+  Sebuah landing zone AWS Control Tower. Untuk informasi selengkapnya, lihat [Merencanakan landing zone AWS Control Tower](https://docs.aws.amazon.com/controltower/latest/userguide/planning-your-deployment.html) Anda. 
+  Akun manajemen AFT, yang dapat Anda sediakan di AWS Control Tower, atau sediakan dengan cara lain dan daftarkan ke AWS Control Tower. 
+  Versi dan distribusi Terraform. Untuk informasi lebih lanjut, lihat versi [Terraform dan AFT](https://docs.aws.amazon.com/controltower/latest/userguide/version-supported.html). 
+  Penyedia VCS untuk melacak dan mengelola perubahan kode dan file lainnya. Secara default, AFT menggunakan AWS CodeCommit. Untuk informasi lebih lanjut, lihat [Apa itu AWS CodeCommit?](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) dalam *AWS CodeCommit User Guide*.

  Jika Anda menerapkan AFT untuk pertama kalinya dan Anda tidak memiliki CodeCommit repositori yang ada, Anda harus memilih penyedia VCS eksternal, seperti atau. GitHub BitBucket Untuk informasi selengkapnya, lihat [Alternatif untuk kontrol versi kode sumber di AFT](https://docs.aws.amazon.com/controltower/latest/userguide/aft-alternative-vcs.html). 
+  Lingkungan runtime tempat Anda dapat menjalankan modul Terraform yang menginstal AFT. 
+  Opsi fitur AFT. Untuk informasi selengkapnya, lihat [Mengaktifkan opsi fitur](https://docs.aws.amazon.com/controltower/latest/userguide/aft-feature-options.html). 

## Konfigurasikan dan luncurkan AWS Control Tower Account Factory untuk Terraform
<a name="aft-configure-and-launch"></a>

 Langkah-langkah berikut mengasumsikan bahwa Anda terbiasa dengan alur kerja Terraform. Anda juga dapat mempelajari lebih lanjut tentang penerapan AFT dengan mengikuti lab [Pengantar AFT](https://catalog.workshops.aws/control-tower/en-US/customization/aft) di situs web AWS Workshop Studio. 

 **Langkah 1: Luncurkan landing zone AWS Control Tower** 

 Selesaikan langkah-langkah dalam [Memulai AWS Control Tower](https://catalog.workshops.aws/control-tower/en-US/customization/aft). Di sinilah Anda membuat akun manajemen AWS Control Tower dan menyiapkan landing zone AWS Control Tower Anda. 

**catatan**  
 Pastikan untuk membuat peran untuk akun manajemen AWS Control Tower yang memiliki **AdministratorAccess**kredensil. Untuk informasi selengkapnya, lihat berikut ini:   
 [Identitas IAM (pengguna, grup pengguna, dan peran)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html) *di AWS Identity and Access Management Panduan Pengguna* 
 [AdministratorAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AdministratorAccess.html)dalam *Panduan Referensi Kebijakan AWS Terkelola* 

 **Langkah 2: Buat unit organisasi baru untuk AFT (sangat disarankan)** 

 Kami menyarankan Anda membuat OU terpisah di zona landing zone AWS Control Tower Anda. OU ini adalah tempat Anda menyediakan akun manajemen AFT. Buat akun manajemen OU dan AFT baru dari akun manajemen AWS Control Tower Anda. Untuk informasi selengkapnya, lihat [Membuat OU baru](https://docs.aws.amazon.com/controltower/latest/userguide/create-new-ou.html). 

 **Langkah 3: Menyediakan akun manajemen AFT** 

 AFT mengharuskan Anda menyediakan AWS akun yang didedikasikan untuk operasi manajemen AFT. Buat akun manajemen AFT saat Anda masuk ke akun manajemen AWS Control Tower yang terkait dengan landing zone AWS Control Tower Anda. Anda dapat menyediakan akun manajemen AFT dari konsol AWS Control Tower dengan memilih **Buat akun** di halaman **Organisasi**, atau dengan cara lain. Untuk informasi selengkapnya, lihat [Menyediakan akun dengan AWS Service Catalog Account Factory](https://docs.aws.amazon.com/controltower/latest/userguide/provision-as-end-user.html). 

**catatan**  
Jika Anda membuat OU terpisah untuk AFT, pastikan untuk memilih OU ini saat Anda membuat akun manajemen AFT. 

Diperlukan waktu hingga 30 menit untuk sepenuhnya menyediakan akun manajemen AFT. 

 **Langkah 4: Verifikasi bahwa lingkungan Terraform tersedia untuk penerapan** 

 Langkah ini mengasumsikan bahwa Anda memiliki pengalaman dengan Terraform dan memiliki prosedur untuk menjalankan Terraform. Untuk informasi selengkapnya, lihat [Command: init](https://developer.hashicorp.com/terraform/cli/commands/init) di situs web HashiCorp Developer. 

**catatan**  
 AFT mendukung Versi Terraform `1.6.0` atau yang lebih baru. 

 **Langkah 5: Konfigurasi opsional**
+ **Secara opsional mengatur konfigurasi virtual private cloud (VPC)**

  Modul AFT menyertakan `aft_enable_vpc` parameter, yang menentukan apakah AWS Control Tower menyediakan sumber daya akun dalam VPC di akun manajemen AFT pusat. Secara default, parameter diatur ke`true`. Jika Anda menyetel parameter ini`false`, AWS Control Tower menerapkan AFT *tanpa* menggunakan VPC dan sumber daya jaringan pribadi, seperti NAT Gateways atau titik akhir VPC. Menonaktifkan `aft_enable_vpc` dapat membantu mengurangi biaya operasi AFT *untuk beberapa pola penggunaan*. Menambahkan konfigurasi VPC apa pun akan mengesampingkan parameter yang disetel ke. `aft_enable_vpc` `false`
**catatan**  
Mengaktifkan kembali `aft_enable_vpc` parameter (mengalihkan nilai dari `false` ke`true`) mungkin mengharuskan Anda menjalankan `terraform apply` perintah dua kali berturut-turut.

  Alih-alih menyediakan VPC baru, Anda dapat mengonfigurasi AFT untuk menggunakan VPC yang ada di akun Anda. Untuk menggunakan VPC Anda sendiri, berikan parameter konfigurasi VPC berikut:
  + `aft_customer_vpc_id`- ID VPC Anda yang ada
  + `aft_customer_private_subnets`- Daftar subnet pribadi IDs di VPC Anda

  Contoh konfigurasi:

  ```
  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...
  }
  ```
**penting**  
Kami tidak menyarankan Anda menggunakan opsi VPC kustom jika Anda memiliki penerapan AFT yang sudah ada. Anda mungkin memiliki dependensi pada fungsi Lambda atau CodePipeline yang bergantung pada sumber daya dalam VPC yang ada.
+ **Konfigurasikan nama proyek Terraform secara opsional**

  Anda dapat menyesuaikan nama proyek Terraform yang digunakan oleh AFT dengan menyetel parameter. `terraform_project_name` Secara default, AFT menempatkan penerapan dalam proyek “default” di Terraform Cloud atau Terraform Enterprise.

  Contoh konfigurasi:

  ```
  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...
  }
  ```
**catatan**  
Parameter ini hanya berlaku untuk penerapan Terraform Enterprise atau Terraform Cloud.
+ **Secara opsional menerapkan tag khusus ke sumber daya AFT**

  Anda dapat menerapkan tag khusus ke semua sumber daya AFT dengan menggunakan `tags` parameter. Tag ini membantu organisasi sumber daya, alokasi biaya, dan kontrol akses.

  Contoh konfigurasi:

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

  Tag ini diterapkan ke semua sumber daya yang dibuat oleh modul AFT. AFT secara otomatis menambahkan `managed_by = "AFT"` tag ke semua sumber daya, yang tidak dapat diganti dengan tag khusus.
**catatan**  
Tag khusus dapat ditambahkan kapan saja, tidak hanya selama penerapan awal.
+ **Secara opsional menerapkan kunci enkripsi yang AWS KMS dikelola pelanggan (CMK) ke grup CloudWatch log dan topik SNS**

  Untuk mengaktifkan enkripsi KMS CMK untuk grup log dan topik SNS, atur variabel dan. `cloudwatch_log_group_enable_cmk_encryption` `sns_topic_enable_cmk_encryption`

  Jika Anda memilih pengaturan ini, AFT menggunakan CMK yang ada, *alias/aft*, untuk mengenkripsi CloudWatch log dan topik SNS. CMK ini dibuat ketika AFT digunakan di akun manajemen AFT, dan dapat diterapkan ke grup log dan topik SNS. 
  + Jika variabel `cloudwatch_log_group_enable_cmk_encryption` disetel ke **true**, grup CloudWatch log untuk AFT dienkripsi menggunakan CMK. Jika variabel diatur ke **false**, yang merupakan nilai default, log dienkripsi menggunakan [enkripsi sisi server dengan CloudWatch log](https://docs.aws.amazon.com//AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html) default.
  +  Jika variabel `sns_topic_enable_cmk_encryption` disetel ke **true**, notifikasi yang dikirim ke topik SNS AFT (*aft-notifications* dan *aft-failure-notifications*) dienkripsi menggunakan CMK. Jika variabel disetel ke **false**, yang merupakan nilai default, pesan SNS dienkripsi dengan kunci yang dikelola AWS:. *alias/aws/sns* Untuk informasi selengkapnya, lihat [istilah kunci SSE](https://docs.aws.amazon.com//sns/latest/dg/sns-server-side-encryption.html#sse-key-terms).
+ **Secara opsional mengubah jenis CodeBuild komputasi Anda**

  Selama penerapan, untuk mengubah jenis komputasi yang digunakan AFT CodeBuild, setel variabel. `aft_codebuild_compute_type`

  Untuk informasi tentang jenis komputasi yang diterima, lihat [Tentang jenis lingkungan sesuai permintaan](https://docs.aws.amazon.com//codebuild/latest/userguide/build-env-ref-compute-types.html#environment.types). Jenis komputasi default adalah`BUILD_GENERAL1_MEDIUM`. 
+ **Konfigurasikan OpenID Connect (OIDC) secara opsional untuk Terraform**

  Pelanggan yang menggunakan Terraform Enterprise atau HCP Terraform (sebelumnya Terraform Cloud) dapat menggunakan token identitas Beban Kerja Terraform (atau kredensyal penyedia dinamis), yang dibangun di atas protokol OIDC, untuk menghubungkan dan mengautentikasi ruang kerja dengan aman dengan AFT.

  Anda dapat mengaktifkan integrasi OIDC untuk ruang kerja AFT dengan menyetel parameter ke. `terraform_oidc_integration` `true` Secara default, parameter ini diatur ke`false`. Saat mengaktifkan parameter ini, `terraform_oidc_hostname` parameter `terraform_oidc_aws_audience` and harus ditinjau dan dikonfigurasi jika default (`aws.workload.identity`dan`app.terraform.io`, masing-masing) tidak cocok dengan lingkungan Anda.

  Contoh konfigurasi:

  ```
  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...
  }
  ```
**catatan**  
Parameter ini hanya berlaku untuk penerapan Terraform Enterprise atau HCP Terraform.
**catatan**  
Jika saat ini Anda memanfaatkan penyedia OIDC untuk Terraform di akun manajemen AFT, Anda harus menghapus penyedia tersebut sebelum ikut serta dalam integrasi ini. AFT akan membuat ulang penyedia itu untuk Anda saat penerapan.

**Langkah 6: Hubungi Account Factory untuk modul Terraform untuk menyebarkan AFT** 

 Panggil modul AFT dengan peran yang Anda buat untuk akun manajemen AWS Control Tower yang memiliki **AdministratorAccess**kredensyal. AWS Control Tower menyediakan modul Terraform melalui akun manajemen AWS Control Tower, yang menetapkan semua infrastruktur yang diperlukan untuk mengatur permintaan AWS Control Tower Account Factory. 

 Anda dapat melihat modul AFT di [repositori AFT](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main) pada. GitHub Seluruh GitHub repositori dianggap sebagai modul AFT. Lihat [file README](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/blob/main/README.md) untuk informasi tentang input yang diperlukan untuk menjalankan modul AFT dan menerapkan AFT. Atau, Anda dapat melihat modul AFT di [Terraform](https://registry.terraform.io/modules/aws-ia/control_tower_account_factory/aws/latest) Registry. 

 Jika Anda memiliki saluran pipa di lingkungan Anda yang dibuat untuk mengelola Terraform, Anda dapat mengintegrasikan modul AFT ke dalam alur kerja yang ada. Jika tidak, jalankan modul AFT dari lingkungan apa pun yang diautentikasi dengan kredensi yang diperlukan. 

 Timeout menyebabkan penerapan gagal. Sebaiknya gunakan kredensi AWS Security Token Service (STS) untuk memastikan Anda memiliki batas waktu yang cukup untuk penerapan penuh. Batas waktu minimum untuk AWS STS kredensional adalah 60 menit. *Untuk informasi selengkapnya, lihat [Kredensi keamanan sementara di IAM di Panduan](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) Pengguna.AWS Identity and Access Management * 

**catatan**  
 Anda mungkin menunggu hingga 30 menit hingga AFT menyelesaikan penerapan melalui modul Terraform. 

 **Langkah 7: Kelola file status Terraform** 

 File status Terraform dibuat saat Anda menerapkan AFT. Artefak ini menggambarkan keadaan sumber daya yang dibuat Terraform. Jika Anda berencana untuk memperbarui versi AFT, pastikan untuk memilih file status Terraform, atau siapkan backend Terraform menggunakan Amazon S3 dan DynamoDB. Modul AFT tidak mengelola status Terraform backend. 

**catatan**  
 Anda bertanggung jawab untuk melindungi file status Terraform. Beberapa variabel input mungkin berisi nilai sensitif, seperti `ssh` kunci pribadi atau token Terraform. Bergantung pada metode penerapan Anda, nilai-nilai ini dapat dilihat sebagai teks biasa di file status Terraform. Untuk informasi selengkapnya, lihat [Data sensitif di Negara](https://www.terraform.io/docs/language/state/sensitive-data.html) di HashiCorp situs web. 

# Langkah-langkah pasca-penerapan
<a name="aft-post-deployment"></a>

Setelah penyebaran infrastruktur AFT selesai, ikuti langkah-langkah tambahan ini untuk menyelesaikan proses penyiapan dan bersiap-siap untuk menyediakan akun. 

**Langkah 1: Lengkap CodeConnections dengan penyedia VCS yang Anda inginkan**

Jika Anda memilih penyedia VCS pihak ketiga, AFT menetapkan CodeConnections, dan Anda mengonfirmasinya. Lihat [Alternatif untuk kontrol versi kode sumber di AFT](aft-alternative-vcs.md) untuk mempelajari cara mengatur AFT dengan VCS pilihan Anda.

Langkah awal membangun AWS CodeStar koneksi dilakukan oleh AFT. Anda harus mengkonfirmasi koneksi.

**Langkah 2: Isi setiap repositori**

AFT mengharuskan Anda mengelola [empat repositori](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main/sources/aft-customizations-repos):

1. Permintaan akun — Repositori ini menangani penempatan atau pembaruan permintaan akun. [Contoh yang tersedia](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main/sources/aft-customizations-repos/aft-account-request). Untuk informasi selengkapnya tentang permintaan akun AFT, lihat[Menyediakan akun baru dengan AFT](aft-provision-account.md).

1. Kustomisasi penyediaan akun AFT — Repositori ini mengelola penyesuaian yang diterapkan ke semua akun yang dibuat oleh dan dikelola dengan AFT, sebelum memulai tahap penyesuaian global. [Contoh yang tersedia](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main/sources/aft-customizations-repos/aft-account-provisioning-customizations). Untuk membuat kustomisasi penyediaan akun AFT, lihat. [Buat mesin status penyesuaian penyediaan akun AFT Anda](aft-provisioning-framework.md#aft-create-customizations)

1. Kustomisasi global — Repositori ini mengelola penyesuaian yang diterapkan ke semua akun yang dibuat oleh dan dikelola dengan AFT. [Contoh yang tersedia](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main/sources/aft-customizations-repos/aft-global-customizations). Untuk membuat kustomisasi global AFT, lihat. [Terapkan kustomisasi global](aft-account-customization-options.md#aft-global-customizations)

1. Penyesuaian akun — Repositori ini mengelola penyesuaian yang hanya diterapkan pada akun tertentu yang dibuat oleh dan dikelola dengan AFT. [Contoh yang tersedia](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main/sources/aft-customizations-repos/aft-account-customizations). Untuk membuat kustomisasi akun AFT, lihat. [Terapkan kustomisasi akun](aft-account-customization-options.md#aft-account-customizations)

 AFT mengharapkan bahwa masing-masing repositori ini mengikuti struktur direktori tertentu. [Template yang digunakan untuk mengisi repositori dan instruksi yang menjelaskan cara mengisi template tersedia di modul Account Factory for Terraform di repositori github AFT.](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main/sources/aft-customizations-repos) 

# Menyediakan akun baru dengan AFT
<a name="aft-provision-account"></a>

*Bagian ini mengasumsikan bahwa Anda telah menyiapkan AFT dan akun manajemen AFT Anda, dan Anda menyediakan akun tambahan.*

Untuk menyediakan akun baru dengan AFT, buat file Terraform permintaan akun. File ini berisi input untuk parameter dalam **aft-account-request**repositori. Setelah membuat file Terraform permintaan akun, mulailah memproses permintaan akun Anda dengan menjalankan. `git push` Perintah ini memanggil `ct-aft-account-request` operasi di AWS CodePipeline, yang dibuat di akun manajemen AFT setelah penyediaan akun selesai. Untuk informasi selengkapnya, lihat [pipeline penyediaan akun AFT.](https://docs.aws.amazon.com/controltower/latest/userguide/aft-provisioning-framework.html) 

## Permintaan akun Parameter file Terraform
<a name="w2aac44c33c15b7"></a>

 Anda harus menyertakan parameter berikut dalam file Terraform permintaan akun Anda. Anda dapat melihat [contoh permintaan akun Terraform file](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main/sources/aft-customizations-repos/aft-account-request) di. GitHub 
+  Nilai `module name` harus unik sesuai Akun AWS permintaan. 
+  Nilai `module source` adalah jalur ke modul Terraform permintaan akun yang disediakan AFT. 
+  Nilai `control_tower_parameters` menangkap input yang diperlukan untuk membuat akun AWS Control Tower. Nilai termasuk bidang masukan berikut: 
  + `AccountEmail`
  + `AccountName`
  +  `ManagedOrganizationalUnit` 
  + `SSOUserEmail`
  + `SSOUserFirstName`
  + `SSOUserLastName`

**catatan**  
 Masukan yang Anda berikan tidak `control_tower_parameters` dapat diubah selama penyediaan akun.   
 Format yang didukung untuk menentukan `ManagedOrganizationalUnit` dalam **aft-account-request**repositori termasuk dan. `OUName` `OUName (OU-ID)` 
+  `account_tags`menangkap kunci dan nilai yang ditentukan pengguna, yang dapat menandai Akun AWS sesuai dengan kriteria bisnis. Untuk informasi selengkapnya, lihat [Menandai AWS Organizations sumber daya](https://docs.aws.amazon.com//organizations/latest/userguide/orgs_tagging.html) di *Panduan AWS Organizations Pengguna*. 
+  Nilai `change_management_parameters` menangkap informasi tambahan, seperti mengapa permintaan akun dibuat dan siapa yang memulai permintaan akun. Nilai termasuk bidang masukan berikut: 
  + `change_reason`
  + `change_requested_by`
+  `custom_fields`**menangkap metadata tambahan dengan kunci dan nilai yang diterapkan sebagai parameter SSM di akun vended di bawah/-fields/. aft/account-request/custom** Anda dapat mereferensikan metadata ini selama penyesuaian akun untuk menerapkan kontrol yang tepat. Misalnya, akun yang tunduk pada kepatuhan peraturan dapat menggunakan tambahan Aturan AWS Config. Metadata yang Anda kumpulkan `custom_fields` dapat meminta pemrosesan tambahan selama penyediaan dan pembaruan akun. Jika bidang kustom dihapus dari permintaan akun, bidang kustom akan dihapus dari Penyimpanan Parameter SSM untuk akun vended. 
+  (Opsional) `account_customizations_name` menangkap folder template akun di **aft-account-customizations**repositori. Untuk informasi selengkapnya, lihat [Penyesuaian akun](https://docs.aws.amazon.com/controltower/latest/userguide/aft-account-customization-options.html). 

# Kirim beberapa permintaan akun
<a name="aft-multiple-account-requests"></a>

 AFT memproses permintaan akun satu per satu, tetapi Anda dapat mengirimkan beberapa permintaan akun ke pipeline AFT. Saat Anda mengirimkan beberapa permintaan akun ke pipeline AFT, AFT mengantri dan memproses permintaan akun dalam urutan masuk pertama, keluar pertama. 

**catatan**  
 Anda dapat membuat file Terraform permintaan akun untuk setiap akun yang Anda inginkan agar AFT sediakan atau kaskade beberapa permintaan akun dalam satu file Terraform permintaan akun. 

# Perbarui akun yang ada
<a name="aft-update-account"></a>

**Kompatibilitas Daftar Otomatis**  
Jika organisasi Anda menggunakan Auto Enroll untuk pendaftaran akun otomatis, ketahuilah bahwa AFT memiliki batasan dalam mengimpor akun ini. Akun yang terdaftar melalui Auto Enroll tidak memiliki produk yang disediakan oleh Service Catalog yang diperlukan oleh alur kerja impor AFT.  
**Solusi: Gunakan fitur Register OU** untuk membuat produk yang disediakan untuk akun yang terdaftar secara otomatis. Ini memungkinkan peristiwa siklus hidup yang diperlukan untuk kustomisasi AFT.

 Anda dapat memperbarui akun yang disediakan AFT dengan mengedit permintaan akun yang dikirimkan sebelumnya dan menjalankan`git push`. Perintah ini memanggil alur kerja penyediaan akun dan dapat memproses permintaan pembaruan akun. Anda dapat memperbarui input untuk`ManagedOrganizationalUnit`, yang merupakan bagian dari nilai yang diperlukan untuk`control_tower_parameters`.

`ManagedOrganizationalUnit`adalah satu-satunya parameter yang dapat diperbarui, di antara semuanya`control_tower_parameters`. Namun, parameter lain yang merupakan bagian dari permintaan akun File Terraform dapat diperbarui, seperti. `custom_fields` Untuk informasi selengkapnya, lihat [Menyediakan akun baru dengan AFT](https://docs.aws.amazon.com/controltower/latest/userguide/aft-provision-account.html). 

Misalnya, untuk memperbarui nama atau alamat email akun AFT, Anda dapat menentukan spesifik seperti `custom_fields` pada file Permintaan Akun. Dengan demikian, Anda membuat parameter SSM, yang dapat Anda masukkan ke `aws_account_alternate_contact` sumber daya selama penyesuaian global.

```
resource "aws_account_alternate_contact" "operations" {

  alternate_contact_type = "OPERATIONS"

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

Anda dapat menambahkan bidang serupa untuk jenis kontak lainnya, seperti operasi dan keamanan. Di Kustomisasi Global, tambahkan pencarian data untuk setiap bidang kustom, untuk memastikan bahwa Anda mencari semua bidang yang Anda buat di Permintaan Akun:

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

Terakhir, juga di file Kustomisasi Global, buat sumber daya kontak alternatif. Anda perlu menentukan salah satu blok ini untuk setiap jenis kontak yang Anda buat di Permintaan Akun:

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

**catatan**  
 Masukan yang Anda berikan tidak `control_tower_parameters` dapat diubah selama penyediaan akun.   
 Format yang didukung untuk menentukan `ManagedOrganizationalUnit` dalam **aft-account-request**repositori termasuk dan. `OUName` `OUName (OU-ID)` 

## Perbarui akun yang tidak disediakan AFT
<a name="aft-update-account-not-provision"></a>

 Anda dapat memperbarui akun AWS Control Tower yang dibuat di luar AFT dengan menentukan akun di **aft-account-request**repositori. 

**catatan**  
 Pastikan semua detail akun sudah benar dan konsisten dengan organisasi AWS Control Tower dan masing-masing produk AWS Service Catalog yang disediakan. 

**Prasyarat untuk memperbarui yang sudah ada dengan AFT Akun AWS**
+  Akun AWS Harus terdaftar di AWS Control Tower. 
+  Akun AWS Harus menjadi bagian dari organisasi AWS Control Tower. 

# Versi Terraform dan AFT
<a name="version-supported"></a>

Account Factory for Terraform (AFT) mendukung versi Terraform atau yang lebih baru. `1.6.0` Anda harus memberikan versi Terraform sebagai parameter input untuk proses penerapan AFT, seperti yang ditunjukkan pada contoh berikut.

```
terraform_version = "1.6.0"
```

## Distribusi terraform
<a name="terraform-distributions"></a>

AFT mendukung tiga distribusi Terraform:
+ Edisi Komunitas Terraform
+ Awan Terraform
+ Perusahaan Terraform

Distribusi ini dijelaskan di bagian berikutnya. Berikan distribusi Terraform pilihan Anda sebagai parameter input selama proses bootstrap AFT. Untuk informasi selengkapnya tentang penerapan AFT dan parameter input, lihat[Terapkan AWS Control Tower Account Factory untuk Terraform (AFT)](aft-getting-started.md).

Jika Anda memilih distribusi Terraform Cloud atau Terraform Enterprise, [token API yang Anda tentukan `terraform_token ` harus berupa token API](https://www.terraform.io/cloud-docs/users-teams-organizations/api-tokens) Pengguna atau Tim. Token Organisasi tidak didukung untuk semua yang diperlukan APIs. Untuk alasan keamanan, Anda harus menghindari memeriksa nilai token ini ke sistem kontrol versi (VCS) Anda dengan menetapkan [variabel terraform](https://www.terraform.io/cloud-docs/workspaces/variables/managing-variables), seperti yang ditunjukkan pada contoh berikut.

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

### Edisi Komunitas Terraform
<a name="terraform-oss"></a>

Saat Anda memilih Terraform Community Edition sebagai distribusi Anda, AFT mengelola backend Terraform untuk Anda di akun manajemen AFT. AFT mengunduh versi Terraform yang Anda tentukan untuk dijalankan selama penerapan AFT dan fase pipeline AFT. `terraform-cli` Konfigurasi status Terraform yang dihasilkan disimpan dalam bucket Amazon S3, dinamai dengan bentuk berikut:

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

AFT juga membuat bucket Amazon S3 yang mereplikasi konfigurasi status Terraform Anda di tempat lain Wilayah AWS, untuk tujuan pemulihan bencana, dinamai dengan formulir berikut:

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

Kami menyarankan Anda mengaktifkan otentikasi multi-faktor (MFA) untuk fungsi hapus pada bucket Amazon S3 status Terraform ini. Untuk mempelajari lebih lanjut tentang Terraform Community Edition, lihat dokumentasi [Terraform](https://www.terraform.io/docs/cli/index.html).

Untuk memilih Terraform OSS sebagai distribusi Anda, berikan parameter input berikut:

```
terraform_distribution = "oss"
```

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

 Saat Anda memilih Terraform Cloud sebagai distribusi Anda, AFT membuat ruang kerja untuk komponen berikut di organisasi Terraform Cloud Anda, yang memulai alur kerja berbasis API. 
+  Permintaan akun 
+  Kustomisasi AFT untuk akun yang disediakan AFT 
+  Kustomisasi akun untuk akun yang disediakan AFT 
+  Kustomisasi global untuk akun yang disediakan AFT 

 Terraform Cloud mengelola konfigurasi status Terraform yang dihasilkan. 

 Saat Anda memilih Terraform Cloud sebagai distribusi Anda, berikan parameter input berikut: 
+  `terraform_distribution = "tfc"` 
+  `terraform_token`— Parameter ini berisi nilai token Terraform Cloud. AFT menandai sebagai sensitif dan menyimpan nilai sebagai string aman di penyimpanan parameter SSM di akun manajemen AFT. Kami menyarankan Anda memutar nilai token Terraform secara berkala sesuai dengan kebijakan keamanan dan pedoman kepatuhan perusahaan Anda. Token Terraform harus berupa token API tingkat Pengguna atau Tim. Token organisasi tidak didukung. 
+  `terraform_org_name`— Parameter ini berisi nama organisasi Terraform Cloud Anda. 

**catatan**  
 Beberapa penerapan AFT dalam satu organisasi Terraform Cloud tidak didukung. 

 Untuk informasi tentang cara menyiapkan Terraform Cloud, lihat dokumentasi [Terraform](https://www.terraform.io/docs/cloud/index.html). 

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

Saat Anda memilih Terraform Enterprise sebagai distribusi Anda, AFT membuat ruang kerja untuk komponen berikut di organisasi Terraform Enterprise Anda, dan itu memicu alur kerja berbasis API untuk menjalankan Terraform yang dihasilkan.
+ Permintaan akun
+ Kustomisasi penyediaan akun AFT untuk akun yang disediakan oleh AFT
+ Kustomisasi akun untuk akun yang disediakan oleh AFT
+ Kustomisasi global untuk akun yang disediakan oleh AFT

Konfigurasi status Terraform yang dihasilkan dikelola oleh penyiapan Terraform Enterprise Anda.

Untuk memilih Terraform Enterprise sebagai distribusi Anda, berikan parameter input berikut:
+  `terraform_distribution = "tfe"` 
+ `terraform_token`— Parameter ini berisi nilai token Terraform Enterprise Anda. AFT menandai nilainya sebagai sensitif dan menyimpannya sebagai string aman di penyimpanan parameter SSM, di akun manajemen AFT. Kami menyarankan Anda memutar nilai token Terraform secara berkala, sesuai dengan kebijakan keamanan dan pedoman kepatuhan perusahaan Anda.
+ `terraform_org_name`— Parameter ini berisi nama organisasi Terraform Enterprise Anda.
+ `terraform_api_endpoint`— Parameter ini berisi URL lingkungan Terraform Enterprise Anda. Nilai parameter ini harus dalam format:

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

Lihat [dokumentasi Terraform](https://www.terraform.io/docs/enterprise/index.html) untuk mempelajari lebih lanjut tentang cara menyiapkan Terraform Enterprise.

# Periksa versi AFT
<a name="check-aft-version"></a>

Anda dapat memeriksa versi AFT yang digunakan dengan menanyakan kunci Penyimpanan Parameter AWS SSM:

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

Jika Anda menggunakan metode registri, Anda dapat menyematkan versi.

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

Anda dapat melihat informasi lebih lanjut tentang versi AFT di [repositori AFT](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main).

# Perbarui versi AFT
<a name="update-aft-version"></a>

Masuk ke akun manajemen AWS Control Tower untuk memulai pembaruan AFT ini.

Anda dapat memperbarui versi AFT yang diterapkan dengan menariknya dari cabang `main` repositori:

```
terraform get -update
```

Setelah penarikan selesai, Anda dapat menjalankan kembali paket Terraform atau menjalankan apply untuk memperbarui infrastruktur AFT dengan perubahan terbaru.

# Aktifkan opsi fitur
<a name="aft-feature-options"></a>

AFT menawarkan opsi fitur berdasarkan praktik terbaik. Anda dapat ikut serta dalam fitur-fitur ini, melalui flag fitur, selama penerapan AFT. Lihat [Menyediakan akun baru dengan AFT](aft-provision-account.md) untuk informasi lebih lanjut tentang parameter konfigurasi input AFT.

Fitur-fitur ini tidak diaktifkan secara default. Anda harus secara eksplisit mengaktifkan masing-masing di lingkungan Anda.

**Topics**
+ [AWS CloudTrail peristiwa data](#cloudtrail-data-event-option)
+ [AWS Paket Enterprise Support](#enterprise-support-option)
+ [Hapus AWS VPC default](#delete-default-vpc-option)

## AWS CloudTrail peristiwa data
<a name="cloudtrail-data-event-option"></a>

Saat diaktifkan, opsi peristiwa AWS CloudTrail data mengonfigurasi kemampuan ini.
+ Membuat Jejak Organisasi di akun manajemen AWS Control Tower, untuk CloudTrail
+ Mengaktifkan pencatatan untuk peristiwa data Amazon S3 dan Lambda
+ Mengenkripsi dan mengekspor semua peristiwa CloudTrail data ke bucket `aws-aft-logs-*` S3 di akun AWS Control Tower Log Archive, dengan enkripsi AWS KMS 
+ Mengaktifkan setelan **validasi berkas Log**

Untuk mengaktifkan opsi ini, setel flag fitur berikut ke **True** dalam konfigurasi input penerapan AFT Anda.

```
aft_feature_cloudtrail_data_events
```

**Prasyarat**

Sebelum Anda mengaktifkan opsi fitur ini, pastikan akses tepercaya untuk AWS CloudTrail diaktifkan di organisasi Anda. 

**Untuk memeriksa status akses tepercaya untuk CloudTrail :**

1. Arahkan ke AWS Organizations konsol.

1. Pilih **Layanan > CloudTrail**.

1. Kemudian pilih **Aktifkan akses tepercaya** di kanan atas, jika diperlukan.

Anda mungkin menerima pesan peringatan yang menyarankan Anda untuk menggunakan AWS CloudTrail konsol, tetapi dalam kasus ini, abaikan peringatan tersebut. AFT membuat jejak sebagai bagian dari mengaktifkan opsi fitur ini, setelah Anda mengizinkan akses tepercaya. Jika akses tepercaya tidak diaktifkan, Anda akan menerima pesan kesalahan saat AFT mencoba membuat jejak untuk peristiwa data.

**catatan**  
Pengaturan ini berfungsi di tingkat organisasi. Mengaktifkan pengaturan ini memengaruhi semua akun AWS Organizations, baik dikelola oleh AFT atau tidak. Semua bucket di akun AWS Control Tower Log Archive pada saat mengaktifkan dikecualikan dari peristiwa data Amazon S3. Lihat [Panduan AWS CloudTrail Pengguna](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html) untuk mempelajari lebih lanjut CloudTrail.

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

Ketika opsi ini diaktifkan, pipeline AFT mengaktifkan paket AWS Enterprise Support untuk akun yang disediakan oleh AFT.

AWS akun secara default dilengkapi dengan paket Dukungan AWS Dasar diaktifkan. AFT menyediakan pendaftaran otomatis ke tingkat dukungan perusahaan, untuk akun yang disediakan AFT. Proses penyediaan membuka tiket dukungan untuk akun, memintanya untuk ditambahkan ke paket Enterprise AWS Support.

Untuk mengaktifkan opsi Enterprise Support, setel flag fitur berikut ke **True** dalam konfigurasi input penerapan AFT Anda.

```
aft_feature_enterprise_support=false
```

Lihat [Bandingkan Paket AWS Dukungan](https://aws.amazon.com/premiumsupport/plans/) untuk mempelajari lebih lanjut tentang AWS Support Plans.

**catatan**  
Untuk memungkinkan fitur ini beroperasi, Anda harus mendaftarkan akun pembayar ke dalam paket Enterprise Support.

## Hapus AWS VPC default
<a name="delete-default-vpc-option"></a>

 Saat Anda mengaktifkan opsi ini, AFT menghapus semua AWS default VPCs di akun manajemen AFT dan semuanya Wilayah AWS, meskipun belum menerapkan sumber daya AWS Control Tower di dalamnya. Wilayah AWS

 AFT tidak menghapus AWS default VPCs secara otomatis untuk akun AWS Control Tower apa pun yang disediakan AFT atau untuk AWS akun yang sudah ada yang Anda daftarkan di AWS Control Tower melalui AFT. 

 AWS Akun baru dibuat dengan VPC yang disiapkan di masing-masing akun Wilayah AWS, secara default. Perusahaan Anda mungkin memiliki praktik standar untuk membuat VPCs, yang mengharuskan Anda menghapus VPC AWS default dan menghindari mengaktifkannya, terutama untuk akun manajemen AFT. 

Untuk mengaktifkan opsi ini, setel flag fitur berikut ke **True** dalam konfigurasi input penerapan AFT Anda.

```
aft_feature_delete_default_vpcs_enabled
```

Berikut ini adalah contoh konfigurasi input penerapan 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
}
```

Lihat [VPC default dan subnet default](https://docs.aws.amazon.com/vpc/latest/userguide/default-vpc.html) untuk mempelajari lebih lanjut tentang default. VPCs

# Pertimbangan sumber daya untuk AWS Control Tower Account Factory untuk Terraform
<a name="aft-resources"></a>

Saat Anda menyiapkan landing zone menggunakan AWS Control Tower Account Factory for Terraform, beberapa jenis AWS sumber daya dibuat dalam akun Anda AWS .

**Cari sumber daya**
+ Anda dapat menggunakan tag untuk mencari daftar sumber daya AFT terbaru. Pasangan kunci-nilai untuk pencarian Anda adalah:

  ```
  Key: managed_by | Value: AFT
  ```
+ Untuk layanan komponen yang tidak mendukung tag, Anda dapat menemukan sumber daya dengan pencarian `aft` di nama sumber daya.

**catatan**  
AFT tidak membuat sumber daya AWS Cadangan apa pun di akun manajemen.

**Tabel sumber daya yang awalnya dibuat, berdasarkan akun**


**AWS Control Tower Account Factory untuk akun manajemen Terraform**  

| **AWS layanan** | **Tipe sumber daya** | **Nama sumber daya** | 
| --- | --- | --- | 
| AWS Identity and Access Management | Peran |  AWSAFTAdmin AWSAFTExecution AWSAFTService ct-aft-\$1 aft-\$1 codebuild\$1trigger\$1role python-layer-builder-aft-common-\$1 | 
| AWS Identity and Access Management | Kebijakan | aft-\$1 | 
| CodeCommit | Repositori | aft-\$1 | 
| CodeBuild | Membangun Proyek | aft-\$1 ct-aft-\$1 python-layer-builder-aft-common-\$1  | 
| Kode Pipa | Pipeline | **YourAccountId**-customizations-pipeline | 
| Amazon S3 | Bucket | aft-\$1  | 
| Lambda | Fungsi | aft-\$1 | 
| Lambda | Lapisan | aft-common-\$1 | 
| DynamoDB | Tabel | aft-request aft-request-audit aft-request-metadata aft-controltower-events | 
| Step Functions | Mesin Negara | aft-account-provisioning-customizations aft-account-provisioning-framework aft-feature-options aft-invoke-customizations | 
| VPC | VPC | aft-management-vpc | 
| Amazon SNS | Topik | aft-notifications aft-failure-notifications | 
| Amazon EventBridge | Bus acara | aft-events-from-ct-management | 
| Amazon EventBridge | Aturan acara | aft-account-provisioning-customizations-trigger aft-account-request-codepipeline-trigger aft-lambda-account-request-processor aft-controltower-event-logger | 
| Layanan Manajemen Kunci (KMS) | Kunci yang Dikelola Pelanggan | aft-backend-\$1-kms-key aft | 
| AWS Systems Manager | Menyimpan parameter | /aft/\$1  | 
| Amazon SQS | Antrian | aft-account-request.fifo aft-account-request-dlg.fifo | 
| CloudWatch | Grup 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 | Rencana | aft-controltower-backup-plan | 
| AWS Support Center (Opsional) | Paket Support | Enterprise | 


**AWS akun yang disediakan melalui AWS Control Tower Account Factory untuk Terraform**  

| **AWS layanan** | **Tipe sumber daya** | **Nama sumber daya** | 
| --- | --- | --- | 
| AWS Identity and Access Management | Peran | AWSAFTExecution | 
| AWS Support Center (Opsional) | Paket Support | Enterprise | 


**Akun manajemen AWS Control Tower**  

| **AWS layanan** | **Tipe sumber daya** | **Nama sumber daya** | 
| --- | --- | --- | 
| AWS Identity and Access Management | Peran |  AWSAFTExecution AWSAFTService aft-controltower-events-rule  | 
| AWS Systems Manager | Menyimpan parameter | /aft/\$1 | 
| EventBridge | Aturan acara | aft-capture-ct-events | 
| CloudTrail (Opsional) | Jalan setapak | aws-aft-CustomizationsCloudTrail | 
| Pusat Dukungan AWS (Opsional) | Paket Support | Enterprise | 


**Akun arsip log AWS Control Tower**  

| **AWS layanan** | **Tipe sumber daya** | **Nama sumber daya** | 
| --- | --- | --- | 
| AWS Identity and Access Management | Peran |  AWSAFTExecution AWSAFTService  | 
| Layanan Manajemen Kunci (KMS) | Kunci yang Dikelola Pelanggan | aft | 
| Amazon S3 | Bucket | aws-aft-logs-\$1 aws-aft-s3-access-logs-\$1 | 
| AWS Support Center (Opsional) | Paket Support | Enterprise | 


**Akun audit AWS Control Tower**  

| **AWS layanan** | **Tipe sumber daya** | **Nama sumber daya** | 
| --- | --- | --- | 
| AWS Identity and Access Management | Peran |  AWSAFTExecution AWSAFTService  | 
| AWS Support Center (Opsional) | Paket Support | Enterprise | 

# Peran yang dibutuhkan
<a name="aft-required-roles"></a>

Secara umum, peran dan kebijakan merupakan bagian dari manajemen identitas dan akses (IAM) di AWS. Lihat [https://docs.aws.amazon.com//IAM/latest/UserGuide/introduction.html](https://docs.aws.amazon.com//IAM/latest/UserGuide/introduction.html) untuk informasi lebih lanjut.

AFT membuat beberapa peran dan kebijakan IAM dalam manajemen AFT dan akun manajemen AWS Control Tower untuk mendukung pengoperasian pipeline AFT. Peran ini dibuat berdasarkan model akses hak istimewa terkecil, yang membatasi izin untuk kumpulan tindakan dan sumber daya minimal yang diperlukan untuk setiap peran dan kebijakan. Peran dan kebijakan ini diberikan `key:value` pasangan AWS tag, seperti ` managed_by:AFT` untuk identifikasi. 

Selain peran IAM ini, AFT menciptakan tiga peran penting:
+ `AWSAFTAdmin`peran
+ `AWSAFTExecution`peran
+ `AWSAFTService`peran

Peran ini dijelaskan di bagian berikut.

** AWSAFTAdmin Peran tersebut, dijelaskan**

Saat Anda menerapkan AFT, `AWSAFTAdmin` peran dibuat di akun manajemen AFT. Peran ini memungkinkan pipeline AFT untuk mengambil `AWSAFTExecution` peran dalam AWS Control Tower dan akun yang disediakan AFT, sehingga dapat melakukan tindakan yang terkait dengan penyediaan dan penyesuaian akun.

Berikut adalah kebijakan inline (artefak JSON) yang dilampirkan pada peran: `AWSAFTAdmin` 

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

****  

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

------

Artefak JSON berikut menunjukkan hubungan kepercayaan untuk peran tersebut. `AWSAFTAdmin` Nomor placeholder diganti dengan nomor `012345678901` ID akun manajemen AFT.

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

****  

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

------

** AWSAFTExecution Peran tersebut, dijelaskan**

Saat Anda menerapkan AFT, `AWSAFTExecution` peran tersebut dibuat di manajemen AFT dan akun manajemen AWS Control Tower. Kemudian, pipeline AFT menciptakan `AWSAFTExecution` peran di setiap akun yang disediakan AFT selama tahap penyediaan akun AFT.

 AFT menggunakan `AWSControlTowerExecution` peran awalnya, untuk membuat `AWSAFTExecution` peran dalam akun tertentu. `AWSAFTExecution`Peran ini memungkinkan pipeline AFT untuk menjalankan langkah-langkah yang dilakukan selama tahap penyediaan dan penyediaan kerangka kerja AFT, untuk akun yang disediakan AFT dan untuk akun bersama.

**Peran yang berbeda membantu Anda membatasi ruang lingkup**  
Sebagai praktik terbaik, pisahkan izin kustomisasi dari izin yang diizinkan selama penerapan awal sumber daya Anda. Ingatlah bahwa `AWSAFTService` peran tersebut dimaksudkan untuk penyediaan akun, dan `AWSAFTExecution` peran tersebut ditujukan untuk penyesuaian akun. Pemisahan ini membatasi ruang lingkup izin yang diizinkan selama setiap fase pipa. Perbedaan ini sangat penting jika Anda menyesuaikan akun bersama AWS Control Tower, karena akun bersama mungkin berisi informasi sensitif, seperti detail penagihan atau informasi pengguna.

Izin untuk `AWSAFTExecution` peran: **AdministratorAccess**— kebijakan yang dikelola AWS 

Artefak JSON berikut menunjukkan kebijakan IAM (hubungan kepercayaan) yang melekat pada peran tersebut. `AWSAFTExecution` Nomor placeholder diganti dengan nomor `012345678901` ID akun manajemen AFT.

Kebijakan kepercayaan untuk `AWSAFTExecution`

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

****  

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

------

** AWSAFTService Peran tersebut, dijelaskan**

`AWSAFTService`Peran ini menyebarkan sumber daya AFT di semua akun yang terdaftar dan dikelola, termasuk akun bersama dan akun manajemen. Sumber daya sebelumnya hanya digunakan oleh peran tersebut. `AWSAFTExecution`

`AWSAFTService`Peran ini dimaksudkan untuk digunakan oleh infrastruktur layanan untuk menyebarkan sumber daya selama tahap penyediaan, dan `AWSAFTExecution` peran tersebut dimaksudkan untuk digunakan hanya untuk menyebarkan kustomisasi. Dengan mengasumsikan peran dengan cara ini, Anda dapat mempertahankan kontrol akses yang lebih terperinci selama setiap tahap.

Izin untuk `AWSAFTService` peran: **AdministratorAccess**— kebijakan yang dikelola AWS 

Artefak JSON berikut menunjukkan kebijakan IAM (hubungan kepercayaan) yang melekat pada peran tersebut. `AWSAFTService` Nomor placeholder diganti dengan nomor `012345678901` ID akun manajemen AFT.

Kebijakan kepercayaan untuk `AWSAFTService`

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

****  

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

------

# Layanan komponen
<a name="aft-components"></a>

Saat Anda menerapkan AFT, komponen ditambahkan ke AWS lingkungan Anda dari masing-masing AWS layanan ini.
+ **[AWS Control Tower](https://docs.aws.amazon.com//controltower/latest/userguide/what-is-control-tower.html)** — AFT menggunakan AWS Control Tower Account Factory di akun manajemen AWS Control Tower untuk menyediakan akun.
+ **[Amazon DynamoDB](https://docs.aws.amazon.com//amazondynamodb/latest/developerguide/Introduction.html)** — AFT membuat tabel Amazon DynamoDB di akun manajemen AFT, yang menyimpan permintaan akun, riwayat audit pembaruan akun, metadata akun, dan peristiwa siklus hidup AWS Control Tower. AFT juga membuat pemicu DynamoDB Lambda untuk memulai proses hilir, seperti memulai alur kerja penyediaan akun AFT. 
+ **[Amazon Simple Storage Service](https://docs.aws.amazon.com//AmazonS3/latest/userguide/Welcome.html)** — AFT membuat bucket Amazon Simple Storage Service (S3) di akun manajemen AFT dan akun arsip log AWS Control Tower, yang menyimpan log yang dihasilkan oleh AWS layanan yang diperlukan oleh pipeline AFT. AFT juga membuat bucket S3 backend Terraform, di primer dan sekunder Wilayah AWS, untuk menyimpan status Terraform yang dihasilkan selama alur kerja pipeline AFT.
+ **[Amazon Simple Notification Service](https://docs.aws.amazon.com//sns/latest/dg/welcome.html)** — AFT membuat topik Amazon Simple Notification Service (SNS) di akun manajemen AFT, yang menyimpan notifikasi keberhasilan dan kegagalan setelah memproses setiap permintaan akun AFT. Anda dapat menerima pesan-pesan ini menggunakan protokol pilihan Anda.
+ **[Layanan Antrian Sederhana Amazon](https://docs.aws.amazon.com//AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html)** - AFT membuat antrian FIFO Amazon Simple Queuing Service (Amazon SQS) di akun manajemen AFT. Antrian memungkinkan Anda untuk mengirimkan beberapa permintaan akun secara paralel, tetapi mengirimkan satu permintaan pada satu waktu ke AWS Control Tower Account Factory, untuk pemrosesan berurutan.
+ **[AWS CodeBuild](https://docs.aws.amazon.com//codebuild/latest/userguide/welcome.html)** — AFT membuat proyek CodeBuild build AWS di akun manajemen AFT untuk menginisialisasi, mengkompilasi, menguji, dan menerapkan paket Terraform untuk kode sumber AFT dalam berbagai tahap pembuatan.
+ **[AWS CodePipeline](https://docs.aws.amazon.com//codepipeline/latest/userguide/welcome.html)** — AFT membuat CodePipeline pipeline AWS di akun manajemen AFT untuk diintegrasikan dengan penyedia CodeStar koneksi AWS yang Anda pilih dan didukung untuk kode sumber AFT, dan untuk memicu pekerjaan build di AWS CodeBuild.
+ **[AWS Lambda](https://docs.aws.amazon.com//lambda/latest/dg/welcome.html)** — AFT membuat fungsi dan lapisan AWS Lambda di akun manajemen AFT untuk melakukan langkah-langkah selama proses permintaan akun, penyediaan akun AFT, dan penyesuaian akun.
+ **[AWS Systems Manager Parameter Store](https://docs.aws.amazon.com//systems-manager/latest/userguide/systems-manager-parameter-store.html)** — AFT menyiapkan AWS Systems Manager Parameter Store di akun manajemen AFT, untuk menyimpan parameter konfigurasi yang diperlukan untuk proses pipeline AFT.
+ **[Amazon CloudWatch](https://docs.aws.amazon.com//AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html)** — AFT membuat grup CloudWatch log Amazon di akun manajemen AFT untuk menyimpan log yang dihasilkan oleh layanan AWS yang digunakan oleh pipeline AFT. Periode retensi untuk CloudWatch log diatur ke`Never Expire`.
+ **[Amazon VPC](https://docs.aws.amazon.com//vpc/latest/userguide/what-is-amazon-vpc.html)** — AFT membuat Amazon Virtual Private Cloud (VPC) untuk mengisolasi layanan dan sumber daya di akun manajemen AFT ke dalam lingkungan jaringan terpisah, untuk meningkatkan keamanan.
+ **[AWS KMS](https://docs.aws.amazon.com//kms/latest/developerguide/overview.html)** — AFT menggunakan AWS Key Management Service (KMS) AWS Management Service (KMS) di akun manajemen AFT dan di akun arsip log AWS Control Tower. AFT membuat kunci untuk mengenkripsi status Terraform, data yang disimpan dalam tabel DynamoDB, dan topik SNS. Log dan artefak ini dihasilkan saat sumber daya dan layanan AWS digunakan oleh AFT. Kunci KMS yang dibuat oleh AFT memiliki rotasi tahunan yang diaktifkan secara default.
+ **[AWS Identity and Access Management (IAM) — AFT mengikuti model](https://docs.aws.amazon.com//IAM/latest/UserGuide/introduction.html)** Least Privilege yang direkomendasikan. Ini menciptakan peran dan kebijakan AWS Identity and Access Management (IAM) and Access Management (IAM) di akun manajemen AFT, di akun AWS Control Tower, dan di akun yang disediakan AFT, sesuai kebutuhan, untuk melakukan tindakan yang diperlukan selama alur kerja pipeline AFT.
+ **[AWS Step Functions](https://docs.aws.amazon.com//step-functions/latest/dg/welcome.html)** - AFT membuat mesin status AWS Step Functions di akun manajemen AFT. Mesin status ini mengatur dan mengotomatiskan proses dan langkah-langkah untuk kerangka kerja dan penyesuaian penyediaan akun AFT.
+ **[Amazon EventBridge](https://docs.aws.amazon.com//eventbridge/latest/userguide/eb-what-is.html)** — AFT membuat bus EventBridge acara Amazon di akun manajemen AFT dan AWS Control Tower untuk menangkap dan menyimpan peristiwa siklus hidup AWS Control Tower dalam jangka panjang di tabel DynamoDB akun manajemen AFT. AFT membuat aturan CloudWatch peristiwa Amazon di manajemen AFT dan akun manajemen AWS Control Tower, yang memicu beberapa langkah yang diperlukan selama menjalankan alur kerja pipeline AFT
+ **[AWS CloudTrail (Opsional)](https://docs.aws.amazon.com//awscloudtrail/latest/userguide/cloudtrail-user-guide.html)** — Saat fitur ini diaktifkan, AFT membuat jejak AWS CloudTrail organisasi di akun manajemen AWS Control Tower, untuk mencatat peristiwa data untuk bucket Amazon S3 dan fungsi Lambda AWS . AFT mengirimkan log ini ke bucket S3 pusat di akun arsip log AWS Control Tower.
+ **[AWS Support (Opsional)](https://aws.amazon.com//premiumsupport/)** — Saat fitur ini diaktifkan, AFT mengaktifkan paket AWS Enterprise Support untuk akun yang disediakan oleh AFT. Secara default, AWS akun dibuat dengan paket Dukungan AWS Dasar diaktifkan.

# Pipa penyediaan akun AFT
<a name="aft-provisioning-framework"></a>

Setelah tahap penyediaan akun pipa selesai, kerangka kerja AFT berlanjut. Ini secara otomatis menjalankan serangkaian langkah untuk memastikan bahwa akun yang baru disediakan memiliki detail di tempat, sebelum [Kustomisasi akun](aft-account-customization-options.md) tahap dimulai.

**Berikut adalah langkah-langkah selanjutnya yang dijalankan pipa AFT.**

1. Memvalidasi input permintaan akun.

1. Mengambil informasi tentang akun yang disediakan, misalnya, ID akun.

1. Menyimpan metadata akun dalam tabel DynamoDB di akun manajemen AFT.

1. Membuat peran **AWSAFTExecution**IAM di akun yang baru disediakan. AFT mengasumsikan peran ini untuk melakukan tahap penyesuaian akun, karena peran ini memberikan akses ke portofolio pabrik akun. 

1. Menerapkan tag akun yang Anda berikan sebagai bagian dari parameter input permintaan akun.

1. Menerapkan opsi fitur AFT yang Anda pilih pada saat penerapan AFT.

1. Menerapkan kustomisasi penyediaan akun AFT yang Anda berikan. Bagian selanjutnya menceritakan lebih lanjut tentang cara mengatur penyesuaian ini dengan mesin status AWS Step Functions, di repositori. `git` Tahap ini kadang-kadang disebut sebagai tahap *kerangka penyediaan akun*. Ini adalah bagian dari proses penyediaan inti, tetapi sebelumnya Anda telah menyiapkan kerangka kerja yang memberikan integrasi khusus sebagai bagian dari alur kerja penyediaan akun Anda, sebelum penyesuaian tambahan ditambahkan ke akun di tahap berikutnya.

1. Untuk setiap akun yang disediakan, itu membuat akun AWS CodePipeline manajemen AFT, yang akan berjalan untuk melakukan tahap (berikutnya, global)[Kustomisasi akun](aft-account-customization-options.md).

1. Memanggil pipeline penyesuaian akun untuk setiap akun yang disediakan (dan ditargetkan).

1. Mengirim pemberitahuan keberhasilan atau kegagalan ke topik SNS, dari mana Anda dapat mengambil pesan.

## Siapkan kustomisasi kerangka kerja penyediaan akun dengan mesin status
<a name="aft-customizations"></a>

Jika Anda menyiapkan integrasi kustom non-Terraform sebelum Anda menyediakan akun, penyesuaian ini disertakan dalam alur kerja penyediaan akun AFT Anda. Misalnya, Anda mungkin memerlukan penyesuaian tertentu untuk memastikan bahwa semua akun yang dibuat oleh AFT sesuai dengan standar dan kebijakan organisasi Anda, seperti standar keamanan, dan standar ini dapat ditambahkan ke akun sebelum penyesuaian tambahan. Kustomisasi *kerangka kerja penyediaan akun* ini diterapkan pada setiap akun yang disediakan, sebelum tahap kustomisasi akun global dimulai berikutnya.

**catatan**  
Fitur AFT yang dijelaskan di bagian ini ditujukan untuk pengguna tingkat lanjut yang memahami fungsi AWS Step Functions. Sebagai alternatif, kami menyarankan Anda bekerja dengan pembantu global di tahap penyesuaian akun.

Kerangka kerja penyediaan akun AFT memanggil mesin status AWS Step Functions, yang Anda tentukan, untuk mengimplementasikan penyesuaian Anda. Lihat [dokumentasi AWS Step Functions](https://docs.aws.amazon.com//step-functions/latest/dg/welcome.html) untuk mempelajari lebih lanjut tentang kemungkinan integrasi mesin status.

Berikut adalah beberapa integrasi umum.
+ AWS Lambda berfungsi dalam bahasa pilihan Anda
+ Tugas AWS ECS atau AWS Fargate, menggunakan kontainer Docker
+ Aktivitas AWS Step Functions menggunakan pekerja khusus, yang dihosting baik di AWS maupun di tempat
+ Integrasi Amazon SNS atau SQS

Jika tidak ada mesin status AWS Step Functions yang ditentukan, tahap akan berlalu dengan no-op. Untuk membuat mesin status penyesuaian penyediaan akun AFT, ikuti petunjuk di. [Buat mesin status penyesuaian penyediaan akun AFT Anda](#aft-create-customizations) Sebelum Anda menambahkan kustomisasi, pastikan Anda memiliki prasyarat di tempat.

Jenis integrasi ini bukan bagian dari AWS Control Tower, dan tidak dapat ditambahkan selama tahap pra-API global penyesuaian akun AFT. Sebagai gantinya, pipeline AFT memungkinkan Anda untuk mengatur penyesuaian ini sebagai bagian dari proses penyediaan, dan mereka dijalankan dalam alur kerja penyediaan. Anda harus menerapkan penyesuaian ini dengan membuat mesin status Anda sebelumnya, sebelum memulai tahap penyediaan akun AFT, seperti yang dijelaskan di bagian berikut. 

**Prasyarat untuk membuat mesin negara**
+ AFT yang sepenuhnya dikerahkan. Lihat [Terapkan AWS Control Tower Account Factory untuk Terraform (AFT)](aft-getting-started.md) untuk informasi selengkapnya tentang penerapan AFT.
+ Siapkan `git` repositori di lingkungan Anda untuk penyesuaian penyediaan akun AFT. Untuk informasi selengkapnya, lihat [Langkah-langkah pasca-penerapan](aft-post-deployment.md).

## Buat mesin status penyesuaian penyediaan akun AFT Anda
<a name="aft-create-customizations"></a>

**Langkah 1: Ubah definisi mesin negara**

Ubah contoh definisi mesin `customizations.asl.json` negara. [Contoh ini tersedia di `git` repositori yang Anda siapkan untuk menyimpan kustomisasi penyediaan akun AFT, dalam langkah pasca-penerapan Anda.](https://docs.aws.amazon.com//controltower/latest/userguide/aft-post-deployment.html) Lihat [Panduan Pengembang AWS Step Functions](https://docs.aws.amazon.com//step-functions/latest/dg/welcome.html) untuk mempelajari lebih lanjut tentang definisi mesin status.

**Langkah 2: Sertakan konfigurasi Terraform yang sesuai**

Sertakan file Terraform dengan `.tf` ekstensi di `git` repositori yang sama dengan definisi mesin status untuk integrasi khusus Anda. Misalnya, jika Anda memilih untuk memanggil fungsi Lambda dalam definisi tugas mesin status Anda, Anda akan menyertakan `lambda.tf` file dalam direktori yang sama. Pastikan Anda menyertakan peran dan izin IAM yang diperlukan untuk konfigurasi kustom Anda.

Saat Anda memberikan input yang sesuai, pipeline AFT secara otomatis memanggil mesin status Anda dan menerapkan penyesuaian Anda sebagai bagian dari tahap kerangka kerja penyediaan akun AFT. 

## Untuk memulai kembali kerangka kerja dan penyesuaian penyediaan akun AFT
<a name="aft-provisioining-considerations"></a>

AFT menjalankan kerangka kerja penyediaan akun dan langkah-langkah penyesuaian untuk setiap akun yang dijual melalui pipeline AFT. Untuk memulai kembali penyesuaian penyediaan akun, Anda dapat menggunakan salah satu dari dua metode berikut:

1. Buat perubahan apa pun pada akun yang ada di repo permintaan akun.

1. Menyediakan akun baru dengan AFT.

# Kustomisasi akun
<a name="aft-account-customization-options"></a>

AFT dapat menerapkan konfigurasi standar atau khusus di akun yang disediakan. Di akun manajemen AFT, AFT menyediakan satu pipeline untuk setiap akun. Dengan pipeline ini, Anda dapat menerapkan penyesuaian di semua akun, dalam satu set akun, atau di akun individual. Anda dapat menjalankan skrip Python, skrip bash, dan konfigurasi Terraform, atau Anda dapat berinteraksi dengan AWS CLI sebagai bagian dari tahap penyesuaian akun Anda.

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

Setelah penyesuaian Anda ditentukan dalam `git` repositori pilihan Anda, baik tempat Anda menyimpan penyesuaian global atau tempat Anda menyimpan penyesuaian akun, tahap penyesuaian akun diselesaikan secara otomatis oleh pipeline AFT. Untuk menyesuaikan akun secara surut, lihat[Memanggil kembali kustomisasi](#aft-re-invoke-customizations).

**Kustomisasi global (opsional)**

Anda dapat memilih untuk menerapkan penyesuaian tertentu ke semua akun yang disediakan oleh AFT. Misalnya, jika Anda perlu membuat peran IAM tertentu, atau menerapkan kontrol kustom di setiap akun, tahap penyesuaian global dalam pipeline AFT memungkinkan Anda melakukannya, secara otomatis.

**Kustomisasi akun (opsional)**

Untuk menyesuaikan akun individual, atau satu set akun, secara berbeda dari akun yang disediakan AFT lainnya, Anda dapat memanfaatkan bagian penyesuaian akun dari pipeline AFT untuk menerapkan konfigurasi khusus akun. Misalnya, hanya akun tertentu yang mungkin memerlukan akses ke gateway internet. 

## Prasyarat kustomisasi
<a name="aft-account-customization-prerequisites"></a>

Sebelum Anda mulai menyesuaikan akun, pastikan prasyarat ini sudah ada.
+ AFT yang sepenuhnya dikerahkan. Untuk informasi tentang cara menerapkan, lihat[Konfigurasikan dan luncurkan AWS Control Tower Account Factory untuk Terraform](aft-getting-started.md#aft-configure-and-launch).
+ `git`Repositori yang telah diisi sebelumnya untuk penyesuaian global dan penyesuaian akun di lingkungan Anda. Lihat *Langkah 3: Isi setiap repositori* [Langkah-langkah pasca-penerapan](aft-post-deployment.md) untuk informasi lebih lanjut.

## Terapkan kustomisasi global
<a name="aft-global-customizations"></a>

Untuk menerapkan penyesuaian global, Anda harus mendorong struktur folder tertentu ke repositori pilihan Anda.
+ Jika konfigurasi kustom Anda dalam bentuk program atau skrip Python, letakkan di **bawah** folder api\$1helpers/python di repositori Anda.
+ Jika konfigurasi kustom Anda dalam bentuk skrip Bash, letakkan di bawah folder **api\$1helpers** di repositori Anda.
+ Jika konfigurasi khusus Anda dalam bentuk Terraform, letakkan di bawah folder terraform di **repositori** Anda.
+ Lihat file README kustomisasi global untuk detail selengkapnya tentang membuat konfigurasi kustom.

**catatan**  
Kustomisasi global diterapkan secara otomatis, setelah tahap kerangka kerja penyediaan akun AFT di pipeline AFT.

## Terapkan kustomisasi akun
<a name="aft-account-customizations"></a>

****

 Anda dapat menerapkan penyesuaian akun dengan mendorong struktur folder tertentu ke repositori pilihan Anda. Kustomisasi akun diterapkan secara otomatis di pipeline AFT dan setelah tahap penyesuaian global. Anda juga dapat membuat beberapa folder yang berisi penyesuaian akun yang berbeda di repositori penyesuaian akun Anda. Untuk setiap kustomisasi akun yang Anda butuhkan, gunakan langkah-langkah berikut. 

**Untuk menerapkan kustomisasi akun**

1.  **Langkah 1: Buat folder untuk kustomisasi akun** 

    Di repositori pilihan Anda, salin `ACCOUNT_TEMPLATE` folder yang disediakan AFT ke folder baru. Nama folder baru Anda harus sesuai dengan `account_customizations_name` yang Anda berikan dalam permintaan akun Anda. 

1.  **Tambahkan konfigurasi ke folder kustomisasi akun spesifik Anda** 

    Anda dapat menambahkan konfigurasi ke folder penyesuaian akun Anda berdasarkan format konfigurasi Anda. 
   +  Jika konfigurasi kustom Anda dalam bentuk program atau skrip Python, letakkan di bawah folder /api\$1helpers/python ***[account\$1customizations\$1name]*yang** ada di repositori Anda. 
   +  Jika konfigurasi kustom Anda dalam bentuk skrip Bash, letakkan di bawah folder ***[account\$1customizations\$1name]*/api\$1helpers** yang ada di repositori Anda. 
   +  Jika konfigurasi khusus Anda dalam bentuk Terraform, letakkan di bawah folder ***[account\$1customizations\$1name]*/terraform** yang ada di repositori Anda. 

    Untuk informasi selengkapnya tentang membuat konfigurasi kustom, lihat file README penyesuaian akun. 

1.  **Lihat `account_customizations_name` parameter spesifik dalam file permintaan akun** 

    File permintaan akun AFT menyertakan parameter input`account_customizations_name`. Masukkan nama kustomisasi akun Anda sebagai nilai untuk parameter ini. 

**catatan**  
 Anda dapat mengirimkan beberapa permintaan akun untuk akun di lingkungan Anda. Bila Anda ingin menerapkan penyesuaian akun yang berbeda atau serupa, tentukan kustomisasi akun menggunakan parameter `account_customizations_name` input dalam permintaan akun Anda. Untuk informasi selengkapnya, lihat [Mengirimkan beberapa permintaan akun](https://docs.aws.amazon.com/controltower/latest/userguide/aft-multiple-account-requests.html). 

## Memanggil kembali kustomisasi
<a name="aft-re-invoke-customizations"></a>

AFT menyediakan cara untuk memanggil kembali penyesuaian di pipeline AFT. Metode ini berguna ketika Anda telah menambahkan langkah penyesuaian baru, atau ketika Anda membuat perubahan pada kustomisasi yang ada. Saat Anda memanggil ulang, AFT memulai pipeline penyesuaian untuk membuat perubahan pada akun yang disediakan AFT. event-source-basedPemanggilan ulang memungkinkan Anda untuk menerapkan penyesuaian ke akun individual, ke semua akun, ke akun sesuai dengan OU mereka, atau ke akun yang dipilih sesuai dengan tag.

Ikuti tiga langkah ini untuk mengaktifkan kembali penyesuaian untuk akun yang disediakan AFT.

**Langkah 1: Dorong perubahan ke repositori kustomisasi `git` global atau akun**

Anda dapat memperbarui penyesuaian global dan akun sesuai kebutuhan dan mendorong perubahan kembali ke repositori Anda`git`. Pada titik ini, tidak ada yang terjadi, Pipa penyesuaian harus dipanggil oleh sumber acara, seperti yang dijelaskan dalam dua langkah berikutnya.

**Langkah 2: Mulai AWS Step Function untuk menjalankan kembali kustomisasi**

AFT menyediakan AWS Step Function yang disebut `aft-invoke-customizations` di akun manajemen AFT. Tujuan dari fungsi itu adalah untuk memanggil kembali pipeline kustomisasi untuk akun yang disediakan AFT.

Berikut adalah contoh skema acara (format JSON) yang dapat Anda buat untuk meneruskan input ke `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"]
    }
  ]
}
```

 Contoh skema acara menunjukkan bahwa Anda dapat memilih akun untuk disertakan atau dikecualikan dari proses pemanggilan ulang. Anda dapat memfilter berdasarkan unit organisasi (OU), tag akun, dan ID akun. Jika Anda tidak menerapkan filter apa pun dan menyertakan pernyataan`"type":"all"`, penyesuaian untuk semua akun yang disediakan AFT akan dipanggil kembali. 

**catatan**  
 Jika versi AWS Control Tower Account Factory for Terraform (AFT) Anda adalah 1.6.5 atau yang lebih baru, Anda dapat menargetkan nested OUs dengan sintaks). `OU Name (ou-id-1234` Untuk informasi lebih lanjut, lihat topik berikut di [GitHub](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/issues/280). 

 Setelah Anda mengisi parameter acara, Step Functions berjalan dan memanggil penyesuaian yang sesuai. AFT dapat memanggil maksimal 5 kustomisasi sekaligus. Step Functions menunggu dan mengulang sampai semua akun yang cocok dengan kriteria acara selesai. 

**Langkah 3: Pantau output AWS Step Function dan saksikan AWS CodePipeline berjalan**
+ Output Step Function yang dihasilkan berisi akun IDs yang cocok dengan sumber peristiwa masukan Fungsi Langkah.
+ Arahkan ke AWS CodePipeline di bawah **Alat Pengembang** dan lihat pipeline penyesuaian yang sesuai untuk ID akun.

## Pemecahan masalah dengan penelusuran permintaan kustomisasi akun AFT
<a name="aft-customization-request"></a>

 Alur kerja kustomisasi akun yang didasarkan pada log AWS Lambda emit yang berisi akun target dan permintaan penyesuaian. IDs AFT memungkinkan Anda melacak dan memecahkan masalah permintaan penyesuaian dengan Amazon CloudWatch Logs dengan menyediakan kueri Wawasan CloudWatch Log yang dapat Anda gunakan untuk memfilter CloudWatch Log yang terkait dengan permintaan penyesuaian berdasarkan akun target atau ID permintaan penyesuaian. Untuk informasi selengkapnya, lihat [Menganalisis data log dengan CloudWatch Log](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html) *Amazon di Panduan Pengguna CloudWatch Log Amazon*. 

**Untuk menggunakan Wawasan CloudWatch Log untuk AFT**

1. Buka CloudWatch konsol di [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1.  Dari panel navigasi, pilih **Log**, lalu pilih **Wawasan log**. 

1.  Pilih **Kueri.** 

1.  Di bawah **Contoh kueri**, pilih **Account Factory untuk Terraform**, lalu pilih salah satu kueri berikut: 
   +  **Log Kustomisasi berdasarkan ID Akun** 
**catatan**  
 Pastikan untuk mengganti *"YOUR-ACCOUNT-ID"* dengan ID akun target Anda. 

     ```
     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/
     ```
   +  **Log Kustomisasi dengan ID Permintaan Kustomisasi** 
**catatan**  
 Pastikan untuk mengganti *"YOUR-CUSTOMIZATION-REQUEST-ID"* dengan ID permintaan kustomisasi Anda. Anda dapat menemukan ID permintaan penyesuaian Anda di output mesin AWS Step Functions status kerangka kerja penyediaan akun AFT. Untuk informasi selengkapnya tentang kerangka kerja penyediaan akun AFT, lihat pipeline penyediaan [akun AFT](https://docs.aws.amazon.com/controltower/latest/userguide/aft-provisioning-framework.html) 

     ```
     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.  Setelah Anda memilih kueri, pastikan untuk memilih interval waktu, lalu pilih **Jalankan kueri**. 

# Alternatif untuk kontrol versi kode sumber di AFT
<a name="aft-alternative-vcs"></a>

AFT digunakan AWS CodeCommit untuk sistem kontrol versi kode sumber (VCS), dan memungkinkan lainnya [CodeConnections](https://docs.aws.amazon.com//dtconsole/latest/userguide/supported-versions-connections.html)yang memenuhi persyaratan bisnis Anda atau arsitektur yang ada.

Jika Anda menerapkan AFT untuk pertama kalinya dan Anda tidak memiliki CodeCommit repositori yang ada, Anda harus menentukan penyedia VCS eksternal, sebagai bagian dari prasyarat penerapan AFT.

**AFT mendukung alternatif kontrol kode sumber berikut:**
+ GitHub
+ GitHub Server Perusahaan
+ BitBucket
+ GitLab
+ GitLab Dikelola sendiri

**catatan**  
Jika Anda menentukan AWS CodeCommit sebagai VCS Anda, tidak ada langkah tambahan yang diperlukan. AFT membuat `git` repositori yang diperlukan di lingkungan Anda, dengan nama default. Namun, Anda dapat mengganti nama repositori default untuk CodeCommit, sesuai kebutuhan, untuk mematuhi standar organisasi Anda.

## Siapkan sistem kontrol versi kode sumber alternatif (VCS khusus) dengan AFT
<a name="aft-alternate-vcs-steps"></a>

Untuk menyiapkan sistem kontrol versi kode sumber alternatif untuk penerapan AFT Anda, ikuti langkah-langkah berikut.

**Langkah 1: Buat `git` repositori dalam sistem kontrol versi pihak ketiga (VCS) yang didukung.**

Jika Anda tidak menggunakan AWS CodeCommit, Anda harus membuat `git` repositori di lingkungan penyedia VCS pihak ketiga yang didukung AFT untuk item berikut.
+ **Permintaan akun AFT.** [Kode sampel tersedia](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main/sources/aft-customizations-repos/aft-account-request). Untuk informasi selengkapnya tentang permintaan akun AFT, lihat[Menyediakan akun baru dengan AFT](aft-provision-account.md).
+ **Kustomisasi penyediaan akun AFT.** [Kode sampel tersedia](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main/sources/aft-customizations-repos/aft-account-provisioning-customizations). Untuk informasi selengkapnya tentang penyesuaian penyediaan akun AFT, lihat. [Buat mesin status penyesuaian penyediaan akun AFT Anda](aft-provisioning-framework.md#aft-create-customizations)
+ **Kustomisasi global AFT.** [Kode sampel tersedia](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main/sources/aft-customizations-repos/aft-global-customizations). Untuk informasi selengkapnya tentang kustomisasi global AFT, lihat. [Kustomisasi akun](aft-account-customization-options.md)
+ **Kustomisasi akun AFT.** [Kode sampel tersedia](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main/sources/aft-customizations-repos/aft-account-customizations). Untuk informasi selengkapnya tentang penyesuaian akun AFT, lihat. [Kustomisasi akun](aft-account-customization-options.md)

**Langkah 2: Tentukan parameter konfigurasi VCS yang diperlukan untuk penerapan AFT**

Parameter input berikut diperlukan untuk mengonfigurasi penyedia VCS Anda sebagai bagian dari penerapan AFT.
+ **vcs\$1provider**: Jika Anda tidak menggunakan AWS CodeCommit, tentukan penyedia VCS sebagai`"bitbucket"`,,, atau `"github"` `"githubenterprise"``"gitlab"`, berdasarkan kasus penggunaan Anda.
+ **github\$1enterprise\$1url**: Hanya untuk pelanggan GitHub Enterprise, tentukan URL-nya. GitHub 
+ **account\$1request\$1repo\$1name**: Untuk pengguna, nilai ini diatur ke. AWS CodeCommit `aft-account-request` Di lingkungan penyedia VCS pihak ketiga yang didukung AFT, perbarui nilai input ini dengan nama repositori Anda yang sebenarnya. Untuk BitBucket, Github, GitHub Enterprise GitLab, dan GitLab Self-managed, nama repositori harus memiliki format. `[Org]/[Repo]`
+ **account\$1customizations\$1repo\$1name**: Untuk pengguna, nilai ini diatur ke. AWS CodeCommit `aft-account-customizations` Di lingkungan penyedia VCS pihak ketiga yang didukung AFT, perbarui nilai input ini dengan nama repositori Anda. Untuk BitBucket, Github, GitHub Enterprise GitLab, dan GitLab Self-managed, nama repositori harus memiliki format. `[Org]/[Repo]`
+ **account\$1provisioning\$1customizations\$1repo\$1name**: Untuk pengguna, nilai ini diatur ke. AWS CodeCommit `aft-account-provisioning-customizations` Di lingkungan penyedia VCS pihak ketiga yang didukung AFT, perbarui nilai input ini dengan nama repositori Anda. Untuk BitBucket, Github, GitHub Enterprise GitLab, dan GitLab Self-managed, nama repositori harus memiliki format. `[Org]/[Repo]`
+ **global\$1customizations\$1repo\$1name**: Untuk pengguna, nilai ini diatur ke. AWS CodeCommit `aft-global-customizations` Di lingkungan penyedia VCS pihak ketiga yang didukung AFT, perbarui nilai input ini dengan nama repositori Anda. Untuk BitBucket, Github, GitHub Enterprise GitLab, dan GitLab Self-managed, nama repositori harus memiliki format. `[Org]/[Repo]`
+ **account\$1request\$1repo\$1branch: Cabang** secara default, tetapi nilainya dapat diganti`main`.

Secara default, sumber AFT dari `main` cabang setiap `git` repositori. Anda dapat mengganti nilai nama cabang dengan parameter input tambahan. Untuk informasi lebih lanjut tentang parameter input, lihat file README di modul [AFT Terraform](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/blob/main/README.md#inputs).

**Untuk AWS CodeCommit pelanggan yang sudah ada**  
 Jika Anda membuat CodeCommit repositori dengan nama baru untuk AFT, Anda dapat memperbarui nama repositori dengan memperbarui nilai untuk parameter input ini.

**Langkah 3: Selesaikan AWS CodeCommit koneksi untuk penyedia VCS pihak ketiga**

Saat penerapan Anda berjalan, AFT membuat AWS CodeCommit repositori yang diperlukan, atau membuat AWS CodeCommit koneksi untuk penyedia VCS pihak ketiga yang Anda pilih. Dalam kasus yang terakhir, Anda harus masuk secara manual ke konsol akun manajemen AFT untuk menyelesaikan CodeCommit koneksi yang tertunda. Lihat [AWS CodeCommit dokumentasi](https://docs.aws.amazon.com//dtconsole/latest/userguide/connections-update.html) untuk instruksi lebih lanjut tentang menyelesaikan CodeCommit koneksi. 

# Pindahkan AFT dari AWS CodeCommit penyedia VCS lain
<a name="move-a-vcs"></a>

Bagian ini memberikan gambaran umum tentang bagaimana Anda dapat memindahkan AWS Control Tower Account Factory for Terraform (AFT) dari AWS CodeCommit sebagai sistem kontrol versi (VCS) Anda ke penyedia VCS lain.

**Langkah 1.** Siapkan repositori baru di VCS pilihan Anda.

**Langkah 2.** Tambahkan repositori ini sebagai remote baru di. `git`

**Langkah 3.** Jalankan `git push` ke penyedia VCS baru.

**catatan**  
Struktur repositori yang Anda buat harus sama seperti di. AWS CodeCommit Mengubah struktur menghambat kemampuan AFT untuk mengeksekusi kode yang diinginkan.  
aft-account-request
 aft-account-customizations
 aft-global-customizations
aft-account-provisioning-customizations

**Langkah 4.** Di akun manajemen AWS Control Tower Anda, perbarui modul Terraform (bootstrap) untuk menunjuk ke penyedia VCS Anda, seperti yang ditunjukkan pada contoh berikut:

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

— Lakukan `terraform plan` untuk melihat pratinjau perubahan, lalu`terraform apply`.

**Langkah 5.** Selesaikan langkah-langkah untuk menyelesaikan pengaturan CodeConnection (sebelumnya dikenal sebagai CodeStar): 

1. Masuk ke akun manajemen AFT Anda

1. Cari dan selesaikan pending AWS CodeConnections untuk penyedia VCS baru, seperti yang dijelaskan dalam [Perbarui koneksi yang tertunda](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-update.html), atau di AWS konsol, [`https://us-east-1.console.aws.amazon.com/codesuite/settings/connections`].

1. Referensi: Langkah-langkah [pasca-penyebaran](https://docs.aws.amazon.com//controltower/latest/userguide/aft-post-deployment.html)

**catatan**  
Saluran pipa akun mempertahankan sumber sebelumnya hingga `aft-invoke-customizations` *Step Functions* dipanggil. Pemanggilan ini dapat dilakukan sebagai bagian dari peningkatan atau sebagai bagian dari pemanggilan penyesuaian berikutnya.

Untuk informasi selengkapnya, lihat blog ini: [Cara memigrasikan AWS CodeCommit repositori Anda ke penyedia Git lain](https://aws.amazon.com/blogs/devops/how-to-migrate-your-aws-codecommit-repository-to-another-git-provider).

# Perlindungan data
<a name="aft-data-protection"></a>

[Model tanggung jawab AWS bersama](https://aws.amazon.com//compliance/shared-responsibility-model/) berlaku untuk perlindungan data di AFT. Untuk tujuan perlindungan data, kami merekomendasikan praktik terbaik berikut untuk keamanan.
+ Ikuti panduan Perlindungan Data yang disediakan oleh AWS Control Tower. Lihat perinciannya di [Perlindungan Data di AWS Control Tower](controltower-console-encryption.md).
+ Pertahankan konfigurasi status Terraform yang dihasilkan pada saat penerapan AFT. Lihat perinciannya di [Terapkan AWS Control Tower Account Factory untuk Terraform (AFT)](aft-getting-started.md).
+ Putar kredenal sensitif secara berkala seperti yang diarahkan oleh kebijakan keamanan organisasi Anda. Contoh rahasia adalah token Terraform, `git` token, dan sebagainya.

 **Enkripsi saat istirahat** 

AFT membuat bucket Amazon S3, topik Amazon SNS, antrian Amazon SQS, dan database Amazon DynamoDB yang dienkripsi saat istirahat dengan kunci Layanan Manajemen Kunci. AWS Kunci KMS yang dibuat oleh AFT memiliki rotasi tahunan yang diaktifkan secara default. Jika Anda memilih distribusi Terraform Cloud atau Terraform Enterprise dari Terraform, AFT menyertakan SecureString parameter AWS Systems Manager untuk menyimpan nilai token Terraform yang sensitif.

AFT menggunakan AWS layanan yang dijelaskan dalam [Layanan komponen](aft-components.md) yang, secara default, dienkripsi saat istirahat. Untuk detailnya, lihat AWS dokumentasi untuk setiap AWS layanan komponen AFT, dan pelajari tentang praktik perlindungan data yang diikuti oleh setiap layanan.

 **Enkripsi dalam perjalanan** 

AFT bergantung pada AWS layanan yang dijelaskan dalam [Layanan komponen](aft-components.md) yang menggunakan enkripsi dalam perjalanan, secara default. Untuk detailnya, lihat AWS dokumentasi untuk setiap AWS layanan komponen AFT, dan pelajari tentang praktik perlindungan data yang diikuti oleh setiap layanan.

 Untuk distribusi Terraform Cloud atau Terraform Enterprise, AFT memanggil API titik akhir HTTPS untuk akses ke organisasi Terraform Anda. Jika Anda memilih penyedia VCS pihak ketiga yang didukung oleh AWS CodeStar koneksi, AFT akan memanggil API titik akhir HTTPS untuk akses ke organisasi penyedia VCS Anda.

# Hapus akun dari AFT
<a name="aft-remove-account"></a>

 Topik ini menjelaskan cara menghapus akun dari AFT, sehingga pipeline AFT berhenti menerapkan dan memperbarui akun. 

**penting**  
 Menghapus akun dari pipa AFT tidak dapat diubah dan dapat mengakibatkan hilangnya status. 

 Anda dapat menghapus akun dari AFT ketika Anda ingin menutup akun untuk aplikasi pensiun, mengisolasi akun yang disusupi, atau memindahkan akun dari satu organisasi ke organisasi lain. 

**catatan**  
 Menghapus akun dari AFT berbeda dengan menghapus akun AWS Control Tower atau Akun AWS. Saat Anda menghapus akun dari AFT, AWS Control Tower masih mengelola akun tersebut. Untuk menghapus akun AWS Control Tower atau Akun AWS, lihat berikut ini:   
 [Hapus kelola akun](https://docs.aws.amazon.com/controltower/latest/userguide/unmanage-account.html) di *Panduan Pengguna AWS Control Tower*. 
 [Menutup akun](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/close-account.html) di *Panduan AWS Billing Pengguna*. 

**Untuk menghapus akun dari saluran pipa AFT**

 Prosedur berikut menjelaskan cara menghapus akun dari AFT. 

1.  **Hapus akun dari `git` repositori yang menyimpan permintaan akun** 

    Di `git` repositori tempat Anda menyimpan permintaan akun, hapus permintaan akun untuk akun yang ingin Anda hapus dari AFT. 

    Saat Anda menghapus permintaan akun dari repositori permintaan akun, AFT menghapus pipeline penyesuaian dan metadata akun. Untuk informasi lebih lanjut, lihat [catatan rilis 1.8.0](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/releases/tag/1.8.0) untuk AFT di. GitHub 

1.  **Hapus ruang kerja Terraform (Hanya untuk pelanggan Terraform Cloud dan Terraform Enterprise)** 

    Hapus ruang kerja kustomisasi global dan kustomisasi akun untuk akun yang ingin Anda hapus dari AFT. 

1.  **Hapus status Terraform dari backend Amazon S3** 

    Di akun manajemen AFT, hapus semua folder yang relevan di dalam bucket Amazon S3 untuk akun yang ingin Anda hapus dari AFT. 
**Tip**  
 Dalam contoh berikut, ganti `012345678901` dengan nomor ID akun manajemen AFT. 

**Contoh: Terraform OSS**  
 Saat Anda memilih Terraform OSS, Anda menemukan 3 folder untuk setiap akun di bucket Amazon `aft-backend-012345678901-primary-region` S3 `aft-backend-012345678901-secondary-region` dan Amazon. *Folder ini terkait dengan status *kustomisasi akun, status* *pipeline kustomisasi, dan status* penyesuaian global* 

**Contoh: Terraform Cloud atau Terraform Enterprise**  
 Saat Anda memilih Terraform Cloud atau Terraform Enterprise, Anda menemukan folder untuk setiap akun di bucket Amazon `aft-backend-012345678901-primary-region` `aft-backend-012345678901-secondary-region` S3 dan Amazon. Folder ini terkait dengan status *pipeline kustomisasi.* 

# Metrik operasional
<a name="aft-operational-metrics"></a>

Secara default, *Account Factory for Terraform (AFT)* mengirimkan metrik operasional anonim ke. AWS Kami menggunakan data ini untuk memahami bagaimana pelanggan menggunakan AFT sehingga kami dapat meningkatkan kualitas dan fitur solusi. Anda dapat memilih keluar dari pengumpulan data dengan mengubah parameter selama penerapan AFT. Saat pengumpulan diaktifkan, data berikut dikirim ke AWS:
+ **Solusi:** Pengidentifikasi khusus AFT
+ **Versi:** Versi AFT
+ **Universally Unique Identifier (UUID):** Pengidentifikasi unik yang dibuat secara acak untuk setiap penerapan AFT
+ **Stempel waktu: Stempel waktu** pengumpulan data
+ **Data:** Konfigurasi AFT dan tindakan yang diambil oleh pelanggan

AWS memiliki data yang dikumpulkan. Pengumpulan data tunduk pada [Kebijakan AWS Privasi](https://aws.amazon.com/privacy/).

**catatan**  
Versi AFT sebelum 1.6.0 tidak melaporkan metrik penggunaan ke. AWS

Untuk memilih keluar dari metrik pelaporan:
+ Tetapkan nilai input `aft_metrics_reporting` ke `false` dalam file konfigurasi input Terraform Anda, seperti yang ditunjukkan pada contoh berikut, dan gunakan kembali AFT. Nilai ini diatur ke secara `true` default, jika Anda tidak mengaturnya secara eksplisit.

Jika Anda menyalin contoh, ingatlah untuk mengganti ID aktual dan nilai Region Anda dengan `x` item yang diberikan dalam string.

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

# Account Factory untuk panduan pemecahan masalah Terraform (AFT)
<a name="account-troubleshooting-guide"></a>

 Bagian ini dapat membantu Anda memecahkan masalah umum yang mungkin Anda temui saat menggunakan Account Factory for Terraform (AFT). 

**Topics**
+ [Masalah umum](#w2aac44c33c45b7)
+ [Masalah yang terkait dengan penyediaan/pendaftaran akun](#w2aac44c33c45b9)
+ [Masalah yang terkait dengan pemanggilan kustomisasi](#w2aac44c33c45c11)
+ [Masalah yang terkait dengan alur kerja kustomisasi akun](#w2aac44c33c45c13)

## Masalah umum
<a name="w2aac44c33c45b7"></a>
+  **Melebihi AWS kuota sumber daya** 

   [Jika grup log Anda menunjukkan bahwa Anda melebihi kuota AWS sumber daya, hubungi Support AWS .](https://aws.amazon.com/premiumsupport/) Account Factory menggunakan Layanan AWS kuota sumber daya yang mencakup AWS CodeBuild, AWS Organizations, dan AWS Systems Manager. Untuk informasi selengkapnya, lihat berikut ini: 
  +  [Apa itu AWS CodeBuild?](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) dalam *CodeBuild User Guide*. 
  +  [Apa itu AWS Organizations?](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html) dalam *Panduan Pengguna Organizations*. 
  +  [Apa itu AWS Systems Manager?](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html) dalam *Panduan Pengguna Systems Manager*. 
+  **Versi Account Factory yang sudah ketinggalan zaman** 

   Jika Anda mengalami masalah dan yakin masalahnya adalah bug, pastikan Anda memiliki Account Factory versi terbaru. Untuk informasi selengkapnya, lihat [Memperbarui versi Account Factory](https://docs.aws.amazon.com/controltower/latest/userguide/update-aft-version.html). 
+  **Perubahan lokal dilakukan pada kode sumber Account Factory** 

   Account Factory adalah proyek open source. AWS Control Tower mendukung kode inti Account Factory. Jika Anda membuat perubahan lokal pada kode inti Account Factory, AWS Control Tower hanya mendukung penerapan Account Factory Anda dengan upaya terbaik. 
+ **Izin peran Account Factory tidak mencukupi** 

   Account Factory membuat peran dan kebijakan IAM untuk mengelola penyebaran dan penyesuaian akun vended. Jika Anda mengubah peran atau kebijakan ini, saluran Account Factory mungkin tidak dapat melakukan tindakan tertentu. Untuk informasi selengkapnya, lihat [Peran yang diperlukan](https://docs.aws.amazon.com/controltower/latest/userguide/aft-required-roles.html). 
+  **Repositori akun tidak diisi dengan benar** 

   Pastikan Anda mengikuti [langkah-langkah pasca-penerapan](https://docs.aws.amazon.com/controltower/latest/userguide/aft-post-deployment.html) sebelum menyediakan akun. 
+  **Tidak mendeteksi penyimpangan setelah mengubah OU secara manual** 
**catatan**  
 AWS Control Tower mendeteksi drift secara otomatis. Untuk informasi tentang menyelesaikan drift, lihat [Mendeteksi dan menyelesaikan drift di AWS](https://docs.aws.amazon.com/controltower/latest/userguide/drift.html#resolving-drift) Control Tower. 

   Drift tidak terdeteksi ketika unit organisasi (OU) diubah secara manual. Hal ini disebabkan sifat Account Factory yang digerakkan oleh peristiwa. Saat permintaan akun dikirimkan, sumber daya yang dikelola Terraform adalah item Amazon DynamoDB, bukan akun langsung. Setelah item diubah, permintaan dimasukkan ke dalam antrian, di mana AWS Control Tower memprosesnya melalui Service Catalog (layanan yang mengelola detail akun). Jika Anda mengubah OU secara manual, drift tidak terdeteksi karena permintaan akun tidak berubah. 

## Masalah yang terkait dengan penyediaan/pendaftaran akun
<a name="w2aac44c33c45b9"></a>
+  **Permintaan akun (alamat email/nama) sudah ada** 

   Masalah ini biasanya mengakibatkan kegagalan produk Service Catalog selama penyediaan atau sebagai. `ConditionalCheckFailedException` 

   Anda dapat menemukan informasi lebih lanjut tentang masalah ini dengan melakukan salah satu hal berikut: 
  +  Tinjau grup log Terraform atau CloudWatch Log Anda. 
  +  Tinjau kegagalan yang dipancarkan ke topik Amazon SNS. `aft-failure-notifications` 
+  **Permintaan akun yang salah** 

   Pastikan permintaan akun Anda mengikuti skema yang diharapkan. Sebagai contoh, lihat [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) di. GitHub 
+  **Kuota sumber daya Exceeded AWS Organizations** 

   Pastikan permintaan akun Anda tidak melebihi kuota AWS Organizations sumber daya. Untuk informasi selengkapnya, lihat [Quotas for AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_limits.html). 

## Masalah yang terkait dengan pemanggilan kustomisasi
<a name="w2aac44c33c45c11"></a>
+  **Akun target tidak dionboard ke Account Factory** 

   Pastikan semua akun yang disertakan dalam permintaan kustomisasi telah di-onboard ke Account Factory. Untuk informasi selengkapnya, lihat [Memperbarui akun yang sudah ada](https://docs.aws.amazon.com/controltower/latest/userguide/aft-update-account.html). 
+  **Akun yang menargetkan permintaan kustomisasi ada di `aft-request-metadata` tabel DynamoDB, tetapi tidak di repositori permintaan akun** 

   Format permintaan permintaan kustomisasi Anda untuk mengecualikan akun yang melanggar dengan melakukan salah satu hal berikut: 
  +  Di `aft-request-metadata` tabel DynamoDB, hapus entri yang mereferensikan akun yang tidak lagi ada di repositori permintaan akun Anda. 
  +  Tidak menggunakan “semua” sebagai target. 
  +  Tidak menargetkan OU yang menjadi milik akun tersebut. 
  +  Tidak menargetkan akun secara langsung. 
+  **Menggunakan token yang salah untuk Terraform Cloud** 

   Pastikan Anda mengatur token yang benar. Terraform Cloud hanya mendukung token berbasis tim, bukan token berbasis organisasi. 
+  **Gagal membuat akun sebelum pipeline penyesuaian akun dibuat; tidak dapat menyesuaikan akun** 

   Buat perubahan pada spesifikasi akun di repositori permintaan akun. Saat Anda membuat perubahan, seperti mengubah nilai tag untuk akun, Account Factory mengikuti jalur yang mencoba membuat pipeline, meskipun pipeline tidak ada. 

## Masalah yang terkait dengan alur kerja kustomisasi akun
<a name="w2aac44c33c45c13"></a>

 Jika Anda mengalami masalah terkait alur kerja penyesuaian akun, pastikan versi AFT Anda 1.8.0 atau lebih tinggi, dan Anda menghapus semua instance metadata terkait akun dari tabel permintaan DynamoDB Anda. 

 Untuk informasi tentang AFT versi 1.8.0, lihat [Rilis 1.8.0](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/releases/tag/1.8.0) di. GitHub 

 Untuk informasi tentang cara memeriksa dan memperbarui versi AFT Anda, lihat berikut ini: 
+  [Periksa versi AFT](https://docs.aws.amazon.com/controltower/latest/userguide/check-aft-version.html) 
+  [Perbarui versi AFT](https://docs.aws.amazon.com/controltower/latest/userguide/update-aft-version.html) 

 Anda juga dapat melacak dan memecahkan masalah permintaan penyesuaian dengan menggunakan kueri Amazon CloudWatch Logs Insights untuk memfilter log yang berisi akun target dan permintaan penyesuaian. IDs Untuk informasi selengkapnya, lihat [Pemecahan masalah dengan penelusuran permintaan kustomisasi akun AFT](https://docs.aws.amazon.com/controltower/latest/userguide/aft-account-customization-options.html). 