Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Terapkan Pabrik Akun Menara Kontrol AWS untuk Terraform (AFT)
Bagian ini 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 baru yang didedikasikan.
catatan
Modul Terraform menerapkan AFT. Modul ini tersedia di repositori
Kami menyarankan Anda merujuk ke modul AFT al GitHub ih-alih mengkloning repositori AFT. Dengan cara ini Anda dapat mengontrol dan menggunakan pembaruan ke modul saat tersedia.
Untuk detail tentang rilis terbaru dari fungsi AWS Control Tower Account Factory for Terraform (AFT), lihat file Releas es
Prasyarat penerapan
Sebelum Anda mengonfigurasi dan meluncurkan lingkungan AFT Anda, Anda harus memiliki sumber daya berikut yang tersedia:
-
Wilayah rumah untuk zona pendaratan Menara Kontrol AWS Anda. Untuk informasi selengkapnya, lihat Cara Wilayah AWS bekerja dengan AWS Control Tower.
-
Zona pendaratan Menara Kontrol AWS. Untuk informasi selengkapnya, lihat Merencanakan zona pendaratan AWS Control Tower Anda.
Akun manajemen AFT, yang dapat Anda sediakan di AWS Control Tower, atau menyediakan dengan cara lain dan mendaftar ke AWS Control Tower.
-
Versi dan distribusi Terraform. Untuk informasi lebih lanjut, lihat versi Terraform dan AFT.
-
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? dalam Panduan AWS CodeCommit Pengguna.
Jika Anda menerapkan AFT untuk pertama kalinya dan Anda tidak memiliki CodeCommit repositori yang ada, Anda harus memilih penyedia VCS eksternal, seperti GitHub atau. BitBucket Untuk informasi selengkapnya, lihat Alternatif untuk kontrol versi kode sumber di AFT.
-
Lingkungan runtime tempat Anda dapat menjalankan modul Terraform yang menginstal AFT.
-
Opsi fitur AFT. Untuk informasi selengkapnya, lihat Mengaktifkan opsi fitur.
Konfigurasikan dan luncurkan AWS Control Tower Account Factory untuk Terraform
Langkah-langkah berikut mengasumsikan bahwa Anda terbiasa dengan alur kerja Terraform. Anda juga dapat mempelajari lebih lanjut tentang penerapan AFT dengan mengikuti Peng antar
Langkah 1: Luncurkan zona pendaratan AWS Control Tower
Untuk petunjuk tentang cara memulai dengan AWS Control Tower, lihat Memulai dengan AWS Control Tower. Di sinilah Anda membuat akun manajemen AWS Control Tower dan mengatur zona pendaratan AWS Control Tower Anda.
catatan
Pastikan untuk membuat peran untuk akun manajemen AWS Control Tower yang memiliki AdministratorAccess kredensi. Untuk informasi selengkapnya, lihat berikut ini:
-
Identitas IAM (pengguna, grup pengguna, dan peran) dalam Panduan AWS Identity and Access Management Pengguna
-
AdministratorAccessdalam Panduan Refer AWS ensi Kebijakan Terkelola
Langkah 2: Buat unit organisasi baru untuk AFT (sangat disarankan)
Sebaiknya buat OU terpisah di zona pendaratan AWS Control Tower. OU ini adalah tempat Anda menyediakan akun manajemen AFT. Buat OU baru dan akun manajemen AFT dari akun manajemen AWS Control Tower Anda. Untuk informasi selengkapnya, lihat Membuat OU baru.
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 zona pendaratan 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 Penyediaan akun dengan AWS Service Catalog Account Factory.
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 mengeksekusi Terraform. Untuk informasi selengkapnya, lihat Command: init
catatan
AFT mendukung Terraform Version 1.6.1 atau yang lebih baru.
Langkah 5: Konfigurasi opsional
-
Secara opsional mengatur konfigurasi cloud pribadi virtual (VPC)
Modul AFT menyertakan
aft_enable_vpcparameter, yang menentukan apakah AWS Control Tower menyediakan sumber daya akun dalam VPC di akun manajemen AFT pusat. Secara default, parameter diatur ketrue. Jika Anda menyetel parameter ini kefalse, AWS Control Tower menerapkan AFT tanpa menggunakan VPC dan sumber daya jaringan pribadi, seperti NAT Gateway atau titik akhir VPC. Menaft_enable_vpconaktifkan dapat membantu mengurangi biaya operasi AFT untuk beberapa pola penggunaan. Menambahkan konfigurasi VPC akan menggantikanaft_enable_vpcparameter yang disetel.falsecatatan
Re-enabling
aft_enable_vpcparameter (mengalihkan nilai darifalseketrue) mungkin mengharuskan Anda menjalankanterraform applyperintah 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 ID subnet pribadi 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 khusus 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 yang mendasarinya.
-
-
Secara opsional mengkonfigurasi nama proyek Terraform
Anda dapat menyesuaikan nama proyek Terraform yang digunakan oleh AFT dengan mengatur parameter.
terraform_project_nameSecara default, AFT menempatkan penerapan dalam proyek “default” di HCP Terraform 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 kustom ke semua sumber daya AFT dengan menggunakan
tagsparameter. 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 oleh 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_encryptionsns_topic_enable_cmk_encryptionJika 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_encryptiondisetel ke true, grup CloudWatch log untuk AFT dienkripsi menggunakan CMK. Jika variabel disetel ke false, yang merupakan nilai default, log dienkripsi menggunakan enkripsi sisi server dengan CloudWatch log default.Jika variabel disetel
sns_topic_enable_cmk_encryptionke true, notifikasi yang dikirim ke topik SNS AFT (notifikasi aft dan notifikasi aft-failure-) dienkripsi menggunakan CMK. Jika variabel diatur ke false, yang merupakan nilai default, pesan SNS dienkripsi dengan AWS-managed kunci: alias/aws/sns. Untuk informasi selengkapnya, lihat istilah kunci SSE.
-
Secara opsional mengubah jenis CodeBuild komputasi Anda
Selama penerapan, untuk mengubah tipe komputasi yang digunakan AFT CodeBuild, atur variabel
aft_codebuild_compute_type.Untuk informasi tentang jenis komputasi yang diterima, lihat Tentang jenis lingkungan sesuai permintaan. 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 Workload Terraform (atau kredentif penyedia dinamis), yang dibangun di atas protokol OIDC, untuk menghubungkan dan mengotentikasi ruang kerja dengan AFT dengan aman.
Anda dapat mengaktifkan integrasi OIDC untuk ruang kerja AFT dengan menyetel
terraform_oidc_integrationparameter ke.trueSecara default, parameter ini diatur kefalse. Saat mengaktifkan parameter ini,terraform_oidc_hostnameparameterterraform_oidc_aws_audiencedan harus ditinjau dan dikonfigurasi jika default (aws.workload.identitydanapp.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 memilih untuk bergabung dengan integrasi ini. AFT akan membuat kembali penyedia itu untuk Anda setelah penerapan.
Langkah 6: Hubungi Account Factory untuk modul Terraform untuk menerapkan AFT
Panggil modul AFT dengan peran yang Anda buat untuk akun manajemen AWS Control Tower yang memiliki AdministratorAccess kredenSIAL. AWS Control Tower menyediakan modul Terraform melalui akun manajemen AWS Control Tower, yang menetapkan semua infrastruktur yang diperlukan untuk mengatur permintaan Pabrik Akun AWS Control Tower.
Anda dapat melihat modul AFT di repositori AFT
Jika Anda memiliki pipeline 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 kredenSIAL yang diperlukan.
Batas waktu menyebabkan penerapan gagal. Sebaiknya gunakan kredentif AWS Security Token Service (STS) untuk memastikan Anda memiliki batas waktu yang cukup untuk penerapan penuh. Batas waktu minimum untuk AWS STS kredenSIAL adalah 60 menit. Untuk informasi selengkapnya, lihat Kredentif keamanan sementara di IAM di Panduan AWS Identity and Access Management Pengguna.
catatan
Anda mungkin menunggu hingga 30 menit agar AFT selesai menerapkan melalui modul Terraform.
Langkah 7: Kelola file status Terraform
File status Terraform dihasilkan saat Anda menerapkan AFT. Artefak ini menggambarkan keadaan sumber daya yang dibuat Terraform. Jika Anda berencana untuk memperbarui versi AFT, pastikan untuk melakukan preseve file status Terraform, atau menyiapkan backend Terraform menggunakan Amazon S3 dan DynamoDB. Modul AFT tidak mengelola status Terraform backend.
catatan
Kau bertanggung jawab untuk melindungi file status Terraform. Beberapa variabel input mungkin berisi nilai sensitif, seperti ssh kunci pribadi atau token Terraform. Tergantung pada metode penerapan Anda, nilai-nilai ini dapat dilihat sebagai teks biasa dalam file status Terraform. Untuk informasi lebih lanjut, lihat Data sensitif di Negara