

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

# Fondasi awan
<a name="cloudfoundations-pattern-list"></a>

**Topics**
+ [Mengotomatiskan pembuatan akun dengan menggunakan Akselerator Zona Landing di AWS](automate-account-creation-lza.md)
+ [Inventarisasi AWS sumber daya secara otomatis di beberapa akun dan Wilayah](automate-aws-resource-inventory.md)
+ [Bangun AWS landing zone yang mencakup MongoDB Atlas](build-aws-landing-zone-that-includes-mongodb-atlas.md)
+ [Konfigurasikan Log Aliran VPC untuk sentralisasi di seluruh Akun AWS](configure-vpc-flow-logs-for-centralization-across-aws-accounts.md)
+ [Kelola set AWS izin secara dinamis dengan menggunakan Terraform](manage-aws-permission-sets-dynamically-by-using-terraform.md)
+ [Tandai lampiran Transit Gateway secara otomatis menggunakan AWS Organizations](tag-transit-gateway-attachments-automatically-using-aws-organizations.md)
+ [Lebih banyak pola](cloudfoundations-more-patterns-pattern-list.md)

# Mengotomatiskan pembuatan akun dengan menggunakan Akselerator Zona Landing di AWS
<a name="automate-account-creation-lza"></a>

*Justin Kuskowski, Joe Behrens, dan Nathan Scott, Amazon Web Services*

## Ringkasan
<a name="automate-account-creation-lza-summary"></a>

