

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

# Memulai dengan AWS Config
<a name="getting-started"></a>

AWS Config memberikan tampilan rinci tentang konfigurasi AWS sumber daya di Anda Akun AWS. Dengan AWS Config, Anda dapat meninjau perubahan konfigurasi dan hubungan antar AWS sumber daya, menjelajahi riwayat konfigurasi sumber daya, dan menggunakan aturan untuk menentukan kepatuhan. Untuk informasi lebih lanjut, lihat [Apa itu AWS Config?](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html) dan [bagaimana cara AWS Config kerjanya](https://docs.aws.amazon.com/config/latest/developerguide/how-does-config-work.html).

## Mendaftar untuk AWS
<a name="getting-started-signing-up"></a>

**Topics**
+ [Mendaftar untuk Akun AWS](#sign-up-for-aws)
+ [Buat pengguna dengan akses administratif](#create-an-admin)

### Mendaftar untuk Akun AWS
<a name="sign-up-for-aws"></a>

Jika Anda tidak memiliki Akun AWS, selesaikan langkah-langkah berikut untuk membuatnya.

**Untuk mendaftar untuk Akun AWS**

1. Buka [https://portal.aws.amazon.com/billing/pendaftaran.](https://portal.aws.amazon.com/billing/signup)

1. Ikuti petunjuk online.

   Bagian dari prosedur pendaftaran melibatkan menerima panggilan telepon atau pesan teks dan memasukkan kode verifikasi pada keypad telepon.

   Saat Anda mendaftar untuk sebuah Akun AWS, sebuah *Pengguna root akun AWS*dibuat. Pengguna root memiliki akses ke semua Layanan AWS dan sumber daya di akun. Sebagai praktik keamanan terbaik, tetapkan akses administratif ke pengguna, dan gunakan hanya pengguna root untuk melakukan [tugas yang memerlukan akses pengguna root](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks).

AWS mengirimi Anda email konfirmasi setelah proses pendaftaran selesai. Kapan saja, Anda dapat melihat aktivitas akun Anda saat ini dan mengelola akun Anda dengan masuk [https://aws.amazon.com.rproxy.goskope.comke/](https://aws.amazon.com/) dan memilih **Akun Saya**.

### Buat pengguna dengan akses administratif
<a name="create-an-admin"></a>

Setelah Anda mendaftar Akun AWS, amankan Pengguna root akun AWS, aktifkan AWS IAM Identity Center, dan buat pengguna administratif sehingga Anda tidak menggunakan pengguna root untuk tugas sehari-hari.

**Amankan Anda Pengguna root akun AWS**

1.  Masuk ke [Konsol Manajemen AWS](https://console.aws.amazon.com/)sebagai pemilik akun dengan memilih **pengguna Root** dan memasukkan alamat Akun AWS email Anda. Di laman berikutnya, masukkan kata sandi.

   Untuk bantuan masuk dengan menggunakan pengguna root, lihat [Masuk sebagai pengguna root](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html#introduction-to-root-user-sign-in-tutorial) di *AWS Sign-In Panduan Pengguna*.

1. Mengaktifkan autentikasi multi-faktor (MFA) untuk pengguna root Anda.

   Untuk petunjuk, lihat [Mengaktifkan perangkat MFA virtual untuk pengguna Akun AWS root (konsol) Anda](https://docs.aws.amazon.com/IAM/latest/UserGuide/enable-virt-mfa-for-root.html) di Panduan Pengguna *IAM*.

**Buat pengguna dengan akses administratif**

1. Aktifkan Pusat Identitas IAM.

   Untuk mendapatkan petunjuk, silakan lihat [Mengaktifkan AWS IAM Identity Center](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-set-up-for-idc.html) di *Panduan Pengguna AWS IAM Identity Center*.

1. Di Pusat Identitas IAM, berikan akses administratif ke pengguna.

   Untuk tutorial tentang menggunakan Direktori Pusat Identitas IAM sebagai sumber identitas Anda, lihat [Mengkonfigurasi akses pengguna dengan default Direktori Pusat Identitas IAM](https://docs.aws.amazon.com//singlesignon/latest/userguide/quick-start-default-idc.html) di *Panduan AWS IAM Identity Center Pengguna*.

**Masuk sebagai pengguna dengan akses administratif**
+ Untuk masuk dengan pengguna Pusat Identitas IAM, gunakan URL masuk yang dikirim ke alamat email saat Anda membuat pengguna Pusat Identitas IAM.

  Untuk bantuan masuk menggunakan pengguna Pusat Identitas IAM, lihat [Masuk ke portal AWS akses](https://docs.aws.amazon.com/signin/latest/userguide/iam-id-center-sign-in-tutorial.html) di *Panduan AWS Sign-In Pengguna*.

**Tetapkan akses ke pengguna tambahan**

1. Di Pusat Identitas IAM, buat set izin yang mengikuti praktik terbaik menerapkan izin hak istimewa paling sedikit.

   Untuk petunjuknya, lihat [Membuat set izin](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-started-create-a-permission-set.html) di *Panduan AWS IAM Identity Center Pengguna*.

1. Tetapkan pengguna ke grup, lalu tetapkan akses masuk tunggal ke grup.

   Untuk petunjuk, lihat [Menambahkan grup](https://docs.aws.amazon.com//singlesignon/latest/userguide/addgroups.html) di *Panduan AWS IAM Identity Center Pengguna*.

## Cara untuk Memulai dengan AWS Config
<a name="getting-started-using-aws-config"></a>

Setelah Anda mendaftar untuk Akun AWS, Anda dapat memulai AWS Config dengan Konsol Manajemen AWS,AWS CLI, atau.AWS SDKs

**Topics**
+ [Menyiapkan AWS Config dengan Konsol](https://docs.aws.amazon.com/config/latest/developerguide/gs-console.html)
+ [Menyiapkan AWS Config dengan AWS CLI](https://docs.aws.amazon.com/config/latest/developerguide/gs-cli.html)
+ [Menggunakan AWS Config layanan dengan AWS SDK](https://docs.aws.amazon.com/config/latest/developerguide/sdk-general-information-section.html)

# Menyiapkan AWS Config dengan Konsol
<a name="gs-console"></a>

 Konsol Manajemen AWS Ini menyediakan proses yang cepat dan efisien untuk pengaturan AWS Config.

## Pengaturan
<a name="gs-console-setting-up.title"></a>

**Untuk mengatur AWS Config dengan konsol**

1. Masuk ke Konsol Manajemen AWS dan buka AWS Config konsol di [https://console.aws.amazon.com/config/rumah](https://console.aws.amazon.com/config/home).

1. Jika ini adalah pertama kalinya Anda membuka AWS Config konsol atau Anda menyiapkan AWS Config di wilayah baru, halaman AWS Config konsol terlihat seperti berikut:   
![\[Gambar di halaman AWS Config Konsol memberikan ikhtisar AWS Config layanan, menekankan perannya dalam merekam dan mengevaluasi bagian konfigurasi sumber daya. AWS\]](http://docs.aws.amazon.com/id_id/config/latest/developerguide/images/welcome.png)

1. Pilih **pengaturan 1-klik** untuk diluncurkan AWS Config berdasarkan praktik AWS terbaik. Anda juga dapat memilih **Mulai** untuk melalui proses pengaturan yang lebih rinci.

**Topics**
+ [Pengaturan](#gs-console-setting-up.title)
+ [Pengaturan 1-klik](1-click-setup.md)
+ [Pengaturan manual](manual-setup.title.md)

# Pengaturan 1-klik untuk AWS Config
<a name="1-click-setup"></a>

AWS Config **Pengaturan 1-klik** membantu menyederhanakan proses memulai untuk pelanggan AWS Config konsol dengan mengurangi jumlah pilihan manual. Untuk menelusuri semua pilihan manual dari proses penyiapan, lihat [Pengaturan manual](https://docs.aws.amazon.com/config/latest/developerguide/detailed-setup.html).

**Untuk mengatur AWS Config dengan konsol menggunakan pengaturan **1-klik****

1. Masuk ke Konsol Manajemen AWS dan buka AWS Config konsol di [https://console.aws.amazon.com/config/rumah](https://console.aws.amazon.com/config/home).

1. Pilih **pengaturan 1-klik**. 

Halaman pengaturan mencakup tiga langkah, tetapi melalui alur kerja **pengaturan 1-klik**, Anda secara otomatis diarahkan ke Langkah 3 (Tinjauan). Berikut ini memberikan rincian prosedur itu.
+ **Pengaturan**: Untuk memilih cara AWS Config konsol merekam sumber daya dan peran, dan memilih di mana riwayat konfigurasi dan file snapshot konfigurasi dikirim.
+ **Aturan**: Untuk AWS Config aturan dukungan Wilayah AWS itu, langkah ini tersedia bagi Anda untuk mengonfigurasi aturan terkelola awal yang dapat Anda tambahkan ke akun Anda. Setelah menyiapkan, AWS Config akan mengevaluasi AWS sumber daya Anda terhadap aturan yang Anda pilih. Aturan tambahan dapat dibuat dan yang sudah ada dapat diperbarui di akun Anda setelah penyiapan.
+ **Ulasan**: Untuk memverifikasi detail penyiapan Anda.

## Langkah 1: Pengaturan
<a name="1-click-setup-settings.title"></a>

### Strategi perekaman
<a name="1-click-setup-settings-recording-strategy.title"></a>

Opsi untuk merekam **Semua jenis sumber daya dengan penggantian yang dapat disesuaikan** dipilih untuk Anda. AWS Config akan merekam semua jenis sumber daya yang didukung saat ini dan masa depan di Wilayah ini. Untuk informasi selengkapnya, lihat [Jenis Sumber Daya yang Didukung](https://docs.aws.amazon.com/config/latest/developerguide/resource-config-reference.html).
+ **Pengaturan default**

  Frekuensi perekaman default diatur ke **Continuous** untuk Anda. Ini berarti AWS Config mencatat perubahan konfigurasi terus menerus setiap kali terjadi perubahan.

  AWS Config juga mendukung opsi untuk mengatur frekuensi perekaman ke **Harian**. Jika Anda memilih opsi ini setelah penyiapan, Anda akan menerima item konfigurasi (CI) yang mewakili status terbaru sumber daya Anda selama periode 24 jam terakhir, hanya jika berbeda dari CI sebelumnya yang direkam. Untuk informasi lebih lanjut lihat, [Frekuensi Perekaman](https://docs.aws.amazon.com/config/latest/developerguide/select-resources.html#select-resources-recording-frequency).
**catatan**  
AWS Firewall Manager tergantung pada perekaman berkelanjutan untuk memantau sumber daya Anda. Jika Anda menggunakan Firewall Manager, disarankan agar Anda mengatur frekuensi perekaman ke Continuous.
+ ***Mengganti pengaturan - opsional***

  Secara opsional, setelah penyiapan, Anda dapat mengganti frekuensi rekaman untuk jenis sumber daya tertentu, atau mengecualikan jenis sumber daya tertentu dari perekaman. Untuk mengganti pengaturan default, pilih **Pengaturan** di navigasi kiri AWS Config konsol, lalu pilih **Edit**.

#### Pertimbangan Saat Merekam Sumber Daya
<a name="1-click-setup-considerations"></a>

**Jumlah AWS Config Evaluasi yang Tinggi**

Anda mungkin melihat peningkatan aktivitas di akun selama perekaman bulan awal dengan AWS Config jika dibandingkan dengan bulan-bulan berikutnya. Selama proses bootstrap awal, AWS Config jalankan evaluasi pada semua sumber daya di akun Anda yang telah Anda pilih untuk direkam. AWS Config 

Jika Anda menjalankan beban kerja sementara, Anda mungkin melihat peningkatan aktivitas dari AWS Config saat merekam perubahan konfigurasi yang terkait dengan pembuatan dan penghapusan sumber daya sementara ini. *Beban kerja sementara* adalah penggunaan sementara sumber daya komputasi yang dimuat dan dijalankan saat diperlukan. Contohnya termasuk Instans Spot Amazon Elastic Compute Cloud (Amazon EC2), pekerjaan EMR Amazon, dan. AWS Auto Scaling Jika Anda ingin menghindari peningkatan aktivitas menjalankan beban kerja sementara, Anda dapat mengatur perekam konfigurasi untuk mengecualikan jenis sumber daya ini agar tidak direkam, atau menjalankan jenis beban kerja ini di akun terpisah dengan AWS Config dimatikan untuk menghindari peningkatan perekaman konfigurasi dan evaluasi aturan.

**Jenis sumber daya global \$1 Kluster global Aurora pada awalnya disertakan dalam rekaman**

Jenis `AWS::RDS::GlobalCluster` sumber daya akan direkam di semua AWS Config Wilayah yang didukung tempat perekam konfigurasi diaktifkan.

Jika Anda tidak ingin merekam `AWS::RDS::GlobalCluster` di semua Wilayah yang diaktifkan, Anda dapat mengecualikan jenis sumber daya ini dari perekaman setelah penyiapan. Pilih **Pengaturan** di bilah navigasi kiri, lalu pilih **Edit**. Dari **Edit**, buka **Pengaturan ganti** di bagian **Metode perekaman**, pilih`AWS::RDS::GlobalCluster`, dan pilih ganti “Kecualikan dari perekaman”.

**Jenis sumber daya global \$1 Jenis sumber daya IAM awalnya dikecualikan dari perekaman**

“Semua jenis sumber daya IAM yang direkam secara global” pada awalnya dikecualikan dari pencatatan untuk membantu Anda mengurangi biaya. Paket ini mencakup pengguna IAM, grup, peran, dan kebijakan yang dikelola pelanggan. Pilih **Hapus** untuk menghapus penggantian dan menyertakan sumber daya ini dalam rekaman Anda. 

Selain itu, jenis sumber daya IAM global (`AWS::IAM::User`,`AWS::IAM::Group`,`AWS::IAM::Role`, dan`AWS::IAM::Policy`) tidak dapat dicatat di Wilayah yang didukung AWS Config setelah Februari 2022. Untuk daftar Wilayah tersebut, lihat [Merekam AWS Sumber Daya \$1 Sumber Daya Global](https://docs.aws.amazon.com/config/latest/developerguide/select-resources.html#select-resources-all).

### Tata kelola data
<a name="1-click-setup-data-governance"></a>

Periode penyimpanan data default untuk menyimpan AWS Config data selama 7 tahun (2557 hari) dipilih untuk Anda di bagian ini.

**Opsi untuk **Menggunakan peran AWS Config terkait layanan yang ada** dipilih untuk Anda dan disetel ke peran.AWS Config ** Peran terkait layanan telah ditentukan sebelumnya oleh AWS Config dan menyertakan semua izin yang diperlukan layanan untuk memanggil layanan lain. AWS 

### Metode pengiriman
<a name="1-click-setup-data-delivery-method"></a>

Opsi untuk **Memilih ember dari akun Anda** dipilih untuk Anda di bagian ini. Pilihan ini akan default ke bucket di akun Anda yang diberi nama dalam format`config-bucket-accountid`. Misalnya, `config-bucket-012345678901`. Jika Anda tidak memiliki ember yang dibuat dalam format itu, satu akan dibuat untuk Anda. Jika Anda ingin membuat bucket sendiri, lihat [Membuat bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) di *Panduan Pengguna Layanan Penyimpanan Sederhana Amazon*.

Untuk informasi selengkapnya tentang bucket S3, lihat [ikhtisar Bucket di](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingBucket.html) Panduan Pengguna *Layanan Penyimpanan Sederhana Amazon*.

## Langkah 2: Aturan
<a name="1-click-setup-rules.title"></a>

Di bawah **Aturan AWS Terkelola**, tidak ada aturan yang dipilih untuk Anda pada langkah ini. Sebagai gantinya, Anda dianjurkan untuk membuat dan memperbarui aturan setelah Anda selesai menyiapkan akun Anda.

## Langkah 3: Tinjau
<a name="1-click-setup-review.title"></a>

Tinjau detail AWS Config penyiapan Anda. Anda dapat kembali untuk mengedit perubahan untuk setiap bagian. Pilih **Konfirmasi** untuk menyelesaikan pengaturan AWS Config.

# Pengaturan manual untuk AWS Config
<a name="manual-setup.title"></a>

Dengan alur kerja **Memulai**, Anda dapat melalui semua pilihan manual dari proses penyiapan untuk memulai dengan konsol. AWS Config Untuk proses memulai yang disederhanakan, lihat [Pengaturan 1-klik](https://docs.aws.amazon.com/config/latest/developerguide/1-click-setup.html).

**Untuk mengatur AWS Config dengan konsol menggunakan **Memulai****

1. Masuk ke Konsol Manajemen AWS dan buka AWS Config konsol di [https://console.aws.amazon.com/config/rumah](https://console.aws.amazon.com/config/home).

1. Pilih **Mulai**. 

Halaman pengaturan mencakup tiga langkah. Berikut ini memberikan rincian prosedur itu setelah Anda memilih **Memulai**.
+ **Pengaturan**: Untuk memilih cara AWS Config konsol merekam sumber daya dan peran, dan memilih di mana riwayat konfigurasi dan file snapshot konfigurasi dikirim.
+ **Aturan**: Untuk AWS Config aturan dukungan Wilayah AWS itu, langkah ini tersedia bagi Anda untuk mengonfigurasi aturan terkelola awal yang dapat Anda tambahkan ke akun Anda. Setelah menyiapkan, AWS Config akan mengevaluasi AWS sumber daya Anda terhadap aturan yang Anda pilih. Aturan tambahan dapat dibuat dan yang sudah ada dapat diperbarui dan di akun Anda setelah penyiapan.
+ **Ulasan**: Untuk memverifikasi detail penyiapan Anda.

## Langkah 1: Pengaturan
<a name="gs-settings.title"></a>

### Strategi perekaman
<a name="manual-setup-settings-recording-strategy.title"></a>

Di bagian **Metode perekaman**, pilih strategi perekaman. Anda dapat menentukan AWS sumber daya yang AWS Config ingin Anda rekam.

------
#### [ All resource types with customizable overrides ]

Siapkan AWS Config untuk merekam perubahan konfigurasi untuk semua jenis sumber daya yang didukung saat ini dan masa depan di Wilayah ini. Anda dapat mengganti frekuensi perekaman untuk jenis sumber daya tertentu atau mengecualikan jenis sumber daya tertentu dari perekaman. Untuk informasi selengkapnya, lihat [Jenis Sumber Daya yang Didukung](https://docs.aws.amazon.com/config/latest/developerguide/resource-config-reference.html).
+ **Pengaturan default**

  Konfigurasikan frekuensi perekaman default untuk semua jenis sumber daya yang didukung saat ini dan masa depan. Untuk informasi lebih lanjut lihat, [Frekuensi Perekaman](https://docs.aws.amazon.com/config/latest/developerguide/select-resources.html#select-resources-recording-frequency).
  + Perekaman berkelanjutan - AWS Config akan merekam perubahan konfigurasi secara terus menerus setiap kali terjadi perubahan.
  + Rekaman harian — Anda akan menerima item konfigurasi (CI) yang mewakili status terbaru sumber daya Anda selama periode 24 jam terakhir, hanya jika berbeda dari CI sebelumnya yang direkam. 
**catatan**  
AWS Firewall Manager tergantung pada perekaman berkelanjutan untuk memantau sumber daya Anda. Jika Anda menggunakan Firewall Manager, disarankan agar Anda mengatur frekuensi perekaman ke Continuous.
+ **Ganti pengaturan**

  Ganti frekuensi perekaman untuk jenis sumber daya tertentu, atau kecualikan jenis sumber daya tertentu dari perekaman. Jika Anda mengubah frekuensi perekaman untuk jenis sumber daya atau berhenti merekam jenis sumber daya, item konfigurasi yang sudah direkam akan tetap tidak berubah.

------
#### [ Specific resource types ]

Setel AWS Config untuk merekam perubahan konfigurasi hanya untuk jenis sumber daya yang Anda tentukan.
+ **Jenis sumber daya tertentu**

  Pilih jenis sumber daya untuk merekam dan frekuensinya. Untuk informasi lebih lanjut lihat, [Frekuensi Perekaman](https://docs.aws.amazon.com/config/latest/developerguide/select-resources.html#select-resources-recording-frequency).
  + Perekaman berkelanjutan - AWS Config akan merekam perubahan konfigurasi secara terus menerus setiap kali terjadi perubahan.
  + Rekaman harian — Anda akan menerima item konfigurasi (CI) yang mewakili status terbaru sumber daya Anda selama periode 24 jam terakhir, hanya jika berbeda dari CI sebelumnya yang direkam.
**catatan**  
AWS Firewall Manager tergantung pada perekaman berkelanjutan untuk memantau sumber daya Anda. Jika Anda menggunakan Firewall Manager, disarankan agar Anda mengatur frekuensi perekaman ke Continuous.

  Jika Anda mengubah frekuensi perekaman untuk jenis sumber daya atau berhenti merekam jenis sumber daya, item konfigurasi yang sudah direkam akan tetap tidak berubah.

------

#### Pertimbangan Saat Merekam Sumber Daya
<a name="manual-setup-considerations"></a>

**Jumlah AWS Config Evaluasi yang Tinggi**

Anda mungkin melihat peningkatan aktivitas di akun selama perekaman bulan awal dengan AWS Config jika dibandingkan dengan bulan-bulan berikutnya. Selama proses bootstrap awal, AWS Config jalankan evaluasi pada semua sumber daya di akun Anda yang telah Anda pilih untuk direkam. AWS Config 

Jika Anda menjalankan beban kerja sementara, Anda mungkin melihat peningkatan aktivitas dari AWS Config saat merekam perubahan konfigurasi yang terkait dengan pembuatan dan penghapusan sumber daya sementara ini. *Beban kerja sementara* adalah penggunaan sementara sumber daya komputasi yang dimuat dan dijalankan saat diperlukan. Contohnya termasuk Instans Spot Amazon Elastic Compute Cloud (Amazon EC2), pekerjaan EMR Amazon, dan. AWS Auto Scaling Jika Anda ingin menghindari peningkatan aktivitas menjalankan beban kerja sementara, Anda dapat mengatur perekam konfigurasi untuk mengecualikan jenis sumber daya ini agar tidak direkam, atau menjalankan jenis beban kerja ini di akun terpisah dengan AWS Config dimatikan untuk menghindari peningkatan perekaman konfigurasi dan evaluasi aturan.

------
#### [ Considerations: All resource types with customizable overrides ]

**Jenis sumber daya yang direkam secara global \$1 Kluster global Aurora pada awalnya disertakan dalam rekaman**

Jenis `AWS::RDS::GlobalCluster` sumber daya akan direkam di semua AWS Config Wilayah yang didukung tempat perekam konfigurasi diaktifkan.

Jika Anda tidak ingin merekam `AWS::RDS::GlobalCluster` di semua Wilayah yang diaktifkan, pilih "AWS RDS GlobalCluster“, dan pilih penggantian “Kecualikan dari perekaman”.

**Jenis sumber daya global \$1 Jenis sumber daya IAM awalnya dikecualikan dari perekaman**

Jenis sumber daya IAM global pada awalnya dikecualikan dari pencatatan untuk membantu Anda mengurangi biaya. Paket ini mencakup pengguna IAM, grup, peran, dan kebijakan yang dikelola pelanggan. Pilih **Hapus** untuk menghapus penggantian dan menyertakan sumber daya ini dalam rekaman Anda. 

Selain itu, jenis sumber daya IAM global (`AWS::IAM::User`,`AWS::IAM::Group`,`AWS::IAM::Role`, dan`AWS::IAM::Policy`) tidak dapat dicatat di Wilayah yang didukung AWS Config setelah Februari 2022. Untuk daftar Wilayah tersebut, lihat [Merekam AWS Sumber Daya \$1 Sumber Daya Global](https://docs.aws.amazon.com/config/latest/developerguide/select-resources.html#select-resources-all).

**Batas**

Anda dapat menambahkan hingga 100 penggantian frekuensi dan 600 penggantian pengecualian.

Rekaman harian tidak dapat ditentukan untuk jenis sumber daya berikut:
+ `AWS::Config::ResourceCompliance`
+ `AWS::Config::ConformancePackCompliance`
+ `AWS::Config::ConfigurationRecorder`

------
#### [ Considerations: Specific resource types ]

**Ketersediaan Wilayah**

Sebelum menentukan jenis sumber daya AWS Config untuk dilacak, periksa [Cakupan Sumber Daya menurut Ketersediaan Wilayah](https://docs.aws.amazon.com/config/latest/developerguide/what-is-resource-config-coverage.html) untuk melihat apakah jenis sumber daya didukung di AWS Wilayah tempat Anda menyiapkan AWS Config. Jika jenis sumber daya didukung oleh AWS Config setidaknya satu Wilayah, Anda dapat mengaktifkan perekaman jenis sumber daya tersebut di semua Wilayah yang didukung oleh AWS Config, meskipun jenis sumber daya yang ditentukan tidak didukung di AWS Wilayah tempat Anda menyiapkan AWS Config.

**Batas**

Tidak ada batasan jika semua jenis sumber daya memiliki frekuensi yang sama. Anda dapat menambahkan hingga 100 jenis sumber daya dengan frekuensi Harian jika setidaknya satu jenis sumber daya diatur ke Continuous.

Frekuensi harian tidak didukung untuk jenis sumber daya berikut:
+ `AWS::Config::ResourceCompliance`
+ `AWS::Config::ConformancePackCompliance`
+ `AWS::Config::ConfigurationRecorder`

------

### Tata kelola data
<a name="manual-setup-data-governance"></a>
+ Untuk **periode penyimpanan data**, pilih periode penyimpanan default untuk menyimpan AWS Config data selama 7 tahun (2557) atau tetapkan periode sewa khusus untuk item yang direkam oleh. AWS Config

  AWS Config memungkinkan Anda untuk menghapus data Anda dengan menentukan periode retensi untuk Anda`ConfigurationItems`. Saat Anda menentukan periode retensi, AWS Config pertahankan periode Anda `ConfigurationItems` untuk periode yang ditentukan. Anda dapat memilih periode antara minimal 30 hari dan maksimal 7 tahun (2557 hari). AWS Config menghapus data yang lebih lama dari periode retensi yang Anda tentukan.
+ **Untuk peran IAM AWS Config**, pilih peran AWS Config terkait layanan yang ada atau peran IAM dari akun Anda.
  + Peran terkait layanan telah ditentukan sebelumnya oleh AWS Config dan menyertakan semua izin yang diperlukan layanan untuk memanggil layanan lain. AWS 
**catatan**  
**Direkomendasikan: Gunakan peran terkait Layanan**  
Disarankan agar Anda menggunakan peran terkait layanan. Peran terkait layanan menambahkan semua izin yang diperlukan untuk menjalankan seperti yang AWS Config diharapkan.
  + Jika tidak, pilih peran IAM dari salah satu peran dan kebijakan izin Anda yang sudah ada sebelumnya.
**catatan**  
**Kebijakan dan hasil kepatuhan**  
Kebijakan [IAM dan kebijakan](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) [lain yang dikelola AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies.html) dapat memengaruhi apakah AWS Config memiliki izin untuk merekam perubahan konfigurasi untuk sumber daya Anda. Selain itu, aturan secara langsung mengevaluasi konfigurasi sumber daya dan aturan tidak memperhitungkan kebijakan ini saat menjalankan evaluasi. Pastikan bahwa kebijakan yang berlaku selaras dengan cara Anda berniat untuk menggunakan AWS Config.  
**Pertahankan Izin Minimum Saat Menggunakan Kembali peran IAM**  
Jika Anda menggunakan AWS layanan yang menggunakan AWS Config, seperti AWS Security Hub CSPM atau AWS Control Tower, dan peran IAM telah dibuat, pastikan bahwa peran IAM yang Anda gunakan saat menyiapkan AWS Config memiliki izin minimum yang sama dengan peran IAM yang sudah ada sebelumnya. Anda harus melakukan ini untuk memastikan bahwa AWS layanan lain terus berjalan seperti yang diharapkan.   
Misalnya, jika AWS Control Tower memiliki peran IAM yang memungkinkan AWS Config untuk membaca objek S3, pastikan bahwa izin yang sama diberikan ke peran IAM yang Anda gunakan saat menyiapkan. AWS Config Jika tidak, itu dapat mengganggu cara AWS Control Tower beroperasi.

### Metode pengiriman
<a name="manue-setup-data-delivery-method"></a>
+ Untuk **metode Pengiriman**, pilih bucket S3 yang akan AWS Config mengirimkan riwayat konfigurasi dan berkas snapshot konfigurasi:
  + **Buat bucket** — Untuk **nama bucket S3**, ketikkan nama untuk bucket S3 Anda. 

    Nama yang Anda ketik harus unik di semua nama bucket yang ada di Amazon S3. Salah satu cara untuk membantu memastikan keunikan adalah dengan memasukkan awalan; misalnya, nama organisasi Anda. Anda tidak dapat mengubah nama bucket setelah dibuat. Untuk informasi selengkapnya, lihat [Pembatasan dan Batasan Bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/BucketRestrictions.html) di *Panduan Pengguna Layanan Penyimpanan Sederhana Amazon*. 
  + **Pilih bucket dari akun Anda** — Untuk **nama bucket S3**, pilih bucket pilihan Anda.
  + **Pilih bucket dari akun lain** — Untuk **nama bucket S3**, ketikkan nama bucket.
**catatan**  
**Izin Bucket**  
Jika Anda memilih bucket dari akun lain, bucket tersebut harus memiliki kebijakan yang memberikan izin akses AWS Config. Untuk informasi selengkapnya, lihat [Izin untuk Bucket Amazon S3 untuk AWS Config Saluran Pengiriman](s3-bucket-policy.md).
+ Untuk **topik Amazon SNS**, pilih **Streaming perubahan konfigurasi dan notifikasi ke topik Amazon SNS** agar AWS Config pemberitahuan kirim seperti pengiriman riwayat konfigurasi, pengiriman snapshot konfigurasi, dan kepatuhan. 
+ Jika Anda memilih untuk melakukan AWS Config streaming ke topik Amazon SNS, pilih topik target:
  + **Buat topik** - Untuk **Nama Topik**, ketikkan nama untuk topik SNS Anda.
  + **Pilih topik dari akun Anda** — Untuk **Nama Topik**, pilih topik yang Anda inginkan.
  + **Pilih topik dari akun lain** — Untuk **Topik ARN**, ketik Nama Sumber Daya Amazon (ARN) dari topik tersebut. Jika Anda memilih topik dari akun lain, topik tersebut harus memiliki kebijakan yang memberikan izin akses AWS Config. Untuk informasi selengkapnya, lihat [Izin untuk Topik Amazon SNS](sns-topic-policy.md).
**catatan**  
**Wilayah untuk Topik Amazon SNS**  
Topik Amazon SNS harus ada di Wilayah yang sama dengan Wilayah tempat Anda mengatur. AWS Config

## Langkah 2: Aturan
<a name="manual-setup-rules.title"></a>

Jika Anda menyiapkan AWS Config di Wilayah yang mendukung aturan, pilih **Berikutnya**.

## Langkah 3: Tinjau
<a name="manual-setup-review.title"></a>

Tinjau detail AWS Config penyiapan Anda. Anda dapat kembali untuk mengedit perubahan untuk setiap bagian. Pilih **Konfirmasi** untuk menyelesaikan pengaturan AWS Config.

## Untuk informasi selengkapnya
<a name="manual-setup-more-info.title"></a>

[Untuk informasi tentang mencari sumber daya yang ada di akun Anda dan memahami konfigurasi sumber daya Anda, lihat [Mencari Sumber Daya, Melihat](https://docs.aws.amazon.com/config/latest/developerguide/looking-up-discovered-resources.html)[Informan Kepatuhan, dan Melihat Riwayat Kepatuhan](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_view-compliance.html).](https://docs.aws.amazon.com/config/latest/developerguide/view-manage-resource-console.html)

Anda juga dapat menggunakan Amazon Simple Queue Service untuk memantau AWS sumber daya secara terprogram. Lihat informasi yang lebih lengkap di [Memantau Perubahan AWS Sumber Daya dengan Amazon SQS](monitor-resource-changes.md).

# Menyiapkan AWS Config dengan AWS CLI
<a name="gs-cli"></a>

 AWS CLI Ini adalah alat terpadu untuk mengelola AWS layanan Anda. Dengan hanya satu alat untuk mengunduh dan mengkonfigurasi, Anda dapat mengontrol beberapa AWS layanan dari baris perintah dan menggunakan skrip untuk mengotomatiskannya. Untuk informasi selengkapnya tentang AWS CLI dan untuk petunjuk tentang cara menginstal AWS CLI alat, lihat yang berikut ini di *Panduan AWS Command Line Interface Pengguna*.
+ [AWS Command Line Interface Panduan Pengguna](https://docs.aws.amazon.com/cli/latest/userguide/)
+ [Mempersiapkan AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-set-up.html) 

Jika perlu, masukkan `aws configure` untuk mengkonfigurasi AWS CLI untuk menggunakan AWS Wilayah di mana AWS Config tersedia.

## Pengaturan
<a name="gs-cli-setting-up.title"></a>

Lihat topik berikut untuk disiapkan AWS Config dengan AWS CLI.

**Topics**
+ [Pengaturan](#gs-cli-setting-up.title)
+ [Prasyarat](gs-cli-prereq.md)
+ [Memulai AWS Config](gs-cli-subscribe.md)
+ [Memverifikasi pengaturan](gs-cli-verify-subscribe.md)

# Prasyarat untuk Menyiapkan dengan AWS Config AWS CLI
<a name="gs-cli-prereq"></a>

Sebelum menyiapkan AWS AWS CLI, Anda perlu membuat bucket Amazon S3, topik Amazon SNS, dan peran IAM dengan kebijakan terlampir sebagai prasyarat. Anda kemudian dapat menggunakan AWS CLI untuk menentukan bucket, topik, dan peran untuk AWS Config. Ikuti prosedur ini untuk mengatur prasyarat Anda. AWS Config

**Topics**
+ [Langkah 1: Membuat Bucket Amazon S3](#gs-cli-create-s3bucket)
+ [Langkah 2: Membuat Topik Amazon SNS](#gs-cli-create-snstopic)
+ [Langkah 3: Membuat Peran IAM](#gs-cli-create-iamrole)

## Langkah 1: Membuat Bucket Amazon S3
<a name="gs-cli-create-s3bucket"></a>

Jika Anda sudah memiliki ember Amazon S3 di akun Anda dan ingin menggunakannya, lewati langkah ini dan buka. [Langkah 2: Membuat Topik Amazon SNS](#gs-cli-create-snstopic)

### Menggunakan konsol S3
<a name="create-bucket"></a>

**Untuk membuat bucket**

1. Buka konsol Amazon S3 di. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Pilih **Buat bucket**.

1. Di **Nama bucket**, masukkan nama yang sesuai dengan DNS untuk bucket Anda.

   Nama kelompok harus:
   + Unik di seluruh Amazon S3.
   + Panjangnya antara 3 dan 63 karakter.
   + Tidak mengandung karakter huruf besar.
   + Mulai dengan huruf kecil atau angka.

   Setelah membuat bucket, Anda tidak dapat mengubah namanya. Pastikan nama bucket yang Anda pilih unik di semua nama bucket yang ada di Amazon S3. Untuk informasi selengkapnya tentang aturan dan konvensi penamaan [bucket, lihat Pembatasan dan Batasan](https://docs.aws.amazon.com/AmazonS3/latest/userguide/BucketRestrictions.html) Bucket di *Panduan Pengguna Layanan Penyimpanan Sederhana Amazon*.
**penting**  
Hindari memasukkan informasi sensitif ke dalam nama bucket. Nama ember terlihat di titik URLs itu ke objek di ember.

1. Di **Wilayah**, pilih AWS Wilayah tempat Anda ingin ember berada. 

   Pilih Wilayah yang dekat dengan Anda untuk meminimalkan latensi dan biaya serta memenuhi persyaratan regulasi. Objek yang disimpan di Wilayah tidak pernah keluar dari Wilayah kecuali Anda secara tegas mentransfer atau mereplikasinya ke Wilayah lain. Untuk daftar AWS Wilayah Amazon S3, lihat [titik akhir AWS layanan](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) di. *Referensi Umum Amazon Web Services*

1. Pada **Pengaturan bucket untuk Blokir Akses Publik**, pilih pengaturan Blokir Akses Publik yang ingin Anda terapkan ke bucket. 

   Kami menyarankan agar Anda membiarkan semua pengaturan diaktifkan, kecuali jika Anda tahu Anda perlu mematikan satu atau lebih pengaturan tersebut untuk kasus penggunaan Anda, seperti untuk menyelenggarakan situs web publik. Blokir pengaturan akses publik yang Anda aktifkan untuk bucket juga akan diaktifkan untuk semua titik akses yang Anda buat pada bucket. Untuk informasi selengkapnya tentang memblokir akses publik, lihat [Menggunakan Amazon S3 Blokir Akses Publik](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html) di *Panduan Pengguna Layanan Penyimpanan Sederhana Amazon*.

1. (Opsional) Jika Anda ingin mengaktifkan Kunci Objek S3:

   1. Pilih **Pengaturan lanjutan**, dan baca pesan yang muncul.
**penting**  
Anda hanya dapat mengaktifkan Kunci Objek S3 untuk bucket saat Anda membuatnya. Jika Anda mengaktifkan Kunci Objek untuk bucket, Anda tidak dapat menonaktifkannya nanti. Mengaktifkan Kunci Objek juga memungkinkan pembuatan versi untuk bucket. Setelah Anda mengaktifkan Kunci Objek untuk bucket, Anda harus mengonfigurasi pengaturan Kunci Objek sebelum objek apa pun dalam bucket dilindungi. Untuk informasi selengkapnya tentang mengonfigurasi perlindungan untuk objek, lihat [Mengonfigurasi Kunci Objek S3 menggunakan konsol Amazon S3](https://docs.aws.amazon.com//AmazonS3/latest/dev/object-lock-console.html).

   1. Jika Anda ingin mengaktifkan Kunci Objek, masukkan *aktifkan* di kotak teks dan memilih **Konfirmasi**.

   Untuk informasi selengkapnya tentang fitur Kunci Objek S3, lihat [Mengunci Objek Menggunakan Kunci Objek Amazon S3](https://docs.aws.amazon.com//AmazonS3/latest/dev/object-lock.html) di Panduan Pengguna *Layanan Penyimpanan Sederhana Amazon*.

1. Pilih **Buat bucket**.

### Menggunakan AWS SDKs
<a name="create-bucket-intro"></a>

Bila Anda menggunakan AWS SDKs untuk membuat bucket, Anda harus membuat klien dan kemudian menggunakan klien untuk mengirim permintaan untuk membuat bucket. Sebagai praktik terbaik, Anda harus membuat klien dan bucket di Wilayah AWS yang sama. Jika Anda tidak menentukan Wilayah saat membuat klien atau bucket, Amazon S3 menggunakan Wilayah default US East (N. Virginia). 

Untuk membuat klien untuk mengakses titik akhir dual-stack, Anda harus menentukan. Wilayah AWS Untuk informasi selengkapnya, lihat titik [akhir tumpukan ganda Amazon S3](https://docs.aws.amazon.com//AmazonS3/latest/dev/dual-stack-endpoints.html#dual-stack-endpoints-description). Untuk daftar yang tersedia Wilayah AWS, lihat [Wilayah dan titik akhir](https://docs.aws.amazon.com/general/latest/gr/s3.html) di. *Referensi Umum AWS* 

Saat Anda membuat klien, Wilayah akan memetakan ke titik akhir spesifik Wilayah. Klien menggunakan titik akhir ini untuk berkomunikasi dengan Amazon S3: `s3.<region>.amazonaws.com`. Jika Wilayah Anda diluncurkan setelah 20 Maret 2019, klien dan bucket Anda harus berada di dalam Wilayah yang sama. Namun, Anda dapat menggunakan klien di Wilayah AS Timur (Virginia Utara) untuk membuat bucket di setiap Wilayah yang diluncurkan sebelum 20 Maret 2019. Untuk informasi selengkapnya, lihat Titik [Akhir Legacy](https://docs.aws.amazon.com//AmazonS3/latest/dev/VirtualHosting.html#s3-legacy-endpoints).

Contoh kode AWS SDK ini melakukan tugas-tugas berikut:
+ **Membuat klien dengan secara eksplisit menentukan Wilayah AWS** — Dalam contoh, klien menggunakan titik akhir `s3.us-west-2.amazonaws.com` untuk berkomunikasi dengan Amazon S3. Anda dapat menentukan Wilayah AWS. Untuk daftar Wilayah AWS, lihat [Wilayah dan titik akhir](https://docs.aws.amazon.com/general/latest/gr/s3.html) dalam *Referensi AWS Umum*. 
+ **Kirim permintaan buat bucket dengan hanya menentukan nama bucket** — Klien mengirimkan permintaan ke Amazon S3 untuk membuat bucket di Wilayah tempat Anda membuat klien. 
+ **Ambil informasi tentang lokasi bucket** — Amazon S3 menyimpan informasi lokasi bucket di subsumber daya *lokasi* yang dikaitkan dengan bucket.

Contoh kode berikut menunjukkan cara menggunakan`CreateBucket`.

------
#### [ .NET ]

**SDK untuk .NET (v4)**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/dotnetv4/S3#code-examples). 

```
    /// <summary>
    /// Shows how to create a new Amazon S3 bucket.
    /// </summary>
    /// <param name="bucketName">The name of the bucket to create.</param>
    /// <returns>A boolean value representing the success or failure of
    /// the bucket creation process.</returns>
    public async Task<bool> CreateBucketAsync(string bucketName)
    {
        try
        {
            var request = new PutBucketRequest
            {
                BucketName = bucketName,
                UseClientRegion = true,
            };

            var response = await _amazonS3.PutBucketAsync(request);
            return response.HttpStatusCode == System.Net.HttpStatusCode.OK;
        }
        catch (AmazonS3Exception ex)
        {
            Console.WriteLine($"Error creating bucket: '{ex.Message}'");
            return false;
        }
    }
```
+  Untuk detail API, lihat [CreateBucket](https://docs.aws.amazon.com/goto/DotNetSDKV4/s3-2006-03-01/CreateBucket)di *Referensi AWS SDK untuk .NET API*. 

**SDK untuk .NET**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/dotnetv3/S3#code-examples). 
Buat ember dengan kunci objek diaktifkan.  

```
    /// <summary>
    /// Create a new Amazon S3 bucket with object lock actions.
    /// </summary>
    /// <param name="bucketName">The name of the bucket to create.</param>
    /// <param name="enableObjectLock">True to enable object lock on the bucket.</param>
    /// <returns>True if successful.</returns>
    public async Task<bool> CreateBucketWithObjectLock(string bucketName, bool enableObjectLock)
    {
        Console.WriteLine($"\tCreating bucket {bucketName} with object lock {enableObjectLock}.");
        try
        {
            var request = new PutBucketRequest
            {
                BucketName = bucketName,
                UseClientRegion = true,
                ObjectLockEnabledForBucket = enableObjectLock,
            };

            var response = await _amazonS3.PutBucketAsync(request);

            return response.HttpStatusCode == System.Net.HttpStatusCode.OK;
        }
        catch (AmazonS3Exception ex)
        {
            Console.WriteLine($"Error creating bucket: '{ex.Message}'");
            return false;
        }
    }
```
+  Untuk detail API, lihat [CreateBucket](https://docs.aws.amazon.com/goto/DotNetSDKV3/s3-2006-03-01/CreateBucket)di *Referensi AWS SDK untuk .NET API*. 

------
#### [ Bash ]

**AWS CLI dengan skrip Bash**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/aws-cli/bash-linux/s3#code-examples). 

```
###############################################################################
# function iecho
#
# This function enables the script to display the specified text only if
# the global variable $VERBOSE is set to true.
###############################################################################
function iecho() {
  if [[ $VERBOSE == true ]]; then
    echo "$@"
  fi
}

###############################################################################
# function errecho
#
# This function outputs everything sent to it to STDERR (standard error output).
###############################################################################
function errecho() {
  printf "%s\n" "$*" 1>&2
}

###############################################################################
# function create-bucket
#
# This function creates the specified bucket in the specified AWS Region, unless
# it already exists.
#
# Parameters:
#       -b bucket_name  -- The name of the bucket to create.
#       -r region_code  -- The code for an AWS Region in which to
#                          create the bucket.
#
# Returns:
#       The URL of the bucket that was created.
#     And:
#       0 - If successful.
#       1 - If it fails.
###############################################################################
function create_bucket() {
  local bucket_name region_code response
  local option OPTARG # Required to use getopts command in a function.

  # bashsupport disable=BP5008
  function usage() {
    echo "function create_bucket"
    echo "Creates an Amazon S3 bucket. You must supply a bucket name:"
    echo "  -b bucket_name    The name of the bucket. It must be globally unique."
    echo "  [-r region_code]    The code for an AWS Region in which the bucket is created."
    echo ""
  }

  # Retrieve the calling parameters.
  while getopts "b:r:h" option; do
    case "${option}" in
      b) bucket_name="${OPTARG}" ;;
      r) region_code="${OPTARG}" ;;
      h)
        usage
        return 0
        ;;
      \?)
        echo "Invalid parameter"
        usage
        return 1
        ;;
    esac
  done

  if [[ -z "$bucket_name" ]]; then
    errecho "ERROR: You must provide a bucket name with the -b parameter."
    usage
    return 1
  fi

  local bucket_config_arg
  # A location constraint for "us-east-1" returns an error.
  if [[ -n "$region_code" ]] && [[ "$region_code" != "us-east-1" ]]; then
    bucket_config_arg="--create-bucket-configuration LocationConstraint=$region_code"
  fi

  iecho "Parameters:\n"
  iecho "    Bucket name:   $bucket_name"
  iecho "    Region code:   $region_code"
  iecho ""

  # If the bucket already exists, we don't want to try to create it.
  if (bucket_exists "$bucket_name"); then
    errecho "ERROR: A bucket with that name already exists. Try again."
    return 1
  fi

  # shellcheck disable=SC2086
  response=$(aws s3api create-bucket \
    --bucket "$bucket_name" \
    $bucket_config_arg)

  # shellcheck disable=SC2181
  if [[ ${?} -ne 0 ]]; then
    errecho "ERROR: AWS reports create-bucket operation failed.\n$response"
    return 1
  fi
}
```
+  Untuk detail API, lihat [CreateBucket](https://docs.aws.amazon.com/goto/aws-cli/s3-2006-03-01/CreateBucket)di *Referensi AWS CLI Perintah*. 

------
#### [ C\$1\$1 ]

**SDK untuk C\$1\$1**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp/example_code/s3#code-examples). 

```
bool AwsDoc::S3::createBucket(const Aws::String &bucketName,
                              const Aws::S3::S3ClientConfiguration &clientConfig) {
    Aws::S3::S3Client client(clientConfig);
    Aws::S3::Model::CreateBucketRequest request;
    request.SetBucket(bucketName);

    if (clientConfig.region != "us-east-1") {
        Aws::S3::Model::CreateBucketConfiguration createBucketConfig;
        createBucketConfig.SetLocationConstraint(
                Aws::S3::Model::BucketLocationConstraintMapper::GetBucketLocationConstraintForName(
                        clientConfig.region));
        request.SetCreateBucketConfiguration(createBucketConfig);
    }

    Aws::S3::Model::CreateBucketOutcome outcome = client.CreateBucket(request);
    if (!outcome.IsSuccess()) {
        auto err = outcome.GetError();
        std::cerr << "Error: createBucket: " <<
                  err.GetExceptionName() << ": " << err.GetMessage() << std::endl;
    } else {
        std::cout << "Created bucket " << bucketName <<
                  " in the specified AWS Region." << std::endl;
    }

    return outcome.IsSuccess();
}
```
+  Untuk detail API, lihat [CreateBucket](https://docs.aws.amazon.com/goto/SdkForCpp/s3-2006-03-01/CreateBucket)di *Referensi AWS SDK untuk C\$1\$1 API*. 

------
#### [ CLI ]

**AWS CLI**  
**Contoh 1: Untuk membuat ember**  
`create-bucket`Contoh berikut membuat bucket bernama`amzn-s3-demo-bucket`:  

```
aws s3api create-bucket \
    --bucket amzn-s3-demo-bucket \
    --region us-east-1
```
Output:  

```
{
    "Location": "/amzn-s3-demo-bucket"
}
```
Lihat informasi yang lebih lengkap di [Membuat bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) dalam *Panduan Pengguna Amazon S3*.  
**Contoh 2: Untuk membuat ember dengan pemilik diberlakukan**  
`create-bucket`Contoh berikut membuat bucket bernama yang menggunakan setelan `amzn-s3-demo-bucket` yang diterapkan pemilik bucket untuk Kepemilikan Objek S3.  

```
aws s3api create-bucket \
    --bucket amzn-s3-demo-bucket \
    --region us-east-1 \
    --object-ownership BucketOwnerEnforced
```
Output:  

```
{
    "Location": "/amzn-s3-demo-bucket"
}
```
Untuk informasi selengkapnya, lihat [Mengontrol kepemilikan objek dan menonaktifkan ACLs](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) di Panduan Pengguna *Amazon S3*.  
**Contoh 3: Untuk membuat bucket di luar wilayah ``us-east-1``**  
`create-bucket`Contoh berikut membuat bucket bernama `amzn-s3-demo-bucket` di `eu-west-1` wilayah tersebut. Daerah di luar `us-east-1` memerlukan yang sesuai `LocationConstraint` untuk ditentukan untuk membuat ember di wilayah yang diinginkan.  

```
aws s3api create-bucket \
    --bucket amzn-s3-demo-bucket \
    --region eu-west-1 \
    --create-bucket-configuration LocationConstraint=eu-west-1
```
Output:  

```
{
    "Location": "http://amzn-s3-demo-bucket.s3.amazonaws.com/"
}
```
Lihat informasi yang lebih lengkap di [Membuat bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) dalam *Panduan Pengguna Amazon S3*.  
+  Untuk detail API, lihat [CreateBucket](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/create-bucket.html)di *Referensi AWS CLI Perintah*. 

------
#### [ Go ]

**SDK untuk Go V2**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/gov2/s3#code-examples). 
Buat bucket dengan konfigurasi default.  

```
import (
	"bytes"
	"context"
	"errors"
	"fmt"
	"io"
	"log"
	"os"
	"time"

	"github.com/aws/aws-sdk-go-v2/aws"
	"github.com/aws/aws-sdk-go-v2/feature/s3/manager"
	"github.com/aws/aws-sdk-go-v2/service/s3"
	"github.com/aws/aws-sdk-go-v2/service/s3/types"
	"github.com/aws/smithy-go"
)

// BucketBasics encapsulates the Amazon Simple Storage Service (Amazon S3) actions
// used in the examples.
// It contains S3Client, an Amazon S3 service client that is used to perform bucket
// and object actions.
type BucketBasics struct {
	S3Client *s3.Client
}



// CreateBucket creates a bucket with the specified name in the specified Region.
func (basics BucketBasics) CreateBucket(ctx context.Context, name string, region string) error {
	_, err := basics.S3Client.CreateBucket(ctx, &s3.CreateBucketInput{
		Bucket: aws.String(name),
		CreateBucketConfiguration: &types.CreateBucketConfiguration{
			LocationConstraint: types.BucketLocationConstraint(region),
		},
	})
	if err != nil {
		var owned *types.BucketAlreadyOwnedByYou
		var exists *types.BucketAlreadyExists
		if errors.As(err, &owned) {
			log.Printf("You already own bucket %s.\n", name)
			err = owned
		} else if errors.As(err, &exists) {
			log.Printf("Bucket %s already exists.\n", name)
			err = exists
		}
	} else {
		err = s3.NewBucketExistsWaiter(basics.S3Client).Wait(
			ctx, &s3.HeadBucketInput{Bucket: aws.String(name)}, time.Minute)
		if err != nil {
			log.Printf("Failed attempt to wait for bucket %s to exist.\n", name)
		}
	}
	return err
}
```
Buat ember dengan penguncian objek dan tunggu sampai ada.  

```
import (
	"bytes"
	"context"
	"errors"
	"fmt"
	"log"
	"time"

	"github.com/aws/aws-sdk-go-v2/aws"
	"github.com/aws/aws-sdk-go-v2/feature/s3/manager"
	"github.com/aws/aws-sdk-go-v2/service/s3"
	"github.com/aws/aws-sdk-go-v2/service/s3/types"
	"github.com/aws/smithy-go"
)

// S3Actions wraps S3 service actions.
type S3Actions struct {
	S3Client  *s3.Client
	S3Manager *manager.Uploader
}



// CreateBucketWithLock creates a new S3 bucket with optional object locking enabled
// and waits for the bucket to exist before returning.
func (actor S3Actions) CreateBucketWithLock(ctx context.Context, bucket string, region string, enableObjectLock bool) (string, error) {
	input := &s3.CreateBucketInput{
		Bucket: aws.String(bucket),
		CreateBucketConfiguration: &types.CreateBucketConfiguration{
			LocationConstraint: types.BucketLocationConstraint(region),
		},
	}

	if enableObjectLock {
		input.ObjectLockEnabledForBucket = aws.Bool(true)
	}

	_, err := actor.S3Client.CreateBucket(ctx, input)
	if err != nil {
		var owned *types.BucketAlreadyOwnedByYou
		var exists *types.BucketAlreadyExists
		if errors.As(err, &owned) {
			log.Printf("You already own bucket %s.\n", bucket)
			err = owned
		} else if errors.As(err, &exists) {
			log.Printf("Bucket %s already exists.\n", bucket)
			err = exists
		}
	} else {
		err = s3.NewBucketExistsWaiter(actor.S3Client).Wait(
			ctx, &s3.HeadBucketInput{Bucket: aws.String(bucket)}, time.Minute)
		if err != nil {
			log.Printf("Failed attempt to wait for bucket %s to exist.\n", bucket)
		}
	}

	return bucket, err
}
```
+  Untuk detail API, lihat [CreateBucket](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/s3#Client.CreateBucket)di *Referensi AWS SDK untuk Go API*. 

------
#### [ Java ]

**SDK untuk Java 2.x**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/s3#code-examples). 
Buat bucket.  

```
    /**
     * Creates an S3 bucket asynchronously.
     *
     * @param bucketName the name of the S3 bucket to create
     * @return a {@link CompletableFuture} that completes when the bucket is created and ready
     * @throws RuntimeException if there is a failure while creating the bucket
     */
    public CompletableFuture<Void> createBucketAsync(String bucketName) {
        CreateBucketRequest bucketRequest = CreateBucketRequest.builder()
            .bucket(bucketName)
            .build();

        CompletableFuture<CreateBucketResponse> response = getAsyncClient().createBucket(bucketRequest);
        return response.thenCompose(resp -> {
            S3AsyncWaiter s3Waiter = getAsyncClient().waiter();
            HeadBucketRequest bucketRequestWait = HeadBucketRequest.builder()
                .bucket(bucketName)
                .build();

            CompletableFuture<WaiterResponse<HeadBucketResponse>> waiterResponseFuture =
                s3Waiter.waitUntilBucketExists(bucketRequestWait);
            return waiterResponseFuture.thenAccept(waiterResponse -> {
                waiterResponse.matched().response().ifPresent(headBucketResponse -> {
                    logger.info(bucketName + " is ready");
                });
            });
        }).whenComplete((resp, ex) -> {
            if (ex != null) {
                throw new RuntimeException("Failed to create bucket", ex);
            }
        });
    }
```
Buat ember dengan kunci objek diaktifkan.  

```
    // Create a new Amazon S3 bucket with object lock options.
    public void createBucketWithLockOptions(boolean enableObjectLock, String bucketName) {
        S3Waiter s3Waiter = getClient().waiter();
        CreateBucketRequest bucketRequest = CreateBucketRequest.builder()
            .bucket(bucketName)
            .objectLockEnabledForBucket(enableObjectLock)
            .build();

        getClient().createBucket(bucketRequest);
        HeadBucketRequest bucketRequestWait = HeadBucketRequest.builder()
            .bucket(bucketName)
            .build();

        // Wait until the bucket is created and print out the response.
        s3Waiter.waitUntilBucketExists(bucketRequestWait);
        System.out.println(bucketName + " is ready");
    }
```
+  Untuk detail API, lihat [CreateBucket](https://docs.aws.amazon.com/goto/SdkForJavaV2/s3-2006-03-01/CreateBucket)di *Referensi AWS SDK for Java 2.x API*. 

------
#### [ JavaScript ]

**SDK untuk JavaScript (v3)**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3/example_code/s3#code-examples). 
Buat bucket.  

```
import {
  BucketAlreadyExists,
  BucketAlreadyOwnedByYou,
  CreateBucketCommand,
  S3Client,
  waitUntilBucketExists,
} from "@aws-sdk/client-s3";

/**
 * Create an Amazon S3 bucket.
 * @param {{ bucketName: string }} config
 */
export const main = async ({ bucketName }) => {
  const client = new S3Client({});

  try {
    const { Location } = await client.send(
      new CreateBucketCommand({
        // The name of the bucket. Bucket names are unique and have several other constraints.
        // See https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html
        Bucket: bucketName,
      }),
    );
    await waitUntilBucketExists({ client }, { Bucket: bucketName });
    console.log(`Bucket created with location ${Location}`);
  } catch (caught) {
    if (caught instanceof BucketAlreadyExists) {
      console.error(
        `The bucket "${bucketName}" already exists in another AWS account. Bucket names must be globally unique.`,
      );
    }
    // WARNING: If you try to create a bucket in the North Virginia region,
    // and you already own a bucket in that region with the same name, this
    // error will not be thrown. Instead, the call will return successfully
    // and the ACL on that bucket will be reset.
    else if (caught instanceof BucketAlreadyOwnedByYou) {
      console.error(
        `The bucket "${bucketName}" already exists in this AWS account.`,
      );
    } else {
      throw caught;
    }
  }
};
```
+  Untuk informasi selengkapnya, lihat [AWS SDK untuk JavaScript Panduan Developer](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/s3-example-creating-buckets.html#s3-example-creating-buckets-new-bucket-2). 
+  Untuk detail API, lihat [CreateBucket](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/s3/command/CreateBucketCommand)di *Referensi AWS SDK untuk JavaScript API*. 

------
#### [ Kotlin ]

**SDK untuk Kotlin**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/kotlin/services/s3#code-examples). 

```
suspend fun createNewBucket(bucketName: String) {
    val request =
        CreateBucketRequest {
            bucket = bucketName
        }

    S3Client.fromEnvironment { region = "us-east-1" }.use { s3 ->
        s3.createBucket(request)
        println("$bucketName is ready")
    }
}
```
+  Untuk detail API, lihat [CreateBucket](https://sdk.amazonaws.com/kotlin/api/latest/index.html)di *AWS SDK untuk referensi API Kotlin*. 

------
#### [ PHP ]

**SDK untuk PHP**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code/s3#code-examples). 
Buat bucket.  

```
        $s3client = new Aws\S3\S3Client(['region' => 'us-west-2']);

        try {
            $this->s3client->createBucket([
                'Bucket' => $this->bucketName,
                'CreateBucketConfiguration' => ['LocationConstraint' => $region],
            ]);
            echo "Created bucket named: $this->bucketName \n";
        } catch (Exception $exception) {
            echo "Failed to create bucket $this->bucketName with error: " . $exception->getMessage();
            exit("Please fix error with bucket creation before continuing.");
        }
```
+  Untuk detail API, lihat [CreateBucket](https://docs.aws.amazon.com/goto/SdkForPHPV3/s3-2006-03-01/CreateBucket)di *Referensi AWS SDK untuk PHP API*. 

------
#### [ Python ]

**SDK untuk Python (Boto3)**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/python/example_code/s3/s3_basics#code-examples). 
Buat bucket dengan pengaturan default.  

```
class BucketWrapper:
    """Encapsulates S3 bucket actions."""

    def __init__(self, bucket):
        """
        :param bucket: A Boto3 Bucket resource. This is a high-level resource in Boto3
                       that wraps bucket actions in a class-like structure.
        """
        self.bucket = bucket
        self.name = bucket.name


    def create(self, region_override=None):
        """
        Create an Amazon S3 bucket in the default Region for the account or in the
        specified Region.

        :param region_override: The Region in which to create the bucket. If this is
                                not specified, the Region configured in your shared
                                credentials is used.
        """
        if region_override is not None:
            region = region_override
        else:
            region = self.bucket.meta.client.meta.region_name
        try:
            self.bucket.create(CreateBucketConfiguration={"LocationConstraint": region})

            self.bucket.wait_until_exists()
            logger.info("Created bucket '%s' in region=%s", self.bucket.name, region)
        except ClientError as error:
            logger.exception(
                "Couldn't create bucket named '%s' in region=%s.",
                self.bucket.name,
                region,
            )
            raise error
```
Buat bucket berversi dengan konfigurasi siklus hidup.  

```
def create_versioned_bucket(bucket_name, prefix):
    """
    Creates an Amazon S3 bucket, enables it for versioning, and configures a lifecycle
    that expires noncurrent object versions after 7 days.

    Adding a lifecycle configuration to a versioned bucket is a best practice.
    It helps prevent objects in the bucket from accumulating a large number of
    noncurrent versions, which can slow down request performance.

    Usage is shown in the usage_demo_single_object function at the end of this module.

    :param bucket_name: The name of the bucket to create.
    :param prefix: Identifies which objects are automatically expired under the
                   configured lifecycle rules.
    :return: The newly created bucket.
    """
    try:
        bucket = s3.create_bucket(
            Bucket=bucket_name,
            CreateBucketConfiguration={
                "LocationConstraint": s3.meta.client.meta.region_name
            },
        )
        logger.info("Created bucket %s.", bucket.name)
    except ClientError as error:
        if error.response["Error"]["Code"] == "BucketAlreadyOwnedByYou":
            logger.warning("Bucket %s already exists! Using it.", bucket_name)
            bucket = s3.Bucket(bucket_name)
        else:
            logger.exception("Couldn't create bucket %s.", bucket_name)
            raise

    try:
        bucket.Versioning().enable()
        logger.info("Enabled versioning on bucket %s.", bucket.name)
    except ClientError:
        logger.exception("Couldn't enable versioning on bucket %s.", bucket.name)
        raise

    try:
        expiration = 7
        bucket.LifecycleConfiguration().put(
            LifecycleConfiguration={
                "Rules": [
                    {
                        "Status": "Enabled",
                        "Prefix": prefix,
                        "NoncurrentVersionExpiration": {"NoncurrentDays": expiration},
                    }
                ]
            }
        )
        logger.info(
            "Configured lifecycle to expire noncurrent versions after %s days "
            "on bucket %s.",
            expiration,
            bucket.name,
        )
    except ClientError as error:
        logger.warning(
            "Couldn't configure lifecycle on bucket %s because %s. "
            "Continuing anyway.",
            bucket.name,
            error,
        )

    return bucket
```
+  Untuk detail API, lihat [CreateBucket](https://docs.aws.amazon.com/goto/boto3/s3-2006-03-01/CreateBucket)di *AWS SDK for Python (Boto3) Referensi* API. 

------
#### [ Ruby ]

**SDK untuk Ruby**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/ruby/example_code/s3#code-examples). 

```
require 'aws-sdk-s3'

# Wraps Amazon S3 bucket actions.
class BucketCreateWrapper
  attr_reader :bucket

  # @param bucket [Aws::S3::Bucket] An Amazon S3 bucket initialized with a name. This is a client-side object until
  #                                 create is called.
  def initialize(bucket)
    @bucket = bucket
  end

  # Creates an Amazon S3 bucket in the specified AWS Region.
  #
  # @param region [String] The Region where the bucket is created.
  # @return [Boolean] True when the bucket is created; otherwise, false.
  def create?(region)
    @bucket.create(create_bucket_configuration: { location_constraint: region })
    true
  rescue Aws::Errors::ServiceError => e
    puts "Couldn't create bucket. Here's why: #{e.message}"
    false
  end

  # Gets the Region where the bucket is located.
  #
  # @return [String] The location of the bucket.
  def location
    if @bucket.nil?
      'None. You must create a bucket before you can get its location!'
    else
      @bucket.client.get_bucket_location(bucket: @bucket.name).location_constraint
    end
  rescue Aws::Errors::ServiceError => e
    "Couldn't get the location of #{@bucket.name}. Here's why: #{e.message}"
  end
end

# Example usage:
def run_demo
  region = "us-west-2"
  wrapper = BucketCreateWrapper.new(Aws::S3::Bucket.new("amzn-s3-demo-bucket-#{Random.uuid}"))
  return unless wrapper.create?(region)

  puts "Created bucket #{wrapper.bucket.name}."
  puts "Your bucket's region is: #{wrapper.location}"
end

run_demo if $PROGRAM_NAME == __FILE__
```
+  Untuk detail API, lihat [CreateBucket](https://docs.aws.amazon.com/goto/SdkForRubyV3/s3-2006-03-01/CreateBucket)di *Referensi AWS SDK untuk Ruby API*. 

------
#### [ Rust ]

**SDK for Rust**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/rustv1/examples/s3#code-examples). 

```
pub async fn create_bucket(
    client: &aws_sdk_s3::Client,
    bucket_name: &str,
    region: &aws_config::Region,
) -> Result<Option<aws_sdk_s3::operation::create_bucket::CreateBucketOutput>, S3ExampleError> {
    let constraint = aws_sdk_s3::types::BucketLocationConstraint::from(region.to_string().as_str());
    let cfg = aws_sdk_s3::types::CreateBucketConfiguration::builder()
        .location_constraint(constraint)
        .build();
    let create = client
        .create_bucket()
        .create_bucket_configuration(cfg)
        .bucket(bucket_name)
        .send()
        .await;

    // BucketAlreadyExists and BucketAlreadyOwnedByYou are not problems for this task.
    create.map(Some).or_else(|err| {
        if err
            .as_service_error()
            .map(|se| se.is_bucket_already_exists() || se.is_bucket_already_owned_by_you())
            == Some(true)
        {
            Ok(None)
        } else {
            Err(S3ExampleError::from(err))
        }
    })
}
```
+  Untuk detail API, lihat [CreateBucket](https://docs.rs/aws-sdk-s3/latest/aws_sdk_s3/client/struct.Client.html#method.create_bucket)*referensi AWS SDK for Rust API*. 

------
#### [ SAP ABAP ]

**SDK for SAP ABAP**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/sap-abap/services/s3#code-examples). 

```
    TRY.
        " determine our region from our session
        DATA(lv_region) = CONV /aws1/s3_bucketlocationcnstrnt( lo_session->get_region( ) ).
        DATA lo_constraint TYPE REF TO /aws1/cl_s3_createbucketconf.
        " When in the us-east-1 region, you must not specify a constraint
        " In all other regions, specify the region as the constraint
        IF lv_region = 'us-east-1'.
          CLEAR lo_constraint.
        ELSE.
          lo_constraint = NEW /aws1/cl_s3_createbucketconf( lv_region ).
        ENDIF.

        lo_s3->createbucket(
            iv_bucket = iv_bucket_name
            io_createbucketconfiguration  = lo_constraint ).
        MESSAGE 'S3 bucket created.' TYPE 'I'.
      CATCH /aws1/cx_s3_bucketalrdyexists.
        MESSAGE 'Bucket name already exists.' TYPE 'E'.
      CATCH /aws1/cx_s3_bktalrdyownedbyyou.
        MESSAGE 'Bucket already exists and is owned by you.' TYPE 'E'.
    ENDTRY.
```
+  Untuk detail API, lihat [CreateBucket](https://docs.aws.amazon.com/sdk-for-sap-abap/v1/api/latest/index.html)di *AWS SDK untuk referensi SAP ABAP* API. 

------
#### [ Swift ]

**SDK para Swift**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/swift/example_code/s3/basics#code-examples). 

```
import AWSS3

    public func createBucket(name: String) async throws {
        var input = CreateBucketInput(
            bucket: name
        )
        
        // For regions other than "us-east-1", you must set the locationConstraint in the createBucketConfiguration.
        // For more information, see LocationConstraint in the S3 API guide.
        // https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html#API_CreateBucket_RequestBody
        if let region = configuration.region {
            if region != "us-east-1" {
                input.createBucketConfiguration = S3ClientTypes.CreateBucketConfiguration(locationConstraint: S3ClientTypes.BucketLocationConstraint(rawValue: region))
            }
        }

        do {
            _ = try await client.createBucket(input: input)
        }
        catch let error as BucketAlreadyOwnedByYou {
            print("The bucket '\(name)' already exists and is owned by you. You may wish to ignore this exception.")
            throw error
        }
        catch {
            print("ERROR: ", dump(error, name: "Creating a bucket"))
            throw error
        }
    }
```
+  Untuk detail API, lihat referensi [CreateBucket AWS](https://sdk.amazonaws.com/swift/api/awss3/latest/documentation/awss3/s3client/createbucket(input:))*SDK untuk Swift API*. 

------

**catatan**  
Anda juga dapat menggunakan bucket Amazon S3 dari akun lain, tetapi Anda mungkin perlu membuat kebijakan untuk bucket yang memberikan izin akses. AWS Config Untuk informasi tentang pemberian izin ke bucket Amazon S3, [Izin untuk Bucket Amazon S3 untuk AWS Config Saluran Pengiriman](s3-bucket-policy.md) lihat, lalu buka. [Langkah 2: Membuat Topik Amazon SNS](#gs-cli-create-snstopic)

## Langkah 2: Membuat Topik Amazon SNS
<a name="gs-cli-create-snstopic"></a>

Jika Anda sudah memiliki topik Amazon SNS di akun Anda dan ingin menggunakannya, lewati langkah ini dan buka. [Langkah 3: Membuat Peran IAM](#gs-cli-create-iamrole)

### Menggunakan konsol SNS
<a name="create-snstopic"></a>

**Untuk membuat topik Amazon SNS**

1. [Buka konsol Amazon SNS di https://console.aws.amazon.com/sns/ v3/home.](https://console.aws.amazon.com/sns/v3/home)

1. Lakukan salah satu tindakan berikut:
   + Jika tidak ada topik yang pernah dibuat di bawah Anda Akun AWS sebelumnya, baca deskripsi Amazon SNS di beranda.
   + Jika topik telah dibuat di bawah Akun AWS sebelumnya, pada panel navigasi, pilih **Topik**.

1. Di halaman **Topics (Topik)**, pilih **Create topic (Buat topik)**.

1. Di halaman **Create topic (Buat topik)**, di bagian **Details (Detail)**, lakukan hal-hal berikut:

   1. Untuk **Type (Jenis)**, pilih jenis topik (**Standar** atau **FIFO**).

   1. Masukkan **Nama** untuk topik. Untuk [topik FIFO](https://docs.aws.amazon.com/sns/latest/dg/sns-fifo-topics.html), tambahkan **.fifo** di akhir nama.

   1. (Opsional) Masukkan **Nama tampilan** untuk topik.

   1. (Opsional) Untuk topik FIFO, Anda dapat memilih **deduplikasi pesan berbasis konten** untuk mengaktifkan deduplikasi pesan default. Untuk informasi selengkapnya, lihat [Deduplikasi pesan untuk topik FIFO](https://docs.aws.amazon.com/sns/latest/dg/fifo-message-dedup.html).

1. (Opsional) Perluas bagian **Encryption (Enkripsi)** dan lakukan hal-hal berikut ini. Untuk informasi selengkapnya, lihat [Enkripsi diam](https://docs.aws.amazon.com/sns/latest/dg/sns-server-side-encryption.html).

   1. Pilih **Enable encryption (Aktifkan enkripsi)**.

   1. Tentukan kunci utama pelanggan (customer master key/CMK). Untuk informasi selengkapnya, lihat [Syarat kunci](https://docs.aws.amazon.com/sns/latest/dg/sns-server-side-encryption.html#sse-key-terms).

      Untuk setiap jenis CMK, **Description (Deskripsi)**, **Account (Akun)**, dan **ARN CMK** ditampilkan.
**penting**  
Jika Anda bukan pemilik CMK, atau jika Anda masuk dengan akun yang tidak memiliki izin `kms:ListAliases` dan `kms:DescribeKey`, Anda tidak akan dapat melihat informasi tentang CMK di konsol Amazon SNS.  
Minta pemilik CMK untuk memberi Anda izin tersebut. Untuk informasi selengkapnya, lihat [Izin API AWS KMS : Referensi Tindakan dan Sumber Daya](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) dalam *Panduan Developer AWS Key Management Service *.
      + CMK AWS terkelola untuk Amazon **SNS (Defaultalias/aws/sns) dipilih secara default**.
**catatan**  
Ingatlah hal-hal berikut ini:  
Pertama kali Anda menggunakan Konsol Manajemen AWS untuk menentukan CMK AWS terkelola untuk Amazon SNS untuk suatu topik AWS KMS , membuat AWS CMK terkelola untuk Amazon SNS.
Atau, saat pertama kali Anda menggunakan `Publish` tindakan pada topik dengan SSE diaktifkan, AWS KMS membuat CMK AWS terkelola untuk Amazon SNS.
      + Untuk menggunakan CMK kustom dari Anda Akun AWS, pilih bidang **Customer master key (CMK)** dan kemudian pilih CMK kustom dari daftar.
**catatan**  
Untuk petunjuk cara membuat kustom CMKs, lihat [Membuat Kunci](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html) di *Panduan AWS Key Management Service Pengembang*
      + Untuk menggunakan ARN CMK khusus dari akun Akun AWS Anda atau dari akun AWS lain, masukkan ke **bidang Customer Master Key (CMK**).

1. (Opsional) Secara default, hanya pemilik topik yang dapat menerbitkan atau berlangganan topik. Untuk mengkonfigurasi izin akses tambahan, perluas bagian **Access policy (Kebijakan akses)**. Untuk informasi selengkapnya, lihat [Manajemen identitas dan akses di Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-authentication-and-access-control.html) dan [Contoh kasus untuk kontrol akses Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-access-policy-use-cases.html). 
**catatan**  
Saat Anda membuat topik menggunakan konsol tersebut, kebijakan default menggunakan kunci syarat `aws:SourceOwner`. Kunci ini sama dengan `aws:SourceAccount`. 

1. (Opsional) Untuk mengkonfigurasi bagaimana Amazon SNS mencoba ulang upaya pengiriman pesan yang gagal, perluas bagian **Kebijakan pengiriman ulang (HTTP/S)**. Untuk informasi selengkapnya, lihat [percobaan ulang pengiriman pesan Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-message-delivery-retries.html).

1. (Opsional) Untuk mengonfigurasi cara Amazon SNS mencatat pengiriman pesan ke CloudWatch, perluas bagian **Pencatatan status pengiriman**. Untuk informasi selengkapnya, lihat [status pengiriman pesan Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-topic-attributes.html).

1. (Opsional) Untuk menambahkan tag metadata ke topik, perluas bagian **Tag**, masukkan **Kunci** dan **Nilai** (opsional) dan pilih **Add tag (Tambahkan tag)**. Untuk informasi selengkapnya, lihat penandaan [topik Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-tags.html).

1. Pilih **Buat topik**.

   Topik dibuat dan ***MyTopic***halaman ditampilkan.

   **Nama**, **ARN** (opsional) **Nama tampilan** topik, dan ID akun AWS **Pemilik topik** ditampilkan di bagian **Detail**.

1. Salin topik ARN ke clipboard, misalnya:

   ```
   arn:aws:sns:us-east-2:123456789012:MyTopic
   ```

**Untuk berlangganan alamat email ke topik Amazon SNS**

1. [Buka konsol Amazon SNS di https://console.aws.amazon.com/sns/ v3/home.](https://console.aws.amazon.com/sns/v3/home)

1. Di panel navigasi kiri, pilih **Subscriptions (Langganan)**.

1. Di halaman **Subscriptions (Langganan)**, pilih **Create subscription (Buat langganan)**.

1. Di halaman **Create subscription (Buat langganan)**, di bagian **Details (Detail)**, lakukan:

   1. Untuk **Topic ARN (ARN topik)**, pilih Amazon Resource Name (ARN) dari topik.

   1. Untuk **Protocol (Protokol)**, pilih tipe endpoint.  Tipe endpoint yang tersedia adalah:
      + [HTTP/HTTPS](https://docs.aws.amazon.com/sns/latest/dg/sns-http-https-endpoint-as-subscriber.html)
      + [Email/email-JSON](https://docs.aws.amazon.com/sns/latest/dg/sns-email-notifications.html)
      + [Amazon Data Firehose](https://docs.aws.amazon.com/sns/latest/dg/sns-firehose-as-subscriber.html)
      + [Amazon SQS](https://docs.aws.amazon.com/sns/latest/dg/sns-sqs-as-subscriber.html)
**catatan**  
Untuk berlangganan [Topik SNS FIFO](https://docs.aws.amazon.com/sns/latest/dg/sns-fifo-topics.html), pilih opsi ini.
      + [AWS Lambda](https://docs.aws.amazon.com/sns/latest/dg/sns-lambda-as-subscriber.html)
      + [Titik akhir aplikasi platform](https://docs.aws.amazon.com/sns/latest/dg/sns-mobile-application-as-subscriber.html)
      + [SMS](https://docs.aws.amazon.com/sns/latest/dg/sns-mobile-phone-number-as-subscriber.html)

   1. Untuk **Endpoint**, masukkan nilai endpoint, seperti alamat email atau ARN antrean Amazon SQS.

   1. Hanya titik akhir Firehose: Untuk ARN **peran Langganan, tentukan ARN** dari peran IAM yang Anda buat untuk menulis ke aliran pengiriman Firehose. Untuk informasi selengkapnya, lihat [Prasyarat untuk berlangganan aliran pengiriman Firehose](https://docs.aws.amazon.com/sns/latest/dg/prereqs-kinesis-data-firehose.html) ke topik Amazon SNS.

   1. (Opsional) Untuk Firehose, Amazon SQS, endpoint HTTP/S , Anda juga dapat mengaktifkan pengiriman pesan mentah. Untuk informasi selengkapnya, lihat [pengiriman pesan mentah Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-large-payload-raw-message-delivery.html).

   1. (Opsional) Untuk mengkonfigurasi kebijakan filter, perluas bagian **Subscription filter policy (Kebijakan filter langganan)**. Untuk informasi selengkapnya, lihat [kebijakan filter langganan Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-subscription-filter-policies.html).

   1. (Opsional) Untuk mengonfigurasi antrean surat mati untuk berlanggana, perluas bagian **Redrive policy (dead-letter queue) (Kebijakan redrive (antrean surat mati))**. Untuk informasi selengkapnya, lihat [antrian surat mati Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-dead-letter-queues.html) (). DLQs

   1. Pilih **Create subscription (Buat langganan)**.

      Konsol tersebut membuat langganan dan membuka halaman **Details (Detail)** langganan.

### Menggunakan AWS SDKs
<a name="create-snstopic-intro"></a>

Untuk menggunakan AWS SDK, Anda harus mengonfigurasinya dengan kredensi Anda. Untuk informasi selengkapnya, lihat [File konfigurasi dan kredensial bersama](https://docs.aws.amazon.com/sdkref/latest/guide/creds-config-files.html) di Panduan Referensi *Alat AWS SDKs dan Alat*.

Contoh kode berikut menunjukkan cara menggunakan`CreateTopic`.

------
#### [ .NET ]

**SDK untuk .NET**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/dotnetv3/SNS#code-examples). 
Buat topik dengan nama tertentu.  

```
    using System;
    using System.Threading.Tasks;
    using Amazon.SimpleNotificationService;
    using Amazon.SimpleNotificationService.Model;

    /// <summary>
    /// This example shows how to use Amazon Simple Notification Service
    /// (Amazon SNS) to add a new Amazon SNS topic.
    /// </summary>
    public class CreateSNSTopic
    {
        public static async Task Main()
        {
            string topicName = "ExampleSNSTopic";

            IAmazonSimpleNotificationService client = new AmazonSimpleNotificationServiceClient();

            var topicArn = await CreateSNSTopicAsync(client, topicName);
            Console.WriteLine($"New topic ARN: {topicArn}");
        }

        /// <summary>
        /// Creates a new SNS topic using the supplied topic name.
        /// </summary>
        /// <param name="client">The initialized SNS client object used to
        /// create the new topic.</param>
        /// <param name="topicName">A string representing the topic name.</param>
        /// <returns>The Amazon Resource Name (ARN) of the created topic.</returns>
        public static async Task<string> CreateSNSTopicAsync(IAmazonSimpleNotificationService client, string topicName)
        {
            var request = new CreateTopicRequest
            {
                Name = topicName,
            };

            var response = await client.CreateTopicAsync(request);

            return response.TopicArn;
        }
    }
```
Buat topik baru dengan nama dan atribut FIFO dan de-duplikasi tertentu.  

```
    /// <summary>
    /// Create a new topic with a name and specific FIFO and de-duplication attributes.
    /// </summary>
    /// <param name="topicName">The name for the topic.</param>
    /// <param name="useFifoTopic">True to use a FIFO topic.</param>
    /// <param name="useContentBasedDeduplication">True to use content-based de-duplication.</param>
    /// <returns>The ARN of the new topic.</returns>
    public async Task<string> CreateTopicWithName(string topicName, bool useFifoTopic, bool useContentBasedDeduplication)
    {
        var createTopicRequest = new CreateTopicRequest()
        {
            Name = topicName,
        };

        if (useFifoTopic)
        {
            // Update the name if it is not correct for a FIFO topic.
            if (!topicName.EndsWith(".fifo"))
            {
                createTopicRequest.Name = topicName + ".fifo";
            }

            // Add the attributes from the method parameters.
            createTopicRequest.Attributes = new Dictionary<string, string>
            {
                { "FifoTopic", "true" }
            };
            if (useContentBasedDeduplication)
            {
                createTopicRequest.Attributes.Add("ContentBasedDeduplication", "true");
            }
        }

        var createResponse = await _amazonSNSClient.CreateTopicAsync(createTopicRequest);
        return createResponse.TopicArn;
    }
```
+  Untuk detail API, lihat [CreateTopic](https://docs.aws.amazon.com/goto/DotNetSDKV3/sns-2010-03-31/CreateTopic)di *Referensi AWS SDK untuk .NET API*. 

------
#### [ C\$1\$1 ]

**SDK untuk C\$1\$1**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp/example_code/sns#code-examples). 

```
//! Create an Amazon Simple Notification Service (Amazon SNS) topic.
/*!
  \param topicName: An Amazon SNS topic name.
  \param topicARNResult: String to return the Amazon Resource Name (ARN) for the topic.
  \param clientConfiguration: AWS client configuration.
  \return bool: Function succeeded.
 */
bool AwsDoc::SNS::createTopic(const Aws::String &topicName,
                              Aws::String &topicARNResult,
                              const Aws::Client::ClientConfiguration &clientConfiguration) {
    Aws::SNS::SNSClient snsClient(clientConfiguration);

    Aws::SNS::Model::CreateTopicRequest request;
    request.SetName(topicName);

    const Aws::SNS::Model::CreateTopicOutcome outcome = snsClient.CreateTopic(request);

    if (outcome.IsSuccess()) {
        topicARNResult = outcome.GetResult().GetTopicArn();
        std::cout << "Successfully created an Amazon SNS topic " << topicName
                  << " with topic ARN '" << topicARNResult
                  << "'." << std::endl;

    }
    else {
        std::cerr << "Error creating topic " << topicName << ":" <<
                  outcome.GetError().GetMessage() << std::endl;
        topicARNResult.clear();
    }

    return outcome.IsSuccess();
}
```
+  Untuk detail API, lihat [CreateTopic](https://docs.aws.amazon.com/goto/SdkForCpp/sns-2010-03-31/CreateTopic)di *Referensi AWS SDK untuk C\$1\$1 API*. 

------
#### [ CLI ]

**AWS CLI**  
**Untuk membuat topik SNS**  
`create-topic`Contoh berikut membuat topik SNS bernama`my-topic`.  

```
aws sns create-topic \
    --name my-topic
```
Output:  

```
{
    "ResponseMetadata": {
        "RequestId": "1469e8d7-1642-564e-b85d-a19b4b341f83"
    },
    "TopicArn": "arn:aws:sns:us-west-2:123456789012:my-topic"
}
```
Untuk informasi selengkapnya, lihat [Menggunakan Antarmuka Baris AWS Perintah dengan Amazon SQS dan Amazon SNS](https://docs.aws.amazon.com/cli/latest/userguide/cli-sqs-queue-sns-topic.html) di Panduan Pengguna Antarmuka *Baris AWS Perintah*.  
+  Untuk detail API, lihat [CreateTopic](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/create-topic.html)di *Referensi AWS CLI Perintah*. 

------
#### [ Go ]

**SDK untuk Go V2**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/gov2/workflows/topics_and_queues#code-examples). 

```
import (
	"context"
	"encoding/json"
	"log"

	"github.com/aws/aws-sdk-go-v2/aws"
	"github.com/aws/aws-sdk-go-v2/service/sns"
	"github.com/aws/aws-sdk-go-v2/service/sns/types"
)

// SnsActions encapsulates the Amazon Simple Notification Service (Amazon SNS) actions
// used in the examples.
type SnsActions struct {
	SnsClient *sns.Client
}



// CreateTopic creates an Amazon SNS topic with the specified name. You can optionally
// specify that the topic is created as a FIFO topic and whether it uses content-based
// deduplication instead of ID-based deduplication.
func (actor SnsActions) CreateTopic(ctx context.Context, topicName string, isFifoTopic bool, contentBasedDeduplication bool) (string, error) {
	var topicArn string
	topicAttributes := map[string]string{}
	if isFifoTopic {
		topicAttributes["FifoTopic"] = "true"
	}
	if contentBasedDeduplication {
		topicAttributes["ContentBasedDeduplication"] = "true"
	}
	topic, err := actor.SnsClient.CreateTopic(ctx, &sns.CreateTopicInput{
		Name:       aws.String(topicName),
		Attributes: topicAttributes,
	})
	if err != nil {
		log.Printf("Couldn't create topic %v. Here's why: %v\n", topicName, err)
	} else {
		topicArn = *topic.TopicArn
	}

	return topicArn, err
}
```
+  Untuk detail API, lihat [CreateTopic](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/sns#Client.CreateTopic)di *Referensi AWS SDK untuk Go API*. 

------
#### [ Java ]

**SDK untuk Java 2.x**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/sns#code-examples). 

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sns.SnsClient;
import software.amazon.awssdk.services.sns.model.CreateTopicRequest;
import software.amazon.awssdk.services.sns.model.CreateTopicResponse;
import software.amazon.awssdk.services.sns.model.SnsException;

/**
 * Before running this Java V2 code example, set up your development
 * environment, including your credentials.
 *
 * For more information, see the following documentation topic:
 *
 * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
 */
public class CreateTopic {
    public static void main(String[] args) {
        final String usage = """

                Usage:    <topicName>

                Where:
                   topicName - The name of the topic to create (for example, mytopic).

                """;

        if (args.length != 1) {
            System.out.println(usage);
            System.exit(1);
        }

        String topicName = args[0];
        System.out.println("Creating a topic with name: " + topicName);
        SnsClient snsClient = SnsClient.builder()
                .region(Region.US_EAST_1)
                .build();

        String arnVal = createSNSTopic(snsClient, topicName);
        System.out.println("The topic ARN is" + arnVal);
        snsClient.close();
    }

    public static String createSNSTopic(SnsClient snsClient, String topicName) {
        CreateTopicResponse result;
        try {
            CreateTopicRequest request = CreateTopicRequest.builder()
                    .name(topicName)
                    .build();

            result = snsClient.createTopic(request);
            return result.topicArn();

        } catch (SnsException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
        return "";
    }
}
```
+  Untuk detail API, lihat [CreateTopic](https://docs.aws.amazon.com/goto/SdkForJavaV2/sns-2010-03-31/CreateTopic)di *Referensi AWS SDK for Java 2.x API*. 

------
#### [ JavaScript ]

**SDK untuk JavaScript (v3)**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3/example_code/sns#code-examples). 
Buat klien dalam modul terpisah dan ekspor klien tersebut.  

```
import { SNSClient } from "@aws-sdk/client-sns";

// The AWS Region can be provided here using the `region` property. If you leave it blank
// the SDK will default to the region set in your AWS config.
export const snsClient = new SNSClient({});
```
Mengimpor modul SDK dan klien dan memanggil API.  

```
import { CreateTopicCommand } from "@aws-sdk/client-sns";
import { snsClient } from "../libs/snsClient.js";

/**
 * @param {string} topicName - The name of the topic to create.
 */
export const createTopic = async (topicName = "TOPIC_NAME") => {
  const response = await snsClient.send(
    new CreateTopicCommand({ Name: topicName }),
  );
  console.log(response);
  // {
  //   '$metadata': {
  //     httpStatusCode: 200,
  //     requestId: '087b8ad2-4593-50c4-a496-d7e90b82cf3e',
  //     extendedRequestId: undefined,
  //     cfId: undefined,
  //     attempts: 1,
  //     totalRetryDelay: 0
  //   },
  //   TopicArn: 'arn:aws:sns:us-east-1:xxxxxxxxxxxx:TOPIC_NAME'
  // }
  return response;
};
```
+  Untuk informasi selengkapnya, silakan lihat [Panduan Developer AWS SDK untuk JavaScript](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/sns-examples-managing-topics.html#sns-examples-managing-topics-createtopic). 
+  Untuk detail API, lihat [CreateTopic](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/sns/command/CreateTopicCommand)di *Referensi AWS SDK untuk JavaScript API*. 

------
#### [ Kotlin ]

**SDK untuk Kotlin**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/kotlin/services/sns#code-examples). 

```
suspend fun createSNSTopic(topicName: String): String {
    val request =
        CreateTopicRequest {
            name = topicName
        }

    SnsClient.fromEnvironment { region = "us-east-1" }.use { snsClient ->
        val result = snsClient.createTopic(request)
        return result.topicArn.toString()
    }
}
```
+  Untuk detail API, lihat [CreateTopic](https://sdk.amazonaws.com/kotlin/api/latest/index.html)di *AWS SDK untuk referensi API Kotlin*. 

------
#### [ PHP ]

**SDK untuk PHP**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code/sns#code-examples). 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
use Aws\Sns\SnsClient;


/**
 * Create a Simple Notification Service topics in your AWS account at the requested region.
 *
 * This code expects that you have AWS credentials set up per:
 * https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials.html
 */

$SnSclient = new SnsClient([
    'profile' => 'default',
    'region' => 'us-east-1',
    'version' => '2010-03-31'
]);

$topicname = 'myTopic';

try {
    $result = $SnSclient->createTopic([
        'Name' => $topicname,
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```
+  Untuk informasi selengkapnya, silakan lihat [Panduan Developer AWS SDK untuk PHP](https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/sns-examples-managing-topics.html#create-a-topic). 
+  Untuk detail API, lihat [CreateTopic](https://docs.aws.amazon.com/goto/SdkForPHPV3/sns-2010-03-31/CreateTopic)di *Referensi AWS SDK untuk PHP API*. 

------
#### [ Python ]

**SDK untuk Python (Boto3)**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/python/example_code/sns#code-examples). 

```
class SnsWrapper:
    """Encapsulates Amazon SNS topic and subscription functions."""

    def __init__(self, sns_resource):
        """
        :param sns_resource: A Boto3 Amazon SNS resource.
        """
        self.sns_resource = sns_resource


    def create_topic(self, name):
        """
        Creates a notification topic.

        :param name: The name of the topic to create.
        :return: The newly created topic.
        """
        try:
            topic = self.sns_resource.create_topic(Name=name)
            logger.info("Created topic %s with ARN %s.", name, topic.arn)
        except ClientError:
            logger.exception("Couldn't create topic %s.", name)
            raise
        else:
            return topic
```

```
class SnsWrapper:
    """Wrapper class for managing Amazon SNS operations."""

    def __init__(self, sns_client: Any) -> None:
        """
        Initialize the SnsWrapper.

        :param sns_client: A Boto3 Amazon SNS client.
        """
        self.sns_client = sns_client

    @classmethod
    def from_client(cls) -> 'SnsWrapper':
        """
        Create an SnsWrapper instance using a default boto3 client.

        :return: An instance of this class.
        """
        sns_client = boto3.client('sns')
        return cls(sns_client)


    def create_topic(
        self, 
        topic_name: str, 
        is_fifo: bool = False, 
        content_based_deduplication: bool = False
    ) -> str:
        """
        Create an SNS topic.

        :param topic_name: The name of the topic to create.
        :param is_fifo: Whether to create a FIFO topic.
        :param content_based_deduplication: Whether to use content-based deduplication for FIFO topics.
        :return: The ARN of the created topic.
        :raises ClientError: If the topic creation fails.
        """
        try:
            # Add .fifo suffix for FIFO topics
            if is_fifo and not topic_name.endswith('.fifo'):
                topic_name += '.fifo'

            attributes = {}
            if is_fifo:
                attributes['FifoTopic'] = 'true'
                if content_based_deduplication:
                    attributes['ContentBasedDeduplication'] = 'true'

            response = self.sns_client.create_topic(
                Name=topic_name,
                Attributes=attributes
            )

            topic_arn = response['TopicArn']
            logger.info(f"Created topic: {topic_name} with ARN: {topic_arn}")
            return topic_arn

        except ClientError as e:
            error_code = e.response.get('Error', {}).get('Code', 'Unknown')
            logger.error(f"Error creating topic {topic_name}: {error_code} - {e}")
            raise
```
+  Untuk detail API, lihat [CreateTopic](https://docs.aws.amazon.com/goto/boto3/sns-2010-03-31/CreateTopic)di *AWS SDK for Python (Boto3) Referensi* API. 

------
#### [ Ruby ]

**SDK untuk Ruby**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/ruby/example_code/sns#code-examples). 

```
# This class demonstrates how to create an Amazon Simple Notification Service (SNS) topic.
class SNSTopicCreator
  # Initializes an SNS client.
  #
  # Utilizes the default AWS configuration for region and credentials.
  def initialize
    @sns_client = Aws::SNS::Client.new
  end

  # Attempts to create an SNS topic with the specified name.
  #
  # @param topic_name [String] The name of the SNS topic to create.
  # @return [Boolean] true if the topic was successfully created, false otherwise.
  def create_topic(topic_name)
    @sns_client.create_topic(name: topic_name)
    puts "The topic '#{topic_name}' was successfully created."
    true
  rescue Aws::SNS::Errors::ServiceError => e
    # Handles SNS service errors gracefully.
    puts "Error while creating the topic named '#{topic_name}': #{e.message}"
    false
  end
end

# Example usage:
if $PROGRAM_NAME == __FILE__
  topic_name = 'YourTopicName' # Replace with your topic name
  sns_topic_creator = SNSTopicCreator.new

  puts "Creating the topic '#{topic_name}'..."
  unless sns_topic_creator.create_topic(topic_name)
    puts 'The topic was not created. Stopping program.'
    exit 1
  end
end
```
+  Untuk informasi selengkapnya, silakan lihat [Panduan Developer AWS SDK untuk Ruby](https://docs.aws.amazon.com/sdk-for-ruby/v3/developer-guide/sns-example-create-topic.html). 
+  Untuk detail API, lihat [CreateTopic](https://docs.aws.amazon.com/goto/SdkForRubyV3/sns-2010-03-31/CreateTopic)di *Referensi AWS SDK untuk Ruby API*. 

------
#### [ Rust ]

**SDK for Rust**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/rustv1/examples/sns#code-examples). 

```
async fn make_topic(client: &Client, topic_name: &str) -> Result<(), Error> {
    let resp = client.create_topic().name(topic_name).send().await?;

    println!(
        "Created topic with ARN: {}",
        resp.topic_arn().unwrap_or_default()
    );

    Ok(())
}
```
+  Untuk detail API, lihat [CreateTopic](https://docs.rs/aws-sdk-sns/latest/aws_sdk_sns/client/struct.Client.html#method.create_topic)*referensi AWS SDK for Rust API*. 

------
#### [ SAP ABAP ]

**SDK for SAP ABAP**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/sap-abap/services/sns#code-examples). 

```
    TRY.
        oo_result = lo_sns->createtopic( iv_name = iv_topic_name ). " oo_result is returned for testing purposes. "
        MESSAGE 'SNS topic created' TYPE 'I'.
      CATCH /aws1/cx_snstopiclimitexcdex.
        MESSAGE 'Unable to create more topics. You have reached the maximum number of topics allowed.' TYPE 'E'.
    ENDTRY.
```
+  Untuk detail API, lihat [CreateTopic](https://docs.aws.amazon.com/sdk-for-sap-abap/v1/api/latest/index.html)di *AWS SDK untuk referensi SAP ABAP* API. 

------
#### [ Swift ]

**SDK para Swift**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/swift/example_code/sns#code-examples). 

```
import AWSSNS

        let config = try await SNSClient.SNSClientConfiguration(region: region)
        let snsClient = SNSClient(config: config)

        let output = try await snsClient.createTopic(
            input: CreateTopicInput(name: name)
        )

        guard let arn = output.topicArn else {
            print("No topic ARN returned by Amazon SNS.")
            return
        }
```
+  Untuk detail API, lihat referensi [CreateTopic AWS](https://sdk.amazonaws.com/swift/api/awssns/latest/documentation/awssns/snsclient/createtopic(input:))*SDK untuk Swift API*. 

------

**catatan**  
Anda juga dapat menggunakan topik Amazon SNS di akun lain, tetapi jika demikian, Anda mungkin perlu membuat kebijakan untuk topik yang memberikan izin akses. AWS Config Untuk informasi tentang pemberian izin ke topik Amazon SNS, [Izin untuk Topik Amazon SNS](sns-topic-policy.md) lihat lalu buka. [Langkah 3: Membuat Peran IAM](#gs-cli-create-iamrole)

## Langkah 3: Membuat Peran IAM
<a name="gs-cli-create-iamrole"></a>

**penting**  
**(Disarankan) Gunakan peran AWS Config terkait layanan**  
Disarankan untuk menggunakan peran AWS Config terkait layanan:. `AWSServiceRoleForConfig` Peran terkait layanan telah ditentukan sebelumnya dan mencakup semua izin yang AWS Config diperlukan untuk memanggil yang lain. Layanan AWS Peran AWS Config terkait layanan diperlukan untuk perekam konfigurasi terkait layanan.  
Untuk informasi selengkapnya, lihat [Menggunakan Peran Tertaut Layanan](https://docs.aws.amazon.com/config/latest/developerguide/using-service-linked-roles.html) untuk. AWS Config

### Menggunakan konsol IAM
<a name="create-iamrole"></a>

Anda dapat menggunakan konsol IAM untuk membuat peran IAM yang memberikan AWS Config izin untuk mengakses bucket Amazon S3, mengakses topik Amazon SNS, dan mendapatkan detail konfigurasi untuk sumber daya yang didukung. AWS Saat Anda menggunakan konsol untuk membuat peran IAM, AWS Config secara otomatis melampirkan izin yang diperlukan ke peran untuk Anda. 

**catatan**  
Jika Anda telah menggunakan AWS layanan yang menggunakan AWS Config (seperti AWS Security Hub atau AWS Control Tower) dan AWS Config peran telah dibuat, Anda harus memastikan bahwa peran IAM yang Anda gunakan saat menyiapkan AWS Config hak istimewa minimum yang sama dengan AWS Config peran yang telah dibuat agar AWS layanan lain dapat terus berjalan seperti yang diharapkan.   
Misalnya, jika AWS Control Tower memiliki peran IAM yang memungkinkan AWS Config untuk membaca objek Amazon S3, Anda harus menjamin izin yang sama diberikan dalam peran IAM yang Anda gunakan saat menyiapkan. AWS Config Jika tidak, itu dapat mengganggu operasi Menara AWS Kontrol.  
Untuk informasi selengkapnya tentang peran IAM AWS Config, lihat [AWS Identity and Access Management](https://docs.aws.amazon.com/config/latest/developerguide/security-iam.html). 

**Untuk membuat peran untuk AWS layanan**

1. Masuk ke Konsol Manajemen AWS dan buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Di panel navigasi konsol IAM, pilih **Peran**, dan lalu pilih **Buat peran**.

1. Untuk **Pilih entitas tepercaya**, pilih **AWS layanan**. 

1. **Pilih kasus penggunaan yang Anda inginkan untuk AWS Config: **Config - Customizable, Config -** **Organizations, Config, atau Config -** **Conformance** Packs.** Lalu, pilih **Selanjutnya**.

1. Pada halaman **Nama, tinjau, dan buat**, tinjau detail tentang peran Anda, dan pilih **Buat Peran**.

### Menggunakan AWS SDKs
<a name="create-iamrole-intro"></a>

Untuk menggunakan AWS SDK, Anda harus mengonfigurasinya dengan kredensi Anda. Untuk informasi selengkapnya, lihat [File konfigurasi dan kredensial bersama](https://docs.aws.amazon.com/sdkref/latest/guide/creds-config-files.html) di Panduan Referensi *Alat AWS SDKs dan Alat*.

Contoh kode berikut menunjukkan cara menggunakan`CreateRole`.

------
#### [ .NET ]

**SDK untuk .NET**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/dotnetv3/IAM#code-examples). 

```
    /// <summary>
    /// Create a new IAM role.
    /// </summary>
    /// <param name="roleName">The name of the IAM role.</param>
    /// <param name="rolePolicyDocument">The name of the IAM policy document
    /// for the new role.</param>
    /// <returns>The Amazon Resource Name (ARN) of the role.</returns>
    public async Task<string> CreateRoleAsync(string roleName, string rolePolicyDocument)
    {
        var request = new CreateRoleRequest
        {
            RoleName = roleName,
            AssumeRolePolicyDocument = rolePolicyDocument,
        };

        var response = await _IAMService.CreateRoleAsync(request);
        return response.Role.Arn;
    }
```
+  Untuk detail API, lihat [CreateRole](https://docs.aws.amazon.com/goto/DotNetSDKV3/iam-2010-05-08/CreateRole)di *Referensi AWS SDK untuk .NET API*. 

------
#### [ Bash ]

**AWS CLI dengan skrip Bash**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/aws-cli/bash-linux/iam#code-examples). 

```
###############################################################################
# function errecho
#
# This function outputs everything sent to it to STDERR (standard error output).
###############################################################################
function errecho() {
  printf "%s\n" "$*" 1>&2
}

###############################################################################
# function iam_create_role
#
# This function creates an IAM role.
#
# Parameters:
#       -n role_name -- The name of the IAM role.
#       -p policy_json -- The assume role policy document.
#
# Returns:
#       The ARN of the role.
#     And:
#       0 - If successful.
#       1 - If it fails.
###############################################################################
function iam_create_role() {
  local role_name policy_document response
  local option OPTARG # Required to use getopts command in a function.

  # bashsupport disable=BP5008
  function usage() {
    echo "function iam_create_user_access_key"
    echo "Creates an AWS Identity and Access Management (IAM) role."
    echo "  -n role_name   The name of the IAM role."
    echo "  -p policy_json -- The assume role policy document."
    echo ""
  }

  # Retrieve the calling parameters.
  while getopts "n:p:h" option; do
    case "${option}" in
      n) role_name="${OPTARG}" ;;
      p) policy_document="${OPTARG}" ;;
      h)
        usage
        return 0
        ;;
      \?)
        echo "Invalid parameter"
        usage
        return 1
        ;;
    esac
  done
  export OPTIND=1

  if [[ -z "$role_name" ]]; then
    errecho "ERROR: You must provide a role name with the -n parameter."
    usage
    return 1
  fi

  if [[ -z "$policy_document" ]]; then
    errecho "ERROR: You must provide a policy document with the -p parameter."
    usage
    return 1
  fi

  response=$(aws iam create-role \
    --role-name "$role_name" \
    --assume-role-policy-document "$policy_document" \
    --output text \
    --query Role.Arn)

  local error_code=${?}

  if [[ $error_code -ne 0 ]]; then
    aws_cli_error_log $error_code
    errecho "ERROR: AWS reports create-role operation failed.\n$response"
    return 1
  fi

  echo "$response"

  return 0
}
```
+  Untuk detail API, lihat [CreateRole](https://docs.aws.amazon.com/goto/aws-cli/iam-2010-05-08/CreateRole)di *Referensi AWS CLI Perintah*. 

------
#### [ C\$1\$1 ]

**SDK untuk C\$1\$1**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp/example_code/iam#code-examples). 

```
bool AwsDoc::IAM::createIamRole(
        const Aws::String &roleName,
        const Aws::String &policy,
        const Aws::Client::ClientConfiguration &clientConfig) {
    Aws::IAM::IAMClient client(clientConfig);
    Aws::IAM::Model::CreateRoleRequest request;

    request.SetRoleName(roleName);
    request.SetAssumeRolePolicyDocument(policy);

    Aws::IAM::Model::CreateRoleOutcome outcome = client.CreateRole(request);
    if (!outcome.IsSuccess()) {
        std::cerr << "Error creating role. " <<
                  outcome.GetError().GetMessage() << std::endl;
    }
    else {
        const Aws::IAM::Model::Role iamRole = outcome.GetResult().GetRole();
        std::cout << "Created role " << iamRole.GetRoleName() << "\n";
        std::cout << "ID: " << iamRole.GetRoleId() << "\n";
        std::cout << "ARN: " << iamRole.GetArn() << std::endl;
    }

    return outcome.IsSuccess();
}
```
+  Untuk detail API, lihat [CreateRole](https://docs.aws.amazon.com/goto/SdkForCpp/iam-2010-05-08/CreateRole)di *Referensi AWS SDK untuk C\$1\$1 API*. 

------
#### [ CLI ]

**AWS CLI**  
**Contoh 1: Untuk membuat peran IAM**  
`create-role`Perintah berikut membuat peran bernama `Test-Role` dan melampirkan kebijakan kepercayaan padanya.  

```
aws iam create-role \
    --role-name Test-Role \
    --assume-role-policy-document file://Test-Role-Trust-Policy.json
```
Output:  

```
{
    "Role": {
        "AssumeRolePolicyDocument": "<URL-encoded-JSON>",
        "RoleId": "AKIAIOSFODNN7EXAMPLE",
        "CreateDate": "2013-06-07T20:43:32.821Z",
        "RoleName": "Test-Role",
        "Path": "/",
        "Arn": "arn:aws:iam::123456789012:role/Test-Role"
    }
}
```
Kebijakan kepercayaan didefinisikan sebagai dokumen JSON dalam file *test-role-trust-policy.json*. (Nama file dan ekstensi tidak memiliki signifikansi.) Kebijakan kepercayaan harus menentukan kepala sekolah.  
Untuk melampirkan kebijakan izin ke peran, gunakan `put-role-policy` perintah.  
Untuk informasi selengkapnya, lihat [Membuat peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html) di *Panduan Pengguna AWS IAM*.  
**Contoh 2: Untuk membuat peran IAM dengan durasi sesi maksimum yang ditentukan**  
`create-role`Perintah berikut membuat peran bernama `Test-Role` dan menetapkan durasi sesi maksimum 7200 detik (2 jam).  

```
aws iam create-role \
    --role-name Test-Role \
    --assume-role-policy-document file://Test-Role-Trust-Policy.json \
    --max-session-duration 7200
```
Output:  

```
{
    "Role": {
        "Path": "/",
        "RoleName": "Test-Role",
        "RoleId": "AKIAIOSFODNN7EXAMPLE",
        "Arn": "arn:aws:iam::12345678012:role/Test-Role",
        "CreateDate": "2023-05-24T23:50:25+00:00",
        "AssumeRolePolicyDocument": {
            "Version":"2012-10-17",		 	 	 
            "Statement": [
                {
                    "Sid": "Statement1",
                    "Effect": "Allow",
                    "Principal": {
                        "AWS": "arn:aws:iam::12345678012:root"
                    },
                    "Action": "sts:AssumeRole"
                }
            ]
        }
    }
}
```
Untuk informasi selengkapnya, lihat [Memodifikasi durasi sesi maksimum peran (AWS API)](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-api.html#roles-modify_max-session-duration-api) di *Panduan Pengguna AWS IAM*.  
**Contoh 3: Untuk membuat Peran IAM dengan tag**  
Perintah berikut membuat Peran IAM `Test-Role` dengan tag. Contoh ini menggunakan flag `--tags` parameter dengan tag berformat JSON berikut:. `'{"Key": "Department", "Value": "Accounting"}' '{"Key": "Location", "Value": "Seattle"}'` Atau, `--tags` bendera dapat digunakan dengan tag dalam format singkatan:. `'Key=Department,Value=Accounting Key=Location,Value=Seattle'`  

```
aws iam create-role \
    --role-name Test-Role \
    --assume-role-policy-document file://Test-Role-Trust-Policy.json \
    --tags '{"Key": "Department", "Value": "Accounting"}' '{"Key": "Location", "Value": "Seattle"}'
```
Output:  

```
{
    "Role": {
        "Path": "/",
        "RoleName": "Test-Role",
        "RoleId": "AKIAIOSFODNN7EXAMPLE",
        "Arn": "arn:aws:iam::123456789012:role/Test-Role",
        "CreateDate": "2023-05-25T23:29:41+00:00",
        "AssumeRolePolicyDocument": {
            "Version":"2012-10-17",		 	 	 
            "Statement": [
                {
                    "Sid": "Statement1",
                    "Effect": "Allow",
                    "Principal": {
                        "AWS": "arn:aws:iam::123456789012:root"
                    },
                    "Action": "sts:AssumeRole"
                }
            ]
        },
        "Tags": [
            {
                "Key": "Department",
                "Value": "Accounting"
            },
            {
                "Key": "Location",
                "Value": "Seattle"
            }
        ]
    }
}
```
Untuk informasi selengkapnya, lihat [Menandai peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags_roles.html) di Panduan Pengguna *AWS IAM*.  
+  Untuk detail API, lihat [CreateRole](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/create-role.html)di *Referensi AWS CLI Perintah*. 

------
#### [ Go ]

**SDK untuk Go V2**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/gov2/iam#code-examples). 

```
import (
	"context"
	"encoding/json"
	"log"

	"github.com/aws/aws-sdk-go-v2/aws"
	"github.com/aws/aws-sdk-go-v2/service/iam"
	"github.com/aws/aws-sdk-go-v2/service/iam/types"
)

// RoleWrapper encapsulates AWS Identity and Access Management (IAM) role actions
// used in the examples.
// It contains an IAM service client that is used to perform role actions.
type RoleWrapper struct {
	IamClient *iam.Client
}



// CreateRole creates a role that trusts a specified user. The trusted user can assume
// the role to acquire its permissions.
// PolicyDocument shows how to work with a policy document as a data structure and
// serialize it to JSON by using Go's JSON marshaler.
func (wrapper RoleWrapper) CreateRole(ctx context.Context, roleName string, trustedUserArn string) (*types.Role, error) {
	var role *types.Role
	trustPolicy := PolicyDocument{
		Version: "2012-10-17",
		Statement: []PolicyStatement{{
			Effect:    "Allow",
			Principal: map[string]string{"AWS": trustedUserArn},
			Action:    []string{"sts:AssumeRole"},
		}},
	}
	policyBytes, err := json.Marshal(trustPolicy)
	if err != nil {
		log.Printf("Couldn't create trust policy for %v. Here's why: %v\n", trustedUserArn, err)
		return nil, err
	}
	result, err := wrapper.IamClient.CreateRole(ctx, &iam.CreateRoleInput{
		AssumeRolePolicyDocument: aws.String(string(policyBytes)),
		RoleName:                 aws.String(roleName),
	})
	if err != nil {
		log.Printf("Couldn't create role %v. Here's why: %v\n", roleName, err)
	} else {
		role = result.Role
	}
	return role, err
}
```
+  Untuk detail API, lihat [CreateRole](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/iam#Client.CreateRole)di *Referensi AWS SDK untuk Go API*. 

------
#### [ Java ]

**SDK untuk Java 2.x**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/iam#code-examples). 

```
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import software.amazon.awssdk.services.iam.model.CreateRoleRequest;
import software.amazon.awssdk.services.iam.model.CreateRoleResponse;
import software.amazon.awssdk.services.iam.model.IamException;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.iam.IamClient;
import java.io.FileReader;

/*
*   This example requires a trust policy document. For more information, see:
*   https://aws.amazon.com/blogs/security/how-to-use-trust-policies-with-iam-roles/
*
*
*  In addition, set up your development environment, including your credentials.
*
*  For information, see this documentation topic:
*
*  https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
 */

public class CreateRole {
    public static void main(String[] args) throws Exception {
        final String usage = """
                Usage:
                    <rolename> <fileLocation>\s

                Where:
                    rolename - The name of the role to create.\s
                    fileLocation - The location of the JSON document that represents the trust policy.\s
                """;

        if (args.length != 2) {
            System.out.println(usage);
            System.exit(1);
        }

        String rolename = args[0];
        String fileLocation = args[1];
        Region region = Region.AWS_GLOBAL;
        IamClient iam = IamClient.builder()
                .region(region)
                .build();

        String result = createIAMRole(iam, rolename, fileLocation);
        System.out.println("Successfully created user: " + result);
        iam.close();
    }

    public static String createIAMRole(IamClient iam, String rolename, String fileLocation) throws Exception {
        try {
            JSONObject jsonObject = (JSONObject) readJsonSimpleDemo(fileLocation);
            CreateRoleRequest request = CreateRoleRequest.builder()
                    .roleName(rolename)
                    .assumeRolePolicyDocument(jsonObject.toJSONString())
                    .description("Created using the AWS SDK for Java")
                    .build();

            CreateRoleResponse response = iam.createRole(request);
            System.out.println("The ARN of the role is " + response.role().arn());

        } catch (IamException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
        return "";
    }

    public static Object readJsonSimpleDemo(String filename) throws Exception {
        FileReader reader = new FileReader(filename);
        JSONParser jsonParser = new JSONParser();
        return jsonParser.parse(reader);
    }
}
```
+  Untuk detail API, lihat [CreateRole](https://docs.aws.amazon.com/goto/SdkForJavaV2/iam-2010-05-08/CreateRole)di *Referensi AWS SDK for Java 2.x API*. 

------
#### [ JavaScript ]

**SDK untuk JavaScript (v3)**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3/example_code/iam#code-examples). 
Buat peran.  

```
import { CreateRoleCommand, IAMClient } from "@aws-sdk/client-iam";

const client = new IAMClient({});

/**
 *
 * @param {string} roleName
 */
export const createRole = (roleName) => {
  const command = new CreateRoleCommand({
    AssumeRolePolicyDocument: JSON.stringify({
      Version: "2012-10-17",
      Statement: [
        {
          Effect: "Allow",
          Principal: {
            Service: "lambda.amazonaws.com",
          },
          Action: "sts:AssumeRole",
        },
      ],
    }),
    RoleName: roleName,
  });

  return client.send(command);
};
```
+  Untuk detail API, lihat [CreateRole](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/iam/command/CreateRoleCommand)di *Referensi AWS SDK untuk JavaScript API*. 

------
#### [ PHP ]

**SDK untuk PHP**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code/iam#code-examples). 

```
$uuid = uniqid();
$service = new IAMService();

$assumeRolePolicyDocument = "{
                \"Version\": \"2012-10-17\",
                \"Statement\": [{
                    \"Effect\": \"Allow\",
                    \"Principal\": {\"AWS\": \"{$user['Arn']}\"},
                    \"Action\": \"sts:AssumeRole\"
                }]
            }";
$assumeRoleRole = $service->createRole("iam_demo_role_$uuid", $assumeRolePolicyDocument);
echo "Created role: {$assumeRoleRole['RoleName']}\n";

    /**
     * @param string $roleName
     * @param string $rolePolicyDocument
     * @return array
     * @throws AwsException
     */
    public function createRole(string $roleName, string $rolePolicyDocument)
    {
        $result = $this->customWaiter(function () use ($roleName, $rolePolicyDocument) {
            return $this->iamClient->createRole([
                'AssumeRolePolicyDocument' => $rolePolicyDocument,
                'RoleName' => $roleName,
            ]);
        });
        return $result['Role'];
    }
```
+  Untuk detail API, lihat [CreateRole](https://docs.aws.amazon.com/goto/SdkForPHPV3/iam-2010-05-08/CreateRole)di *Referensi AWS SDK untuk PHP API*. 

------
#### [ PowerShell ]

**Alat untuk PowerShell V4**  
**Contoh 1: Contoh ini membuat peran baru bernama `MyNewRole` dan melampirkan padanya kebijakan yang ditemukan dalam file`NewRoleTrustPolicy.json`. Perhatikan bahwa Anda harus menggunakan parameter `-Raw` switch untuk berhasil memproses file kebijakan JSON. Dokumen kebijakan yang ditampilkan dalam output adalah URL yang dikodekan. Ini diterjemahkan dalam contoh ini dengan `UrlDecode` metode.NET.**  

```
$results = New-IAMRole -AssumeRolePolicyDocument (Get-Content -raw NewRoleTrustPolicy.json) -RoleName MyNewRole
$results
```
**Output:**  

```
Arn                      : arn:aws:iam::123456789012:role/MyNewRole
AssumeRolePolicyDocument : %7B%0D%0A%20%20%22Version%22%3A%20%222012-10-17%22%2C%0D%0A%20%20%22Statement%22
                           %3A%20%5B%0D%0A%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%22Sid%22%3A%20%22%22%2C
                           %0D%0A%20%20%20%20%20%20%22Effect%22%3A%20%22Allow%22%2C%0D%0A%20%20%20%20%20%20
                           %22Principal%22%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%22AWS%22%3A%20%22arn%3Aaws
                           %3Aiam%3A%3A123456789012%3ADavid%22%0D%0A%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20
                           %20%20%20%22Action%22%3A%20%22sts%3AAssumeRole%22%0D%0A%20%20%20%20%7D%0D%0A%20
                           %20%5D%0D%0A%7D
CreateDate               : 4/15/2015 11:04:23 AM
Path                     : /
RoleId                   : V5PAJI2KPN4EAEXAMPLE1
RoleName                 : MyNewRole

[System.Reflection.Assembly]::LoadWithPartialName("System.Web.HttpUtility")
[System.Web.HttpUtility]::UrlDecode($results.AssumeRolePolicyDocument)
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::123456789012:David"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```
+  Untuk detail API, lihat [CreateRole](https://docs.aws.amazon.com/powershell/v4/reference)di *Referensi Alat AWS untuk PowerShell Cmdlet (V4)*. 

**Alat untuk PowerShell V5**  
**Contoh 1: Contoh ini membuat peran baru bernama `MyNewRole` dan melampirkan padanya kebijakan yang ditemukan dalam file`NewRoleTrustPolicy.json`. Perhatikan bahwa Anda harus menggunakan parameter `-Raw` switch untuk berhasil memproses file kebijakan JSON. Dokumen kebijakan yang ditampilkan dalam output adalah URL yang dikodekan. Ini diterjemahkan dalam contoh ini dengan `UrlDecode` metode.NET.**  

```
$results = New-IAMRole -AssumeRolePolicyDocument (Get-Content -raw NewRoleTrustPolicy.json) -RoleName MyNewRole
$results
```
**Output:**  

```
Arn                      : arn:aws:iam::123456789012:role/MyNewRole
AssumeRolePolicyDocument : %7B%0D%0A%20%20%22Version%22%3A%20%222012-10-17%22%2C%0D%0A%20%20%22Statement%22
                           %3A%20%5B%0D%0A%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%22Sid%22%3A%20%22%22%2C
                           %0D%0A%20%20%20%20%20%20%22Effect%22%3A%20%22Allow%22%2C%0D%0A%20%20%20%20%20%20
                           %22Principal%22%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%22AWS%22%3A%20%22arn%3Aaws
                           %3Aiam%3A%3A123456789012%3ADavid%22%0D%0A%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20
                           %20%20%20%22Action%22%3A%20%22sts%3AAssumeRole%22%0D%0A%20%20%20%20%7D%0D%0A%20
                           %20%5D%0D%0A%7D
CreateDate               : 4/15/2015 11:04:23 AM
Path                     : /
RoleId                   : V5PAJI2KPN4EAEXAMPLE1
RoleName                 : MyNewRole

[System.Reflection.Assembly]::LoadWithPartialName("System.Web.HttpUtility")
[System.Web.HttpUtility]::UrlDecode($results.AssumeRolePolicyDocument)
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::123456789012:David"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```
+  Untuk detail API, lihat [CreateRole](https://docs.aws.amazon.com/powershell/v5/reference)di *Referensi Alat AWS untuk PowerShell Cmdlet (V5)*. 

------
#### [ Python ]

**SDK untuk Python (Boto3)**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/python/example_code/iam#code-examples). 

```
def create_role(role_name, allowed_services):
    """
    Creates a role that lets a list of specified services assume the role.

    :param role_name: The name of the role.
    :param allowed_services: The services that can assume the role.
    :return: The newly created role.
    """
    trust_policy = {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {"Service": service},
                "Action": "sts:AssumeRole",
            }
            for service in allowed_services
        ],
    }

    try:
        role = iam.create_role(
            RoleName=role_name, AssumeRolePolicyDocument=json.dumps(trust_policy)
        )
        logger.info("Created role %s.", role.name)
    except ClientError:
        logger.exception("Couldn't create role %s.", role_name)
        raise
    else:
        return role
```
+  Untuk detail API, lihat [CreateRole](https://docs.aws.amazon.com/goto/boto3/iam-2010-05-08/CreateRole)di *AWS SDK for Python (Boto3) Referensi* API. 

------
#### [ Ruby ]

**SDK untuk Ruby**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/ruby/example_code/iam#code-examples). 

```
  # Creates a role and attaches policies to it.
  #
  # @param role_name [String] The name of the role.
  # @param assume_role_policy_document [Hash] The trust relationship policy document.
  # @param policy_arns [Array<String>] The ARNs of the policies to attach.
  # @return [String, nil] The ARN of the new role if successful, or nil if an error occurred.
  def create_role(role_name, assume_role_policy_document, policy_arns)
    response = @iam_client.create_role(
      role_name: role_name,
      assume_role_policy_document: assume_role_policy_document.to_json
    )
    role_arn = response.role.arn

    policy_arns.each do |policy_arn|
      @iam_client.attach_role_policy(
        role_name: role_name,
        policy_arn: policy_arn
      )
    end

    role_arn
  rescue Aws::IAM::Errors::ServiceError => e
    @logger.error("Error creating role: #{e.message}")
    nil
  end
```
+  Untuk detail API, lihat [CreateRole](https://docs.aws.amazon.com/goto/SdkForRubyV3/iam-2010-05-08/CreateRole)di *Referensi AWS SDK untuk Ruby API*. 

------
#### [ Rust ]

**SDK for Rust**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/rustv1/examples/iam#code-examples). 

```
pub async fn create_role(
    client: &iamClient,
    role_name: &str,
    role_policy_document: &str,
) -> Result<Role, iamError> {
    let response: CreateRoleOutput = loop {
        if let Ok(response) = client
            .create_role()
            .role_name(role_name)
            .assume_role_policy_document(role_policy_document)
            .send()
            .await
        {
            break response;
        }
    };

    Ok(response.role.unwrap())
}
```
+  Untuk detail API, lihat [CreateRole](https://docs.rs/aws-sdk-iam/latest/aws_sdk_iam/client/struct.Client.html#method.create_role)*referensi AWS SDK for Rust API*. 

------
#### [ SAP ABAP ]

**SDK for SAP ABAP**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/sap-abap/services/iam#code-examples). 

```
    TRY.
        oo_result = lo_iam->createrole(
          iv_rolename = iv_role_name
          iv_assumerolepolicydocument = iv_assume_role_policy_document ).
        MESSAGE 'Role created successfully.' TYPE 'I'.
      CATCH /aws1/cx_iamentityalrdyexex.
        MESSAGE 'Role already exists.' TYPE 'E'.
      CATCH /aws1/cx_iammalformedplydocex.
        MESSAGE 'Assume role policy document is malformed.' TYPE 'E'.
      CATCH /aws1/cx_iamlimitexceededex.
        MESSAGE 'Role limit exceeded.' TYPE 'E'.
    ENDTRY.
```
+  Untuk detail API, lihat [CreateRole](https://docs.aws.amazon.com/sdk-for-sap-abap/v1/api/latest/index.html)di *AWS SDK untuk referensi SAP ABAP* API. 

------
#### [ Swift ]

**SDK para Swift**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/swift/example_code/iam#code-examples). 

```
import AWSIAM
import AWSS3


    public func createRole(name: String, policyDocument: String) async throws -> String {
        let input = CreateRoleInput(
            assumeRolePolicyDocument: policyDocument,
            roleName: name
        )
        do {
            let output = try await client.createRole(input: input)
            guard let role = output.role else {
                throw ServiceHandlerError.noSuchRole
            }
            guard let id = role.roleId else {
                throw ServiceHandlerError.noSuchRole
            }
            return id
        } catch {
            print("ERROR: createRole:", dump(error))
            throw error
        }
    }
```
+  Untuk detail API, lihat referensi [CreateRole AWS](https://sdk.amazonaws.com/swift/api/awsiam/latest/documentation/awsiam/iamclient/createrole(input:))*SDK untuk Swift API*. 

------

# Dimulai AWS Config dengan perekam konfigurasi yang dikelola pelanggan menggunakan AWS CLI
<a name="gs-cli-subscribe"></a>

Anda dapat memulai AWS Config dengan membuat perekam konfigurasi terkelola pelanggan. Untuk membuat perekam konfigurasi terkelola pelanggan dengan AWS CLI, gunakan perintah berikut: [https://docs.aws.amazon.com/cli/latest/reference/configservice/put-configuration-recorder.html](https://docs.aws.amazon.com/cli/latest/reference/configservice/put-configuration-recorder.html), [https://docs.aws.amazon.com/cli/latest/reference/configservice/put-delivery-channel.html](https://docs.aws.amazon.com/cli/latest/reference/configservice/put-delivery-channel.html), dan [https://docs.aws.amazon.com/cli/latest/reference/configservice/start-configuration-recorder.html](https://docs.aws.amazon.com/cli/latest/reference/configservice/start-configuration-recorder.html).
+ `put-configuration-recorder`Perintah membuat perekam konfigurasi terkelola pelanggan.
+ `put-delivery-channel`Perintah membuat saluran pengiriman tempat AWS Config mengirimkan informasi konfigurasi ke bucket S3 dan topik SNS.
+ `start-configuration-recorder`Memulai perekam konfigurasi yang dikelola pelanggan. Perekam konfigurasi terkelola pelanggan akan mulai merekam perubahan konfigurasi untuk jenis sumber daya yang Anda tentukan.

**Topics**
+ [Pertimbangan](#gs-cli-subscribe-considerations)
+ [Langkah 1: Jalankan put-configuration-recorder](#gs-cli-subscribe-put-configuration-recorder)
+ [Langkah 2: Jalankan put-delivery-channel perintah](#gs-cli-subscribe-put-delivery-channel)
+ [Langkah 3: Jalankan start-configuration-recorder perintah](#gs-cli-subscribe-start-configuration-recorder)

## Pertimbangan
<a name="gs-cli-subscribe-considerations"></a>

**Bucket S3, topik SNS, dan peran IAM diperlukan**

Untuk membuat perekam konfigurasi terkelola pelanggan, Anda perlu membuat bucket S3, topik SNS, dan peran IAM dengan kebijakan terlampir sebagai prasyarat. [Untuk mengatur prasyarat Anda, lihat Prasyarat AWS Config.](https://docs.aws.amazon.com/config/latest/developerguide/gs-cli-prereq.html)

**Satu perekam konfigurasi terkelola pelanggan per akun per Wilayah**

Anda hanya dapat memiliki satu perekam konfigurasi yang dikelola pelanggan Akun AWS untuk masing-masing perekam konfigurasi Wilayah AWS.

**Satu saluran pengiriman per akun per Wilayah**

Anda hanya dapat memiliki satu wilayah saluran pengiriman Akun AWS untuk masing-masing wilayah Wilayah AWS.

**Kebijakan dan hasil kepatuhan**

Kebijakan [IAM dan kebijakan](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) [lain yang dikelola AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies.html) dapat memengaruhi apakah AWS Config memiliki izin untuk merekam perubahan konfigurasi untuk sumber daya Anda. Selain itu, aturan secara langsung mengevaluasi konfigurasi sumber daya dan aturan tidak memperhitungkan kebijakan ini saat menjalankan evaluasi. Pastikan bahwa kebijakan yang berlaku selaras dengan cara Anda berniat untuk menggunakan AWS Config.

## Langkah 1: Jalankan put-configuration-recorder
<a name="gs-cli-subscribe-put-configuration-recorder"></a>

Gunakan [https://docs.aws.amazon.com/cli/latest/reference/configservice/put-configuration-recorder.html](https://docs.aws.amazon.com/cli/latest/reference/configservice/put-configuration-recorder.html)perintah untuk membuat perekam konfigurasi terkelola pelanggan:

Perintah ini menggunakan `--configuration-recorder` dan `---recording-group` bidang.

```
$ aws configservice put-configuration-recorder \
--configuration-recorder file://configurationRecorder.json \
--recording-group file://recordingGroup.json
```

**`configuration-recorder`Bidang**

`configurationRecorder.json`File menentukan `name` dan `roleArn` serta frekuensi perekaman default untuk perekam konfigurasi (`recordingMode`). Anda juga dapat menggunakan bidang ini untuk mengganti frekuensi perekaman untuk jenis sumber daya tertentu.

```
{
  "name": "default",
  "roleARN": "arn:aws:iam::123456789012:role/config-role",
  "recordingMode": {
    "recordingFrequency": CONTINUOUS or DAILY,
    "recordingModeOverrides": [ 
        { 
            "description": "Description you provide for the override",
            "recordingFrequency": CONTINUOUS or DAILY,
            "resourceTypes": [ Comma-separated list of resource types to include in the override ]
        }
    ]
  }
}
```

**`recording-group`Bidang**

`recordingGroup.json`File menentukan jenis sumber daya yang direkam.

```
{ 
    "allSupported": boolean,
    "exclusionByResourceTypes": { 
        "resourceTypes": [ Comma-separated list of resource types to exclude ]
    },
    "includeGlobalResourceTypes": boolean,
    "recordingStrategy": { 
        "useOnly": "Recording strategy for the configuration recorder"
    },
    "resourceTypes": [ Comma-separated list of resource types to include]
}
```

Untuk informasi selengkapnya tentang bidang ini, lihat [https://docs.aws.amazon.com/cli/latest/reference/configservice/put-configuration-recorder.html](https://docs.aws.amazon.com/cli/latest/reference/configservice/put-configuration-recorder.html)di *Referensi AWS CLI Perintah*.

## Langkah 2: Jalankan put-delivery-channel perintah
<a name="gs-cli-subscribe-put-delivery-channel"></a>

Gunakan [https://docs.aws.amazon.com/cli/latest/reference/configservice/put-delivery-channel.html](https://docs.aws.amazon.com/cli/latest/reference/configservice/put-delivery-channel.html)perintah untuk membuat saluran pengiriman:

Perintah ini menggunakan `--delivery-channel` bidang.

```
$ aws configservice put-delivery-channel --delivery-channel file://deliveryChannel.json
```

**`delivery-channel`Bidang**

`deliveryChannel.json`File menentukan yang berikut:
+ `name`Untuk saluran pengiriman.
+ `s3BucketName`Tempat AWS Config mengirim snapshot konfigurasi.
+ `snsTopicARN`Tempat AWS Config mengirim notifikasi
+ `configSnapshotDeliveryProperties`Yang menetapkan seberapa sering AWS Config memberikan snapshot konfigurasi dan seberapa sering memanggil evaluasi untuk aturan periodik.

```
{
    "name": "default",
    "s3BucketName": "config-bucket-123456789012",
    "snsTopicARN": "arn:aws:sns:us-east-1:123456789012:config-topic",
    "configSnapshotDeliveryProperties": {
        "deliveryFrequency": "Twelve_Hours"
    }
}
```

Untuk informasi selengkapnya tentang bidang ini, lihat [https://docs.aws.amazon.com/cli/latest/reference/configservice/put-delivery-channel.html](https://docs.aws.amazon.com/cli/latest/reference/configservice/put-delivery-channel.html)di *Referensi AWS CLI Perintah*.

## Langkah 3: Jalankan start-configuration-recorder perintah
<a name="gs-cli-subscribe-start-configuration-recorder"></a>

Gunakan [https://docs.aws.amazon.com/cli/latest/reference/configservice/start-configuration-recorder.html](https://docs.aws.amazon.com/cli/latest/reference/configservice/start-configuration-recorder.html)perintah untuk memulai AWS Config:

```
$ aws configservice start-configuration-recorder --configuration-recorder-name configRecorderName
```

Untuk informasi selengkapnya tentang bidang ini, lihat [https://docs.aws.amazon.com/cli/latest/reference/configservice/start-configuration-recorder.html](https://docs.aws.amazon.com/cli/latest/reference/configservice/start-configuration-recorder.html)di *Referensi AWS CLI Perintah*.

# Memverifikasi bahwa Berhasil AWS Config Dimulai dengan AWS CLI
<a name="gs-cli-verify-subscribe"></a>

Setelah Anda mulai AWS Config, Anda dapat menggunakan AWS CLI perintah untuk memeriksa apakah AWS Config sedang berjalan dan yang AWS Config telah membuat perekam konfigurasi dan saluran pengiriman. Anda juga dapat mengonfirmasi bahwa AWS Config telah mulai merekam dan mengirimkan konfigurasi ke saluran pengiriman.

**Topics**
+ [Langkah 1: Periksa apakah saluran pengiriman dibuat](#gs-cli-verify-channel)
+ [Langkah 2: Periksa apakah perekam konfigurasi dibuat](#gs-cli-verify-recorder)
+ [Langkah 3: Periksa apakah AWS Config sudah mulai merekam](#gs-cli-verify-config-recording)

## Langkah 1: Periksa apakah saluran pengiriman dibuat
<a name="gs-cli-verify-channel"></a>

Gunakan [https://docs.aws.amazon.com/cli/latest/reference/configservice/describe-delivery-channels.html](https://docs.aws.amazon.com/cli/latest/reference/configservice/describe-delivery-channels.html)perintah untuk memeriksa apakah bucket Amazon S3 dan topik Amazon SNS Anda dikonfigurasi.

Anda dapat menggunakan `--delivery-channel-names` bidang untuk menentukan daftar saluran pengiriman. Jika saluran pengiriman tidak ditentukan, perintah ini mengembalikan rincian semua saluran pengiriman yang terkait dengan akun.

```
$ aws configservice describe-delivery-channels
{
    "DeliveryChannels": [
        {
            "snsTopicARN": "arn:aws:sns:us-west-2:0123456789012:my-config-topic",
            "name": "my-delivery-channel",
            "s3BucketName": "my-config-bucket"
        }
    ]
}
```

## Langkah 2: Periksa apakah perekam konfigurasi dibuat
<a name="gs-cli-verify-recorder"></a>

Gunakan [https://docs.aws.amazon.com/cli/latest/reference/configservice/describe-configuration-recorders.html](https://docs.aws.amazon.com/cli/latest/reference/configservice/describe-configuration-recorders.html)perintah untuk memeriksa apakah perekam konfigurasi dibuat.

Anda dapat menggunakan `configuration-recorder-names` bidang `arn` dan untuk menentukan daftar perekam konfigurasi. Jika perekam konfigurasi tidak ditentukan, perintah ini mengembalikan detail semua perekam konfigurasi yang terkait dengan akun.

```
$ aws configservice describe-configuration-recorders
{
    "ConfigurationRecorders": [
        {
            "roleARN": "arn:aws:iam::012345678912:role/myConfigRole",
            "name": "default"
        }
    ]
}
```

## Langkah 3: Periksa apakah AWS Config sudah mulai merekam
<a name="gs-cli-verify-config-recording"></a>

Gunakan [https://docs.aws.amazon.com/cli/latest/reference/configservice/describe-configuration-recorder-status.html](https://docs.aws.amazon.com/cli/latest/reference/configservice/describe-configuration-recorder-status.html)perintah untuk memeriksa apakah perekam konfigurasi berhasil merekam jenis sumber daya dalam ruang lingkup.

Anda dapat menggunakan `configuration-recorder-names` bidang `arn` dan untuk menentukan daftar perekam konfigurasi. Jika perekam konfigurasi tidak ditentukan, perintah ini mengembalikan detail semua perekam konfigurasi yang terkait dengan akun.

```
$ aws configservice describe-configuration-recorder-status
{
    "ConfigurationRecordersStatus": [
        {
            "name": "default",
            "lastStatus": "SUCCESS",
            "lastStopTime": 1414511624.914,
            "lastStartTime": 1414708460.276,
            "recording": true,
            "lastStatusChangeTime": 1414816537.148,
            "lastErrorMessage": "NA",
            "lastErrorCode": "400"
        }
    ]
}
```

`true`Nilai di `recording` bidang menegaskan bahwa perekam konfigurasi telah mulai merekam konfigurasi. AWS Config mencatat waktu di UTC. Output ditampilkan sebagai stempel waktu Unix. 

# Menggunakan AWS Config dengan AWS SDK
<a name="sdk-general-information-section"></a>

AWS kit pengembangan perangkat lunak (SDKs) tersedia untuk banyak bahasa pemrograman populer. Setiap SDK menyediakan API, contoh kode, dan dokumentasi yang memudahkan developer untuk membangun aplikasi dalam bahasa pilihan mereka.


| Dokumentasi SDK | Contoh kode | 
| --- | --- | 
| [AWS SDK untuk C\$1\$1](https://docs.aws.amazon.com/sdk-for-cpp) | [AWS SDK untuk C\$1\$1 contoh kode](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp) | 
| [AWS CLI](https://docs.aws.amazon.com/cli) | [AWS CLI contoh kode](https://docs.aws.amazon.com/code-library/latest/ug/cli_2_code_examples.html) | 
| [AWS SDK untuk Go](https://docs.aws.amazon.com/sdk-for-go) | [AWS SDK untuk Go contoh kode](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/gov2) | 
| [AWS SDK untuk Java](https://docs.aws.amazon.com/sdk-for-java) | [AWS SDK untuk Java contoh kode](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2) | 
| [AWS SDK untuk JavaScript](https://docs.aws.amazon.com/sdk-for-javascript) | [AWS SDK untuk JavaScript contoh kode](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3) | 
| [AWS SDK untuk Kotlin](https://docs.aws.amazon.com/sdk-for-kotlin) | [AWS SDK untuk Kotlin contoh kode](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/kotlin) | 
| [AWS SDK untuk .NET](https://docs.aws.amazon.com/sdk-for-net) | [AWS SDK untuk .NET contoh kode](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/dotnetv3) | 
| [AWS SDK untuk PHP](https://docs.aws.amazon.com/sdk-for-php) | [AWS SDK untuk PHP contoh kode](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php) | 
| [Alat AWS untuk PowerShell](https://docs.aws.amazon.com/powershell) | [Alat AWS untuk PowerShell contoh kode](https://docs.aws.amazon.com/code-library/latest/ug/powershell_5_code_examples.html) | 
| [AWS SDK untuk Python (Boto3)](https://docs.aws.amazon.com/pythonsdk) | [AWS SDK untuk Python (Boto3) contoh kode](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/python) | 
| [AWS SDK untuk Ruby](https://docs.aws.amazon.com/sdk-for-ruby) | [AWS SDK untuk Ruby contoh kode](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/ruby) | 
| [AWS SDK for Rust](https://docs.aws.amazon.com/sdk-for-rust) | [AWS SDK for Rust contoh kode](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/rustv1) | 
| [AWS SDK for SAP ABAP](https://docs.aws.amazon.com/sdk-for-sapabap) | [AWS SDK for SAP ABAP contoh kode](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/sap-abap) | 
| [AWS SDK for Swift](https://docs.aws.amazon.com/sdk-for-swift) | [AWS SDK for Swift contoh kode](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/swift) | 

**Ketersediaan contoh**  
Tidak dapat menemukan apa yang Anda butuhkan? Minta contoh kode menggunakan tautan **Berikan umpan balik** di bagian bawah halaman ini.