Pola ini menjelaskan cara menggunakan [Landing Zone Accelerator pada AWS](https://aws.amazon.com/solutions/implementations/landing-zone-accelerator-on-aws/) solusi untuk secara otomatis menerapkan baru Akun AWS ketika pengguna yang berwenang mengirimkan permintaan. Ini digunakan AWS Step Functions untuk mengatur sejumlah fungsi. AWS Lambda Fungsi Lambda menambahkan informasi akun ke repositori Git, memulai AWS CodePipeline pipeline, dan memvalidasi bahwa sumber daya yang diperlukan disediakan. AWS Ketika proses selesai, pengguna menerima pemberitahuan bahwa akun telah dibuat.

Secara opsional, Anda dapat mengintegrasikan grup ID Microsoft Entra dan menetapkan set AWS IAM Identity Center izin selama proses pembuatan akun. Jika organisasi Anda menggunakan ID Microsoft Entra sebagai sumber identitas, fitur opsional ini membantu Anda mengelola dan mengonfigurasi akses ke akun baru secara otomatis.

## Prasyarat dan batasan
<a name="automate-account-creation-lza-prereqs"></a>

**Prasyarat**
+ Akses ke akun manajemen di AWS Organizations
+ AWS Cloud Development Kit (AWS CDK) [https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_install](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_install)
+ [Python versi 3.9 atau yang lebih baru, diinstal](https://www.python.org/downloads/)
+ AWS Command Line Interface [(AWS CLI) versi 2.13.19 atau yang lebih baru, diinstal](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)
+ [Docker versi 24.0.6 atau yang lebih baru, diinstal](https://docs.docker.com/get-started/get-docker/)
+ Akselerator Zona Pendaratan pada AWS solusi, [digunakan](https://docs.aws.amazon.com/solutions/latest/landing-zone-accelerator-on-aws/deploy-the-solution.html) di akun manajemen
+ [(Opsional) Microsoft Entra ID dan IAM Identity Center, terintegrasi](https://docs.aws.amazon.com/singlesignon/latest/userguide/idp-microsoft-entra.html)

**Batasan**

Alur kerja pembuatan akun mendukung eksekusi berurutan untuk menerapkan satu. Akun AWS Batasan ini memastikan bahwa alur kerja pembuatan akun telah berhasil diselesaikan tanpa harus bersaing untuk sumber daya selama proses paralel.

## Arsitektur
<a name="automate-account-creation-lza-architecture"></a>

**Arsitektur target**

Gambar berikut menunjukkan arsitektur tingkat tinggi untuk mengotomatisasi pembuatan baru Akun AWS dengan menggunakan Akselerator Zona Pendaratan aktif. AWS AWS Step Functions mengatur otomatisasi. Setiap tugas dalam alur kerja Step Functions dilakukan oleh satu atau beberapa AWS Lambda fungsi.

![\[Alur kerja untuk mengotomatiskan pembuatan akun baru dengan menggunakan Landing Zone Accelerator di AWS.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/d31abfaa-6854-4923-b896-3b817de9f4d9/images/dfd6503d-a4ed-43df-82d4-082f8153d473.png)


Diagram menunjukkan alur kerja berikut:

1. Pengguna meminta akun dengan menjalankan skrip Python atau dengan menggunakan Amazon API Gateway.

1. Alur kerja Orkestrator Pembuatan Akun dimulai pada. AWS Step Functions

1. Alur kerja memperbarui `account-config.yaml` file di repositori kode sumber. Ini juga memulai Akselerator Zona Pendaratan pada AWS pipa dan memeriksa status pipa. Pipeline ini membuat dan menyiapkan akun baru. Untuk informasi selengkapnya tentang cara kerjanya, lihat [ikhtisar Arsitektur](https://docs.aws.amazon.com/solutions/latest/landing-zone-accelerator-on-aws/architecture-overview.html) untuk Akselerator Zona Pendaratan. AWS

1. (Opsional) Saat pipeline selesai, alur kerja memeriksa apakah grup ada di Microsoft Entra ID. Jika grup tidak ada di Microsoft Entra ID, alur kerja akan menambahkan grup ke Microsoft Entra ID.

1. Alur kerja melakukan langkah-langkah tambahan yang tidak dapat dilakukan oleh Landing Zone Accelerator pada AWS solusi. Langkah-langkah default meliputi:
   + Membuat [alias akun](https://docs.aws.amazon.com/IAM/latest/UserGuide/console-account-alias.html) di AWS Identity and Access Management (IAM)
   + Melampirkan [tag](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_tagging.html) ke akun di AWS Organizations
   + Membuat parameter di [AWS Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) berdasarkan tag yang ditetapkan ke akun

1. (Opsional) Alur kerja menetapkan satu atau beberapa [set izin](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) ke grup ID Microsoft Entra yang sebelumnya Anda tentukan. Set izin memungkinkan pengguna dalam grup untuk mengakses akun baru dan memungkinkan mereka untuk melakukan tindakan yang Anda konfigurasikan.

1. Sebuah AWS Lambda fungsi menjalankan tes QA dan validasi. Ini memvalidasi pembuatan sumber daya, memeriksa apakah tag telah dibuat, dan memvalidasi bahwa sumber daya keamanan telah digunakan.

1. Alur kerja merilis akun dan menggunakan Amazon Simple Email Service (Amazon SES) untuk memberi tahu pengguna bahwa proses telah berhasil diselesaikan.

Untuk informasi selengkapnya tentang alur kerja Step Functions, lihat *diagram alur kerja Step Functions* di bagian [Informasi tambahan](#automate-account-creation-lza-additional) dari pola ini.

**Aplikasi Microsoft Entra ID**

Jika Anda memilih untuk mengintegrasikan dengan Microsoft Entra ID, Anda membuat dua aplikasi berikut ketika Anda menerapkan pola ini:
+ Aplikasi yang ditautkan ke IAM Identity Center dan memastikan bahwa grup ID Microsoft Entra tersedia di IAM Identity Center. Dalam contoh ini, aplikasi Microsoft Entra ID ini diberi nama`LZA2`.
+ [Aplikasi yang memungkinkan fungsi Lambda untuk berkomunikasi dengan Microsoft Entra ID dan memanggil Microsoft Graph. APIs](https://learn.microsoft.com/en-us/graph/identity-network-access-overview) Dalam pola ini, aplikasi ini diberi nama`create_aws_account`.

Aplikasi ini mengumpulkan data yang digunakan untuk menyinkronkan grup ID Microsoft Entra dan menetapkan set izin.

## Alat
<a name="automate-account-creation-lza-tools"></a>

**Layanan AWS**
+ [Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html) membantu Anda membuat, menerbitkan, memelihara, memantau, dan mengamankan REST, HTTP, dan WebSocket APIs dalam skala apa pun. Dalam pola ini, Anda menggunakan API Gateway untuk memeriksa ketersediaan Akun AWS nama, memulai AWS Step Functions alur kerja, dan memeriksa status eksekusi Step Functions.
+ [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/v2/guide/home.html)adalah kerangka pengembangan perangkat lunak yang membantu Anda menentukan dan menyediakan AWS Cloud infrastruktur dalam kode.
+ [AWS Control Tower](https://docs.aws.amazon.com/controltower/latest/userguide/what-is-control-tower.html)membantu Anda mengatur dan mengatur lingkungan AWS multi-akun, mengikuti praktik terbaik preskriptif.
+ [Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) adalah layanan bus acara tanpa server yang membantu Anda menghubungkan aplikasi Anda dengan data waktu nyata dari berbagai sumber. Misalnya, AWS Lambda fungsi, titik akhir pemanggilan HTTP menggunakan tujuan API, atau bus acara di tempat lain. Akun AWS Solusi ini menggunakan [EventBridge aturan](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-rules.html) yang memulai fungsi Lambda jika status alur kerja Step Functions berubah menjadi`Failed`,, `Timed-out` atau. `Aborted`
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) membantu Anda mengelola akses ke AWS sumber daya dengan aman dengan mengontrol siapa yang diautentikasi dan diberi wewenang untuk menggunakannya.
+ [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)membantu Anda mengelola akses masuk tunggal (SSO) secara terpusat ke semua aplikasi Anda Akun AWS dan cloud.
+ [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) membantu Anda membuat dan mengontrol kunci kriptografi untuk membantu melindungi data Anda. Dalam pola ini, AWS KMS kunci digunakan untuk mengenkripsi data, seperti data yang disimpan di Amazon Simple Storage Service (Amazon S3), variabel lingkungan Lambda, dan data di Step Functions.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)adalah layanan komputasi yang membantu Anda menjalankan kode tanpa perlu menyediakan atau mengelola server. Ini menjalankan kode Anda hanya bila diperlukan dan skala secara otomatis, jadi Anda hanya membayar untuk waktu komputasi yang Anda gunakan.
+ [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)adalah layanan manajemen akun yang membantu Anda mengkonsolidasikan beberapa Akun AWS ke dalam organisasi yang Anda buat dan kelola secara terpusat.
+ [Amazon Simple Email Service (Amazon SES)](https://docs.aws.amazon.com/ses/latest/dg/Welcome.html) membantu Anda mengirim dan menerima email dengan menggunakan alamat email dan domain Anda sendiri. Setelah akun baru berhasil dibuat, Anda menerima pemberitahuan melalui Amazon SES.
+ [Amazon Simple Notification Service (Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/welcome.html)) membantu Anda mengoordinasikan dan mengelola pertukaran pesan antara penayang dan klien, termasuk server web dan alamat email. Jika terjadi kesalahan selama proses pembuatan akun, Amazon SNS mengirimkan pemberitahuan ke alamat email yang Anda konfigurasikan.
+ [AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html)adalah layanan orkestrasi tanpa server yang membantu Anda menggabungkan AWS Lambda fungsi dan lainnya Layanan AWS untuk membangun aplikasi bisnis yang penting.
+ [AWS Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) menyediakan penyimpanan hierarkis yang aman untuk manajemen data konfigurasi dan manajemen rahasia.

**Alat-alat lainnya**
+ [awscurl](https://pypi.org/project/awscurl/0.6/) mengotomatiskan proses penandatanganan permintaan AWS API dan membantu Anda membuat permintaan sebagai perintah curl standar.
+ [Microsoft Entra ID](https://learn.microsoft.com/en-us/entra/fundamentals/whatis), sebelumnya dikenal sebagai *Azure Active Directory*, adalah layanan manajemen identitas dan akses berbasis cloud.
+ [Microsoft Graph APIs](https://learn.microsoft.com/en-us/graph/graph-explorer/graph-explorer-overview) membantu Anda mengakses data dan intelijen di layanan cloud Microsoft, seperti Microsoft Entra dan Microsoft 365.

**Repositori kode**

Kode untuk pola ini tersedia di GitHub [lza-account-creation-workflow](https://github.com/aws-samples/lza-account-creation-workflow)repositori.

Direktori [lambda\$1layer](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_layer) berisi lapisan berikut, yang direferensikan dalam lebih dari satu fungsi Lambda:
+ [account\$1creation\$1helper](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_layer/account_creation_helper) - Lapisan ini mencakup modul untuk mengasumsikan peran dan memeriksa kemajuan dalam. AWS Service Catalog
+ [boto3](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_layer/boto3) - Lapisan ini mencakup [AWS SDK untuk Python (Boto3)](https://boto3.amazonaws.com/v1/documentation/api/latest/index.html)modul untuk memastikan bahwa AWS Lambda memiliki versi terbaru.
+ [identity\$1center\$1helper](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_layer/identity_center_helper) - Lapisan ini mendukung panggilan ke IAM Identity Center.

Direktori [lambda\$1src berisi fungsi](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src) Lambda berikut:
+ [AccountTagToSsmParameter](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/event/AccountTagToSsmParameter)— Fungsi ini menggunakan tag yang dilampirkan ke akun untuk membuat parameter di Parameter Store. AWS Organizations Setiap parameter dimulai dengan `/account/tags/` awalan.
+ [AttachPermissionSet](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/stepfunction/AttachPermissionSet)— Fungsi ini menambahkan izin yang disetel ke grup Pusat Identitas IAM.
+ [Azure ADGroup Sync](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/stepfunction/AzureADGroupSync) - Fungsi ini menyinkronkan target grup Microsoft Entra ID ke IAM Identity Center.
+ [CheckForRunningProcesses](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/stepfunction/CheckForRunningProcesses)— Fungsi ini memeriksa apakah `AWSAccelerator-Pipeline` pipeline sedang berjalan. Jika pipeline sedang berjalan, fungsi menunda AWS Step Functions alur kerja.
+ [CreateAccount](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/stepfunction/CreateAccount)— Fungsi ini menggunakan AWS Service Catalog dan AWS Control Tower membuat yang baru Akun AWS.
+ [CreateAdditionalResources](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/stepfunction/CreateAdditionalResources)— Fungsi ini menciptakan AWS sumber daya yang tidak dikelola oleh Landing Zone Accelerator atau AWS CloudFormation, seperti alias akun dan AWS Service Catalog tag.
+ [GetAccountStatus](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/stepfunction/GetAccountStatus)Fungsi ini memindai produk yang disediakan AWS Service Catalog untuk menentukan apakah proses pembuatan akun telah selesai.
+ [GetExecutionStatus](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/api/GetExecutionStatus)— Fungsi ini mengambil status AWS Step Functions eksekusi yang sedang berjalan atau selesai.
+ [NameAvailability](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/api/NameAvailability)— Fungsi ini memeriksa apakah Akun AWS nama sudah ada di AWS Organizations.
+ [ReturnResponse](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/stepfunction/ReturnResponse)— Jika pembuatan akun berhasil, fungsi ini mengembalikan ID akun baru. Jika pembuatan akun tidak berhasil, ia mengembalikan pesan kesalahan.
+ [RunStepFunction](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/api/RunStepFunction)— Fungsi ini menjalankan AWS Step Functions alur kerja yang membuat akun.
+ [SendEmailWithSES](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/stepfunction/SendEmailWithSES) — Fungsi ini mengirimkan email ke pengguna yang menunggu pembuatan akun selesai.
+ [Validasi ADGroup SyncTo SSO](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/stepfunction/ValidateAdGroupSyncToSSO) - Fungsi ini memeriksa apakah grup ID Microsoft Entra yang ditentukan disinkronkan dengan IAM Identity Center.
+ [ValidateResources](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/stepfunction/ValidateResources)— Fungsi ini memvalidasi bahwa semua AWS Control Tower penyesuaian telah berjalan dengan sukses.

## Praktik terbaik
<a name="automate-account-creation-lza-best-practices"></a>

Kami merekomendasikan konvensi penamaan berikut untuk: AWS CDK 
+ Mulai semua parameter dengan `p` awalan.
+ Mulai semua kondisi dengan `c` awalan.
+ Mulai semua sumber daya dengan `r` awalan.
+ Mulai semua output dengan `o` awalan.

## Epik
<a name="automate-account-creation-lza-epics"></a>

### Menyebarkan peran IAM untuk validasi dan penandaan
<a name="deploy-the-iam-roles-for-validation-and-tagging"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan Akselerator Zona Pendaratan AWS untuk penyesuaian. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | AWS DevOps | 
| Bersiaplah untuk menyebarkan `lza-account-creation-validation` peran. | Sekarang, Anda menyesuaikan solusi untuk menerapkan peran `lza-account-creation-validation` IAM di semua akun selain akun manajemen. Peran ini menyediakan fungsi `ValidateResources` Lambda dengan akses hanya-baca ke akun baru.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | AWS DevOps | 
| Bersiaplah untuk menyebarkan `account-tagging-to-ssm-parameter-role` peran. | Sekarang, Anda menyesuaikan solusi untuk menerapkan peran `account-tagging-to-ssm-parameter-role` IAM di semua akun selain akun manajemen. Peran ini digunakan untuk membuat parameter di AWS Systems Manager Parameter Store.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | AWS DevOps | 
| Bersiaplah untuk menyebarkan `config-log-validation-role` peran. | Sekarang, Anda menyesuaikan solusi untuk menerapkan peran `config-log-validation-role` IAM di akun arsip log. Peran ini memungkinkan fungsi `ValidateResources` Lambda mengakses bucket Amazon S3 untuk aturan logging dan akses. AWS Config [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | AWS DevOps | 

### (Opsional) Dapatkan data dari Microsoft Entra ID
<a name="optional-get-data-from-microsoft-entra-id"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat aplikasi yang memungkinkan fungsi Lambda untuk berkomunikasi dengan Microsoft Entra ID. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | ID Microsoft Entra | 
| Ambil nilai untuk `create_aws_account` aplikasi. | Sekarang, Anda mengambil nilai-nilai yang Anda butuhkan untuk `create_aws_account` aplikasi.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | ID Microsoft Entra | 
| Buat aplikasi yang mengintegrasikan Microsoft Entra ID dengan IAM Identity Center. | Di pusat admin Microsoft Entra ID, daftarkan `LZA2` aplikasi. Untuk petunjuk, lihat [Mendaftarkan aplikasi](https://learn.microsoft.com/en-us/entra/identity-platform/quickstart-register-app) di dokumentasi Microsoft. | ID Microsoft Entra | 
| Ambil nilai untuk `LZA2` aplikasi. | Sekarang, Anda mengambil nilai-nilai yang Anda butuhkan untuk `LZA2` aplikasi.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | ID Microsoft Entra | 
| Buat rahasia. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | AWS DevOps | 

### Terapkan solusinya
<a name="deploy-the-solution"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Kloning kode sumber. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | DevOps insinyur | 
| Perbarui `deploy-config.yaml` file. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | AWS DevOps | 
| Terapkan solusi di AWS lingkungan Anda. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html)Solusi ini menggunakan bucket Amazon S3 untuk menyimpan kode sumber untuk solusi ini. Anda dapat menggunakan skrip [upload\$1to\$1source\$1bucket.py](https://github.com/aws-samples/gen-ai-trivia/blob/main/scripts/upload_to_source_bucket.py) untuk membuat arsip kode sumber dan mengunggah versi yang diperbarui. | AWS DevOps | 

### Opsi 1 - Buat akun menggunakan Python
<a name="option-1-create-an-account-using-python"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Identifikasi argumen mana yang akan digunakan. | Pilih argumen mana yang akan digunakan saat Anda menjalankan skrip Python yang memulai alur kerja Step Functions. Untuk daftar lengkap argumen, lihat bagian [Informasi tambahan](#automate-account-creation-lza-additional) dari pola ini. | AWS DevOps, Python | 
| Mulai skrip Python. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | DevOps insinyur, Python | 

### Opsi 2 - Buat akun menggunakan API Gateway dan awscurl
<a name="option-2-create-an-account-using-api-gateway-and-awscurl"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan variabel untuk awscurl. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | AWS DevOps | 
| Periksa ketersediaan nama. | Masukkan perintah berikut untuk memverifikasi bahwa nama tersebut tersedia untuk Akun AWS. Ganti `<AWS_ACCOUNT_NAME>` dengan nama akun target:<pre>awscurl --service execute-api \<br />    --region ${AWS_REGION} \<br />    --access_key ${AWS_ACCESS_KEY_ID} \<br />    --secret_key ${AWS_SECRET_ACCESS_KEY} \<br />    --security_token ${AWS_SESSION_TOKEN} \<br />    -X POST ${API_GATEWAY_ENDPOINT}check_name?account_name=<AWS_ACCOUNT_NAME></pre> | AWS DevOps | 
| Jalankan alur kerja pembuatan akun. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | AWS DevOps | 

### (Opsional) Bersihkan solusinya
<a name="optional-clean-up-the-solution"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Hapus objek dari ember Amazon S3. | Hapus objek apa pun di bucket Amazon S3 berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | AWS DevOps | 
| Hapus CloudFormation tumpukan. | Masukkan perintah berikut untuk menghapus CloudFormation tumpukan:<pre>aws cloudformation delete-stack \<br />  --stack-name lza-account-creation-workflow-application<br />aws cloudformation wait stack-delete-complete \<br />  --stack-name lza-account-creation-workflow-application</pre> | AWS DevOps | 
| Hapus pipa. | Masukkan perintah berikut untuk menghapus `lza-account-creation-workflow-pipeline` pipeline:<pre>cdk destroy lza-account-creation-workflow-pipeline --force</pre> | AWS DevOps | 

## Sumber daya terkait
<a name="automate-account-creation-lza-resources"></a>
+ [Akselerator Zona Pendaratan AWS](https://aws.amazon.com/solutions/implementations/landing-zone-accelerator-on-aws/) aktif (Perpustakaan AWS Solusi)
+ [Memecahkan AWS CDK masalah umum (dokumentasi](https://docs.aws.amazon.com/cdk/v2/guide/troubleshooting.html))AWS CDK 

## Informasi tambahan
<a name="automate-account-creation-lza-additional"></a>

**Diagram alur kerja Step Functions**

Gambar berikut menunjukkan status dalam alur kerja Step Functions.

![\[Status dalam alur kerja Step Functions.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/d31abfaa-6854-4923-b896-3b817de9f4d9/images/d93aa7bf-1144-4f25-9488-aacc534a7813.png)


**Argumen**

Berikut ini adalah argumen yang dapat Anda gunakan ketika Anda menjalankan script Python yang memulai alur kerja Step Functions.

Argumen berikut diperlukan:
+ `account-name (-a)`(string) — Nama yang baru Akun AWS.
+ `support-dl (-s)`(string) — Alamat email yang menerima pemberitahuan saat proses pembuatan akun selesai.
+ `managed-org-unit (-m)`(string) — [Unit organisasi terkelola (OU)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html#organizationalunit) yang akan berisi akun baru.

Argumen berikut adalah opsional:
+ `ad-integration (-ad)`(kamus string) - Grup ID Microsoft Entra dan set izin yang ditetapkan. Berikut ini adalah contoh bagaimana menggunakan argumen ini:

  ```
  --ad-integration "{\"<PermissionSetName>\": \"<EntraIdGroupName>\"}"
  ```
+ `account-email (-e)`****(string) — Alamat email untuk pengguna root yang baru Akun AWS.
**catatan**  
Jika argumen ini tidak digunakan, alamat email akan dihasilkan dengan menggunakan nilai `rootEmailPrefix` dan `rootEmailDomain` dari `configs/deploy-config.yaml` file. Jika alamat email tidak diberikan, alamat email dibuat dengan menggunakan format berikut: `rootEmailPrefix+accountName@rootEmailDomain`
+ `region (-r)`(string) - Wilayah AWS Tempat alur kerja Step Functions digunakan. Nilai default-nya adalah `us-east-1`.
+ `force-update (-f)`(string Boolean) - Masukkan `true` AWS Service Catalog untuk memaksa memperbarui produk yang disediakan.
+ `bypass-creation (-b)`(string Boolean) - Masukkan `true` untuk memotong menambahkan akun ke `accounts-config.yaml` file dan melewati menjalankan pipeline. `AWSAccelerator-Pipeline` Argumen ini biasanya digunakan untuk menguji proses alur kerja pembuatan akun atau untuk menjalankan langkah-langkah Step Functions lainnya jika terjadi kesalahan dalam `Landing Zone Accelerator` pipeline.
+ `tags (-t)`(string) — Tag tambahan yang ingin Anda tambahkan ke Akun AWS. Secara default, tag berikut ditambahkan:`account-name`,`support-dl`, dan`purpose`. Berikut ini adalah contoh bagaimana menggunakan argumen ini:

  ```
  --tags TEST1=VALUE1 TEST2=VALUE2
  ```

# Inventarisasi AWS sumber daya secara otomatis di beberapa akun dan Wilayah
<a name="automate-aws-resource-inventory"></a>

*Matej Macek, Amazon Web Services*

## Ringkasan
<a name="automate-aws-resource-inventory-summary"></a>

Pola ini menguraikan pendekatan otomatis untuk mempertahankan inventaris AWS sumber daya yang komprehensif di beberapa akun dan Wilayah AWS. Ini dirancang untuk membantu insinyur infrastruktur dan keamanan meningkatkan praktik manajemen sumber daya mereka. Ini digunakan AWS Config untuk melacak perubahan sumber daya, Amazon Athena untuk kueri, dan Amazon Quick Sight untuk dasbor interaktif. Anda menerapkan solusi ini dengan menerapkan AWS CloudFormation tumpukan.

Solusi ini mirip dengan yang disajikan dalam [Visualisasi AWS Config data menggunakan Amazon Athena dan Amazon Quick](https://aws.amazon.com/blogs/mt/visualizing-aws-config-data-using-amazon-athena-and-amazon-quicksight/) Sight AWS (posting blog). Pola ini memperluas solusi itu untuk mengatasi persyaratan umum berikut dan memberikan manfaat utama berikut:
+ **Berfokus pada kepatuhan** [https://www.hhs.gov/programs/hipaa/index.html](https://www.hhs.gov/programs/hipaa/index.html)
+ **Kerangka kustomisasi** - Ini memberikan dasar untuk membuat dasbor Quick Sight untuk berbagai AWS sumber daya, sehingga Anda dapat menyesuaikan solusi dengan kebutuhan spesifik Anda.
+ **Peningkatan yang digerakkan oleh pengguna** — Pendekatan ini menggabungkan umpan balik dari kasus penggunaan dunia nyata dan menangani permintaan untuk solusi yang lebih komprehensif.

Tim infrastruktur, keamanan, dan keuangan sering menghadapi tantangan visibilitas dan kolaborasi di lingkungan dinamis, multi-akun, atau Multi-wilayah. Solusi ini dirancang untuk mengatasi tantangan tersebut dan secara signifikan mengurangi waktu dan upaya yang diperlukan untuk membuat dan memelihara inventaris sumber daya. Hasilnya adalah pandangan terpusat sumber daya yang membantu Anda meningkatkan keputusan alokasi sumber daya, mengidentifikasi dan mengurangi risiko, mengoptimalkan biaya, dan meningkatkan visibilitas dan kolaborasi secara keseluruhan. Pendekatan ini menjembatani kesenjangan antara solusi konseptual dan kebutuhan implementasi dunia nyata untuk tujuan keamanan, kepatuhan, dan operasional.

## Prasyarat dan batasan
<a name="automate-aws-resource-inventory-prereqs"></a>

**Prasyarat**
+ Berikut ini aktif Akun AWS:
  + *Akun manajemen - Akun* terpusat untuk penagihan, membuat akun, dan mengendalikan akses di seluruh organisasi
  + *Akun audit* — Hub terpusat untuk pemantauan keamanan, pemeriksaan kepatuhan, dan pemberitahuan drift
  + *Akun arsip log* — Akun terpusat untuk menyimpan dan menganalisis data yang dikumpulkan
+ Di akun audit, AWS Config [agregator](https://docs.aws.amazon.com/config/latest/developerguide/aggregate-data.html) yang mengumpulkan dan mengumpulkan data konfigurasi dari akun target dan Wilayah Anda
+ Di akun arsip log, siapkan yang berikut ini:
  + Bucket Amazon Simple Storage Service (Amazon [S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) tempat Anda menyimpan data dari agregator AWS Config 
  + [Langganan](https://docs.aws.amazon.com/quicksight/latest/user/signing-up.html) Amazon Quick
  + [Koneksi resmi](https://docs.aws.amazon.com/quicksight/latest/user/athena.html) antara Quick Sight dan Amazon Athena
  + [Izin](https://docs.aws.amazon.com/athena/latest/ug/s3-permissions.html) untuk mengakses bucket Amazon S3 melalui kueri Athena
+ AWS Command Line Interface (AWS CLI), [diinstal](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) dan [dikonfigurasi](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)
+ Izin untuk menerapkan CloudFormation tumpukan yang menyediakan sumber daya berikut:
  + Sebuah AWS Lambda fungsi
  + Konfigurasi notifikasi Amazon S3
  + Database Athena, tabel, dan tampilan
  + Kumpulan data Quick Sight dan sumber data
+ Izin untuk menjalankan otomatisasi di AWS Systems Manager
+ Izin untuk mengakses Cepat

**Batasan**
+ Solusinya bergantung pada AWS Config. AWS Config biasanya mencatat perubahan konfigurasi ke sumber daya Anda tepat setelah perubahan terdeteksi, atau pada frekuensi yang Anda tentukan. Namun, ini adalah upaya terbaik dan kadang-kadang bisa memakan waktu lebih lama.
+ Solusi ini hanya melacak [jenis sumber daya yang AWS Config mendukung](https://docs.aws.amazon.com/config/latest/developerguide/resource-config-reference.html).
+ Solusinya tidak melacak inventaris sumber daya di penyedia cloud lain atau lingkungan lokal.
+ Beberapa Layanan AWS tidak tersedia di semua Wilayah AWS. Untuk ketersediaan Wilayah, lihat halaman [titik akhir dan kuota Layanan](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) di AWS dokumentasi, dan pilih tautan untuk layanan.

## Arsitektur
<a name="automate-aws-resource-inventory-architecture"></a>

Diagram berikut menunjukkan proses yang efisien untuk mengumpulkan, mengatur, menganalisis, dan memvisualisasikan konfigurasi dan data kepatuhan di beberapa akun dalam suatu AWS organisasi.

![\[Mengumpulkan dan memvisualisasikan data konfigurasi dan kepatuhan di seluruh organisasi.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/67a9667a-da19-4dcb-a2fe-62bc94a0541b/images/c9245de1-ac85-4a9e-a0c0-dbcc27a8bb5d.png)


Diagram menunjukkan alur kerja berikut:

1. Pada jadwal berkala, AWS Config agregator mengumpulkan data konfigurasi dan kepatuhan tentang sumber daya di akun target dan Wilayah dan kemudian mengirimkan data ke bucket Amazon S3 di akun arsip log.

1. Menambahkan AWS Config data baru ke bucket Amazon S3 akan memanggil fungsi. AWS Lambda 

1. Fungsi Lambda mempartisi data dengan mengonfigurasi kunci dengan nilai yang sesuai dengan Wilayah dan tanggal setiap file snapshot. Ini membantu AWS Glue secara efisien menanyakan dan memproses konfigurasi dan data kepatuhan.

1. Amazon Athena menggunakan AWS Glue [skema](https://docs.aws.amazon.com/glue/latest/dg/schema-registry.html) untuk menjalankan kueri SQL terhadap data yang disimpan di bucket Amazon S3. Ini menggunakan metadata skema dari AWS Glue untuk memahami struktur data.

1. [Tampilan](https://docs.aws.amazon.com/athena/latest/ug/views.html) di Athena menentukan dan mengekstrak kumpulan data target.

1. [Dasbor](https://docs.aws.amazon.com/quicksight/latest/user/using-dashboards.html) di Quick Sight membantu Anda memvisualisasikan dan menganalisis kumpulan data.

## Alat
<a name="automate-aws-resource-inventory-tools"></a>

**Layanan AWS**
+ [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html) adalah layanan kueri interaktif yang membantu Anda menganalisis data secara langsung di Amazon S3 dengan menggunakan SQL standar.
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)membantu Anda menyiapkan AWS sumber daya, menyediakannya dengan cepat dan konsisten, dan mengelolanya sepanjang siklus hidupnya di seluruh Akun AWS dan. Wilayah AWS
+ [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html)memberikan tampilan rinci tentang sumber daya di Anda Akun AWS dan bagaimana mereka dikonfigurasi. Ini membantu Anda mengidentifikasi bagaimana sumber daya terkait satu sama lain dan bagaimana konfigurasinya telah berubah dari waktu ke waktu. AWS Config [Agregator](https://docs.aws.amazon.com/config/latest/developerguide/aggregate-data.html) mengumpulkan data AWS Config konfigurasi dan kepatuhan dari beberapa Akun AWS dan Wilayah.
+ [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html)adalah layanan ekstrak, transformasi, dan beban (ETL) yang dikelola sepenuhnya. Ini membantu Anda mengkategorikan, membersihkan, memperkaya, dan memindahkan data dengan andal antara penyimpanan data dan aliran data. Pola ini menggunakan AWS Glue [Data Catalog](https://docs.aws.amazon.com/glue/latest/dg/components-overview.html#data-catalog-intro) dan [Schema registry](https://docs.aws.amazon.com/glue/latest/dg/schema-registry.html).
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)adalah layanan komputasi yang membantu Anda menjalankan kode tanpa perlu menyediakan atau mengelola server. Ini menjalankan kode Anda hanya bila diperlukan dan skala secara otomatis, jadi Anda hanya membayar untuk waktu komputasi yang Anda gunakan.
+ [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)adalah layanan manajemen akun yang membantu Anda mengkonsolidasikan beberapa Akun AWS ke dalam organisasi yang Anda buat dan kelola secara terpusat.
+ [Amazon Quick Sight](https://docs.aws.amazon.com/quicksuite/latest/userguide/quick-bi.html) adalah layanan intelijen bisnis (BI) yang membantu Anda mengubah data mentah menjadi wawasan yang bermakna melalui visualisasi, dasbor, dan laporan interaktif. Quick Sight adalah komponen inti dari Amazon Quick.
+ [Amazon Simple Storage Service (Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.
+ [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html)membantu Anda mengelola aplikasi dan infrastruktur yang berjalan di AWS Cloud. Ini menyederhanakan aplikasi dan manajemen sumber daya, mempersingkat waktu untuk mendeteksi dan menyelesaikan masalah operasional, dan membantu Anda mengelola AWS sumber daya Anda dengan aman dalam skala besar. [AWS Systems Manager Otomasi](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation.html) menyederhanakan tugas pemeliharaan, penyebaran, dan remediasi umum bagi banyak orang. Layanan AWS

**Repositori kode**

 AWS CloudFormation Template untuk pola ini tersedia di GitHub repositori [AWS Config visualisasi](https://github.com/aws-samples/aws-management-and-governance-samples/blob/master/AWSConfig/AWS-Config-Visualization/README.md). CloudFormation Template ini menyebarkan runbook AWS Systems Manager otomatisasi yang disiapkan AWS Config untuk digunakan dengan Amazon Athena. Otomatisasi ini bersiap AWS Glue untuk terhubung dengan bucket Amazon S3 yang ditunjuk, membuat tampilan di Amazon Athena, dan mengonfigurasi Quick Sight untuk visualisasi dasbor.

## Praktik terbaik
<a name="automate-aws-resource-inventory-best-practices"></a>
+ Kami menyarankan Anda mengikuti praktik terbaik dalam [Mengatur dan mengatur AWS lingkungan multi-akun yang aman dengan](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-aws-environment/welcome.html) Panduan AWS Control Tower AWS Preskriptif.
+ Kami menyarankan Anda membuat AWS Config agregator yang mengumpulkan data konfigurasi dan kepatuhan untuk seluruh AWS organisasi. Untuk informasi selengkapnya, lihat [Agregasi Data Multi-Wilayah Multi-Akun dalam dokumentasi](https://docs.aws.amazon.com/config/latest/developerguide/aggregate-data.html). AWS Config 
+ [Sebelum menerapkan solusi ini, kami sarankan Anda meninjau informasi harga saat ini untuk [Amazon](https://aws.amazon.com/s3/pricing/) S3 [AWS Config](https://aws.amazon.com/config/pricing/), [Athena](https://aws.amazon.com/athena/pricing/), dan Quick.](https://aws.amazon.com/quicksight/pricing/)

## Epik
<a name="automate-aws-resource-inventory-epics"></a>

### Menyebarkan tumpukan CloudFormation
<a name="deploy-the-cfnshort-stack"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Unduh CloudFormation template. | Unduh template [Config- QuickSight CloudFormation -Visualization-SSM-Automation.yaml](https://github.com/aws-samples/aws-management-and-governance-samples/blob/master/AWSConfig/AWS-Config-Visualization/cft/Config-QuickSight-Visualization-SSM-Automation.yaml). | Administrator AWS, administrator Cloud, DevOps insinyur | 
| Ubah CloudFormation template. | Selesaikan langkah ini hanya jika Anda menggunakan [AWS Control Tower](https://aws.amazon.com/controltower/)dan AWS Config dikelola oleh AWS Control Tower. Anda perlu memodifikasi CloudFormation template.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-aws-resource-inventory.html) | DevOps insinyur, administrator AWS | 
| Buat CloudFormation tumpukan. | Ikuti petunjuk di [Buat tumpukan dari CloudFormation konsol](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html). Perhatikan hal-hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-aws-resource-inventory.html) | Administrator AWS, administrator Cloud, DevOps insinyur | 

### Jalankan otomatisasi di Systems Manager
<a name="run-the-automation-in-sys"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Temukan nama pengguna Cepat Anda. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-aws-resource-inventory.html) | Administrator AWS, administrator Cloud, DevOps insinyur | 
| Temukan nama saluran pengiriman dan nama bucket Amazon S3. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-aws-resource-inventory.html) | Administrator AWS, administrator Cloud, DevOps insinyur | 
| Jalankan otomatisasi di Systems Manager. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-aws-resource-inventory.html) | Administrator AWS, administrator Cloud, DevOps insinyur | 

### Visualisasikan data dalam Quick Sight
<a name="visualize-data-in-qsight"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Segarkan data. | Untuk menjadwalkan penyegaran kumpulan data sesuai dengan kebutuhan spesifik Anda, ikuti petunjuk di [Menyegarkan](https://docs.aws.amazon.com/quicksight/latest/user/refreshing-imported-data.html) data SPICE. | Administrator AWS, DevOps insinyur, administrator Cloud | 
| Buat analisis. | Untuk membuat dasbor di Quick Sight yang membantu Anda memvisualisasikan sumber daya, ikuti petunjuk di [Memulai analisis di Quick Sight](https://docs.aws.amazon.com/quicksuite/latest/userguide/creating-an-analysis.html). | Administrator Suite Cepat | 
| Buat dasbor. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-aws-resource-inventory.html) | Administrator Suite Cepat | 

### (Opsional) Bersihkan
<a name="optional-clean-up"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Hapus sumber daya yang dibuat oleh otomatisasi Systems Manager. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-aws-resource-inventory.html) | Administrator AWS, administrator Cloud, DevOps insinyur | 
| Hapus CloudFormation tumpukan. | Untuk menghapus sumber daya di `Config-QuickSight-Visualization-SSM-Automation` tumpukan, ikuti petunjuk di [Hapus tumpukan dari CloudFormation konsol](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html). | Administrator AWS, administrator Cloud, DevOps insinyur | 

## Pemecahan masalah
<a name="automate-aws-resource-inventory-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| Amazon Quick mencoba untuk terhubung ke `us-east-1` Wilayah AWS, tetapi penciptaan sumber daya di Wilayah itu tidak diizinkan. | Kebijakan kontrol layanan membatasi langganan Anda ke Amazon Quick di Wilayah ini. Dalam kebijakan kontrol layanan, tentukan target secara manual Wilayah AWS. Ganti `<REGION_ID>` dengan pengenal Wilayah yang sesuai:<pre>https://<REGION_ID>.quicksight.aws.amazon.com/sn/start/dashboards</pre>Berikut ini adalah contohnya:<pre>https://eu-central-1.quicksight.aws.amazon.com/sn/start/dashboards</pre> | 
| Di Amazon Athena, Anda menemukan pesan berikut:`Before you run your first query, you need to set up a query result location in Amazon S3.` | Pastikan Anda telah menyiapkan ember Amazon S3 tempat Anda akan menyimpan hasil kueri dari Amazon Athena. Kemudian ikuti petunjuk di [Tentukan lokasi hasil kueri menggunakan konsol Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/query-results-specify-location-console.html). | 

## Sumber daya terkait
<a name="automate-aws-resource-inventory-resources"></a>

**AWS dokumentasi**
+ [AWS Config dokumentasi](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html)
+ [Dokumentasi Amazon Cepat](https://docs.aws.amazon.com/quicksuite/latest/userguide/what-is.html)

**AWS posting blog**
+ [Mengotomatiskan visualisasi AWS Config data dengan AWS Systems Manager](https://aws.amazon.com/blogs/mt/automate-aws-config-data-visualization-with-aws-systems-manager/)
+ [Cara merekam perubahan konfigurasi sumber daya secara berkala dengan AWS Config](https://aws.amazon.com/blogs/mt/how-to-record-resource-configuration-changes-periodically-with-aws-config/)

**Sumber daya lainnya**
+ [Pusat Pembelajaran Komunitas Cepat Amazon](https://community.amazonquicksight.com/c/learning-center/10/none)
+ [Galeri Komunitas Cepat Amazon](https://community.amazonquicksight.com/c/gallery/44)

# Bangun AWS landing zone yang mencakup MongoDB Atlas
<a name="build-aws-landing-zone-that-includes-mongodb-atlas"></a>

*Igor Alekseev, Amazon Web Services*

*Anuj Panchal, MongoDB*

## Ringkasan
<a name="build-aws-landing-zone-that-includes-mongodb-atlas-summary"></a>

Pola ini menjelaskan cara membangun AWS landing zone yang terintegrasi dengan cluster MongoDB Atlas. Infrastruktur secara otomatis digunakan dengan menggunakan skrip Terraform. 

 AWS Lingkungan multi-akun yang terstruktur dengan baik, yang disebut [landing zone](https://docs.aws.amazon.com/prescriptive-guidance/latest/strategy-migration/aws-landing-zone.html), menawarkan skalabilitas dan keamanan, terutama untuk perusahaan. Ini berfungsi sebagai fondasi untuk penyebaran cepat beban kerja dan aplikasi, dan membantu memastikan kepercayaan dalam keamanan dan infrastruktur. Membangun landing zone memerlukan pertimbangan yang cermat terhadap faktor teknis dan bisnis, termasuk struktur akun, jaringan, keamanan, dan manajemen akses. Pertimbangan ini harus selaras dengan pertumbuhan masa depan dan tujuan bisnis organisasi Anda.

Kasus penggunaan untuk pola ini meliputi yang berikut ini.
+ **Platform SaaS dan PaaS Perusahaan: Perangkat lunak** multitenant as a service (SaaS) aplikasi dan platform sebagai layanan (PaaS) platform yang berjalan AWS dapat menggunakan pengaturan ini untuk membantu menyediakan akses pribadi yang aman ke MongoDB Atlas tanpa mengekspos data melalui internet publik.
+ **Industri yang sangat diatur**: Perbankan, jasa keuangan, perawatan kesehatan, dan beban kerja pemerintah yang memerlukan kepatuhan ketat terhadap standar seperti Health Insurance Portability and Accountability Act (HIPAA), Payment Card Industry Data Security Standard (PCI DSS), System and Organization Controls 2 (), dan General Data Protection Regulation (GDPRSOC2) mendapat manfaat dari:
  + Konektivitas pribadi terenkripsi melalui AWS PrivateLink
  + Multi-AZ ketersediaan tinggi set replika MongoDB
+ ** AI/ML Beban kerja yang aman**: Saluran pipa pelatihan atau inferensi di Amazon Bedrock, SageMaker Amazon AI, atau model AI khusus dapat mengambil dan menyimpan data dengan aman di MongoDB Atlas. PrivateLink
+ **Pemulihan bencana dan kelangsungan bisnis**: Desain multi-AZ memastikan bahwa tidak ada satu pun kegagalan Availability Zone yang mengganggu beban kerja. Replika Atlas yang disetel di seluruh Availability Zones memastikan failover otomatis. Ini sangat penting untuk layanan yang selalu aktif seperti aplikasi teknologi keuangan (fintech), perbankan digital, atau pemantauan kesehatan.

## Prasyarat dan batasan
<a name="build-aws-landing-zone-that-includes-mongodb-atlas-prereqs"></a>

**Prasyarat**
+ Pemilik organisasi mengakses MongoDB Atlas sehingga Anda dapat membuat kunci Atlas API. Untuk informasi tentang persyaratan ini, lihat [Mengelola Akses Organisasi](https://www.mongodb.com/docs/atlas/tutorial/manage-organizations/) dalam dokumentasi MongoDB.
+ Aktif [Akun AWS](https://aws.amazon.com/resources/create-account/).
+ [Terraform](https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli), diinstal dan dikonfigurasi.
+ Cluster MongoDB Atlas, dibuat dengan MongoDB versi 6.0 atau yang lebih baru.
+ Keakraban dengan MongoDB dan MongoDB Atlas. Untuk informasi selengkapnya, lihat dokumentasi [MongoDB Atlas](https://www.mongodb.com/docs/atlas/).

**Batasan**
+ Beberapa Layanan AWS tidak tersedia di semua Wilayah AWS. Untuk ketersediaan Wilayah, lihat [Layanan AWS berdasarkan Wilayah](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Untuk titik akhir tertentu, lihat [Titik akhir dan kuota layanan](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html), dan pilih tautan untuk layanan.

## Arsitektur
<a name="build-aws-landing-zone-that-includes-mongodb-atlas-architecture"></a>

Diagram arsitektur referensi berikut menggambarkan pengaturan penyebaran untuk AWS landing zone yang terintegrasi dengan titik akhir pribadi MongoDB Atlas. Arsitektur referensi ini menunjukkan bagaimana membangun AWS landing zone yang aman, terukur, dan sangat tersedia yang terintegrasi dengan MongoDB Atlas. Dengan menggabungkan praktik AWS terbaik seperti penyebaran multi-AZ, kontrol keamanan dengan hak istimewa, dan konektivitas pribadi, desain ini memungkinkan organisasi untuk menyediakan lingkungan yang kuat untuk aplikasi modern.

![\[Arsitektur multi-AZ untuk AWS landing zone yang terintegrasi dengan MongoDB Atlas.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/72d335b9-b5b1-4fe2-9972-65edbec60ab1/images/82a8cc98-6f22-4e28-a236-57a809930055.png)


Arsitektur ini terdiri dari yang berikut:

**VPC**
+ Satu virtual private cloud (VPC) mencakup tiga Availability Zone.
+ VPC dibagi lagi menjadi subnet yang selaras dengan setiap Availability Zone. Subnet ini mendistribusikan beban kerja untuk ketersediaan tinggi.

**Akses internet**
+ Gateway internet menyediakan konektivitas internet outbound untuk sumber daya yang membutuhkannya, seperti host aplikasi atau bastion.
+ Subnet publik dapat menampung gateway NAT, yang memungkinkan beban kerja subnet pribadi untuk mengunduh pembaruan, tambalan, dan paket lain yang diperlukan tanpa memaparkannya langsung ke internet publik.

**Subnet pribadi dan tabel rute**
+ Komponen aplikasi, layanan mikro, atau sumber daya sensitif lainnya biasanya berada di subnet pribadi.
+ Tabel rute khusus mengontrol arus lalu lintas. Rutekan lalu lintas keluar langsung dari subnet pribadi ke gateway NAT untuk akses internet yang aman dan hanya jalan keluar.
+ Permintaan masuk dari aliran internet melalui penyeimbang beban elastis atau host benteng (jika digunakan) di subnet publik, dan kemudian rute dengan tepat ke sumber daya subnet pribadi.

**Konektivitas MongoDB Atlas melalui PrivateLink**
+ Arsitektur menggunakan PrivateLink (melalui titik akhir VPC) untuk terhubung dengan aman ke MongoDB Atlas tanpa mengekspos data Anda ke internet publik.
+ Permintaan tetap ada di jaringan AWS backbone. Data dalam perjalanan mendapat manfaat dari PrivateLink enkripsi dan tidak pernah dialihkan melalui internet publik.
+ VPC khusus MongoDB Atlas menghosting node primer dan sekunder Anda, dan menyediakan lingkungan yang aman dan terisolasi untuk cluster database terkelola Anda.

**Deployment Multi-AZ**
+ Komponen infrastruktur penting (seperti gateway NAT dan subnet aplikasi) didistribusikan di setidaknya tiga Availability Zone. Jika Availability Zone mengalami pemadaman, arsitektur ini memastikan bahwa beban kerja di Availability Zone yang tersisa tetap beroperasi.
+ MongoDB Atlas, secara default, menawarkan ketersediaan tinggi melalui set replika dan memastikan bahwa lapisan database Anda tetap toleran terhadap kesalahan. Infrastruktur kritis tersebar di setidaknya tiga Availability Zone untuk ketahanan.

## Alat
<a name="build-aws-landing-zone-that-includes-mongodb-atlas-tools"></a>

**Layanan AWS**
+ [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)membantu Anda mengganti kredensi hardcode dalam kode Anda, termasuk kata sandi, dengan panggilan API untuk mengambil rahasia secara terprogram.

**Produk dan alat lainnya**
+ [MongoDB](https://www.mongodb.com/atlas) Atlas adalah database yang dikelola sepenuhnya sebagai layanan (dBaaS) untuk menyebarkan dan mengelola database MongoDB di cloud.
+ [Terraform](https://www.terraform.io/) adalah alat infrastruktur sebagai kode (IAc) HashiCorp yang membantu Anda membuat dan mengelola sumber daya cloud dan lokal. Dalam pola ini, Anda menggunakan Terraform untuk menjalankan skrip untuk memfasilitasi penerapan sumber daya yang diperlukan di dan AWS MongoDB Atlas.

**Repositori kode**

Kode untuk pola ini tersedia di repositori [AWS dan MongoDB Atlas](https://github.com/mongodb-partners/AWS-MongoDB-Atlas-Landing-Zone) Landing Zone. GitHub 

## Epik
<a name="build-aws-landing-zone-that-includes-mongodb-atlas-epics"></a>

### Penemuan dan penilaian lengkap
<a name="complete-discovery-and-assessment"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Identifikasi pemangku kepentingan utama. | Identifikasi semua pemangku kepentingan utama dan anggota tim yang terlibat dalam proyek landing zone Anda. Ini dapat mencakup peran seperti:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/build-aws-landing-zone-that-includes-mongodb-atlas.html) | Pimpin migrasi | 
| Buat cetak biru struktural. | Buat cetak biru yang menguraikan struktur yang diinginkan dari landing zone berkemampuan Atlas Anda dan AWS MongoDB. | Pimpin migrasi | 
| Buat rencana arsitektur. | Bekerja dengan arsitek aplikasi Anda untuk menganalisis persyaratan dan merancang arsitektur yang tahan terhadap kesalahan dan tangguh. Pola ini menyediakan template arsitektur starter untuk referensi Anda. Anda dapat menyesuaikan template ini untuk memenuhi kebutuhan keamanan dan infrastruktur organisasi Anda. | Arsitek awan | 
| Rencanakan penyiapan dan penerapan. | Tentukan, dengan semua pemangku kepentingan, bagaimana arsitektur akan diterapkan, bagaimana langkah-langkah keamanan akan diterapkan, dan aspek lainnya untuk memastikan keselarasan dengan kepentingan organisasi dan tim yang meminta. | Pimpinan migrasi, DevOps insinyur, DBA | 

### Siapkan lingkungan MongoDB Atlas
<a name="set-up-the-mongodb-atlas-environment"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Kloning repositori. | Kloning kode dari [GitHub repositori](https://github.com/mongodb-partners/AWS-MongoDB-Atlas-Landing-Zone) dengan menjalankan perintah:<pre>git clone https://github.com/mongodb-partners/AWS-MongoDB-Atlas-Landing-Zone</pre> | Pengembang aplikasi, DevOps insinyur | 
| Dapatkan ID organisasi Atlas Anda. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/build-aws-landing-zone-that-includes-mongodb-atlas.html) | DBA | 
| Hasilkan kunci API tingkat organisasi Atlas. | [Untuk membuat kunci API tingkat organisasi Anda di Atlas, ikuti petunjuk dalam dokumentasi MongoDB.](https://www.mongodb.com/docs/atlas/configure-api-access/#grant-programmatic-access-to-an-organization) | DBA | 
| Buat rahasia di AWS Secrets Manager. | Simpan kunci MongoDB Atlas API yang dihasilkan pada langkah sebelumnya sebagai rahasia nilai kunci di Secrets Manager. Untuk petunjuk, lihat [dokumentasi Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html). | DevOps insinyur | 
| Pilih tingkat cluster Atlas. | Untuk memilih tingkat cluster Atlas yang benar, ikuti petunjuk dalam dokumentasi [MongoDB](https://www.mongodb.com/docs/atlas/sizing-tier-selection/). | DBA | 

### Mengatur AWS lingkungan
<a name="set-up-the-aws-environments"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Ubah skrip Terraform. | Di salinan GitHub repositori lokal Anda, perbarui nama rahasia di [modules/mongodb-atlas/mainfile.tf](https://github.com/mongodb-partners/AWS-MongoDB-Atlas-Landing-Zone/blob/3748350730ec2ac7ab64662d536b67b4840c667c/modules/mongodb-atlas/main.tf#L12) (baris 12), sehingga Terraform dapat mengambil kredensil dari Secrets Manager selama penerapan. | DevOps insinyur | 
| Buat ID kunci AWS akses dan kunci rahasia. | Untuk membuat ID kunci AWS akses dan kunci rahasia, ikuti petunjuk di artikel AWS re:Post [Bagaimana cara membuat kunci AWS akses?](https://repost.aws/knowledge-center/create-access-key)Ini adalah praktik terbaik untuk menetapkan kebijakan dengan hak istimewa paling sedikit yang diperlukan, tetapi untuk kasus ini, pilih kebijakan. `AdministratorAccess`Setelah Anda membuat kunci akses, tinjau [praktik terbaik Keamanan di IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) untuk mempelajari praktik terbaik dalam mengelola kunci akses. | DevOps insinyur | 
| Alokasikan alamat IP elastis. | Alokasikan setidaknya dua alamat IDs IP elastis. Untuk petunjuknya, lihat [dokumentasi Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/WorkWithEIPs.html). | DevOps insinyur | 
| Buat ember S3. | Buat bucket S3 untuk menyimpan status penerapan Terraform Anda dengan mengikuti petunjuk di dokumentasi Amazon [Simple Storage Service (Amazon](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) S3). | DevOps insinyur | 
| Perbarui bucket S3 untuk penyimpanan. | Perbarui informasi bucket S3 di versi lokal [environments/development/main.tf](https://github.com/mongodb-partners/AWS-MongoDB-Atlas-Landing-Zone/blob/83e0b52cc4a8c12b24b54edeecbae496880d3615/environments/development/main.tf#L16) agar sesuai dengan nama dan Wilayah bucket yang Anda buat pada langkah sebelumnya, dan tentukan awalan key. Contoh:<pre>terraform {<br />       ...<br />  backend "s3" {<br />    bucket = "startup-name-product-terraform"<br />    key    = "network/dev"<br />    region = "ap-southeast-1"<br />  }<br />}</pre>Untuk contoh ini, Anda dapat mengonfigurasi Terraform untuk menggunakan `network/dev` awalan key untuk mengatur file status Terraform. Anda dapat mengubah nilai ke `prod` atau `staging` mencocokkan lingkungan yang ingin Anda buat. Untuk informasi tentang menggunakan beberapa lingkungan, lihat langkah terakhir di bagian ini.Untuk informasi selengkapnya tentang awalan kunci Amazon S3, lihat [Mengatur objek menggunakan awalan dalam](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-prefixes.html) dokumentasi Amazon S3. | DevOps insinyur | 
| Tetapkan variabel Terraform. | Sample landing zone mendefinisikan nilai variabel input dengan menggunakan file definisi [variabel Terraform](https://www.terraform.io/docs/language/values/variables.html#variable-definitions-tfvars-files).File variabel terletak di [environments/development/variables.tf.](https://github.com/mongodb-partners/AWS-MongoDB-Atlas-Landing-Zone/blob/main/environments/development/variables.tf) Anda dapat mengatur nilai variabel dalam [environments/development/terraformfile.tfvars](https://github.com/mongodb-partners/AWS-MongoDB-Atlas-Landing-Zone/blob/main/environments/development/terraform.tfvars). Konfigurasikan variabel-variabel ini seperti yang dijelaskan dalam [file Readme](https://github.com/mongodb-partners/AWS-MongoDB-Atlas-Landing-Zone/blob/main/README.md#terraform-variables) untuk GitHub repositori. | DevOps insinyur | 
| Mengatur variabel lingkungan. | Jika Anda berencana untuk menjalankan skrip Terraform di mesin lokal Anda, siapkan variabel lingkungan berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/build-aws-landing-zone-that-includes-mongodb-atlas.html)Untuk informasi selengkapnya tentang pengaturan variabel lingkungan, lihat [dokumentasi AWS Command Line Interface (AWS CLI).](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html#envvars-set) | DevOps insinyur | 
| Periksa konfigurasi VPC. | Untuk mengikuti praktik terbaik yang direkomendasikan oleh AWS, konfigurasikan pengaturan untuk VPC dan subnet CIDRs, gateway NAT, rute, dan tabel rute dalam skrip Terraform untuk memenuhi kebutuhan organisasi Anda. Untuk spesifik, lihat [file Readme](https://github.com/mongodb-partners/AWS-MongoDB-Atlas-Landing-Zone/blob/main/README.md#vpc-configurations) untuk repositori. GitHub  | DevOps insinyur | 
| Sumber daya tag. | Anda dapat menandai AWS sumber daya Anda untuk memantaunya saat digunakan oleh skrip Terraform. Sebagai contoh, lihat [file Readme](https://github.com/mongodb-partners/AWS-MongoDB-Atlas-Landing-Zone/blob/main/README.md#resource-taggings) untuk GitHub repositori. Untuk informasi tentang pemantauan sumber daya melalui tag untuk biaya, penggunaan, dan sebagainya, lihat [Mengaktifkan tag alokasi biaya yang ditentukan pengguna](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/activating-tags.html) dalam dokumentasi. AWS Billing  | DevOps insinyur | 
| Gunakan beberapa lingkungan. |  GitHub Repositori menyediakan folder `development` lingkungan. Anda juga dapat menambahkan lingkungan Anda sendiri di folder lingkungan.Untuk menambahkan lingkungan, salin `development` folder ke folder baru (misalnya, `prod` atau`staging`) di bawah`environments`. Anda kemudian dapat memperbarui `terraform.tfvars` file dengan nilai baru. | DevOps insinyur | 

### Menyebarkan landing zone
<a name="deploy-the-landing-zone"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Inisialisasi direktori kerja Terraform. | Untuk menginisialisasi direktori kerja dan mengunduh paket yang diperlukan, jalankan perintah:<pre>terraform init</pre> | DevOps insinyur | 
| Buat rencana eksekusi. | Untuk membuat rencana eksekusi dan memvisualisasikan perubahan yang akan dilakukan Terraform pada infrastruktur Anda, jalankan perintah:<pre>terraform plan</pre> | DevOps insinyur | 
| Menyebarkan perubahan. | Untuk mengimplementasikan perubahan pada infrastruktur Anda seperti yang dijelaskan dalam kode, jalankan perintah:<pre>terraform apply</pre> | DevOps insinyur | 
| Validasi penerapan. | Validasi komponen yang dibuat atau dimodifikasi Terraform di infrastruktur Anda.Untuk menguji penyiapan, sediakan sumber daya komputasi (misalnya, EC2 instans atau AWS Lambda fungsi Amazon) di dalam atau dilampirkan ke VPC. | DevOps insinyur, Pengembang aplikasi | 

### Hapus sumber daya
<a name="remove-resources"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Bersihkan. | Setelah Anda selesai menguji, jalankan perintah berikut untuk menghancurkan sumber daya yang diterapkan Terraform di infrastruktur Anda:<pre>terraform destroy</pre> | DevOps insinyur | 

## Sumber daya terkait
<a name="build-aws-landing-zone-that-includes-mongodb-atlas-resources"></a>

**Penemuan dan penilaian**
+ [Kiat administratif untuk pengaturan landing zone](https://docs.aws.amazon.com/controltower/latest/userguide/tips-for-admin-setup.html) (AWS Control Tower dokumentasi)
+ [Harapan untuk konfigurasi landing zone](https://docs.aws.amazon.com/controltower/latest/userguide/getting-started-configure.html) (AWS Control Tower dokumentasi)
+ [Praktik terbaik untuk pembaruan landing zone](https://docs.aws.amazon.com/controltower/latest/userguide/lz-update-best-practices.html) (AWS Control Tower dokumentasi)

**Menyiapkan MongoDB Atlas dan lingkungan AWS **
+ [Mendapatkan MongoDB Atlas](https://aws.amazon.com/marketplace/pp/prodview-pp445qepfdy34) ()AWS Marketplace
+ [Memori](https://docs.atlas.mongodb.com/sizing-tier-selection/#memory) (dokumentasi MongoDB Atlas)
+ [Contoh ukuran dengan kumpulan data sampel Atlas](https://www.mongodb.com/docs/atlas/sizing-tier-selection/#example--the-service-sample-data-sets) (dokumentasi MongoDB Atlas)
+ [Contoh ukuran untuk aplikasi seluler](https://www.mongodb.com/docs/atlas/sizing-tier-selection/#example--mobile-app) (dokumentasi MongoDB Atlas)
+ [Lalu lintas jaringan](https://docs.atlas.mongodb.com/sizing-tier-selection/#network-traffic) (dokumentasi MongoDB Atlas)
+ [Cluster auto-scaling](https://www.mongodb.com/docs/atlas/sizing-tier-selection/#cluster-auto-scaling) (dokumentasi MongoDB Atlas)
+ [Template ukuran Atlas (dokumentasi](https://www.mongodb.com/docs/atlas/sizing-tier-selection/) MongoDB Atlas)
+ [Siapkan koneksi peering jaringan](https://docs.atlas.mongodb.com/security-vpc-peering/) (dokumentasi MongoDB Atlas)
+ [Titik akhir pribadi di Atlas](https://docs.atlas.mongodb.com/security-private-endpoint/) (dokumentasi MongoDB Atlas)
+ [Enkripsi tingkat bidang sisi klien (dokumentasi basis data](https://docs.mongodb.com/manual/core/security-client-side-encryption) MongoDB)
+ [Enkripsi otomatis](https://docs.mongodb.com/manual/core/security-automatic-client-side-encryption) (dokumentasi database MongoDB)
+ [Memilih tingkat cluster (dokumentasi](https://www.mongodb.com/docs/atlas/manage-clusters/#select-cluster-tier) MongoDB Atlas)

**Menyebarkan landing zone**
+ [Terraform aktif AWS(*CI/CD untuk Jaringan 5G* di](https://docs.aws.amazon.com/whitepapers/latest/cicd_for_5g_networks_on_aws/terraform.html) whitepaper) AWS
+ [MongoDB Atlas dengan Terraform (dokumentasi MongoDB](https://www.mongodb.com/developer/products/atlas/mongodb-atlas-with-terraform/))

# Konfigurasikan Log Aliran VPC untuk sentralisasi di seluruh Akun AWS
<a name="configure-vpc-flow-logs-for-centralization-across-aws-accounts"></a>

*Benjamin Morris dan Aman Kaur Gandhi, Amazon Web Services*

## Ringkasan
<a name="configure-vpc-flow-logs-for-centralization-across-aws-accounts-summary"></a>

Dalam AWS virtual private cloud (VPC), fitur VPC Flow Logs dapat menyediakan data yang berguna untuk pemecahan masalah operasional dan keamanan. Namun, ada batasan dalam menggunakan VPC Flow Logs di lingkungan multi-akun. Secara khusus, log aliran lintas akun dari Amazon CloudWatch Logs tidak didukung. Sebagai gantinya, Anda dapat memusatkan log dengan mengonfigurasi bucket Amazon Simple Storage Service (Amazon S3) dengan kebijakan bucket yang sesuai.

**catatan**  
Pola ini membahas persyaratan untuk mengirim log aliran ke lokasi terpusat. Namun, jika Anda juga ingin log tersedia secara lokal di akun anggota, Anda dapat membuat beberapa log aliran untuk setiap VPC. Pengguna yang tidak memiliki akses ke akun Arsip Log dapat melihat log lalu lintas untuk pemecahan masalah. Atau, Anda dapat mengonfigurasi log aliran tunggal untuk setiap VPC yang mengirimkan log ke CloudWatch Log. Anda kemudian dapat menggunakan filter langganan Amazon Data Firehose untuk meneruskan log ke bucket S3. Untuk informasi selengkapnya, lihat bagian [Sumber daya terkait](#configure-vpc-flow-logs-for-centralization-across-aws-accounts-resources).

## Prasyarat dan batasan
<a name="configure-vpc-flow-logs-for-centralization-across-aws-accounts-prereqs"></a>

**Prasyarat**
+ Aktif Akun AWS
+  AWS Organizations Organisasi dengan akun yang digunakan untuk memusatkan log (misalnya, Arsip Log)

**Keterbatasan**

Jika Anda menggunakan kunci terkelola AWS Key Management Service (AWS KMS) `aws/s3` untuk mengenkripsi bucket pusat, bucket pusat tidak akan menerima log dari akun lain. Sebagai gantinya, Anda akan melihat kode `Unsuccessful` kesalahan 400 dengan pesan seperti `"LogDestination: <bucketName> is undeliverable"` untuk yang Anda berikan`ResourceId`. Ini karena kunci AWS terkelola akun tidak dapat dibagikan di seluruh akun. Solusinya adalah dengan menggunakan enkripsi terkelola Amazon S3 (SSE-S3) atau kunci yang dikelola AWS KMS pelanggan yang dapat Anda bagikan dengan akun anggota.

## Arsitektur
<a name="configure-vpc-flow-logs-for-centralization-across-aws-accounts-architecture"></a>

**Arsitektur target**

Dalam diagram berikut, dua log aliran digunakan untuk setiap VPC. Satu mengirim log ke grup CloudWatch Log lokal. Yang lain mengirim log ke bucket S3 di akun logging terpusat. Kebijakan bucket mengizinkan layanan pengiriman log untuk menulis log ke bucket.

**catatan**  
Mulai November 2023, AWS sekarang mendukung [aws: SourceOrg ID condition key](https://aws.amazon.com/about-aws/whats-new/2023/11/organization-wide-iam-condition-keys-restrict-aws-service-to-service-requests/). Kondisi ini memungkinkan Anda untuk menolak menulis ke bucket terpusat untuk akun di luar AWS Organizations organisasi Anda.

![\[Dari setiap VPC, satu log aliran mengirim log ke CloudWatch dan yang lain mengirim log ke bucket S3.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/718c29f4-a035-47ab-9c58-bd7d5c1ca77e/images/0b502d82-a6ce-4832-b854-99181d2ed834.png)


**Otomatisasi dan skala**

Setiap VPC dikonfigurasi untuk mengirim log ke bucket S3 di akun logging pusat. Gunakan salah satu solusi otomatisasi berikut untuk membantu memastikan bahwa log aliran dikonfigurasi dengan tepat:
+ [CloudFormation StackSets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html)
+ [AWS Control Tower Account Factory untuk Terraform (AFT)](https://docs.aws.amazon.com/controltower/latest/userguide/taf-account-provisioning.html)
+ [AWS Config Aturan dengan remediasi](https://aws.amazon.com/blogs/mt/how-to-enable-vpc-flow-logs-automatically-using-aws-config-rules/)

## Alat
<a name="configure-vpc-flow-logs-for-centralization-across-aws-accounts-tools"></a>

**Alat**
+ [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) membantu Anda memusatkan log dari semua sistem, aplikasi, Layanan AWS sehingga Anda dapat memantau dan mengarsipkannya dengan aman.
+ [Amazon Simple Storage Service (Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) membantu Anda meluncurkan AWS sumber daya ke jaringan virtual yang telah Anda tentukan. Jaringan virtual ini menyerupai jaringan tradisional yang akan Anda operasikan di pusat data Anda sendiri, dengan manfaat menggunakan infrastruktur yang dapat diskalakan. AWS Pola ini menggunakan fitur [VPC Flow Logs](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html) untuk menangkap informasi tentang lalu lintas IP yang menuju dan dari antarmuka jaringan di VPC Anda.

## Praktik terbaik
<a name="configure-vpc-flow-logs-for-centralization-across-aws-accounts-best-practices"></a>

Menggunakan infrastruktur sebagai kode (IAc) dapat sangat menyederhanakan proses penyebaran VPC Flow Logs. Mengabstraksi definisi penerapan VPC Anda untuk menyertakan konstruksi sumber daya log aliran akan menerapkan VPCs log aliran Anda secara otomatis. Ini ditunjukkan di bagian selanjutnya.

**Log aliran terpusat**

Contoh sintaks untuk menambahkan log aliran terpusat ke modul VPC di HashiCorp Terraform: Kode ini membuat log aliran yang mengirim log dari VPC ke bucket S3 terpusat. Perhatikan bahwa pola ini tidak mencakup pembuatan bucket S3. Untuk pernyataan kebijakan bucket yang direkomendasikan, lihat bagian [Informasi tambahan](#configure-vpc-flow-logs-for-centralization-across-aws-accounts-additional).

```
variable "vpc_id" { type = string }
locals { custom_log_format_v5 = "$${version} $${account-id} $${interface-id} $${srcaddr} $${dstaddr} $${srcport} $${dstport} $${protocol} $${packets} $${bytes} $${start} $${end} $${action} $${log-status} $${vpc-id} $${subnet-id} $${instance-id} $${tcp-flags} $${type} $${pkt-srcaddr} $${pkt-dstaddr} $${region} $${az-id} $${sublocation-type} $${sublocation-id} $${pkt-src-aws-service} $${pkt-dst-aws-service} $${flow-direction} $${traffic-path}" }
resource "aws_flow_log" "centralized_flow_log" {
  log_destination      = "arn:aws:s3:::centralized-vpc-flow-logs-<log_archive_account_id>" # Optionally, a prefix can be added after the ARN.
  log_destination_type = "s3"
  traffic_type         = "ALL"
  vpc_id               = var.vpc_id
  log_format           = local.custom_log_format_v5 # If you want fields from VPC Flow Logs v3+, you will need to create a custom log format.
}
```

Untuk informasi selengkapnya tentang format log kustom, lihat dokumentasi [Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/flow-log-records.html#flow-logs-custom).

**Log aliran lokal**

Contoh sintaks untuk menambahkan log aliran lokal ke modul VPC di Terraform dengan izin yang diperlukan: Kode ini membuat log aliran yang mengirimkan log dari VPC ke grup Log lokal. CloudWatch 

```
data "aws_region" "current" {}
variable "vpc_id" { type = string }
resource "aws_iam_role" "local_flow_log_role" {
  name = "flow-logs-policy-${var.vpc_id}"
  assume_role_policy = <<EOF
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [{
      "Effect": "Allow",
      "Principal": {"Service": "vpc-flow-logs.amazonaws.com"},
      "Action": "sts:AssumeRole"
  }]
}
EOF
}
resource "aws_iam_role_policy" "logs_permissions" {
  name = "flow-logs-policy-${var.vpc_id}"
  role = aws_iam_role.local_flow_log_role.id
  policy = <<EOF
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [{
      "Action": ["logs:CreateLog*", "logs:PutLogEvents", "logs:DescribeLog*", "logs:DeleteLogDelivery"],
      "Effect": "Allow",
      "Resource": "arn:aws:logs:${data.aws_region.current.name}:*:log-group:vpc-flow-logs*"
  }]
}
EOF
}
resource "aws_cloudwatch_log_group" "local_flow_logs" {
  name              = "vpc-flow-logs/${var.vpc_id}"
  retention_in_days = 30
}
resource "aws_flow_log" "local_flow_log" {
  iam_role_arn    = aws_iam_role.local_flow_log_role.arn
  log_destination = aws_cloudwatch_log_group.local_flow_logs.arn
  traffic_type    = "ALL"
  vpc_id          = var.vpc_id
}
```

## Epik
<a name="configure-vpc-flow-logs-for-centralization-across-aws-accounts-epics"></a>

### Menyebarkan infrastruktur VPC Flow Logs
<a name="deploy-vpc-flow-logs-infrastructure"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Tentukan strategi enkripsi dan buat kebijakan untuk bucket S3 pusat. | Bucket pusat tidak mendukung AWS KMS `aws/s3` kunci, jadi Anda harus menggunakan SSE-S3 atau kunci yang dikelola AWS KMS pelanggan. Jika Anda menggunakan AWS KMS kunci, kebijakan kunci harus mengizinkan akun anggota untuk menggunakan kunci tersebut. | Kepatuhan | 
| Buat bucket log aliran pusat. | Buat bucket pusat tempat flow log akan dikirim, dan terapkan strategi enkripsi yang Anda pilih pada langkah sebelumnya. Ini harus dalam Arsip Log atau akun yang bertujuan serupa.Dapatkan kebijakan bucket dari bagian [Informasi tambahan](#configure-vpc-flow-logs-for-centralization-across-aws-accounts-additional), dan terapkan ke bucket pusat setelah memperbarui placeholder dengan nilai spesifik lingkungan Anda. | AWS Umum | 
| Konfigurasikan Log Aliran VPC untuk mengirim log ke bucket log aliran pusat. | Tambahkan log aliran ke setiap VPC yang ingin Anda kumpulkan datanya. Cara yang paling skalabel untuk melakukan ini adalah dengan menggunakan alat IAc seperti AFT atau. AWS Cloud Development Kit (AWS CDK) Misalnya, Anda dapat membuat modul Terraform yang menerapkan VPC di samping log aliran. Jika perlu, Anda menambahkan log aliran secara manual. | Administrator jaringan | 
| Konfigurasikan Log Aliran VPC untuk dikirim ke Log lokal CloudWatch . | (Opsional) Jika Anda ingin log aliran terlihat di akun tempat log dibuat, buat log aliran lain untuk mengirim data ke CloudWatch Log di akun lokal. Atau, Anda dapat mengirim data ke bucket S3 khusus akun di akun lokal. | AWS Umum | 

## Sumber daya terkait
<a name="configure-vpc-flow-logs-for-centralization-across-aws-accounts-resources"></a>
+ [Cara Memfasilitasi Analisis Data dan Memenuhi Persyaratan Keamanan dengan Menggunakan Data Log Aliran Terpusat](https://aws.amazon.com/blogs/security/how-to-facilitate-data-analysis-and-fulfill-security-requirements-by-using-centralized-flow-log-data/) (posting AWS blog)
+ [Cara mengaktifkan VPC Flow Logs secara otomatis menggunakan AWS Config aturan](https://aws.amazon.com/blogs/mt/how-to-enable-vpc-flow-logs-automatically-using-aws-config-rules/) (AWS posting blog)

## Informasi tambahan
<a name="configure-vpc-flow-logs-for-centralization-across-aws-accounts-additional"></a>

**Kebijakan bucket**

Contoh kebijakan bucket ini dapat diterapkan ke bucket S3 pusat untuk log aliran, setelah Anda menambahkan nilai untuk nama placeholder.

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AWSLogDeliveryWrite",
            "Effect": "Allow",
            "Principal": {
                "Service": "delivery.logs.amazonaws.com"
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::<BUCKET_NAME>/*",
            "Condition": {
                "StringEquals": {
                    "s3:x-amz-acl": "bucket-owner-full-control",
                    "aws:SourceOrgID": "<ORG_ID>"
                }
            }
        },
        {
            "Sid": "AWSLogDeliveryCheck",
            "Effect": "Allow",
            "Principal": {
                "Service": "delivery.logs.amazonaws.com"
            },
            "Action": "s3:GetBucketAcl",
            "Resource": "arn:aws:s3:::<BUCKET_NAME>",
            "Condition": {
                "StringEquals": {
                    "aws:SourceOrgID": "<ORG_ID>"
                }
            }
        },
        {
            "Sid": "DenyUnencryptedTraffic",
            "Effect": "Deny",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::<BUCKET_NAME>/*",
                "arn:aws:s3:::<BUCKET_NAME>"
            ],
            "Condition": {
                "Bool": {
                    "aws:SecureTransport": "false"
                }
            }
        }
    ]
}
```

# Kelola set AWS izin secara dinamis dengan menggunakan Terraform
<a name="manage-aws-permission-sets-dynamically-by-using-terraform"></a>

*Vinicius Elias dan Marcos Vinicius Pinto Jordao, Amazon Web Services*

## Ringkasan
<a name="manage-aws-permission-sets-dynamically-by-using-terraform-summary"></a>

AWS IAM Identity Center meningkatkan AWS Identity and Access Management (IAM) dengan menyediakan hub terpusat untuk mengelola akses masuk tunggal ke dan aplikasi cloud. Akun AWS Namun, manajemen manual [set izin](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) Pusat Identitas IAM dapat menjadi semakin kompleks dan rawan kesalahan seiring pertumbuhan organisasi Anda. Kompleksitas ini dapat menyebabkan potensi kesenjangan keamanan dan overhead administratif.

Solusi ini memungkinkan Anda untuk mengelola set izin melalui infrastruktur sebagai kode (IAc) menggunakan pipeline continuous integration and continuous delivery (CI/CD) yang dibangun dengan native. Layanan AWS Ini memungkinkan integrasi tanpa batas dari mekanisme penetapan set izin dengan peristiwa AWS Control Tower siklus hidup atau lingkungan [Account Factory for Terraform](https://docs.aws.amazon.com/controltower/latest/userguide/aft-overview.html) (AFT). Pendekatan ini menyediakan konfigurasi identitas dinamis untuk yang baru dan yang sudah ada Akun AWS.

 EventBridge Aturan Amazon memantau Akun AWS pembuatan dan pembaruan, yang membantu konfigurasi identitas Anda tetap disinkronkan dengan struktur organisasi Anda. Setelah membuat atau memperbarui akun di AWS Control Tower atau AFT, pipeline dipicu. Ini mengevaluasi satu set file JSON dengan definisi set izin dan aturan penetapan. Kemudian pipeline berlaku dan menyinkronkan pengaturan di semua akun.

Pendekatan ini memberikan manfaat sebagai berikut:
+ **Konsistensi** - Menghilangkan penyimpangan konfigurasi manual di seluruh organisasi Anda AWS 
+ **Auditabilitas** - Mempertahankan riwayat lengkap dari semua perubahan manajemen identitas
+ **Skalabilitas** - Secara otomatis menerapkan konfigurasi saat lingkungan Anda tumbuh AWS 
+ **Keamanan** - Mengurangi kesalahan manusia dalam penugasan izin
+ **Kepatuhan** — Memfasilitasi memenuhi persyaratan peraturan melalui perubahan yang terdokumentasi dan aturan penugasan

## Prasyarat dan batasan
<a name="manage-aws-permission-sets-dynamically-by-using-terraform-prereqs"></a>
+ Lingkungan multi-akun dengan AWS Control Tower dan AWS Organizations pengaturan. Secara opsional, Anda dapat menggunakan AFT dengan AWS Control Tower.
+ Administrator yang didelegasikan Pusat Identitas IAM Akun AWS untuk menerima solusinya. Untuk informasi selengkapnya, lihat [Administrasi yang didelegasikan](https://docs.aws.amazon.com/singlesignon/latest/userguide/delegated-admin.html) dalam dokumentasi Pusat Identitas IAM.
+ Sebuah sistem kontrol versi (VCS) repositori untuk menangani kode utama. Untuk sampel, lihat GitHub [repositori](https://github.com/aws-samples/sample-terraform-aws-permission-sets-pipeline/tree/main/samples/basic) solusi.
+  AWS Sumber daya yang diperlukan untuk manajemen backend Terraform, seperti bucket Amazon Simple Storage Service (Amazon S3) dan tabel Amazon DynamoDB.

**Batasan**
+ Pipeline menggunakan sumber daya AWS asli dan Terraform open source. Pipa tidak siap untuk melakukan panggilan ke ekosistem pihak ketiga.
+ Beberapa Layanan AWS tidak tersedia di semua Wilayah AWS. Untuk ketersediaan Wilayah, lihat [AWS Layanan menurut Wilayah](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Untuk titik akhir tertentu, lihat [Titik akhir dan kuota layanan](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html), dan pilih tautan untuk layanan.

## Arsitektur
<a name="manage-aws-permission-sets-dynamically-by-using-terraform-architecture"></a>

Diagram berikut menunjukkan komponen dan alur kerja untuk pola ini.

![\[Komponen dan alur kerja untuk mengelola set izin AWS menggunakan Terraform.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/69dc79c7-b4cd-4ad0-b0d2-d58cf0c7adaa/images/649e299c-1142-405a-8982-4a6b2e595d53.png)


**AWS Control Tower aliran peristiwa**

Solusinya dimulai dengan integrasi peristiwa yang berasal dari salah satu AWS Control Tower atau AFT. Pilihan antara satu atau layanan lainnya dibuat pada waktu implementasi melalui definisi variabel. Terlepas dari metode yang digunakan, pipeline dipicu setiap kali akun dibuat atau diperbarui. Pipeline merekonsiliasi kebijakan yang disimpan dalam repositori manajemen set izin.

Berikut ini adalah peristiwa AWS Control Tower siklus hidup:
+ `CreateManagedAccount`— Saat akun baru dibuat
+ `UpdateManagedAccount`— Saat akun yang ada diperbarui

**Perutean acara**

EventBridge berfungsi sebagai layanan pemrosesan acara pusat, menangkap peristiwa yang dihasilkan di AWS Control Tower akun. Ketika peristiwa terjadi, EventBridge secara cerdas mengarahkannya ke bus acara terpusat di akun solusi. AWS Control Tower peristiwa siklus hidup mengikuti pola perutean yang berbeda. Jika AFT didefinisikan sebagai sumber peristiwa, akun manajemen AFT menangani peristiwa alih-alih AWS Control Tower akun. Arsitektur berbasis peristiwa ini memungkinkan respons otomatis terhadap perubahan organisasi tanpa intervensi manual.

**Proses integrasi AFT**

Ketika peristiwa AWS Control Tower siklus hidup mencapai akun manajemen AFT, peristiwa tersebut secara otomatis memicu beberapa proses hilir yang intrinsik ke AFT. Setelah alur kerja kustomisasi akun AFT selesai, ia menerbitkan pesan ke topik Simple Notification Service `aft-notifications` Amazon (Amazon SNS) khusus. Topik itu memicu `aft-new-account-forward-event` AWS Lambda fungsi yang diterapkan oleh solusi ini. Fungsi Lambda mengirimkan acara ke bus acara akun solusi, di mana ia digunakan untuk memulai pipeline.

**Infrastruktur sebagai pipa kode**

Pipa solusi beroperasi sebagai mekanisme penyebaran yang sepenuhnya otomatis. AWS CodePipeline Layanan terus memantau repositori untuk perubahan. Setelah mendeteksi komit baru, secara otomatis memulai alur kerja penerapan dan memulai proses sekuensial yang mencakup fase validasi dan eksekusi. Sistem menjalankan `plan` operasi Terraform untuk mengidentifikasi perubahan yang diusulkan, diikuti oleh `apply` perintah Terraform untuk mengimplementasikan perubahan tersebut di lingkungan. AWS Khususnya, pipa berjalan tanpa gerbang persetujuan manual. Pendekatan ini memungkinkan penyebaran cepat perubahan infrastruktur sambil mempertahankan auditabilitas melalui log pipa dan file status Terraform.

Pipeline memanfaatkan AWS CodeBuild untuk menjalankan operasi Terraform di lingkungan yang terkendali dengan izin yang sesuai. Melalui pendekatan IAc ini, pipeline dapat melakukan operasi manajemen izin yang komprehensif termasuk:
+ Buat set izin baru.
+ Perbarui set izin yang ada.
+ Hapus set izin yang tidak perlu.
+ Kelola penetapan izin ini di seluruh akun dan grup dalam organisasi. AWS 

Untuk menjaga konsistensi infrastruktur dan mencegah perubahan yang bertentangan, solusinya mengimplementasikan sistem manajemen status backend Terraform menggunakan bucket Amazon S3 dan tabel Amazon DynamoDB khusus. Pendekatan ini menyediakan lokasi penyimpanan persisten untuk file status Terraform dan mekanisme penguncian status untuk mencegah modifikasi bersamaan pada sumber daya yang sama.

Kode Terraform utama menggunakan modul AWS `permission-sets` Terraform resmi. Modul ini dapat secara dinamis mengelola set izin di IAM Identity Center, berdasarkan template set izin.

**Manajemen kontrol sumber**

Templat set izin (file JSON) berada di sistem kontrol versi eksternal, seperti GitHub, yang menyediakan repositori terpusat untuk konfigurasi manajemen identitas. Pendekatan ini menetapkan satu sumber kebenaran untuk definisi set izin, sambil memungkinkan pengembangan kolaboratif melalui praktik tinjauan kode standar. Pengguna yang berwenang dapat melakukan perubahan pada templat ini mengikuti proses manajemen perubahan organisasi. Komit ini berfungsi sebagai pemicu utama untuk pipeline penerapan otomatis, memulai proses pembaruan infrastruktur.

[Untuk contoh cara mengonfigurasi set izin menggunakan file JSON di repositori, lihat Informasi tambahan.](#manage-aws-permission-sets-dynamically-by-using-terraform-additional)

## Alat
<a name="manage-aws-permission-sets-dynamically-by-using-terraform-tools"></a>

**Layanan AWS**
+ [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)adalah layanan build terkelola penuh yang membantu Anda mengkompilasi kode sumber, menjalankan pengujian unit, dan menghasilkan artefak yang siap digunakan.
+ [AWS CodeConnections](https://docs.aws.amazon.com/dtconsole/latest/userguide/welcome-connections.html)memungkinkan AWS sumber daya dan layanan, seperti CodePipeline, untuk terhubung ke repositori kode eksternal, seperti. GitHub
+ [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)membantu Anda dengan cepat memodelkan dan mengkonfigurasi berbagai tahapan rilis perangkat lunak dan mengotomatiskan langkah-langkah yang diperlukan untuk merilis perubahan perangkat lunak secara terus menerus.
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) adalah alat open source yang membantu Anda berinteraksi Layanan AWS melalui perintah di shell baris perintah Anda.
+ [AWS Control Tower](https://docs.aws.amazon.com/controltower/latest/userguide/what-is-control-tower.html)membantu Anda mengatur dan mengatur lingkungan AWS multi-akun, mengikuti praktik terbaik preskriptif.
+ [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) adalah layanan database NoSQL yang dikelola sepenuhnya yang menyediakan kinerja yang cepat, dapat diprediksi, dan terukur.
+ [Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) adalah layanan bus acara tanpa server yang membantu Anda menghubungkan aplikasi Anda dengan data waktu nyata dari berbagai sumber. Misalnya, AWS Lambda fungsi, titik akhir pemanggilan HTTP menggunakan tujuan API, atau bus acara di tempat lain. Akun AWS
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) membantu Anda mengelola akses ke AWS sumber daya dengan aman dengan mengontrol siapa yang diautentikasi dan diberi wewenang untuk menggunakannya.
+ [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)membantu Anda mengelola akses masuk tunggal (SSO) secara terpusat ke semua aplikasi Anda Akun AWS dan cloud.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)adalah layanan komputasi yang membantu Anda menjalankan kode tanpa perlu menyediakan atau mengelola server. Ini menjalankan kode Anda hanya bila diperlukan dan skala secara otomatis, jadi Anda hanya membayar untuk waktu komputasi yang Anda gunakan.
+ [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)adalah layanan manajemen akun yang membantu Anda mengkonsolidasikan beberapa Akun AWS ke dalam organisasi yang Anda buat dan kelola secara terpusat.
+ [Amazon Simple Notification Service (Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/welcome.html)) membantu Anda mengoordinasikan dan mengelola pertukaran pesan antara penayang dan klien, termasuk server web dan alamat email. Ini memungkinkan pemberitahuan push untuk acara manajemen akun, memastikan bahwa pihak terkait diberitahu tentang perubahan atau tindakan penting dalam sistem.
+ [Amazon Simple Storage Service (Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.

**Alat-alat lainnya**
+ [Terraform](https://www.terraform.io/) adalah alat infrastruktur sebagai kode (IAc) HashiCorp yang membantu Anda membuat dan mengelola sumber daya cloud dan lokal.

**Repositori kode**

Kode untuk pola ini tersedia di organisasi AWS Sampel di dalam GitHub repositori [sample-terraform-aws-permission-sets-pipeline](https://github.com/aws-samples/sample-terraform-aws-permission-sets-pipeline).

## Praktik terbaik
<a name="manage-aws-permission-sets-dynamically-by-using-terraform-best-practices"></a>
+ Selalu sematkan versi modul dan penyedia Terraform yang digunakan untuk menjalankan kode dalam produksi.
+ Gunakan alat analisis kode statis, seperti [Checkov](https://www.checkov.io/), untuk memindai kode Anda dan kemudian memecahkan masalah keamanan.
+ Ikuti prinsip hak istimewa terkecil dan berikan izin minimum yang diperlukan untuk melakukan tugas. Untuk informasi selengkapnya, lihat [Berikan hak istimewa terkecil](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#grant-least-priv) dan [praktik terbaik Keamanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) dalam dokumentasi IAM.

## Epik
<a name="manage-aws-permission-sets-dynamically-by-using-terraform-epics"></a>

### Buat prasyarat (opsional)
<a name="create-the-prerequisites-optional"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat sumber daya backend Terraform. | Jika Anda belum membuat AWS sumber daya backend Terraform, gunakan langkah-langkah berikut untuk membuat bucket () Amazon S3 `s3-tf-backend-{ACCOUNT_ID}` dan tabel DynamoDB (). `ddb-tf-backend`[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/manage-aws-permission-sets-dynamically-by-using-terraform.html)<pre>aws s3api create-bucket --bucket s3-tf-backend-{ACCOUNT_ID}<br />aws s3api put-bucket-versioning --bucket s3-tf-backend-{ACCOUNT_ID} --versioning-configuration Status=Enabled<br />aws dynamodb create-table --table-name ddb-tf-backend --attribute-definitions AttributeName=LockID,AttributeType=S --key-schema AttributeName=LockID,KeyType=HASH --provisioned-throughput ReadCapacityUnits=1,WriteCapacityUnits=1</pre> | Administrator AWS | 
| Buat peran lintas akun. | Anda harus memberikan peran IAM lintas akun dalam konfigurasi penyedia `event-source-account` Terraform AWS . Jika Anda belum membuat peran ini, gunakan langkah-langkah berikut untuk membuatnya:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/manage-aws-permission-sets-dynamically-by-using-terraform.html)<pre>aws iam create-role \<br />    --role-name CrossAccountRole \<br />    --assume-role-policy-document '{<br />        "Version": "2012-10-17",		 	 	 <br />        "Statement": [<br />            {<br />                "Effect": "Allow",<br />                "Principal": {<br />                    "AWS": "arn:aws:iam::{ACCOUNT_ID}:root"<br />                },<br />                "Action": "sts:AssumeRole"<br />            }<br />        ]<br />    }'</pre>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/manage-aws-permission-sets-dynamically-by-using-terraform.html)<pre>aws iam attach-role-policy \<br />    --role-name CrossAccountRole \<br />    --policy-arn arn:aws:iam::aws:policy/AdministratorAccess</pre>Contoh ini menggunakan kebijakan [AdministratorAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AdministratorAccess.html)IAM AWS terkelola. Jika mau, Anda dapat menggunakan kebijakan yang lebih spesifik. | Administrator AWS | 

### Siapkan repositori set izin
<a name="prepare-the-permission-set-repository"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat repositori khusus. | Tugas ini mengasumsikan bahwa Anda menggunakan GitHub. Buat repositori khusus untuk menyimpan kode Terraform utama dan file JSON template set izin. | DevOps insinyur | 
| Siapkan kode set izin. | Untuk informasi tentang bagaimana Anda dapat menyusun file-file berikut, lihat [contoh kode](https://github.com/aws-samples/sample-terraform-aws-permission-sets-pipeline/tree/main/samples/basic) pada repositori solusi:── utama.tf── keluaran.tf── penyedia.jinja── templatSalin konten, simpan `providers.jinja` nilainya, dan buat penyesuaian yang diperlukan untuk file lain. Misalnya, tambahkan izin set file template ke dalam `templates` atau pin versi `aws-ia/permission-sets/aws` modul dalam `main.tf` file. | DevOps insinyur | 
| Komit perubahan Anda. | Komit dan dorong perubahan ke repositori yang Anda buat sebelumnya. Simpan nama repositori dan GitHub organisasinya, misalnya,. `myorg/aws-ps-pipeline` | DevOps insinyur | 

### Siapkan kode penerapan
<a name="prepare-the-deployment-code"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Unduh kontennya. | Unduh (kloning) konten dari [repositori](https://github.com/aws-samples/sample-terraform-aws-permission-sets-pipeline) solusi. | DevOps insinyur | 
| Memenuhi variabel. | Buat `terraform.tfvars` file dan tambahkan variabel yang diperlukan berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/manage-aws-permission-sets-dynamically-by-using-terraform.html)<pre>repository_name                 = "myorg/aws-ps-pipeline"<br />branch_name                     = "main"<br />vcs_provider                    = "github"<br />account_lifecycle_events_source = "CT"</pre>Untuk informasi tentang opsi variabel tambahan, lihat file [variabel.tf](https://github.com/aws-samples/sample-terraform-aws-permission-sets-pipeline/blob/main/variables.tf) di repositori pola ini. GitHub  | DevOps insinyur | 
| Sesuaikan konfigurasi backend Terraform. | Dalam `backend.tf` file, ganti placeholder dengan nilai Anda sendiri. Gunakan AWS Control Tower home Wilayah AWS, dan berikan nama-nama bucket Amazon S3 dan tabel DynamoDB yang dibuat sebelumnya.<pre>terraform {<br />  required_version = ">=1.6"<br />  backend "s3" {<br />    region         = "{region}"<br />    bucket         = "{bucket_name}"<br />    key            = "terraform.tfstate"<br />    dynamodb_table = "{table_name}"<br />    encrypt        = "true"<br />  }<br />}</pre>Jika mau, Anda dapat menggunakan konfigurasi backend Terraform Anda sendiri. | DevOps insinyur | 
| Sesuaikan konfigurasi penyedia Terraform. | Dalam `providers.tf` file, ganti placeholder dengan informasi Anda sendiri. Gunakan Wilayah AWS Control Tower asal, dan berikan ARN dari peran IAM lintas akun yang dibuat sebelumnya untuk penyedia. `event-source-account`<pre>provider "aws" {<br />  region = "{region}"<br />}<br /><br />provider "aws" {<br />  alias  = "event-source-account"<br />  region = "{region}"<br />  assume_role {<br />    role_arn = "{role_arn}"<br />  }<br />}<br /></pre> | DevOps insinyur | 

### Terapkan solusi secara manual
<a name="deploy-the-solution-manually"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Pilih Akun AWS. | Kami menyarankan Anda menerapkan solusi di akun administrator yang didelegasikan IAM Identity Center. Namun, Anda juga dapat menerapkannya di akun AWS Organizations manajemen.Untuk masuk ke akun yang dipilih di Wilayah yang sama dengan instans Pusat Identitas IAM, gunakan. AWS CLI Pastikan bahwa peran IAM yang Anda gunakan memiliki izin untuk mengambil peran yang ditentukan untuk `event-source-account` penyedia di langkah sebelumnya. Selain itu, peran ini harus memiliki akses ke AWS sumber daya yang digunakan dalam konfigurasi backend Terraform. | Administrator AWS | 
| Jalankan Terraform secara manual. | Untuk menginisialisasi, merencanakan, dan menerapkan konfigurasi, jalankan perintah Terraform berikut dalam urutan yang ditunjukkan:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/manage-aws-permission-sets-dynamically-by-using-terraform.html) | DevOps insinyur | 
| Periksa hasil penerapan. | Di akun administrator yang didelegasikan IAM Identity Center, periksa apakah `aws-ps-pipeline` pipeline telah dibuat. Periksa juga apakah ada AWS CodeConnections koneksi dengan status **Tertunda**. | AWS DevOps | 
| Selesaikan CodeConnections konfigurasi. | Untuk menyelesaikan CodeConnections konfigurasi, gunakan langkah-langkah berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/manage-aws-permission-sets-dynamically-by-using-terraform.html)Pipeline sekarang harus memiliki akses ke repositori set izin.Untuk petunjuk mendetail, lihat [Memperbarui sambungan yang tertunda](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-update.html) di dokumentasi konsol Alat Pengembang.  | AWS DevOps | 

### Pilih alur eksekusi pipeline untuk menguji solusinya
<a name="choose-a-pipeline-execution-flow-to-test-the-solution"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Jalankan pipeline oleh AWS Control Tower atau pembaruan AFT. | Setelah akun dibuat atau diubah dengan menggunakan AWS Control Tower atau AFT (tergantung pada jenis peristiwa siklus hidup yang Anda pilih), pipeline dimulai. | Administrator AWS | 
| Jalankan pipeline dengan mengubah kode. | Setelah Anda mengubah kode dan mengkomitmennya ke `main` cabang, pipeline dimulai. | AWS DevOps | 
| Jalankan pipa secara manual. | Untuk memulai pipeline secara manual, gunakan fitur [Rilis perubahan](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipelines-rerun-manually.html) di AWS CodePipeline. | AWS DevOps | 

## Pemecahan masalah
<a name="manage-aws-permission-sets-dynamically-by-using-terraform-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| Akses ditolak | Verifikasi bahwa Anda memiliki izin yang diperlukan untuk menerapkan solusi. | 
| CodeConnections masalah | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/manage-aws-permission-sets-dynamically-by-using-terraform.html) | 
| Masalah eksekusi pipa | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/manage-aws-permission-sets-dynamically-by-using-terraform.html) | 
| Izin menetapkan masalah penerapan | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/manage-aws-permission-sets-dynamically-by-using-terraform.html) | 

## Sumber daya terkait
<a name="manage-aws-permission-sets-dynamically-by-using-terraform-resources"></a>

**Layanan AWS dokumentasi**
+ [AWS IAM Identity Center Panduan Pengguna](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)
+ [Kelola Akun AWS dengan set izin](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) (dokumentasi Pusat Identitas IAM)

**Sumber daya lainnya**
+ [AWS Modul Set Izin](https://registry.terraform.io/modules/aws-ia/permission-sets/aws/latest) (Terraform)

## Informasi tambahan
<a name="manage-aws-permission-sets-dynamically-by-using-terraform-additional"></a>

**File JSON dengan set izin sampel**

Contoh berikut menunjukkan cara mengkonfigurasi set izin dengan menggunakan file JSON di repositori:

```
{
  "Name": "ps-billing", // Permission set identifier
  "Comment": "Sample permission set for billing access", // Comment to document the purpose of the permission set
  "Description": "Billing access in AWS", // Detailed description
  "SessionDuration": "PT4H", // Session duration = 4 hours (ISO 8601 format)
  "ManagedPolicies": [ // List of AWS IAM managed policies
    "arn:aws:iam::aws:policy/job-function/Billing",
    "arn:aws:iam::aws:policy/job-function/SupportUser",
    "arn:aws:iam::aws:policy/AWSSupportAccess",
    "arn:aws:iam::aws:policy/job-function/ViewOnlyAccess"
  ],
  "CustomerPolicies": [], // References to IAM policies previously created
  "CustomPolicy": {}, // Inline IAM policy defined directly in the permission set
  "PermissionBoundary": {  // AWS or customer managed IAM policy to be used as boundary
    "ManagedPolicy": "",
    "CustomerPolicy": ""
  },
  "Assignments": [ // Define the assignment rules
    {
      "all_accounts": true, // Apply to ALL active AWS accounts in organization
      "principal": "G_BILLING_USERS", // Group/user name in Identity Center
      "type": "GROUP", // Can be "GROUP" or "USER"
      "account_id": [], // List of AWS account ID (empty since all_accounts=true)
      "account_ou": [], // List of AWS Organizational Unit IDs with target AWS accounts
      "account_tag": [] // List of tags (key:value) to match AWS Organization accounts tags
    }
  ]
}
```

Untuk informasi selengkapnya, lihat skema JSON dalam dokumentasi [modul Set AWS Izin](https://registry.terraform.io/modules/aws-ia/permission-sets/aws/latest#json-file-templates) di situs web Terraform.

**Kiat**
+ Anda dapat menggunakan [blok impor](https://developer.hashicorp.com/terraform/language/import) Terraform untuk mengimpor izin yang ada yang disetel ke solusi.
+ Anda dapat menggunakan AFT untuk mengimplementasikan pipeline set AWS izin di akun yang didelegasikan. Untuk informasi lebih lanjut, lihat [AFT Blueprints](https://awslabs.github.io/aft-blueprints/index.html).

# Tandai lampiran Transit Gateway secara otomatis menggunakan AWS Organizations
<a name="tag-transit-gateway-attachments-automatically-using-aws-organizations"></a>

*Richard Milner-Watts, Haris Bin Ayub, dan John Capps, Amazon Web Services*

## Ringkasan
<a name="tag-transit-gateway-attachments-automatically-using-aws-organizations-summary"></a>

Di Amazon Web Services (AWS), Anda dapat menggunakannya [AWS Resource Access Manager](https://aws.amazon.com/ram/)untuk berbagi [AWS Transit Gateway](https://aws.amazon.com/transit-gateway/)lintas Akun AWS batas. Namun, saat Anda membuat lampiran Transit Gateway melintasi batas akun, lampiran dibuat tanpa tag Nama. Itu bisa membuat identifikasi lampiran memakan waktu. 

Solusi ini menyediakan mekanisme otomatis untuk mengumpulkan informasi tentang setiap lampiran Transit Gateway untuk akun dalam organisasi yang dikelola oleh [AWS Organizations](https://aws.amazon.com/organizations/). Prosesnya termasuk mencari rentang [Classless Inter-Domain Routing](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) (CIDR) dari tabel rute Transit Gateway. Solusinya kemudian menerapkan tag Nama dalam bentuk `<CIDR-range>-<AccountName>` lampiran di dalam akun yang memegang gateway transit.

Solusi ini dapat digunakan bersama solusi seperti [Orkestrator Jaringan Transit Tanpa Server](https://aws.amazon.com/solutions/implementations/serverless-transit-network-orchestrator/) dari Perpustakaan Solusi. AWS Orkestrator Jaringan Transit Tanpa Server memungkinkan pembuatan otomatis lampiran Transit Gateway Gateway dalam skala besar.

## Prasyarat dan batasan
<a name="tag-transit-gateway-attachments-automatically-using-aws-organizations-prereqs"></a>

**Prasyarat**
+ Aktif Akun AWS
+  AWS Organizations Organisasi yang berisi semua akun terkait
+ Akses ke akun manajemen organisasi, di bawah akar organisasi, untuk membuat peran yang diperlukan AWS Identity and Access Management (IAM)
+ Akun anggota Jaringan Bersama yang berisi satu atau beberapa gateway transit yang dibagikan dengan organisasi dan memiliki lampiran

## Arsitektur
<a name="tag-transit-gateway-attachments-automatically-using-aws-organizations-architecture"></a>

Tangkapan layar berikut Konsol Manajemen AWS menunjukkan contoh lampiran Transit Gateway tanpa tag Nama terkait dan dua lampiran Transit Gateway dengan tag Nama yang dihasilkan oleh solusi ini. Struktur tag Nama yang dihasilkan adalah`<CIDR-range>-<AccountName>`.

![\[Konsol menampilkan lampiran tanpa tag Nama dan dua lampiran dengan tag Nama.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/4b10dfec-43be-4337-9945-c64df921934a/images/7e7d4a47-f07a-4708-8022-a1d22855bb5d.png)


 

Solusi ini digunakan [AWS CloudFormation](https://aws.amazon.com/cloudformation/)untuk menyebarkan [AWS Step Functions](https://aws.amazon.com/step-functions/)alur kerja yang mengelola pembuatan tag Nama Transit Gateway di semua konfigurasi. Wilayah AWS Alur kerja memanggil [AWS Lambda](https://aws.amazon.com/lambda/)fungsi, yang melakukan tugas yang mendasarinya.

Setelah solusi memperoleh nama akun dari AWS Organizations, mesin status Step Functions mendapatkan semua lampiran Transit Gateway IDs. Ini diproses secara paralel oleh Wilayah. Pemrosesan ini termasuk mencari rentang CIDR untuk setiap lampiran. Rentang CIDR diperoleh dengan mencari tabel rute Transit Gateway di dalam Wilayah untuk ID lampiran Transit Gateway yang cocok. Jika semua informasi yang diperlukan tersedia, solusinya akan menerapkan tag Nama ke lampiran. Solusinya tidak akan menimpa tag Nama yang ada.

Solusinya berjalan pada jadwal yang dikendalikan oleh EventBridge acara [Amazon](https://aws.amazon.com/eventbridge/). Acara ini memulai solusi setiap hari pada pukul 6:00 UTC.

**Tumpukan teknologi target**
+ Amazon EventBridge
+ AWS Lambda
+ AWS Organizations
+ AWS Transit Gateway
+ Amazon Virtual Private Cloud (Amazon VPC)
+ AWS X-Ray

**Arsitektur target**

Arsitektur solusi dan alur kerja ditunjukkan pada diagram berikut.

![\[Proses sembilan langkah di seluruh jaringan bersama dan akun manajemen organisasi.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/4b10dfec-43be-4337-9945-c64df921934a/images/873cc89f-c6e3-43cd-94ed-59b6ea2b8d49.png)


1. Acara yang dijadwalkan memulai aturan.

1.  EventBridge Aturan memulai mesin status Step Functions.

1. Mesin status memanggil fungsi `tgw-tagger-organizations-account-query` Lambda.

1. Fungsi `tgw-tagger-organizations-account-query` Lambda mengasumsikan peran dalam akun manajemen organisasi.

1. Fungsi `tgw-tagger-organizations-account-query` Lambda memanggil Organizations API untuk mengembalikan Akun AWS metadata.

1. Mesin status memanggil fungsi `tgw-tagger-attachment-query` Lambda.

1. Untuk setiap Wilayah, secara paralel, mesin status memanggil fungsi `tgw-tagger-rtb-query` Lambda untuk membaca rentang CIDR untuk setiap lampiran.

1. Untuk setiap Wilayah, secara paralel, mesin status memanggil fungsi `tgw-tagger-attachment-tagger`**** Lambda.

1. Tag nama dibuat untuk lampiran Transit Gateway di akun Jaringan Bersama.

**Otomatisasi dan skala**

Solusi memproses setiap Wilayah secara paralel untuk mengurangi total durasi proses.

## Alat
<a name="tag-transit-gateway-attachments-automatically-using-aws-organizations-tools"></a>

**Layanan AWS**
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)menyediakan cara untuk memodelkan kumpulan sumber daya terkait AWS dan pihak ketiga, menyediakannya dengan cepat dan konsisten, dan mengelolanya sepanjang siklus hidup mereka, dengan memperlakukan infrastruktur sebagai kode.
+ [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) membantu Anda memantau metrik sumber daya AWS dan aplikasi yang Anda jalankan AWS secara real time.
+ [Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) adalah layanan bus acara tanpa server yang dapat Anda gunakan untuk menghubungkan aplikasi Anda dengan data dari berbagai sumber. EventBridge menerima peristiwa, indikator perubahan lingkungan, dan menerapkan aturan untuk merutekan acara ke target. Aturan mencocokkan peristiwa dengan target berdasarkan struktur peristiwa, yang disebut pola peristiwa, atau sesuai jadwal.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)adalah layanan komputasi yang mendukung menjalankan kode tanpa menyediakan atau mengelola server. Lambda menjalankan kode Anda hanya bila diperlukan dan menskalakan secara otomatis, dari beberapa permintaan setiap hari hingga ribuan setiap detik. Anda hanya membayar untuk waktu komputasi yang Anda konsumsi. Tidak ada biaya ketika kode Anda tidak berjalan.
+ [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)membantu Anda mengelola dan mengatur lingkungan Anda secara terpusat saat Anda tumbuh dan meningkatkan sumber daya Anda AWS . Dengan menggunakan Organizations, Anda dapat membuat sumber daya baru Akun AWS dan mengalokasikan sumber daya secara terprogram, mengelompokkan akun untuk mengatur alur kerja, menerapkan kebijakan ke akun atau grup untuk tata kelola, dan menyederhanakan penagihan dengan menggunakan satu metode pembayaran untuk semua akun Anda.
+ [AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html)adalah layanan alur kerja visual kode rendah yang digunakan untuk mengatur, mengotomatiskan proses bisnis Layanan AWS, dan membangun aplikasi tanpa server. Alur kerja mengelola kegagalan, percobaan ulang, paralelisasi, integrasi layanan, dan observabilitas sehingga pengembang dapat fokus pada logika bisnis bernilai lebih tinggi.
+ [AWS Transit Gateway](https://aws.amazon.com/transit-gateway/)menghubungkan VPCs dan jaringan lokal melalui hub pusat. Ini menyederhanakan jaringan Anda dan mengakhiri hubungan peering yang kompleks. Ini bertindak sebagai router cloud, sehingga setiap koneksi baru dibuat hanya satu kali.
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) adalah layanan untuk meluncurkan AWS sumber daya dalam jaringan virtual yang terisolasi secara logis yang Anda tentukan.
+ [AWS X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html)mengumpulkan data tentang permintaan yang disajikan aplikasi Anda, dan menyediakan alat yang dapat Anda gunakan untuk melihat, memfilter, dan mendapatkan wawasan tentang data tersebut guna mengidentifikasi masalah dan peluang pengoptimalan.

**Kode**

Kode sumber untuk solusi ini tersedia di GitHub repositori [Tagger Lampiran Transit Gateway](https://github.com/aws-samples/tgw-attachment-tagger). Repositori mencakup file-file berikut:
+ `tgw-attachment-tagger-main-stack.yaml`membuat semua sumber daya untuk mendukung solusi ini dalam akun Shared Networking.
+ `tgw-attachment-tagger-organizations-stack.yaml`****menciptakan peran dalam akun manajemen organisasi.

## Epik
<a name="tag-transit-gateway-attachments-automatically-using-aws-organizations-epics"></a>

### Menyebarkan tumpukan solusi utama
<a name="deploy-the-main-solution-stack"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Kumpulkan informasi prasyarat yang diperlukan. | Untuk mengonfigurasi akses lintas akun dari fungsi Lambda AWS Organizations ke API, Anda memerlukan ID akun untuk akun manajemen organisasi.****Urutan pembuatan kedua CloudFormation tumpukan itu penting. Anda harus menyebarkan sumber daya ke akun Shared Networking terlebih dahulu. Peran dalam akun Jaringan Bersama harus sudah ada sebelum menyebarkan sumber daya ke akun manajemen organisasi. Lihat informasi yang lebih lengkap dalam [dokumentasi AWS](https://docs.amazonaws.cn/en_us/IAM/latest/UserGuide/id_roles_create_for-user.html). | DevOps insinyur | 
| Luncurkan CloudFormation template untuk tumpukan solusi utama. | Template untuk tumpukan solusi utama akan menerapkan peran IAM, alur kerja Step Functions, fungsi Lambda, dan acara Amazon. CloudWatch Buka akun Konsol Manajemen AWS untuk Shared Networking, lalu buka konsol: &CFN.  Buat tumpukan dengan menggunakan `tgw-attachment-tagger-main-stack.yaml` template dan nilai-nilai berikut:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/tag-transit-gateway-attachments-automatically-using-aws-organizations.html)Untuk informasi selengkapnya tentang meluncurkan CloudFormation tumpukan, lihat [AWS dokumentasi](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html). | DevOps insinyur | 
| Verifikasi bahwa solusi telah berhasil diluncurkan. | Tunggu CloudFormation tumpukan mencapai status **CREATE\$1COMPLETE**. Ini akan memakan waktu kurang dari satu menit.Buka konsol Step Functions, dan verifikasi bahwa mesin status baru telah dibuat dengan nama **tgw-attachment-tagger-state-machine**. | DevOps insinyur | 

### Menerapkan tumpukan AWS Organizations
<a name="deploy-the-aws-organizations-stack"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Kumpulkan informasi prasyarat yang diperlukan. | Untuk mengonfigurasi akses lintas akun dari fungsi Lambda ke AWS Organizations API, Anda memerlukan ID akun untuk akun Shared Networking. | DevOps insinyur | 
| Luncurkan CloudFormation template untuk tumpukan Organizations | Template untuk tumpukan AWS Organizations akan menerapkan peran IAM di akun manajemen organisasi. Akses konsol AWS untuk akun manajemen organisasi. lalu buka CloudFormation konsol.  Buat tumpukan dengan menggunakan `tgw-attachment-tagger-organizations-stack.yaml` template dan nilai-nilai berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/tag-transit-gateway-attachments-automatically-using-aws-organizations.html)Untuk opsi pembuatan tumpukan lainnya, gunakan default. | DevOps insinyur | 
| Verifikasi bahwa solusi telah berhasil diluncurkan. | Tunggu CloudFormation tumpukan mencapai status **CREATE\$1COMPLETE**. Ini akan memakan waktu kurang dari satu menit.Buka konsol AWS Identity and Access Management (IAM), dan verifikasi bahwa peran baru telah dibuat dengan nama **tgw-attachment-tagger-organization-query-role**. | DevOps insinyur | 

### Verifikasi solusinya
<a name="verify-the-solution"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Jalankan mesin negara. | Buka konsol Step Functions untuk akun Shared Networking, dan pilih **State machine** di panel navigasi.Pilih state machine **tgw-attachment-tagger-state-machine**, dan pilih **Start Execution**.  Karena input ke mesin status ini tidak digunakan oleh solusi, Anda dapat menggunakan nilai default.<pre>{<br />    "Comment": "Insert your JSON here"<br />}</pre>Pilih **Mulai Eksekusi**. | DevOps insinyur | 
| Perhatikan mesin negara sampai selesai. | Pada halaman baru yang terbuka, Anda dapat menonton mesin status berjalan. Durasi akan tergantung pada jumlah lampiran Transit Gateway yang akan diproses.Di halaman ini, Anda dapat memeriksa setiap langkah mesin negara. Anda dapat melihat berbagai tugas dalam mesin negara dan mengikuti tautan ke CloudWatch log untuk fungsi Lambda. Untuk tugas yang berjalan secara paralel dalam peta, Anda dapat menggunakan daftar dropdown **Indeks** untuk melihat implementasi spesifik untuk setiap Wilayah. | DevOps insinyur | 
| Verifikasi tag lampiran Transit Gateway. | Buka konsol VPC untuk akun Shared Networking, dan pilih Lampiran **Transit Gateway**.  Di konsol, tag Nama disediakan untuk lampiran yang memenuhi kriteria (lampiran disebarkan ke tabel rute Transit Gateway, dan pemilik sumber daya adalah anggota organisasi). | DevOps insinyur | 
| Verifikasi inisiasi CloudWatch acara. | Tunggu CloudWatch acara dimulai. Ini dijadwalkan untuk 06:00 UTC. Kemudian buka konsol Step Functions untuk akun Shared Networking, dan pilih **State machines** di panel navigasi.Pilih mesin negara **tgw-attachment-tagger-state-mesin**. Verifikasi bahwa solusi berjalan pada pukul 06:00 UTC. | DevOps insinyur | 

## Sumber daya terkait
<a name="tag-transit-gateway-attachments-automatically-using-aws-organizations-resources"></a>
+ [AWS Organizations](https://aws.amazon.com/organizations/)
+ [AWS Resource Access Manager](https://aws.amazon.com/ram/)
+ [Orkestra Jaringan Transit Tanpa Server](https://aws.amazon.com/solutions/implementations/serverless-transit-network-orchestrator/)
+ [Membuat peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html)
+ [Membuat tumpukan di AWS CloudFormation konsol](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html)

# Lebih banyak pola
<a name="cloudfoundations-more-patterns-pattern-list"></a>

**Topics**
+ [Otomatiskan alokasi Amazon VPC IPv4 IPAM CIDR untuk yang baru dengan menggunakan AFT Akun AWS](automate-amazon-vpc-ipam-ipv4-cidr-allocations-for-new-aws-accounts-by-using-aft.md)
+ [Mengatur set izin untuk beberapa akun dengan menggunakan Account Factory untuk Terraform](govern-permission-sets-aft.md)
+ [Menyediakan AWS Service Catalog produk berdasarkan AWS CloudFormation template dengan menggunakan GitHub Actions](provision-aws-service-catalog-products-using-github-actions.md)
+ [Menyediakan peran IAM dengan hak istimewa paling sedikit dengan menerapkan solusi mesin penjual otomatis peran](provision-least-privilege-iam-roles-by-deploying-a-role-vending-machine-solution.md)