

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

# Keamanan di
<a name="UsingWithRDS"></a>

Keamanan cloud di AWS adalah prioritas tertinggi. Sebagai AWS pelanggan, Anda mendapat manfaat dari pusat data dan arsitektur jaringan yang dibangun untuk memenuhi persyaratan organisasi yang paling sensitif terhadap keamanan.

Keamanan adalah tanggung jawab bersama antara Anda AWS dan Anda. [Model tanggung jawab bersama](https://aws.amazon.com/compliance/shared-responsibility-model/) menggambarkan hal ini sebagai keamanan *dari* cloud dan keamanan *di* cloud:
+  **Keamanan cloud** — AWS bertanggung jawab untuk melindungi infrastruktur yang menjalankan AWS layanan di AWS Cloud. AWS juga memberi Anda layanan yang dapat Anda gunakan dengan aman. Auditor pihak ketiga secara berkala menguji dan memverifikasi efektivitas keamanan kami sebagai bagian dari [Program kepatuhan AWS](https://aws.amazon.com/compliance/programs/). Untuk mempelajari tentang program kepatuhan yang berlaku untuk Aurora (Aurora), [AWS lihat layanan dalam](https://aws.amazon.com/compliance/services-in-scope/) cakupan berdasarkan program kepatuhan. 
+  **Keamanan di cloud** — Tanggung jawab Anda ditentukan oleh AWS layanan yang Anda gunakan. Anda juga bertanggung jawab atas faktor lain, termasuk sensitivitas data, persyaratan perusahaan, serta hukum dan peraturan yang berlaku. 

Dokumentasi ini membantu Anda memahami cara menerapkan model tanggung jawab bersama saat menggunakan Aurora. Topik berikut menunjukkan cara mengonfigurasi Aurora untuk memenuhi tujuan keamanan dan kepatuhan Anda. Anda juga mempelajari cara menggunakan AWS layanan lain yang membantu Anda memantau dan mengamankan sumber daya Amazon Aurora Anda. 

 Metode yang Anda gunakan untuk mengelola akses bergantung pada jenis tugas apa yang perlu dilakukan pengguna dengan Aurora: 
+ Jalankan cluster DB Anda di cloud pribadi virtual (VPC) berdasarkan layanan Amazon VPC untuk kontrol akses jaringan sebaik mungkin. Untuk informasi selengkapnya tentang membuat cluster DB di VPC, lihat. [Amazon VPC dan Aurora](USER_VPC.md)
+ Gunakan kebijakan AWS Identity and Access Management (IAM) untuk menetapkan izin yang menentukan siapa yang diizinkan mengelola sumber daya Amazon RDS Aurora. Misalnya, Anda dapat menggunakan IAM untuk menentukan siapa yang diizinkan membuat, mendeskripsikan, memodifikasi, dan menghapus cluster DB, menandai sumber daya, atau memodifikasi grup keamanan.

  Untuk meninjau contoh kebijakan IAM, lihat[Contoh kebijakan berbasis identitas untuk Amazon Aurora](security_iam_id-based-policy-examples.md).
+  Saat pertama kali membuat cluster DB, firewall-nya mencegah akses database apa pun kecuali melalui aturan yang ditentukan oleh grup keamanan terkait. 
+ Gunakan koneksi Secure Socket Layer (SSL) atau Transport Layer Security (TLS) dengan cluster DB yang menjalankan Aurora MySQL atau Aurora PostgreSQL. Untuk informasi lebih lanjut tentang penggunaan SSL/TLS dengan cluster DB, lihat[Menggunakan SSL/TLS untuk mengenkripsi koneksi ke ](UsingWithRDS.SSL.md).
+ Gunakan enkripsi Amazon untuk mengamankan instans DB cluster dan snapshot DB saat istirahat. Untuk informasi selengkapnya, lihat [Mengenkripsi sumber daya Amazon Aurora](Overview.Encryption.md).
+ Gunakan fitur keamanan mesin DB Anda untuk mengontrol siapa yang dapat masuk ke database pada cluster DB. Fitur ini berfungsi seolah-olah basis data berada di jaringan lokal Anda. 

  Untuk informasi tentang keamanan dengan Aurora MySQL, lihat. [Keamanan dengan Amazon Aurora MySQL](AuroraMySQL.Security.md) Untuk informasi tentang keamanan dengan Aurora PostgreSQL, lihat. [Keamanan dengan Amazon Aurora PostgreSQL](AuroraPostgreSQL.Security.md)

Aurora adalah bagian dari layanan basis data terkelola Amazon Relational Database Service (Amazon RDS). Amazon RDS adalah layanan web yang memudahkan penyiapan, pengoperasian, dan penskalaan basis data relasional di cloud. Jika Anda belum memahami tentang Amazon RDS, lihat [https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html). 

Aurora mencakup subsistem penyimpanan performa tinggi. Mesin basis data-nya yang kompatibel dengan MySQL dan PostgreSQL disesuaikan untuk memanfaatkan penyimpanan terdistribusi cepat tersebut. Aurora juga mengotomatiskan dan membakukan pengelompokan dan replikasi basis data, yang biasanya termasuk dalam aspek konfigurasi dan administrasi basis data yang paling menantang. 

Untuk Amazon RDS dan Aurora, Anda dapat mengakses RDS API secara terprogram, dan Anda dapat menggunakannya untuk mengakses RDS API secara AWS CLI interaktif. Beberapa pengoperasian API RDS dan perintah AWS CLI berlaku untuk Amazon RDS dan Aurora, sementara yang lainnya berlaku untuk Amazon RDS atau Aurora. Untuk informasi selengkapnya tentang pengoperasian API RDS, lihat [Referensi API Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/Welcome.html). Untuk informasi lebih lanjut tentang AWS CLI, lihat [AWS Command Line Interface referensi untuk Amazon RDS.](https://docs.aws.amazon.com/cli/latest/reference/rds/index.html) 

**catatan**  
Anda hanya perlu mengonfigurasikan keamanan untuk kasus penggunaan Anda. Anda tidak perlu mengonfigurasi akses keamanan untuk proses yang dikelola Amazon Aurora. Ini termasuk membuat cadangan, failover otomatis, dan proses lainnya.

Untuk informasi selengkapnya tentang mengelola akses ke sumber daya Amazon Aurora dan database Anda di cluster instans , lihat topik berikut.

**Topics**
+ [Otentikasi basis data dengan](database-authentication.md)
+ [Manajemen kata sandi dengan dan AWS Secrets Manager](rds-secrets-manager.md)
+ [Perlindungan data di Amazon RDS](DataDurability.md)
+ [Manajemen identitas dan akses untuk Amazon Aurora](UsingWithRDS.IAM.md)
+ [Pencatatan dan pemantauan di](Overview.LoggingAndMonitoring.md)
+ [Validasi kepatuhan untuk Amazon Aurora](RDS-compliance.md)
+ [Ketangguhan di Amazon Aurora](disaster-recovery-resiliency.md)
+ [Keamanan infrastruktur di Amazon Aurora](infrastructure-security.md)
+ [API Amazon RDS dan titik akhir VPC antarmuka (AWS PrivateLink)](vpc-interface-endpoints.md)
+ [Praktik terbaik keamanan untuk Amazon Aurora](CHAP_BestPractices.Security.md)
+ [Mengontrol akses dengan grup keamanan](Overview.RDSSecurityGroups.md)
+ [Hak akses akun pengguna master](UsingWithRDS.MasterAccounts.md)
+ [Menggunakan peran terkait layanan untuk Amazon Aurora](UsingWithRDS.IAM.ServiceLinkedRoles.md)
+ [Amazon VPC dan Aurora](USER_VPC.md)

# Otentikasi basis data dengan
<a name="database-authentication"></a>

 Amazon Aurora mendukung beberapa cara untuk mengautentikasi pengguna database.

Autentikasi kata sandi tersedia secara default untuk semua klaster basis data. Untuk Aurora MySQL dan Aurora PostgreSQL, Anda juga dapat menambahkan salah satu atau kedua autentikasi basis data IAM dan autentikasi Kerberos bagi klaster basis data yang sama.

Autentikasi kata sandi, Kerberos, dan basis data IAM menggunakan metode autentikasi yang berbeda ke basis data. Oleh karena itu, pengguna tertentu dapat masuk ke basis data dengan menggunakan hanya satu metode autentikasi. 

Untuk PostgreSQL, gunakan hanya salah satu dari setelah peran berikut untuk pengguna basis data tertentu: 
+ Untuk menggunakan autentikasi basis data IAM, tetapkan peran `rds_iam` untuk pengguna.
+ Untuk menggunakan autentikasi Kerberos, tetapkan peran `rds_ad` untuk pengguna.
+ Untuk menggunakan autentikasi kata sandi, jangan tetapkan peran `rds_iam` atau `rds_ad` untuk pengguna.

Jangan tetapkan kedua peran `rds_iam` dan `rds_ad` untuk pengguna basis data PostgreSQL baik secara langsung maupun tidak langsung dengan akses pemberian bersarang. Jika peran `rds_iam` ditambahkan ke pengguna master, autentikasi IAM diutamakan atas autentikasi kata sandi sehingga pengguna master harus masuk sebagai pengguna IAM.

**penting**  
Sebaiknya jangan gunakan pengguna master secara langsung di aplikasi Anda. Sebagai gantinya, ikuti praktik terbaik penggunaan pengguna basis data yang dibuat dengan privilese minimal yang diperlukan untuk aplikasi Anda.

**Topics**
+ [Autentikasi kata sandi](#password-authentication)
+ [Autentikasi basis data IAM](#iam-database-authentication)
+ [Autentikasi Kerberos](#kerberos-authentication)

## Autentikasi kata sandi
<a name="password-authentication"></a>

Dengan *autentikasi kata sandi*, basis data Anda melakukan semua administrasi akun pengguna. Anda membuat pengguna dengan pernyataan SQL seperti `CREATE USER`, dengan klausa yang tepat yang diperlukan oleh mesin basis data untuk menentukan kata sandi. Misalnya, di MySQL pernyataannya adalah, sementara di PostgreSQL, pernyataannya `CREATE USER` *name* `IDENTIFIED BY` *password* adalah. `CREATE USER` *name* `WITH PASSWORD` *password* 

Dengan autentikasi kata sandi, basis data Anda mengendalikan dan mengautentikasi akun pengguna. Jika mesin basis data memiliki fitur pengelolaan kata sandi kuat, mesin itu dapat meningkatkan keamanan. Autentikasi basis data mungkin lebih mudah dikelola dengan menggunakan autentikasi kata sandi apabila komunitas pengguna Anda kecil. Karena kata sandi teks yang jelas dihasilkan dalam kasus ini, mengintegrasikan dengan AWS Secrets Manager dapat meningkatkan keamanan.

*Untuk informasi tentang menggunakan Secrets Manager dengan Amazon Aurora, [lihat Membuat rahasia dasar](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html) [dan Memutar rahasia untuk database Amazon RDS yang didukung](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets-rds.html) di Panduan Pengguna.AWS Secrets Manager * Lihat informasi tentang cara mengambil rahasia secara terprogram pada aplikasi kustom Anda di [Mengambil nilai rahasia](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_retrieve-secret.html) dalam *Panduan Pengguna AWS Secrets Manager *. 

## Autentikasi basis data IAM
<a name="iam-database-authentication"></a>

Anda dapat mengautentikasi ke cluster DB Anda menggunakan otentikasi database AWS Identity and Access Management (IAM). Dengan metode otentikasi ini, Anda tidak perlu menggunakan kata sandi saat terhubung ke cluster DB. Sebagai gantinya, Anda menggunakan token autentikasi.

Untuk informasi selengkapnya tentang autentikasi database IAM, termasuk informasi tentang ketersediaan untuk mesin DB tertentu, lihat. [Autentikasi basis data IAM](UsingWithRDS.IAMDBAuth.md)

## Autentikasi Kerberos
<a name="kerberos-authentication"></a>

 Amazon Aurora Amazon mendukung otentikasi eksternal pengguna database menggunakan Kerberos dan Microsoft Active Directory. Kerberos adalah protokol autentikasi jaringan yang menggunakan tiket dan kriptografi kunci simetris untuk menghilangkan kebutuhan mengirim kata sandi melalui jaringan. Kerberos telah tertanam ke dalam Active Directory dan dirancang untuk mengautentikasi pengguna ke sumber daya jaringan, seperti basis data.

 Dukungan Amazon Aurora Amazon untuk Kerberos dan Active Directory memberikan manfaat sistem masuk tunggal dan otentikasi terpusat dari pengguna database. Anda dapat menyimpan kredensial pengguna Anda di Active Directory. 

Untuk menggunakan kredensyal dari Active Directory yang dikelola sendiri, Anda perlu menyiapkan hubungan kepercayaan ke for Directory Service Microsoft Active Directory tempat cluster DB digabungkan.

 satu arah dan dua arah dengan otentikasi seluruh hutan atau otentikasi selektif.

Dalam beberapa skenario, Anda dapat mengonfigurasi otentikasi Kerberos melalui hubungan kepercayaan eksternal. Ini memerlukan Active Directory yang dikelola sendiri untuk memiliki pengaturan tambahan. Ini termasuk tetapi tidak terbatas pada Perintah [Pencarian Hutan Kerberos](https://learn.microsoft.com/en-us/troubleshoot/windows-server/active-directory/kfso-not-work-in-external-trust-event-is-17). 

Aurora mendukung autentikasi Kerberos untuk klaster basis data Aurora MySQL dan Aurora PostgreSQL. Untuk informasi lebih lanjut, lihat [Menggunakan otentikasi Kerberos untuk Aurora My SQL](aurora-mysql-kerberos.md) dan[Menggunakan autentikasi Kerberos dengan Aurora PostgreSQL](postgresql-kerberos.md).

# Manajemen kata sandi dengan dan AWS Secrets Manager
<a name="rds-secrets-manager"></a>

Amazon Aurora terintegrasi dengan Secrets Manager untuk mengelola kata sandi pengguna utama untuk klaster .

**Topics**
+ [Ketersediaan wilayah dan versi](#rds-secrets-manager-availability)
+ [Batasan untuk integrasi Secrets Manager dengan Amazon Aurora](#rds-secrets-manager-limitations)
+ [Ikhtisar mengelola kata sandi pengguna master dengan AWS Secrets Manager](#rds-secrets-manager-overview)
+ [Manfaat mengelola kata sandi pengguna utama dengan Secrets Manager](#rds-secrets-manager-benefits)
+ [Izin yang diperlukan untuk integrasi Secrets Manager](#rds-secrets-manager-permissions)
+ [Menegakkan manajemen dari kata sandi pengguna utama di AWS Secrets Manager](#rds-secrets-manager-auth)
+ [Mengelola kata sandi pengguna utama untuk cluster DB dengan Secrets Manager](#rds-secrets-manager-db-cluster)
+ [Memutar rahasia kata sandi pengguna utama untuk cluster DB](#rds-secrets-manager-rotate-db-cluster)
+ [Melihat detail tentang rahasia untuk cluster DB](#rds-secrets-manager-view-db-cluster)

## Ketersediaan wilayah dan versi
<a name="rds-secrets-manager-availability"></a>

Ketersediaan dan dukungan fitur bervariasi di seluruh versi spesifik dari setiap mesin basis data dan di seluruh Wilayah AWS. Untuk informasi selengkapnya tentang ketersediaan versi dan Wilayah dengan integrasi Secrets Manager dengan Amazon Aurora, lihat [Daerah yang Didukung dan engine Aurora DB untuk integrasi Secrets Manager](Concepts.Aurora_Fea_Regions_DB-eng.Feature.SecretsManager.md). 

## Batasan untuk integrasi Secrets Manager dengan Amazon Aurora
<a name="rds-secrets-manager-limitations"></a>

Mengelola kata sandi pengguna utama dengan Secrets Manager tidak didukung untuk fitur berikut:
+ Penerapan Amazon RDS Blue/Green 
+ Klaster DB yang merupakan bagian dari basis data global Aurora
+ Klaster DB Aurora Serverless v1
+ Replika baca lintas Wilayah
+ Replikasi eksternal log biner

## Ikhtisar mengelola kata sandi pengguna master dengan AWS Secrets Manager
<a name="rds-secrets-manager-overview"></a>

Dengan AWS Secrets Manager, Anda dapat mengganti kredensi hard-code dalam kode Anda, termasuk kata sandi database, dengan panggilan API ke Secrets Manager untuk mengambil rahasia secara terprogram. Untuk informasi selengkapnya tentang Secrets Manager, lihat [Panduan Pengguna AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/). 

Ketika Anda menyimpan rahasia database di Secrets Manager, Anda akan Akun AWS dikenakan biaya. Untuk informasi tentang harga, lihat [AWS Secrets Manager Harga](https://aws.amazon.com/secrets-manager/pricing).

Anda dapat menentukan bahwa Aurora mengelola kata sandi pengguna utama di Secrets Manager untuk klaster DB Amazon Aurora saat Anda melakukan salah satu operasi berikut:
+ Buat cluster DB 
+ Memodifikasi cluster DB 
+ Kembalikan cluster DB dari Amazon S3 (hanya Aurora MySQL)

Saat Anda menentukan bahwa Aurora mengelola kata sandi pengguna utama di Secrets Manager, Aurora menghasilkan kata sandi dan menyimpannya dalam Secrets Manager. Anda dapat berinteraksi langsung dengan rahasia untuk mengambil kredensial untuk pengguna utama. Anda juga dapat menentukan kunci yang dikelola pelanggan untuk mengenkripsi rahasia, atau menggunakan kunci KMS default yang disediakan oleh Secrets Manager.

Secara default, Aurora mengelola pengaturan untuk rahasia dan merotasi rahasia setiap tujuh hari. Anda dapat mengubah beberapa pengaturan, seperti jadwal rotasi. Jika Anda menghapus klaster DB yang mengelola rahasia di Secrets Manager, rahasia dan metadata terkaitnya juga akan dihapus.

Untuk terhubung ke klaster DB dengan kredensial dalam rahasia, Anda dapat mengambil rahasia dari Secrets Manager. *Untuk informasi selengkapnya, lihat [Mengambil rahasia dari AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieving-secrets.html) dan [Connect ke database SQL dengan kredensi dalam AWS Secrets Manager rahasia di Panduan Pengguna](https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieving-secrets_jdbc.html).AWS Secrets Manager * 

## Manfaat mengelola kata sandi pengguna utama dengan Secrets Manager
<a name="rds-secrets-manager-benefits"></a>

Mengelola kata sandi pengguna utama Aurora dengan Secrets Manager memberikan manfaat berikut:
+ Aurora secara otomatis menghasilkan kredensial basis data.
+  Aurora secara otomatis menyimpan dan mengelola kredensil database di. AWS Secrets Manager
+ Aurora merotasi kredensial basis data secara teratur, tanpa mewajibkan perubahan aplikasi.
+ Secrets Manager mengamankan kredensial basis data dari akses manusia dan tampilan teks biasa.
+ Secrets Manager memungkinkan pengambilan kredensial basis data rahasia untuk koneksi basis data.
+ Secrets Manager memungkinkan kontrol akses terperinci ke kredensial basis data dalam rahasia menggunakan IAM.
+ Secara opsional, Anda dapat memisahkan enkripsi basis data dari enkripsi kredensial dengan kunci KMS lainnya.
+ Anda dapat menghilangkan rotasi dan manajemen manual kredensial basis data.
+ Anda dapat memantau kredensi database dengan mudah dengan dan AWS CloudTrail Amazon. CloudWatch

Untuk informasi selengkapnya tentang manfaat Secrets Manager, lihat [Panduan Pengguna AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/).

## Izin yang diperlukan untuk integrasi Secrets Manager
<a name="rds-secrets-manager-permissions"></a>

Pengguna harus memiliki izin yang diperlukan untuk melakukan operasi yang terkait dengan integrasi Secrets Manager. Anda dapat membuat kebijakan IAM yang memberikan izin untuk melakukan operasi API tertentu pada sumber daya spesifik yang diperlukan. Kemudian, Anda dapat melampirkan kebijakan tersebut ke peran atau kumpulan izin IAM yang memerlukan izin tersebut. Untuk informasi selengkapnya, lihat [Manajemen identitas dan akses untuk Amazon Aurora](UsingWithRDS.IAM.md).

Untuk membuat, memodifikasi, atau memulihkan operasi, pengguna yang menentukan bahwa Aurora mengelola kata sandi pengguna utama di Secrets Manager harus memiliki izin untuk melakukan operasi berikut:
+ `kms:DescribeKey`
+ `secretsmanager:CreateSecret`
+ `secretsmanager:TagResource`

`kms:DescribeKey`Izin diperlukan untuk mengakses kunci yang dikelola pelanggan Anda untuk `MasterUserSecretKmsKeyId` dan untuk menjelaskan. `aws/secretsmanager`

Untuk membuat, memodifikasi, atau memulihkan operasi, pengguna yang menentukan kunci yang dikelola pelanggan untuk mengenkripsi rahasia dalam Secrets Manager harus memiliki izin untuk melakukan operasi berikut:
+ `kms:Decrypt`
+ `kms:GenerateDataKey`
+ `kms:CreateGrant`

Untuk mengubah operasi, pengguna yang merotasi kata sandi pengguna utama dalam Secrets Manager harus memiliki izin untuk melakukan operasi berikut:
+ `secretsmanager:RotateSecret`

## Menegakkan manajemen dari kata sandi pengguna utama di AWS Secrets Manager
<a name="rds-secrets-manager-auth"></a>

Anda dapat menggunakan kunci kondisi IAM untuk menerapkan manajemen Aurora kata sandi pengguna utama di AWS Secrets Manager. Kebijakan berikut tidak mengizinkan pengguna untuk membuat atau memulihkan instans DB atau kluster DB atau kecuali kata sandi pengguna utama dikelola oleh RDS di Secrets Manager.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": ["rds:CreateDBInstance", "rds:CreateDBCluster", "rds:RestoreDBInstanceFromS3", "rds:RestoreDBClusterFromS3"],
            "Resource": "*",
            "Condition": {
                "Bool": {
                    "rds:ManageMasterUserPassword": false
                }
            }
        }
    ]
}
```

------

**catatan**  
Kebijakan ini memberlakukan manajemen kata sandi pada AWS Secrets Manager saat pembuatan. Namun, Anda masih dapat menonaktifkan integrasi Secrets Manager dan mengatur kata sandi utama secara manual dengan mengubah klaster.  
Untuk mencegahnya, sertakan `rds:ModifyDBInstance`, `rds:ModifyDBCluster` dalam blok tindakan kebijakan. Perhatikan bahwa tindakan ini akan mencegah pengguna menerapkan perubahan lebih lanjut pada klaster yang ada yang Secrets Manager-nya tidak diaktifkan. 

Untuk informasi lebih lanjut tentang penggunaan kunci kondisi dalam kebijakan IAM, lihat [Kunci kondisi kebijakan untuk Aurora](security_iam_service-with-iam.md#UsingWithRDS.IAM.Conditions) dan [Contoh Kebijakan: Menggunakan kunci kondisi](UsingWithRDS.IAM.Conditions.Examples.md).

## Mengelola kata sandi pengguna utama untuk cluster DB dengan Secrets Manager
<a name="rds-secrets-manager-db-cluster"></a>

Anda dapat mengonfigurasi manajemen Aurora kata sandi pengguna utama di Secrets Manager saat Anda melakukan tindakan berikut:
+ [Membuat klaster DB Amazon Aurora](Aurora.CreateInstance.md)
+ [Memodifikasi klaster DB Amazon Aurora](Aurora.Modifying.md)
+ [Memigrasikan data dari basis data MySQL eksternal ke klaster DB Amazon Aurora MySQL](AuroraMySQL.Migrating.ExtMySQL.md)

Anda dapat menggunakan konsol RDS, API AWS CLI, atau RDS untuk melakukan tindakan ini.

### Konsol
<a name="rds-secrets-manager-db-cluster-console"></a>

Ikuti petunjuk untuk membuat atau mengubah klaster DB dengan konsol RDS:
+ [Membuat klaster DB](Aurora.CreateInstance.md#Aurora.CreateInstance.Creating)
+ [Memodifikasi instans DB dalam klaster DB](Aurora.Modifying.md#Aurora.Modifying.Instance)

  Di konsol RDS, Anda dapat mengubah instans DB apa pun untuk menentukan pengaturan manajemen kata sandi pengguna utama untuk seluruh klaster DB.
+ [Memulihkan klaster DB Amazon Aurora MySQL dari bucket Amazon S3](AuroraMySQL.Migrating.ExtMySQL.S3.md#AuroraMySQL.Migrating.ExtMySQL.S3.Restore)

Saat menggunakan konsol RDS untuk melakukan salah satu operasi ini, Anda dapat menentukan bahwa kata sandi pengguna utama dikelola oleh Aurora di Secrets Manager. Untuk melakukannya saat membuat atau memulihkan klaster DB, pilih **Kelola kredensial utama di AWS Secrets Manager** dalam **Pengaturan kredensial**. Saat Anda mengubah klaster DB, pilih **Kelola kredensial utama di AWS Secrets Manager** dalam **Pengaturan**.

Gambar berikut adalah contoh pengaturan **Kelola kredensial utama di AWS Secrets Manager** saat Anda membuat atau memulihkan klaster DB.

![\[Kelola kredensi master di AWS Secrets Manager\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/AuroraUserGuide/images/secrets-manager-credential-settings.png)


Jika Anda memilih opsi ini, Aurora akan menghasilkan kata sandi pengguna utama dan mengelolanya sepanjang siklus pemakaiannya di Secrets Manager.

![\[Mengelola kredensi master dalam pilihan AWS Secrets Manager\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/AuroraUserGuide/images/secrets-manager-integration-create.png)


Anda dapat memilih untuk mengenkripsi rahasia dengan kunci KMS yang disediakan Secrets Manager atau dengan kunci yang dikelola pelanggan yang Anda buat. Setelah Aurora mengelola kredensial basis data untuk klaster DB, Anda tidak dapat mengubah kunci KMS yang digunakan untuk mengenkripsi rahasia.

Anda dapat memilih pengaturan lain untuk memenuhi kebutuhan Anda.

Untuk informasi selengkapnya tentang pengaturan yang tersedia saat Anda membuat klaster DB, lihat [Pengaturan untuk klaster Aurora DB](Aurora.CreateInstance.md#Aurora.CreateInstance.Settings). Untuk informasi selengkapnya tentang pengaturan yang tersedia saat Anda mengubah klaster DB, lihat [Pengaturan untuk Amazon Aurora](Aurora.Modifying.md#Aurora.Modifying.Settings).

### AWS CLI
<a name="rds-secrets-manager-db-cluster-cli"></a>

Untuk menentukan bahwa Aurora mengelola kata sandi pengguna utama di Secrets Manager, tentukan opsi `--manage-master-user-password` di salah satu perintah berikut:
+ [create-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster.html)
+ [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html)
+ [restore-db-cluster-from-s3](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-cluster-from-s3.html)

Jika Anda menentukan opsi `--manage-master-user-password` dalam perintah ini, Aurora akan menghasilkan kata sandi pengguna utama dan mengelolanya sepanjang siklus pemakaiannya di Secrets Manager.

Untuk mengenkripsi rahasia, Anda dapat menentukan kunci yang dikelola pelanggan atau menggunakan kunci KMS default yang disediakan oleh Secrets Manager. Gunakan opsi `--master-user-secret-kms-key-id` untuk menentukan kunci yang dikelola pelanggan. Pengidentifikasi kunci AWS KMS adalah kunci ARN, ID kunci, alias ARN, atau nama alias untuk kunci KMS. Untuk menggunakan kunci KMS yang berbeda Akun AWS, tentukan kunci ARN atau alias ARN. Setelah Aurora mengelola kredensial basis data untuk klaster DB, Anda tidak dapat mengubah kunci KMS yang digunakan untuk mengenkripsi rahasia.

Anda dapat memilih pengaturan lain untuk memenuhi kebutuhan Anda.

Untuk informasi selengkapnya tentang pengaturan yang tersedia saat Anda membuat klaster DB, lihat [Pengaturan untuk klaster Aurora DB](Aurora.CreateInstance.md#Aurora.CreateInstance.Settings). Untuk informasi selengkapnya tentang pengaturan yang tersedia saat Anda mengubah klaster DB, lihat [Pengaturan untuk Amazon Aurora](Aurora.Modifying.md#Aurora.Modifying.Settings).

Contoh ini membuat klaster DB dan menentukan bahwa Aurora mengelola kata sandi di Secrets Manager. Rahasianya dienkripsi menggunakan kunci KMS yang disediakan oleh Secrets Manager.

**Example**  
Untuk Linux, macOS, atau Unix:  

```
1. aws rds create-db-cluster \
2.      --db-cluster-identifier sample-cluster \
3.      --engine aurora-mysql \
4.      --engine-version 8.0 \
5.      --master-username admin \
6.      --manage-master-user-password
```
Untuk Windows:  

```
1. aws rds create-db-cluster ^
2.      --db-cluster-identifier sample-cluster ^
3.      --engine aurora-mysql ^
4.      --engine-version 8.0 ^
5.      --master-username admin ^
6.      --manage-master-user-password
```

### RDS API
<a name="rds-secrets-manager-db-cluster-api"></a>

Untuk menentukan bahwa Aurora mengelola kata sandi pengguna utama di Secrets Manager, atur parameter `ManageMasterUserPassword` ke `true` di salah satu operasi berikut:
+ [Buat DBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html)
+ [Memodifikasi DBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBCluster.html)
+ [Kembalikan DBCluster dari3](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBClusterFromS3.html)

Jika Anda mengatur parameter `ManageMasterUserPassword` ke `true` di salah satu operasi ini, Aurora akan menghasilkan kata sandi pengguna utama dan mengelolanya sepanjang siklus pemakaiannya di Secrets Manager.

Untuk mengenkripsi rahasia, Anda dapat menentukan kunci yang dikelola pelanggan atau menggunakan kunci KMS default yang disediakan oleh Secrets Manager. Gunakan parameter `MasterUserSecretKmsKeyId` untuk menentukan kunci yang dikelola pelanggan. Pengidentifikasi kunci AWS KMS adalah kunci ARN, ID kunci, alias ARN, atau nama alias untuk kunci KMS. Untuk menggunakan kunci KMS di Akun AWS yang berbeda, tentukan ARN kunci atau ARN alias. Setelah Aurora mengelola kredensial basis data untuk klaster DB, Anda tidak dapat mengubah kunci KMS yang digunakan untuk mengenkripsi rahasia.

## Memutar rahasia kata sandi pengguna utama untuk cluster DB
<a name="rds-secrets-manager-rotate-db-cluster"></a>

Ketika Aurora merotasi rahasia kata sandi pengguna utama, Secrets Manager akan menghasilkan versi rahasia baru untuk rahasia yang sudah ada. Rahasia versi baru berisi kata sandi pengguna utama baru. Aurora mengubah kata sandi pengguna utama untuk klaster DB agar sesuai dengan kata sandi versi rahasia baru.

Anda dapat segera merotasi rahasia, alih-alih menunggu rotasi yang dijadwalkan. Untuk merotasi rahasia kata sandi pengguna utama di Secrets Manager, ubah klaster DB . Untuk informasi tentang cara mengubah klaster DB, lihat [Memodifikasi klaster DB Amazon Aurora](Aurora.Modifying.md).

Anda dapat memutar rahasia kata sandi pengguna master segera dengan konsol RDS, API AWS CLI, atau RDS. Kata sandi baru selalu sepanjang 28 karakter dan berisi setidaknya satu karakter huruf besar dan kecil, satu angka, dan satu tanda baca. 

### Konsol
<a name="rds-secrets-manager-rotate-db-instance-console"></a>

Untuk merotasi rahasia kata sandi pengguna utama menggunakan konsol RDS, ubah klaster DB dan pilih **Rotasi rahasia secara langsung** di **Pengaturan**.

![\[Merotasi rahasia kata sandi pengguna utama secara langsung\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/AuroraUserGuide/images/secrets-manager-integration-rotate-aurora.png)


Ikuti petunjuk untuk mengubah klaster DB dengan konsol RDS di [Memodifikasi klaster DB dengan menggunakan konsol, CLI, dan API](Aurora.Modifying.md#Aurora.Modifying.Cluster). Anda harus memilih **Terapkan langsung** di halaman konfirmasi.

### AWS CLI
<a name="rds-secrets-manager-rotate-db-instance-cli"></a>

Untuk memutar rahasia kata sandi pengguna master menggunakan AWS CLI, gunakan [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html)perintah dan tentukan `--rotate-master-user-password` opsi. Anda harus menentukan opsi `--apply-immediately` saat merotasi kata sandi utama.

Contoh ini merotasi rahasia kata sandi pengguna utama.

**Example**  
Untuk Linux, macOS, atau Unix:  

```
1. aws rds modify-db-cluster \
2.     --db-cluster-identifier mydbcluster \
3.     --rotate-master-user-password \
4.     --apply-immediately
```
Untuk Windows:  

```
1. aws rds modify-db-cluster ^
2.     --db-cluster-identifier mydbcluster ^
3.     --rotate-master-user-password ^
4.     --apply-immediately
```

### API RDS
<a name="rds-secrets-manager-rotate-db-instance-api"></a>

Anda dapat memutar rahasia kata sandi pengguna master menggunakan DBCluster operasi [Modify](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBCluster.html) dan mengatur `RotateMasterUserPassword` parameternya`true`. Anda harus mengatur parameter `ApplyImmediately` ke `true` saat merotasi kata sandi utama.

## Melihat detail tentang rahasia untuk cluster DB
<a name="rds-secrets-manager-view-db-cluster"></a>

Anda dapat mengambil rahasia Anda menggunakan console ([https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/)) atau perintah AWS CLI ([get-secret-value](https://docs.aws.amazon.com/cli/latest/reference/secretsmanager/get-secret-value.html)Secrets Manager).

Anda dapat menemukan Amazon Resource Name (ARN) dari rahasia yang dikelola oleh Aurora di Secrets Manager dengan konsol RDS AWS CLI,, atau RDS API.

### Konsol
<a name="rds-secrets-manager-view-db-cluster-console"></a>

**Untuk melihat detail tentang rahasia yang dikelola oleh Secrets Manager**

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

1. Di panel navigasi, pilih **Basis Data**.

1. Pilih nama klaster DB untuk menampilkan detailnya.

1. Pilih tab **Konfigurasi**.

   Di **ARN Kredensial Utama**, Anda dapat melihat ARN rahasia.  
![\[Lihat detail tentang rahasia yang dikelola oleh Aurora di Secrets Manager\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/AuroraUserGuide/images/secrets-manager-integration-view-cluster.png)

   Anda dapat mengikuti tautan **Mengelola di Secrets Manager** untuk melihat dan mengelola rahasia di konsol Secrets Manager.

### AWS CLI
<a name="rds-secrets-manager-view-db-instance-cli"></a>

Anda dapat menggunakan AWS CLI [describe-db-clusters](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clusters.html)perintah RDS untuk menemukan informasi berikut tentang rahasia yang dikelola oleh di Secrets Manager:
+ `SecretArn` – ARN rahasia
+ `SecretStatus` – Status rahasia

  Kemungkinan nilai statusnya meliputi:
  + `creating` – Rahasia sedang dibuat.
  + `active` – Rahasia tersedia untuk penggunaan normal dan rotasi.
  + `rotating` – Rahasia sedang dirotasi.
  + `impaired` – Rahasia dapat digunakan untuk mengakses kredensial basis data, tetapi tidak dapat dirotasi. Rahasia mungkin memiliki status ini jika, misalnya, izin diubah sehingga RDS tidak dapat lagi mengakses rahasia atau kunci KMS untuk rahasia tersebut.

    Ketika rahasia memiliki status ini, Anda dapat memperbaiki kondisi yang menyebabkan status tersebut. Jika Anda memperbaiki kondisi yang menyebabkan status, status tersebut tetap `impaired` hingga rotasi berikutnya. Sebagai alternatif, Anda dapat mengubah klaster DB untuk menonaktifkan manajemen otomatis kredensial basis data, dan kemudian mengubah klaster DB lagi untuk mengaktifkan manajemen otomatis kredensial basis data. Untuk memodifikasi cluster DB, gunakan `--manage-master-user-password` opsi dalam [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html)perintah.
+ `KmsKeyId` – ARN kunci KMS yang digunakan untuk mengenkripsi rahasia

Tentukan opsi `--db-cluster-identifier` untuk menampilkan output untuk klaster DB tertentu. Contoh ini menunjukkan output untuk rahasia yang digunakan oleh klaster DB.

**Example**  

```
1. aws rds describe-db-clusters --db-cluster-identifier mydbcluster
```
Contoh berikut menunjukkan output untuk rahasia:  

```
"MasterUserSecret": {
                "SecretArn": "arn:aws:secretsmanager:eu-west-1:123456789012:secret:rds!cluster-033d7456-2c96-450d-9d48-f5de3025e51c-xmJRDx",
                "SecretStatus": "active",
                "KmsKeyId": "arn:aws:kms:eu-west-1:123456789012:key/0987dcba-09fe-87dc-65ba-ab0987654321"
            }
```

Ketika Anda memiliki ARN rahasia, Anda dapat melihat detail tentang rahasia menggunakan perintah [get-secret-value](https://docs.aws.amazon.com/cli/latest/reference/secretsmanager/get-secret-value.html)Secrets Manager CLI.

Contoh ini menunjukkan detail untuk rahasia dalam output sampel sebelumnya.

**Example**  
Untuk Linux, macOS, atau Unix:  

```
aws secretsmanager get-secret-value \
    --secret-id 'arn:aws:secretsmanager:eu-west-1:123456789012:secret:rds!cluster-033d7456-2c96-450d-9d48-f5de3025e51c-xmJRDx'
```
Untuk Windows:  

```
aws secretsmanager get-secret-value ^
    --secret-id 'arn:aws:secretsmanager:eu-west-1:123456789012:secret:rds!cluster-033d7456-2c96-450d-9d48-f5de3025e51c-xmJRDx'
```

### API RDS
<a name="rds-secrets-manager-rotate-db-instance-api"></a>

Anda dapat melihat kunci ARN, status, dan KMS untuk rahasia yang dikelola oleh RDS di Secrets Manager menggunakan operasi DBClusters Deskripsikan RDS dan mengatur `DBClusterIdentifier` parameter [ke](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBClusters.html) pengidentifikasi cluster DB. Detail tentang rahasia disertakan dalam output.

Ketika Anda memiliki ARN rahasia, Anda dapat melihat detail tentang rahasia menggunakan operasi [GetSecretValue](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html)Secrets Manager.

# Perlindungan data di Amazon RDS
<a name="DataDurability"></a>

[Model tanggung jawab AWS bersama model](https://aws.amazon.com/compliance/shared-responsibility-model/) berlaku untuk perlindungan data di Amazon Relational Database Service. Seperti yang dijelaskan dalam model AWS ini, bertanggung jawab untuk melindungi infrastruktur global yang menjalankan semua AWS Cloud. Anda bertanggung jawab untuk mempertahankan kendali atas konten yang di-host pada infrastruktur ini. Anda juga bertanggung jawab atas tugas-tugas konfigurasi dan manajemen keamanan untuk Layanan AWS yang Anda gunakan. Lihat informasi yang lebih lengkap tentang privasi data dalam [Pertanyaan Umum Privasi Data](https://aws.amazon.com/compliance/data-privacy-faq/). Lihat informasi tentang perlindungan data di Eropa di pos blog [Model Tanggung Jawab Bersama dan GDPR AWS](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) di *Blog Keamanan AWS *.

Untuk tujuan perlindungan data, kami menyarankan Anda melindungi Akun AWS kredensyal dan mengatur pengguna individu dengan AWS IAM Identity Center atau AWS Identity and Access Management (IAM). Dengan cara itu, setiap pengguna hanya diberi izin yang diperlukan untuk memenuhi tanggung jawab tugasnya. Kami juga menyarankan supaya Anda mengamankan data dengan cara-cara berikut:
+ Gunakan autentikasi multi-faktor (MFA) pada setiap akun.
+ Gunakan SSL/TLS untuk berkomunikasi dengan sumber daya. AWS Kami mensyaratkan TLS 1.2 dan menganjurkan TLS 1.3.
+ Siapkan API dan pencatatan aktivitas pengguna dengan AWS CloudTrail. Untuk informasi tentang penggunaan CloudTrail jejak untuk menangkap AWS aktivitas, lihat [Bekerja dengan CloudTrail jejak](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-trails.html) di *AWS CloudTrail Panduan Pengguna*.
+ Gunakan solusi AWS enkripsi, bersama dengan semua kontrol keamanan default di dalamnya Layanan AWS.
+ Gunakan layanan keamanan terkelola tingkat lanjut seperti Amazon Macie, yang membantu menemukan dan mengamankan data sensitif yang disimpan di Amazon S3.
+ Jika Anda memerlukan modul kriptografi tervalidasi FIPS 140-3 saat mengakses AWS melalui antarmuka baris perintah atau API, gunakan titik akhir FIPS. Lihat informasi selengkapnya tentang titik akhir FIPS yang tersedia di [Standar Pemrosesan Informasi Federal (FIPS) 140-3](https://aws.amazon.com/compliance/fips/).

Kami sangat merekomendasikan agar Anda tidak pernah memasukkan informasi identifikasi yang sensitif, seperti nomor rekening pelanggan Anda, ke dalam tanda atau bidang isian bebas seperti bidang **Nama**. Ini termasuk saat Anda bekerja dengan Amazon RDS atau lainnya Layanan AWS menggunakan konsol, API AWS CLI, atau AWS SDKs. Data apa pun yang Anda masukkan ke dalam tanda atau bidang isian bebas yang digunakan untuk nama dapat digunakan untuk log penagihan atau log diagnostik. Saat Anda memberikan URL ke server eksternal, kami sangat menganjurkan supaya Anda tidak menyertakan informasi kredensial di dalam URL untuk memvalidasi permintaan Anda ke server itu.

**Topics**
+ [Melindungi data dengan menggunakan enkripsi](Encryption.md)
+ [Privasi lalu lintas antarjaringan](inter-network-traffic-privacy.md)

# Melindungi data dengan menggunakan enkripsi
<a name="Encryption"></a>

Amazon Aurora mengenkripsi sumber daya database di lapisan penyimpanan. Anda juga dapat mengenkripsi koneksi ke cluster DB.

**Topics**
+ [Mengenkripsi sumber daya Amazon Aurora](Overview.Encryption.md)
+ [AWS KMS key manajemen](Overview.Encryption.Keys.md)
+ [Menggunakan SSL/TLS untuk mengenkripsi koneksi ke](UsingWithRDS.SSL.md)
+ [Memutar sertifikat Anda SSL/TLS](UsingWithRDS.SSL-certificate-rotation.md)

# Mengenkripsi sumber daya Amazon Aurora
<a name="Overview.Encryption"></a>

Amazon Aurora melindungi data Anda baik saat istirahat maupun dalam transit—baik berpindah antara klien lokal dan Amazon Aurora, atau antara Amazon Aurora dan sumber daya lainnya. AWS Amazon Aurora mengenkripsi semua data pengguna di cluster Amazon Aurora DB Anda termasuk log, pencadangan otomatis, dan snapshot.

Setelah data Anda dienkripsi, Amazon menangani otentikasi akses dan dekripsi data Anda secara transparan dengan dampak minimal pada kinerja. Anda tidak perlu memodifikasi aplikasi klien basis data untuk menggunakan enkripsi.

**catatan**  
Untuk cluster DB terenkripsi dan tidak terenkripsi, data yang sedang transit antara sumber dan replika baca dienkripsi, bahkan saat mereplikasi di seluruh Wilayah. AWS 

**Topics**
+ [Ikhtisar enkripsi di sumber daya Amazon Aurora](#Overview.Encryption.Overview)
+ [Mengenkripsi klaster DB Amazon Aurora](#Overview.Encryption.Enabling)
+ [Menentukan apakah enkripsi untuk klaster DB diaktifkan](#Overview.Encryption.Determining)
+ [Ketersediaan enkripsi Amazon Aurora](#Overview.Encryption.Availability)
+ [Enkripsi saat bergerak](#Overview.Encryption.InTransit)
+ [Batasan klaster DB terenkripsi Amazon Aurora](#Overview.Encryption.Limitations)

## Ikhtisar enkripsi di sumber daya Amazon Aurora
<a name="Overview.Encryption.Overview"></a>

Klaster DB terenkripsi Amazon Aurora menyediakan lapisan perlindungan data tambahan dengan mengamankan data Anda dari akses tidak sah ke penyimpanan dasar. Semua cluster database baru yang dibuat pada atau setelah 18 Februari 2026 2026, di Amazon Aurora dienkripsi saat istirahat menggunakan enkripsi AES-256 standar industri. Enkripsi ini terjadi secara otomatis di latar belakang, mengamankan data Anda tanpa memerlukan tindakan apa pun dari Anda. Ini juga membantu mengurangi beban operasional dan kompleksitas yang terlibat dalam melindungi data sensitif. Dengan enkripsi saat istirahat, Anda dapat mengamankan aplikasi yang sensitif terhadap kepatuhan dan keamanan kritis terhadap ancaman yang tidak disengaja dan berbahaya sambil memenuhi persyaratan peraturan.

Amazon Aurora menggunakan AWS Key Management Service kunci untuk mengenkripsi sumber daya ini. AWS KMS menggabungkan perangkat keras dan perangkat lunak yang aman dan sangat tersedia untuk menyediakan sistem manajemen kunci yang diskalakan untuk cloud. [Saat membuat cluster database baru, Amazon Aurora menggunakan Server-Side Encryption (SSE) dengan kunci yang dimiliki secara default.AWS](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-key) Namun, Anda dapat memilih dari tiga jenis enkripsi berdasarkan kebutuhan keamanan dan kepatuhan Anda:
+ **AWS Owned Key (SSE-RDS)** — Kunci enkripsi yang sepenuhnya AWS dikendalikan yang tidak dapat Anda lihat atau kelola, digunakan secara otomatis oleh Aurora untuk enkripsi default.
+ **AWS kunci terkelola (AMK)** — Kunci ini dibuat dan dikelola oleh AWS dan terlihat di akun Anda tetapi tidak dapat disesuaikan. Tidak ada biaya bulanan, tetapi biaya AWS KMS API akan berlaku.
+ **Kunci yang dikelola pelanggan (CMK)** — Kunci disimpan di akun Anda dan dibuat, dimiliki, dan dikelola oleh Anda. Anda memiliki kontrol penuh atas kunci KMS (AWS KMS dikenakan biaya).

AWS kunci terkelola adalah opsi enkripsi lama yang tetap tersedia untuk kompatibilitas mundur. Amazon Aurora menggunakan kunci yang AWS dimiliki secara default untuk mengenkripsi data Anda, memberikan perlindungan keamanan yang kuat tanpa biaya tambahan atau overhead manajemen. Untuk sebagian besar kasus penggunaan, sebaiknya gunakan kunci bawaan yang AWS dimiliki untuk kesederhanaan dan efisiensi biaya, atau kunci terkelola pelanggan (CMK) jika Anda memerlukan kontrol penuh atas kunci enkripsi Anda. Untuk informasi selengkapnya tentang jenis kunci, lihat kunci [terkelola pelanggan dan kunci AWS terkelola](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-mgmt).

**catatan**  
**Penting:** Untuk instans database sumber atau cluster yang dibuat sebelum 18 Februari 2026 2026, di mana Anda tidak memilih enkripsi, snapshot, klon, dan replika Amazon Aurora (contoh baca) yang dibuat dari sumber tersebut akan tetap tidak terenkripsi. Namun, operasi pemulihan dan replikasi logis di luar klaster Amazon Aurora akan menghasilkan instance terenkripsi.

 Untuk klaster DB terenkripsi Amazon Aurora, semua instans DB, log, cadangan, dan snapshot dienkripsi. Untuk informasi selengkapnya tentang ketersediaan dan keterbatasan enkripsi, lihat [Ketersediaan enkripsi Amazon Aurora](#Overview.Encryption.Availability) dan[Batasan klaster DB terenkripsi Amazon Aurora](#Overview.Encryption.Limitations).

Saat membuat kluster DB terenkripsi, Anda dapat memilih kunci yang dikelola pelanggan atau Amazon Aurora Kunci yang dikelola AWS untuk mengenkripsi klaster DB Anda, jika Anda tidak menentukan pengenal kunci untuk kunci yang dikelola pelanggan, Amazon Aurora menggunakan cluster DB baru Anda. Kunci yang dikelola AWS Amazon Aurora membuat untuk Amazon Aurora Kunci yang dikelola AWS untuk akun Anda. AWS AWS Akun Anda memiliki perbedaan Kunci yang dikelola AWS untuk Amazon Aurora untuk setiap AWS Wilayah.

[Untuk mengelola kunci terkelola pelanggan yang digunakan untuk mengenkripsi dan mendekripsi sumber daya Amazon Aurora, Anda menggunakan ().AWS Key Management ServiceAWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/) 

Dengan menggunakan AWS KMS, Anda dapat membuat kunci terkelola pelanggan dan menentukan kebijakan untuk mengontrol penggunaan kunci yang dikelola pelanggan ini. AWS KMS mendukung CloudTrail, sehingga Anda dapat mengaudit penggunaan kunci KMS untuk memverifikasi bahwa kunci yang dikelola pelanggan digunakan dengan tepat. Anda dapat menggunakan kunci yang dikelola pelanggan dengan Amazon Aurora dan AWS layanan yang didukung seperti Amazon S3, Amazon EBS, dan Amazon Redshift. Untuk daftar layanan yang terintegrasi AWS KMS, lihat [Integrasi AWS Layanan](https://aws.amazon.com/kms/features/#AWS_Service_Integration). Beberapa pertimbangan tentang penggunaan kunci KMS: 
+ Setelah Anda membuat instans DB terenkripsi, Anda tidak dapat mengubah kunci KMS yang digunakan oleh instance itu. Pastikan untuk menentukan persyaratan kunci KMS Anda sebelum membuat instans DB terenkripsi Anda. Jika Anda perlu mengubah kunci enkripsi untuk cluster DB Anda, ikuti langkah-langkah berikut:
  + Buat snapshot manual cluster Anda. 
  + Kembalikan snapshot dan aktifkan enkripsi dengan kunci KMS yang Anda inginkan selama operasi pemulihan. 
+ Jika Anda memulihkan snapshot yang tidak terenkripsi dan memilih tidak ada enkripsi, kluster database yang dibuat akan dienkripsi menggunakan enkripsi default saat istirahat (-owned key).AWS
+ Anda tidak dapat membagikan snapshot yang telah dienkripsi menggunakan AWS akun Kunci yang dikelola AWS yang membagikan snapshot.
+ Setiap instans DB di cluster DB berbagi penyimpanan yang sama dienkripsi dengan kunci KMS yang sama.

**penting**  
Amazon Aurora dapat kehilangan akses ke kunci KMS untuk cluster DB saat Anda menonaktifkan kunci KMS. Dalam kasus ini, klaster DB terenkripsi akan berstatus `inaccessible-encryption-credentials-recoverable`. Cluster DB tetap dalam keadaan ini selama tujuh hari, di mana instance dihentikan. Panggilan API yang dilakukan ke cluster DB selama waktu ini mungkin tidak berhasil. Untuk memulihkan cluster DB, aktifkan kunci KMS dan restart cluster DB ini. Anda dapat mengaktifkan kunci KMS dari Konsol Manajemen AWS, AWS CLI, atau RDS API. Mulai ulang cluster DB menggunakan AWS CLI perintah [start-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/start-db-cluster.html)atau Konsol Manajemen AWS.  
`inaccessible-encryption-credentials-recoverable`Status hanya berlaku untuk cluster DB yang dapat berhenti. Status yang dapat dipulihkan ini tidak berlaku untuk instance yang tidak dapat dihentikan, seperti cluster dengan replika baca lintas wilayah. Untuk informasi selengkapnya, lihat [Pembatasan untuk menghentikan dan memulai klaster DB Aurora](aurora-cluster-stop-start.md#aurora-cluster-stop-limitations).  
Jika cluster DB tidak dipulihkan dalam waktu tujuh hari, ia masuk ke `inaccessible-encryption-credentials` status terminal. Dalam keadaan ini, cluster DB tidak dapat digunakan lagi dan Anda hanya dapat memulihkan cluster DB dari cadangan. Kami sangat menyarankan agar Anda selalu mengaktifkan cadangan untuk mencegah hilangnya data dalam database Anda.  
Selama pembuatan cluster DB, Aurora memeriksa apakah prinsipal panggilan memiliki akses ke kunci KMS dan menghasilkan hibah dari kunci KMS yang digunakan untuk seluruh masa pakai cluster DB. Mencabut akses prinsipal panggilan ke kunci KMS tidak memengaruhi database yang sedang berjalan. Saat menggunakan kunci KMS dalam skenario lintas akun, seperti menyalin snapshot ke akun lain, kunci KMS perlu dibagikan dengan akun lain. Jika Anda membuat cluster DB dari snapshot tanpa menentukan kunci KMS yang berbeda, cluster baru menggunakan kunci KMS dari akun sumber. Mencabut akses ke kunci setelah Anda membuat cluster DB tidak mempengaruhi cluster. Namun, menonaktifkan kunci berdampak pada semua cluster DB yang dienkripsi dengan kunci itu. Untuk mencegah hal ini, tentukan kunci yang berbeda selama operasi penyalinan snapshot.

Untuk informasi selengkapnya tentang kunci KMS, lihat [AWS KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys) di *Panduan Developer AWS Key Management Service * dan [AWS KMS key manajemen](Overview.Encryption.Keys.md). 

## Mengenkripsi klaster DB Amazon Aurora
<a name="Overview.Encryption.Enabling"></a>

Semua cluster DB baru yang dibuat pada atau setelah 18 Februari 2026, dienkripsi secara default dengan kunci yang dimiliki. AWS 

Untuk mengenkripsi cluster DB baru, menggunakan Kunci yang dikelola AWS atau kunci yang dikelola pelanggan, pilih opsi di konsol. Untuk informasi tentang pembuatan klaster DB, lihat [Membuat klaster DB Amazon Aurora](Aurora.CreateInstance.md).

Jika Anda menggunakan [create-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster.html) AWS CLI perintah untuk membuat cluster DB terenkripsi, atur parameternya. `--storage-encrypted` Jika Anda menggunakan operasi [Create DBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html) API, atur `StorageEncrypted` parameter ke true.

Setelah membuat klaster DB terenkripsi, Anda tidak dapat mengubah kunci KMS yang digunakan oleh klaster DB tersebut. Oleh karena itu, tentukan persyaratan kunci KMS sebelum membuat klaster DB terenkripsi.

Jika Anda menggunakan AWS CLI `create-db-cluster` perintah untuk membuat cluster DB terenkripsi dengan kunci yang dikelola pelanggan, setel `--kms-key-id` parameter ke pengidentifikasi kunci apa pun untuk kunci KMS. Jika Anda menggunakan operasi `CreateDBInstance` Amazon RDS API, atur parameter `KmsKeyId` ke pengidentifikasi kunci mana pun untuk kunci KMS. Untuk menggunakan kunci yang dikelola pelanggan di AWS akun yang berbeda, tentukan kunci ARN atau alias ARN.

## Menentukan apakah enkripsi untuk klaster DB diaktifkan
<a name="Overview.Encryption.Determining"></a>

Anda dapat menggunakan Konsol Manajemen AWS, AWS CLI, atau RDS API untuk menentukan apakah enkripsi saat istirahat diaktifkan untuk cluster DB.

### Konsol
<a name="Overview.Encryption.Determining.CON"></a>

**Untuk menentukan apakah enkripsi diam untuk klaster DB diaktifkan**

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

1. Di panel navigasi, pilih **Basis data**.

1. Pilih nama klaster DB yang ingin Anda periksa untuk melihat detailnya.

1. Pilih tab **Konfigurasi** dan periksa nilai **Enkripsi**.  
![\[Memeriksa enkripsi diam untuk klaster DB\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/AuroraUserGuide/images/encryption-aurora-instance.png)

### AWS CLI
<a name="Overview.Encryption.Determining.CLI"></a>

Untuk menentukan apakah enkripsi saat istirahat diaktifkan untuk cluster DB dengan menggunakan AWS CLI, panggil [describe-db-clusters](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clusters.html)perintah dengan opsi berikut: 
+ `--db-cluster-identifier` – Nama klaster DB.

Contoh berikut ini menggunakan kueri untuk mengembalikan `TRUE` atau `FALSE` mengenai enkripsi diam untuk klaster DB `mydb`.

**Example**  

```
1. aws rds describe-db-clusters --db-cluster-identifier mydb --query "*[].{StorageEncrypted:StorageEncrypted}" --output text
```

### API RDS
<a name="Overview.Encryption.Determining.API"></a>

Untuk menentukan apakah enkripsi saat istirahat diaktifkan untuk cluster DB dengan menggunakan Amazon RDS API, panggil DBClusters operasi [Deskripsikan](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBClusters.html) dengan parameter berikut: 
+ `DBClusterIdentifier` – Nama klaster DB.

## Ketersediaan enkripsi Amazon Aurora
<a name="Overview.Encryption.Availability"></a>

Enkripsi Amazon Aurora saat ini tersedia untuk semua jenis mesin basis data dan penyimpanan.

**catatan**  
Enkripsi Amazon Aurora tidak tersedia untuk kelas instans DB db.t2.micro.

## Enkripsi saat bergerak
<a name="Overview.Encryption.InTransit"></a>

**Enkripsi pada lapisan fisik**  
Semua data yang mengalir Wilayah AWS melalui jaringan AWS global secara otomatis dienkripsi pada lapisan fisik sebelum meninggalkan fasilitas yang aman. AWS Semua lalu lintas di antaranya AZs dienkripsi. Lapisan enkripsi tambahan, termasuk yang tercantum dalam bagian ini dapat memberikan perlindungan tambahan.

**Enkripsi disediakan oleh peering VPC Amazon dan pengintipan lintas wilayah Gateway Transit**  
Semua lalu lintas lintas Wilayah yang menggunakan Amazon VPC dan Transit Gateway peering secara otomatis dienkripsi secara massal saat keluar dari suatu Wilayah. Lapisan enkripsi tambahan secara otomatis disediakan di lapisan fisik untuk semua lalu lintas sebelum meninggalkan fasilitas yang AWS aman.

**Enkripsi antar instance**  
AWS menyediakan konektivitas aman dan pribadi antara instans DB dari semua jenis. Selain itu, beberapa tipe instans menggunakan kemampuan offload dari perangkat keras Nitro System yang mendasarinya untuk secara otomatis mengenkripsi lalu lintas dalam transit antar instans. Enkripsi ini menggunakan algoritma Authenticated Encryption with Associated Data (AEAD), dengan enkripsi 256-bit. Tidak ada dampak terhadap performa jaringan. Untuk mendukung enkripsi lalu lintas dalam transit tambahan ini antara instans, persyaratan-persyaratan berikut harus dipenuhi:  
+ Instans-instans tersebut menggunakan tipe instans berikut:
  + **Tujuan umum**: M6i, M6iD, M6in, M6idn, M7g
  + **Memori yang dioptimalkan**: R6i, R6id, R6in, R6idn, R7g, X2idn, X2IEDN, X2IEZN
+ Contohnya sama Wilayah AWS.
+ Instans berada dalam VPC atau VPCs peered yang sama, dan lalu lintas tidak melewati perangkat atau layanan jaringan virtual, seperti penyeimbang beban atau gateway transit.

## Batasan klaster DB terenkripsi Amazon Aurora
<a name="Overview.Encryption.Limitations"></a>

Berikut batasan pada klaster DB terenkripsi Amazon Aurora:
+ Anda tidak dapat menonaktifkan enkripsi pada klaster DB terenkripsi.
+ Jika Anda memiliki cluster tidak terenkripsi yang ada, semua snapshot yang dibuat dari cluster itu juga akan tidak dienkripsi. Untuk membuat snapshot terenkripsi dari cluster yang tidak terenkripsi, Anda harus menyalin snapshot dan menentukan kunci yang dikelola pelanggan selama operasi penyalinan. Anda tidak dapat membuat snapshot terenkripsi dari snapshot yang tidak terenkripsi tanpa menentukan kunci yang dikelola pelanggan.
+ 
+ Snapshot klaster DB terenkripsi harus dienkripsi menggunakan kunci KMS yang sama dengan klaster DB.
+ Anda tidak dapat mengonversi klaster DB tidak terenkripsi ke klaster terenkripsi. Namun, Anda dapat memulihkan snapshot tidak terenkripsi ke klaster DB Aurora terenkripsi. Untuk melakukannya, tentukan kunci KMS saat Anda memulihkan dari snapshot tidak terenkripsi.
+ Jika Anda memiliki kluster tidak terenkripsi yang ada, replika Amazon Aurora (instance baca) yang dibuat dari cluster itu juga akan tidak dienkripsi. Untuk membuat cluster terenkripsi dari cluster yang tidak terenkripsi, Anda perlu memulihkan cluster database. Cluster yang dipulihkan akan dienkripsi secara default setelah operasi pemulihan.
+ Untuk menyalin snapshot terenkripsi dari satu AWS Wilayah ke wilayah lain, Anda harus menentukan kunci KMS di Wilayah tujuan. AWS Ini karena kunci KMS khusus untuk AWS Wilayah tempat mereka dibuat.

  Tangkapan layar sumber tetap terenkripsi selama proses penyalinan. Amazon Aurora menggunakan enkripsi amplop untuk melindungi data selama proses penyalinan. Untuk informasi selengkapnya tentang enkripsi amplop, lihat [ Enkripsi amplop](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#enveloping) di *Panduan Developer AWS Key Management Service *.
+ Anda tidak dapat membatalkan enkripsi klaster DB terenkripsi. Namun, Anda dapat mengekspor data dari klaster DB terenkripsi dan mengimpor data ke klaster DB tidak terenkripsi.

# AWS KMS key manajemen
<a name="Overview.Encryption.Keys"></a>

 Amazon Aurora secara otomatis terintegrasi [AWS Key Management Service dengan AWS KMS(](https://docs.aws.amazon.com/kms/latest/developerguide/)) untuk manajemen kunci. Amazon Aurora menggunakan enkripsi amplop. Untuk informasi selengkapnya tentang enkripsi amplop, lihat [ Enkripsi amplop](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#enveloping) di *Panduan Developer AWS Key Management Service *. 

Anda dapat menggunakan dua jenis AWS KMS kunci untuk mengenkripsi cluster DB Anda. 
+ Jika Anda menginginkan kontrol penuh atas kunci KMS, Anda harus membuat *kunci yang dikelola pelanggan*. Untuk informasi selengkapnya tentang kunci yang dikelola pelanggan, lihat [Kunci yang dikelola pelanggan](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) di *Panduan Developer AWS Key Management Service *. 
+  *Kunci yang dikelola AWS*adalah kunci KMS di akun Anda yang dibuat, dikelola, dan digunakan atas nama Anda oleh AWS layanan yang terintegrasi dengannya AWS KMS. Secara default, RDS Kunci yang dikelola AWS (`aws/rds`) digunakan untuk enkripsi. Anda tidak dapat mengelola, memutar, atau menghapus RDS. Kunci yang dikelola AWS Untuk informasi selengkapnya Kunci yang dikelola AWS, lihat [Kunci yang dikelola AWS](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk)di *Panduan AWS Key Management Service Pengembang*. 

[Untuk mengelola kunci KMS yang digunakan untuk cluster instans terenkripsi Amazon Aurora, gunakan [AWS KMS() di AWS Key Management ServiceAWS KMS konsol](https://docs.aws.amazon.com/kms/latest/developerguide/), atau API.](https://console.aws.amazon.com/kms) AWS CLI AWS KMS Untuk melihat log Audit setiap tindakan yang diambil dengan kunci yang dikelola pelanggan atau AWS , gunakan [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/). Untuk informasi selengkapnya tentang rotasi kunci, lihat [Merotasi kunci AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html). 

## Mengizinkan penggunaan kunci yang dikelola pelanggan
<a name="Overview.Encryption.Keys.Authorizing"></a>

Ketika Aurora menggunakan kunci yang dikelola pelanggan dalam operasi kriptografi, ia bertindak atas nama pengguna yang membuat atau mengubah sumber daya Aurora.

Untuk membuat sumber daya Aurora menggunakan kunci yang dikelola pelanggan, pengguna harus memiliki izin untuk memanggil operasi berikut pada kunci yang dikelola pelanggan:
+  `kms:CreateGrant` 
+  `kms:DescribeKey` 

Anda dapat menentukan izin yang diperlukan ini dalam kebijakan kunci, atau dalam kebijakan IAM jika kebijakan kunci memungkinkan hal tersebut.

**penting**  
Bila Anda menggunakan pernyataan penolakan eksplisit untuk semua sumber daya (\$1) dalam kebijakan AWS KMS utama dengan layanan terkelola seperti Amazon RDS, Anda harus menentukan kondisi untuk mengizinkan akun pemilik sumber daya. Operasi mungkin gagal tanpa kondisi ini, bahkan jika aturan penolakan menyertakan pengecualian untuk pengguna IAM Anda.

**Tip**  
Untuk mengikuti prinsip hak akses paling rendah, jangan biarkan akses penuh ke `kms:CreateGrant`. Sebagai gantinya, gunakan [kunci ViaService kondisi kms:](https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-via-service) untuk memungkinkan pengguna membuat hibah pada kunci KMS hanya ketika hibah dibuat atas nama pengguna oleh layanan. AWS 

Anda dapat membuat kebijakan IAM lebih ketat dalam berbagai cara. Misalnya, jika Anda ingin mengizinkan kunci yang dikelola pelanggan hanya digunakan untuk permintaan yang berasal dari , gunakan [kunci kms: ViaService kondisi dengan nilainya](https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-via-service). `rds.<region>.amazonaws.com` Selain itu, Anda dapat menggunakan kunci atau nilai dalam [Konteks enkripsi Amazon RDS](#Overview.Encryption.Keys.encryptioncontext) sebagai syarat untuk menggunakan kunci yang dikelola pelanggan untuk enkripsi.

Untuk informasi selengkapnya, lihat [Mengizinkan pengguna di akun lain untuk menggunakan kunci KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying-external-accounts.html) di *Panduan Developer AWS Key Management Service * dan [Kebijakan kunci di AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies). 

## Konteks enkripsi Amazon RDS
<a name="Overview.Encryption.Keys.encryptioncontext"></a>

[Ketika Aurora menggunakan kunci KMS Anda, atau ketika Amazon EBS menggunakan kunci KMS atas nama Aurora, layanan menentukan konteks enkripsi.](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) Konteks enkripsi adalah [data otentikasi tambahan](https://docs.aws.amazon.com/crypto/latest/userguide/cryptography-concepts.html#term-aad) (AAD) yang AWS KMS digunakan untuk memastikan integritas data. Ketika konteks enkripsi ditentukan untuk operasi enkripsi, layanan harus menentukan konteks enkripsi yang sama untuk operasi dekripsi. Jika tidak, dekripsi akan gagal. Konteks enkripsi juga ditulis ke log [AWS CloudTrail](https://aws.amazon.com/cloudtrail/) untuk membantu Anda memahami mengapa kunci KMS tertentu digunakan. CloudTrail Log Anda mungkin berisi banyak entri yang menjelaskan penggunaan kunci KMS, tetapi konteks enkripsi di setiap entri log dapat membantu Anda menentukan alasan penggunaan tertentu.

Minimal, Aurora selalu menggunakan ID cluster instans untuk konteks enkripsi, seperti pada contoh berformat JSON berikut:

```
{ "aws:rds:dbc-id": "cluster-CQYSMDPBRZ7BPMH7Y3RTDG5QY" }
```

Konteks enkripsi ini dapat membantu Anda mengidentifikasi cluster DB tempat kunci KMS Anda digunakan.

Bila kunci KMS Anda digunakan untuk cluster DB tertentu dan volume Amazon EBS tertentu, ID cluster DB dan ID volume Amazon EBS digunakan untuk konteks enkripsi, seperti pada contoh berformat JSON berikut:

```
{
  "aws:rds:dbc-id": "cluster-BRG7VYS3SVIFQW7234EJQOM5RQ",
  "aws:ebs:id": "vol-ad8c6542"
}
```

# Menggunakan SSL/TLS untuk mengenkripsi koneksi ke
<a name="UsingWithRDS.SSL"></a>

Anda dapat menggunakan Lapisan Soket Aman (SSL) atau Keamanan Lapisan Pengangkutan (TLS) dari aplikasi Anda untuk mengenkripsi koneksi ke klaster DB yang menjalankan Aurora MySQL atau Aurora PostgreSQL.

 Secara opsional, SSL/TLS koneksi Anda dapat melakukan verifikasi identitas server dengan memvalidasi sertifikat server yang diinstal pada database Anda. Untuk meminta verifikasi identitas server, ikuti proses umum ini:

1. Pilih **Otoritas Sertifikat (CA)** yang menandatangani **sertifikat server DB,** untuk basis data Anda. Untuk informasi selengkapnya tentang otoritas sertifikat, lihat[Otoritas sertifikat](#UsingWithRDS.SSL.RegionCertificateAuthorities). 

1. Unduh paket sertifikat yang akan digunakan saat Anda terhubung ke basis data. Untuk mengunduh bundel sertifikat, lihat [Bundel sertifikat oleh Wilayah AWS](#UsingWithRDS.SSL.CertificatesAllRegions). 
**catatan**  
Semua sertifikat hanya tersedia untuk diunduh menggunakan koneksi SSL/TLS.

1. Connect ke database menggunakan proses mesin DB Anda untuk menerapkan SSL/TLS koneksi. Setiap mesin DB memiliki proses sendiri SSL/TLS. To learn how to implement SSL/TLS untuk mengimplementasikan database Anda, ikuti tautan yang sesuai dengan mesin DB Anda:
   +  [Keamanan dengan Amazon Aurora MySQL](AuroraMySQL.Security.md) 
   +  [Keamanan dengan Amazon Aurora PostgreSQL](AuroraPostgreSQL.Security.md) 

## Otoritas sertifikat
<a name="UsingWithRDS.SSL.RegionCertificateAuthorities"></a>

**Otoritas Sertifikat (CA)** adalah sertifikat yang mengidentifikasi CA root di bagian atas rantai sertifikat. CA menandatangani **sertifikat server DB,** yang diinstal pada setiap instans DB. Sertifikat server DB mengidentifikasi instans DB sebagai server tepercaya.

![\[Gambaran umum otoritas sertifikat\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/AuroraUserGuide/images/certificate-authority-overview.png)


Amazon RDS menyediakan yang berikut ini CAs untuk menandatangani sertifikat server DB untuk database.


****  

| Otoritas sertifikat (CA) | Deskripsi | Nama umum (CN) | 
| --- | --- | --- | 
|  rds-ca-rsa2048-g1  |  Menggunakan otoritas sertifikat dengan algoritma kunci pribadi RSA 2048 dan algoritma SHA256 penandatanganan di sebagian besar. Wilayah AWS Dalam AWS GovCloud (US) Regions, CA ini menggunakan otoritas sertifikat dengan algoritma kunci pribadi RSA 2048 dan algoritma SHA384 penandatanganan. CA ini mendukung rotasi sertifikat server otomatis.  | Amazon RDS region-identifier Root CA RSA2048 G1 | 
|  rds-ca-rsa4096-g1  |  Menggunakan otoritas sertifikat dengan algoritma kunci pribadi RSA 4096 dan algoritma SHA384 penandatanganan. CA ini mendukung rotasi sertifikat server otomatis.   | Amazon RDS region-identifier Root CA RSA4096 G1 | 
|  rds-ca-ecc384-g1  |  Menggunakan otoritas sertifikat dengan algoritma kunci pribadi ECC 384 dan algoritma SHA384 penandatanganan. CA ini mendukung rotasi sertifikat server otomatis.   | Amazon RDS region-identifier Root CA ECC384 G1 | 

**catatan**  
[Jika Anda menggunakan AWS CLI, Anda dapat melihat validitas otoritas sertifikat yang tercantum di atas dengan menggunakan deskripsi-sertifikat.](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-certificates.html) 

Sertifikat CA ini termasuk dalam paket sertifikat regional dan global. Bila Anda menggunakan rds-ca-rsa 2048-g1, rds-ca-rsa 4096-g1, atau rds-ca-ecc 384-g1 CA dengan database, RDS mengelola sertifikat server DB pada database. RDS merotasi sertifikat server DB secara otomatis sebelum sertifikat ini kedaluwarsa. 

### Mengatur CA untuk basis data Anda
<a name="UsingWithRDS.SSL.RegionCertificateAuthorities.Selection"></a>

Anda dapat mengatur CA untuk basis data saat Anda melakukan tugas berikut:
+ Buat cluster Aurora DB — Anda dapat mengatur CA untuk instans DB di cluster Aurora saat Anda membuat instans DB pertama di cluster DB menggunakan atau RDS API. AWS CLI Saat ini, Anda tidak dapat mengatur CA untuk instans DB di klaster DB saat Anda membuat klaster DB menggunakan konsol RDS. Untuk instruksi, lihat[Membuat klaster DB Amazon Aurora](Aurora.CreateInstance.md).
+ Memodifikasi instans DB – Anda dapat mengatur CA untuk instans DB di klaster DB dengan memodifikasinya. Untuk instruksi, lihat[Memodifikasi instans DB dalam klaster DB](Aurora.Modifying.md#Aurora.Modifying.Instance).

**catatan**  
 CA default diatur ke rds-ca-rsa 2048-g1. Anda dapat mengganti CA default untuk Anda Akun AWS dengan menggunakan perintah [modify-certificate](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-certificates.html).

Yang tersedia CAs tergantung pada mesin DB dan versi mesin DB. Bila Anda menggunakan Konsol Manajemen AWS, Anda dapat memilih CA menggunakan pengaturan **otoritas Sertifikat**, seperti yang ditunjukkan pada gambar berikut.

![\[Opsi otoritas sertifikat\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/AuroraUserGuide/images/certificate-authority.png)


Konsol hanya menampilkan CAs yang tersedia untuk mesin DB dan versi mesin DB. Jika Anda menggunakan AWS CLI, Anda dapat mengatur CA untuk instans DB menggunakan [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html)perintah [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html)or. 

Jika Anda menggunakan AWS CLI, Anda dapat melihat yang tersedia CAs untuk akun Anda dengan menggunakan [perintah describe-certificate](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-certificates.html). Perintah ini juga menunjukkan tanggal kedaluwarsa untuk setiap CA di `ValidTill` dalam output. Anda dapat menemukan CAs yang tersedia untuk mesin DB tertentu dan versi mesin DB menggunakan [describe-db-engine-versions](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html)perintah.

Contoh berikut menunjukkan CAs tersedia untuk RDS default untuk versi mesin PostgreSQL DB.

```
aws rds describe-db-engine-versions --default-only --engine postgres
```

Output Anda akan seperti yang berikut ini. Yang CAs tersedia tercantum dalam`SupportedCACertificateIdentifiers`. Output ini juga menunjukkan apakah versi mesin DB mendukung rotasi sertifikat tanpa pengaktifan ulang di `SupportsCertificateRotationWithoutRestart`. 

```
{
    "DBEngineVersions": [
        {
            "Engine": "postgres",
            "MajorEngineVersion": "13",
            "EngineVersion": "13.4",
            "DBParameterGroupFamily": "postgres13",
            "DBEngineDescription": "PostgreSQL",
            "DBEngineVersionDescription": "PostgreSQL 13.4-R1",
            "ValidUpgradeTarget": [],
            "SupportsLogExportsToCloudwatchLogs": false,
            "SupportsReadReplica": true,
            "SupportedFeatureNames": [
                "Lambda"
            ],
            "Status": "available",
            "SupportsParallelQuery": false,
            "SupportsGlobalDatabases": false,
            "SupportsBabelfish": false,
            "SupportsCertificateRotationWithoutRestart": true,
            "SupportedCACertificateIdentifiers": [
                "rds-ca-rsa2048-g1",
                "rds-ca-ecc384-g1",
                "rds-ca-rsa4096-g1"
            ]
        }
    ]
}
```

### Validitas sertifikat server DB
<a name="UsingWithRDS.SSL.RegionCertificateAuthorities.DBServerCert"></a>

Validitas sertifikat server DB bergantung pada mesin DB dan versi mesin DB. Jika versi mesin DB mendukung rotasi sertifikat tanpa pengaktifan ulang, validitas sertifikat server DB adalah 1 tahun. Jika tidak, validitasnya adalah 3 tahun.

Untuk informasi selengkapnya tentang rotasi sertifikat server DB, lihat[Rotasi sertifikat server otomatis](UsingWithRDS.SSL-certificate-rotation.md#UsingWithRDS.SSL-certificate-rotation-server-cert-rotation). 

### Melihat CA untuk instans DB Anda
<a name="UsingWithRDS.SSL.RegionCertificateAuthorities.Viewing"></a>

Anda dapat melihat detail tentang CA untuk database dengan melihat tab **Konektivitas & keamanan** di konsol, seperti pada gambar berikut.

![\[Detail otoritas sertifikat\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/AuroraUserGuide/images/certificate-authority-details.png)


Jika Anda menggunakan AWS CLI, Anda dapat melihat detail tentang CA untuk instans DB dengan menggunakan [describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html)perintah. 

## Unduh bundel sertifikat untuk Aurora
<a name="UsingWithRDS.SSL.CertificatesDownload"></a>

Saat Anda terhubung ke database dengan SSL atau TLS, instance database memerlukan sertifikat kepercayaan dari Amazon RDS. Pilih tautan yang sesuai di tabel berikut untuk mengunduh bundel yang sesuai dengan Wilayah AWS tempat Anda meng-host database Anda.

### Bundel sertifikat oleh Wilayah AWS
<a name="UsingWithRDS.SSL.CertificatesAllRegions"></a>

Bundel sertifikat untuk semua Wilayah AWS dan Wilayah GovCloud (AS) berisi sertifikat CA root berikut:
+  `rds-ca-rsa2048-g1` 
+  `rds-ca-rsa4096-g1` 
+  `rds-ca-ecc384-g1` 

`rds-ca-ecc384-g1`Sertifikat `rds-ca-rsa4096-g1` dan sertifikat tidak tersedia di Wilayah berikut:
+ Asia Pasifik (Mumbai)
+ Asia Pacific (Melbourne)
+ Kanada Barat (Calgary)
+ Europe (Zurich)
+ Eropa (Spanyol)
+ Israel (Tel Aviv)

Toko kepercayaan aplikasi Anda hanya perlu mendaftarkan sertifikat CA root. Jangan mendaftarkan sertifikat CA perantara ke toko kepercayaan Anda karena ini dapat menyebabkan masalah koneksi ketika RDS secara otomatis memutar sertifikat server DB Anda.

**catatan**  
Amazon RDS Proxy dan Aurora Serverless v1 penggunaan sertifikat dari AWS Certificate Manager (ACM). Jika Anda menggunakan RDS Proxy, Anda tidak perlu mengunduh sertifikat Amazon RDS atau memperbarui aplikasi yang menggunakan koneksi Proxy RDS. Untuk informasi selengkapnya, lihat [Menggunakan TLS/SSL dengan RDS Proxy](rds-proxy.howitworks.md#rds-proxy-security.tls).  
Jika Anda menggunakanAurora Serverless v1, mengunduh sertifikat Amazon RDS tidak diperlukan. Untuk informasi selengkapnya, lihat [Menggunakan TLS/SSL dengan Aurora Serverless v1](aurora-serverless.md#aurora-serverless.tls).

Untuk mengunduh bundel sertifikat Wilayah AWS, pilih tautan untuk Wilayah AWS yang menghosting database Anda di tabel berikut.


|  **AWS Wilayah**  |  **Paket sertifikat (PEM)**  |  **Bundel sertifikat (PKCS7)**  | 
| --- | --- | --- | 
| Komersil apa pun Wilayah AWS |  [global-bundle.pem](https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem)  |  [global-bundle.p7b](https://truststore.pki.rds.amazonaws.com/global/global-bundle.p7b)  | 
| AS Timur (Virginia Utara) |  [us-east-1-bundle.pem](https://truststore.pki.rds.amazonaws.com/us-east-1/us-east-1-bundle.pem)  |  [us-east-1-bundle.p7b](https://truststore.pki.rds.amazonaws.com/us-east-1/us-east-1-bundle.p7b)  | 
| AS Timur (Ohio) |  [us-east-2-bundle.pem](https://truststore.pki.rds.amazonaws.com/us-east-2/us-east-2-bundle.pem)  |  [us-east-2-bundle.p7b](https://truststore.pki.rds.amazonaws.com/us-east-2/us-east-2-bundle.p7b)  | 
| AS Barat (California Utara) |  [us-west-1-bundle.pem](https://truststore.pki.rds.amazonaws.com/us-west-1/us-west-1-bundle.pem)  |  [us-west-1-bundle.p7b](https://truststore.pki.rds.amazonaws.com/us-west-1/us-west-1-bundle.p7b)  | 
| AS Barat (Oregon) |  [us-west-2-bundle.pem](https://truststore.pki.rds.amazonaws.com/us-west-2/us-west-2-bundle.pem)  |  [us-west-2-bundle.p7b](https://truststore.pki.rds.amazonaws.com/us-west-2/us-west-2-bundle.p7b)  | 
| Afrika (Cape Town) |  [af-south-1-bundle.pem](https://truststore.pki.rds.amazonaws.com/af-south-1/af-south-1-bundle.pem)  |  [af-south-1-bundle.p7b](https://truststore.pki.rds.amazonaws.com/af-south-1/af-south-1-bundle.p7b)  | 
| Asia Pasifik (Hong Kong) |  [ap-east-1-bundle.pem](https://truststore.pki.rds.amazonaws.com/ap-east-1/ap-east-1-bundle.pem)  |  [ap-east-1-bundle.p7b](https://truststore.pki.rds.amazonaws.com/ap-east-1/ap-east-1-bundle.p7b)  | 
| Asia Pasifik (Hyderabad) |  [ap-south-2-bundle.pem](https://truststore.pki.rds.amazonaws.com/ap-south-2/ap-south-2-bundle.pem)  |  [ap-south-2-bundle.p7b](https://truststore.pki.rds.amazonaws.com/ap-south-2/ap-south-2-bundle.p7b)  | 
| Asia Pasifik (Jakarta) |  [ap-southeast-3-bundle.pem](https://truststore.pki.rds.amazonaws.com/ap-southeast-3/ap-southeast-3-bundle.pem)  |  [ap-southeast-3-bundle.p7b](https://truststore.pki.rds.amazonaws.com/ap-southeast-3/ap-southeast-3-bundle.p7b)  | 
| Asia Pasifik (Malaysia) |  [ap-tenggara 5-bundel.pem](https://truststore.pki.rds.amazonaws.com/ap-southeast-5/ap-southeast-5-bundle.pem)  |  [ap-tenggara 5-bundel.p7b](https://truststore.pki.rds.amazonaws.com/ap-southeast-5/ap-southeast-5-bundle.p7b)  | 
| Asia Pacific (Melbourne) |  [ap-southeast-4-bundle.pem](https://truststore.pki.rds.amazonaws.com/ap-southeast-4/ap-southeast-4-bundle.pem)  |  [ap-southeast-4-bundle.p7b](https://truststore.pki.rds.amazonaws.com/ap-southeast-4/ap-southeast-4-bundle.p7b)  | 
| Asia Pasifik (Mumbai) |  [ap-south-1-bundle.pem](https://truststore.pki.rds.amazonaws.com/ap-south-1/ap-south-1-bundle.pem)  |  [ap-south-1-bundle.p7b](https://truststore.pki.rds.amazonaws.com/ap-south-1/ap-south-1-bundle.p7b)  | 
| Asia Pasifik (Osaka) |  [ap-northeast-3-bundle.pem](https://truststore.pki.rds.amazonaws.com/ap-northeast-3/ap-northeast-3-bundle.pem)  |  [ap-northeast-3-bundle.p7b](https://truststore.pki.rds.amazonaws.com/ap-northeast-3/ap-northeast-3-bundle.p7b)  | 
| Asia Pasifik (Thailand) |  [ap-tenggara 7-bundel.pem](https://truststore.pki.rds.amazonaws.com/ap-southeast-7/ap-southeast-7-bundle.pem)  |  [ap-tenggara 7-bundel.p7b](https://truststore.pki.rds.amazonaws.com/ap-southeast-7/ap-southeast-7-bundle.p7b)  | 
| Asia Pasifik (Tokyo) |  [ap-northeast-1-bundle.pem](https://truststore.pki.rds.amazonaws.com/ap-northeast-1/ap-northeast-1-bundle.pem)  |  [ap-northeast-1-bundle.p7b](https://truststore.pki.rds.amazonaws.com/ap-northeast-1/ap-northeast-1-bundle.p7b)  | 
| Asia Pasifik (Seoul) |  [ap-northeast-2-bundle.pem](https://truststore.pki.rds.amazonaws.com/ap-northeast-2/ap-northeast-2-bundle.pem)  |  [ap-northeast-2-bundle.p7b](https://truststore.pki.rds.amazonaws.com/ap-northeast-2/ap-northeast-2-bundle.p7b)  | 
| Asia Pasifik (Singapura) |  [ap-southeast-1-bundle.pem](https://truststore.pki.rds.amazonaws.com/ap-southeast-1/ap-southeast-1-bundle.pem)  |  [ap-southeast-1-bundle.p7b](https://truststore.pki.rds.amazonaws.com/ap-southeast-1/ap-southeast-1-bundle.p7b)  | 
| Asia Pasifik (Sydney) |  [ap-southeast-2-bundle.pem](https://truststore.pki.rds.amazonaws.com/ap-southeast-2/ap-southeast-2-bundle.pem)  |  [ap-southeast-2-bundle.p7b](https://truststore.pki.rds.amazonaws.com/ap-southeast-2/ap-southeast-2-bundle.p7b)  | 
| Kanada (Pusat) |  [ca-central-1-bundle.pem](https://truststore.pki.rds.amazonaws.com/ca-central-1/ca-central-1-bundle.pem)  |  [ca-central-1-bundle.p7b](https://truststore.pki.rds.amazonaws.com/ca-central-1/ca-central-1-bundle.p7b)  | 
| Kanada Barat (Calgary) |  [ca-barat-1-bundle.pem](https://truststore.pki.rds.amazonaws.com/ca-west-1/ca-west-1-bundle.pem)  |  [ca-barat-1-bundle.p7b](https://truststore.pki.rds.amazonaws.com/ca-west-1/ca-west-1-bundle.p7b)  | 
| Eropa (Frankfurt) |  [eu-central-1-bundle.pem](https://truststore.pki.rds.amazonaws.com/eu-central-1/eu-central-1-bundle.pem)  |  [eu-central-1-bundle.p7b](https://truststore.pki.rds.amazonaws.com/eu-central-1/eu-central-1-bundle.p7b)  | 
| Eropa (Irlandia) |  [eu-west-1-bundle.pem](https://truststore.pki.rds.amazonaws.com/eu-west-1/eu-west-1-bundle.pem)  |  [eu-west-1-bundle.p7b](https://truststore.pki.rds.amazonaws.com/eu-west-1/eu-west-1-bundle.p7b)  | 
| Eropa (London) |  [eu-west-2-bundle.pem](https://truststore.pki.rds.amazonaws.com/eu-west-2/eu-west-2-bundle.pem)  |  [eu-west-2-bundle.p7b](https://truststore.pki.rds.amazonaws.com/eu-west-2/eu-west-2-bundle.p7b)  | 
| Eropa (Milan) |  [eu-south-1-bundle.pem](https://truststore.pki.rds.amazonaws.com/eu-south-1/eu-south-1-bundle.pem)  |  [eu-south-1-bundle.p7b](https://truststore.pki.rds.amazonaws.com/eu-south-1/eu-south-1-bundle.p7b)  | 
| Eropa (Paris) |  [eu-west-3-bundle.pem](https://truststore.pki.rds.amazonaws.com/eu-west-3/eu-west-3-bundle.pem)  |  [eu-west-3-bundle.p7b](https://truststore.pki.rds.amazonaws.com/eu-west-3/eu-west-3-bundle.p7b)  | 
| Eropa (Spanyol) |  [eu-south-2-bundle.pem](https://truststore.pki.rds.amazonaws.com/eu-south-2/eu-south-2-bundle.pem)  |  [eu-south-2-bundle.p7b](https://truststore.pki.rds.amazonaws.com/eu-south-2/eu-south-2-bundle.p7b)  | 
| Eropa (Stockholm) |  [eu-north-1-bundle.pem](https://truststore.pki.rds.amazonaws.com/eu-north-1/eu-north-1-bundle.pem)  |  [eu-north-1-bundle.p7b](https://truststore.pki.rds.amazonaws.com/eu-north-1/eu-north-1-bundle.p7b)  | 
| Eropa (Zürich) |  [eu-central-2-bundle.pem](https://truststore.pki.rds.amazonaws.com/eu-central-2/eu-central-2-bundle.pem)  |  [eu-central-2-bundle.p7b](https://truststore.pki.rds.amazonaws.com/eu-central-2/eu-central-2-bundle.p7b)  | 
| Israel (Tel Aviv) |  [il-central-1-bundle.pem](https://truststore.pki.rds.amazonaws.com/il-central-1/il-central-1-bundle.pem)  |  [il-central-1-bundle.p7b](https://truststore.pki.rds.amazonaws.com/il-central-1/il-central-1-bundle.p7b)  | 
| Meksiko (Tengah) |  [mx-sentral-1-bundel.pem](https://truststore.pki.rds.amazonaws.com/mx-central-1/mx-central-1-bundle.pem)  |  [mx-sentral-1-bundel.p7b](https://truststore.pki.rds.amazonaws.com/mx-central-1/mx-central-1-bundle.p7b)  | 
| Timur Tengah (Bahrain) |  [me-south-1-bundle.pem](https://truststore.pki.rds.amazonaws.com/me-south-1/me-south-1-bundle.pem)  |  [me-south-1-bundle.p7b](https://truststore.pki.rds.amazonaws.com/me-south-1/me-south-1-bundle.p7b)  | 
| Timur Tengah (UEA) |  [me-central-1-bundle.pem](https://truststore.pki.rds.amazonaws.com/me-central-1/me-central-1-bundle.pem)  |  [me-central-1-bundle.p7b](https://truststore.pki.rds.amazonaws.com/me-central-1/me-central-1-bundle.p7b)  | 
| Amerika Selatan (Sao Paulo) |  [sa-east-1-bundle.pem](https://truststore.pki.rds.amazonaws.com/sa-east-1/sa-east-1-bundle.pem)  |  [sa-east-1-bundle.p7b](https://truststore.pki.rds.amazonaws.com/sa-east-1/sa-east-1-bundle.p7b)  | 
| Setiap AWS GovCloud (US) Region s |  [global-bundle.pem](https://truststore.pki.us-gov-west-1.rds.amazonaws.com/global/global-bundle.pem)  |  [global-bundle.p7b](https://truststore.pki.us-gov-west-1.rds.amazonaws.com/global/global-bundle.p7b)  | 
| AWS GovCloud (AS-Timur) |  [us-gov-east-1-bundel.pem](https://truststore.pki.us-gov-west-1.rds.amazonaws.com/us-gov-east-1/us-gov-east-1-bundle.pem)  |  [us-gov-east-1-bundel.p7b](https://truststore.pki.us-gov-west-1.rds.amazonaws.com/us-gov-east-1/us-gov-east-1-bundle.p7b)  | 
| AWS GovCloud (AS-Barat) |  [us-gov-west-1-bundel.pem](https://truststore.pki.us-gov-west-1.rds.amazonaws.com/us-gov-west-1/us-gov-west-1-bundle.pem)  |  [us-gov-west-1-bundel.p7b](https://truststore.pki.us-gov-west-1.rds.amazonaws.com/us-gov-west-1/us-gov-west-1-bundle.p7b)  | 

### Melihat isi sertifikat CA Anda
<a name="UsingWithRDS.SSL.CertificatesDownload.viewing"></a>

Untuk memeriksa konten paket sertifikat CA Anda, gunakan perintah berikut: 

```
keytool -printcert -v -file global-bundle.pem
```

# Memutar sertifikat Anda SSL/TLS
<a name="UsingWithRDS.SSL-certificate-rotation"></a>

Sertifikat Otoritas Sertifikat Amazon RDS rds-ca-2019 berakhir pada Agustus 2024. Jika Anda menggunakan atau berencana untuk menggunakan Secure Sockets Layer (SSL) atau Transport Layer Security (TLS) dengan verifikasi sertifikat untuk terhubung ke instans RDS DB , pertimbangkan untuk menggunakan salah satu sertifikat rds-ca-rsa CA baru 2048-g1, 4096-g1 atau 384-g1. rds-ca-rsa rds-ca-ecc Jika saat ini Anda tidak menggunakan SSL/TLS dengan verifikasi sertifikat, Anda mungkin masih memiliki sertifikat CA yang kedaluwarsa dan harus memperbaruinya ke sertifikat CA baru jika Anda berencana untuk menggunakan SSL/TLS dengan verifikasi sertifikat untuk terhubung ke database RDS Anda.

Amazon RDS menyediakan sertifikat CA baru sebagai praktik terbaik AWS keamanan. Untuk informasi tentang sertifikat baru dan AWS Wilayah yang didukung, lihat[Menggunakan SSL/TLS untuk mengenkripsi koneksi ke ](UsingWithRDS.SSL.md).

Untuk memperbarui sertifikat CA untuk database Anda, gunakan metode berikut: 
+  [Memperbarui sertifikat CA Anda dengan memodifikasi instans cluster DB Anda](#UsingWithRDS.SSL-certificate-rotation-updating) 
+  [Memperbarui sertifikat CA Anda dengan menerapkan pemeliharaan](#UsingWithRDS.SSL-certificate-rotation-maintenance-update) 

Sebelum memperbarui instans DB untuk menggunakan sertifikat CA baru, pastikan Anda memperbarui klien atau aplikasi yang terhubung ke database RDS Anda.

## Pertimbangan untuk memutar sertifikat
<a name="UsingWithRDS.SSL-certificate-rotation-considerations"></a>

Pertimbangkan situasi berikut sebelum memutar sertifikat Anda:
+ Amazon RDS Proxy dan Aurora Serverless v1 penggunaan sertifikat dari AWS Certificate Manager (ACM). Jika Anda menggunakan RDS Proxy, saat memutar SSL/TLS sertifikat, Anda tidak perlu memperbarui aplikasi yang menggunakan koneksi Proxy RDS. Untuk informasi selengkapnya, lihat [Menggunakan TLS/SSL dengan RDS Proxy](rds-proxy.howitworks.md#rds-proxy-security.tls).
+ Jika Anda menggunakanAurora Serverless v1, mengunduh sertifikat Amazon RDS tidak diperlukan. Untuk informasi selengkapnya, lihat [Menggunakan TLS/SSL dengan Aurora Serverless v1](aurora-serverless.md#aurora-serverless.tls).
+ Jika Anda menggunakan aplikasi Go versi 1.15 dengan instans DB yang dibuat atau diperbarui ke sertifikat rds-ca-2019 sebelum 28 Juli 2020, Anda harus memperbarui sertifikat lagi. 

  Gunakan `modify-db-instance` perintah , menggunakan pengidentifikasi sertifikat CA baru. Anda dapat menemukan CAs yang tersedia untuk mesin DB tertentu dan versi mesin DB menggunakan `describe-db-engine-versions` perintah. 

  Jika Anda membuat database atau memperbarui sertifikatnya setelah 28 Juli 2020, tidak ada tindakan yang diperlukan. Untuk informasi selengkapnya, lihat [Go GitHub issue \$139568](https://github.com/golang/go/issues/39568). 

## Memperbarui sertifikat CA Anda dengan memodifikasi instans cluster DB Anda
<a name="UsingWithRDS.SSL-certificate-rotation-updating"></a>

*Contoh berikut memperbarui sertifikat CA Anda dari *rds-ca-2019* ke 2048-g1. rds-ca-rsa* Anda dapat memilih sertifikat yang berbeda. Untuk informasi lebih lanjut, lihat[Otoritas sertifikat](UsingWithRDS.SSL.md#UsingWithRDS.SSL.RegionCertificateAuthorities). 

Perbarui toko kepercayaan aplikasi Anda untuk mengurangi waktu henti yang terkait dengan memperbarui sertifikat CA Anda. Untuk informasi selengkapnya tentang restart yang terkait dengan rotasi sertifikat CA, lihat[Rotasi sertifikat server otomatis](#UsingWithRDS.SSL-certificate-rotation-server-cert-rotation).

**Untuk memperbarui sertifikat CA Anda dengan memodifikasi instans cluster DB Anda**

1. Unduh SSL/TLS sertifikat baru seperti yang dijelaskan dalam[Menggunakan SSL/TLS untuk mengenkripsi koneksi ke ](UsingWithRDS.SSL.md).

1. Perbarui aplikasi Anda untuk menggunakan sertifikat SSL/TLS baru.

   Metode untuk memperbarui aplikasi untuk SSL/TLS sertifikat baru bergantung pada aplikasi spesifik Anda. Bekerja dengan pengembang aplikasi Anda untuk memperbarui SSL/TLS sertifikat untuk aplikasi Anda.

   Untuk informasi tentang memeriksa SSL/TLS koneksi dan memperbarui aplikasi untuk setiap mesin DB, lihat topik berikut:
   +  [Memperbarui aplikasi untuk terhubung ke klaster DB Aurora MySQL menggunakan sertifikat TLS baru](ssl-certificate-rotation-aurora-mysql.md) 
   +  [Memperbarui aplikasi untuk terhubung ke klaster DB Aurora PostgreSQL menggunakan sertifikat SSL/TLS baru](ssl-certificate-rotation-aurora-postgresql.md) 

   Untuk contoh skrip yang memperbarui toko kepercayaan untuk sistem operasi Linux, lihat[Contoh skrip untuk mengimpor sertifikat ke trust store Anda](#UsingWithRDS.SSL-certificate-rotation-sample-script).
**catatan**  
Paket sertifikat berisi sertifikat untuk CA lama dan baru, sehingga Anda dapat meningkatkan aplikasi Anda dengan aman dan mempertahankan konektivitas selama periode transisi. Jika Anda menggunakan AWS Database Migration Service untuk memigrasikan database ke cluster, sebaiknya gunakan bundel sertifikat untuk memastikan konektivitas selama migrasi.

1. **Ubah instans DB untuk mengubah CA dari **rds-ca-2019** menjadi 2048-g1. rds-ca-rsa** Untuk memeriksa apakah database Anda memerlukan restart untuk memperbarui sertifikat CA, gunakan [describe-db-engine-versions](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html)perintah dan periksa `SupportsCertificateRotationWithoutRestart` bendera. 
**catatan**  
Boot ulang klaster Babelfish Anda setelah memodifikasi untuk memperbarui sertifikat CA.
**penting**  
Jika Anda mengalami masalah konektivitas setelah masa berlaku sertifikat berakhir, gunakan opsi terapkan segera dengan menentukan **Terapkan segera** di konsol atau dengan menentukan opsi `--apply-immediately` menggunakan AWS CLI. Secara default, operasi ini dijadwalkan untuk berjalan selama jendela pemeliharaan berikutnya.  
Untuk menyetel penggantian CA cluster Anda yang berbeda dari CA RDS default, gunakan perintah CLI [modify-certificate](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-certificates.html).

 

------
#### [ Console ]

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

1. Di panel navigasi, pilih **Databases**, lalu pilih instans DB yang ingin Anda modifikasi. 

1. Pilih **Ubah**.   
![\[Ubah instans DB\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/AuroraUserGuide/images/ssl-rotate-cert-modify-aurora.png)

1. Di bagian **Konektivitas**, pilih **rds-ca-rsa2048-g1**.   
![\[Pilih sertifikat CA\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/AuroraUserGuide/images/ssl-rotate-cert-ca-rsa2048-g1.png)

1. Pilih **Lanjutkan** dan periksa ringkasan modifikasi. 

1. Untuk segera menerapkan perubahan, pilih **Terapkan segera**. 

1. Di halaman konfirmasi, tinjau perubahan Anda. Jika benar, pilih **Modify DB Instance** untuk menyimpan perubahan Anda. 
**penting**  
Saat Anda menjadwalkan operasi ini, pastikan bahwa Anda telah memperbarui trust store sisi klien sebelumnya.

   Atau pilih **Kembali** untuk mengedit perubahan atau **Batalkan** untuk membatalkan perubahan Anda. 

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

Untuk menggunakan AWS CLI untuk mengubah CA dari **rds-ca-2019** ke **rds-ca-rsa2048-g1** untuk instans DB atau cluster DB multi-AZ, panggil perintah . [modify-db-instance[modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html)](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) Tentukan instans DB dan `--ca-certificate-identifier` opsi.

Gunakan `--apply-immediately` parameter untuk segera menerapkan pembaruan. Secara default, operasi ini dijadwalkan untuk berjalan selama periode pemeliharaan berikutnya.

**penting**  
Saat Anda menjadwalkan operasi ini, pastikan bahwa Anda telah memperbarui trust store sisi klien sebelumnya.

**Example**  
Contoh berikut memodifikasi `mydbinstance` dengan menyetel sertifikat CA ke`rds-ca-rsa2048-g1`.   
Untuk Linux, macOS, atau Unix:  

```
aws rds modify-db-instance \
    --db-instance-identifier mydbinstance \
    --ca-certificate-identifier rds-ca-rsa2048-g1
```
Untuk Windows:  

```
aws rds modify-db-instance ^
    --db-instance-identifier mydbinstance ^
    --ca-certificate-identifier rds-ca-rsa2048-g1
```
Jika instance Anda memerlukan reboot, Anda dapat menggunakan perintah [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html)CLI dan menentukan opsi. `--no-certificate-rotation-restart`

------

## Memperbarui sertifikat CA Anda dengan menerapkan pemeliharaan
<a name="UsingWithRDS.SSL-certificate-rotation-maintenance-update"></a>

Lakukan langkah-langkah berikut untuk memperbarui sertifikat CA Anda dengan menerapkan pemeliharaan.

------
#### [ Console ]

**Untuk memperbarui sertifikat CA Anda dengan menerapkan pemeliharaan**

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

1. Di panel navigasi, pilih **Pembaruan sertifikat**.   
![\[Opsi panel navigasi rotasi sertifikat\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/AuroraUserGuide/images/ssl-rotate-cert-certupdate.png)

   Halaman **Basis data yang memerlukan pembaruan sertifikat** akan muncul.  
![\[Perbarui sertifikat CA untuk database\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/AuroraUserGuide/images/ssl-rotate-cert-update-multiple.png)
**catatan**  
Halaman ini hanya menampilkan instans DB untuk saat ini. Wilayah AWS Jika Anda memiliki database di lebih dari satu Wilayah AWS, periksa halaman ini di masing-masing Wilayah AWS untuk melihat semua instance DB dengan sertifikat lama SSL/TLS .

1. Pilih instans DB yang ingin Anda perbarui.

   Anda dapat menjadwalkan rotasi sertifikat untuk periode pemeliharaan berikutnya dengan memilih **Jadwal**. Segera terapkan rotasi dengan memilih **Terapkan sekarang**. 
**penting**  
Jika Anda mengalami masalah konektivitas setelah sertifikat kedaluwarsa, gunakan opsi **Terapkan sekarang**.

1. 

   1. Jika Anda memilih **Jadwal**, Anda akan diminta untuk mengonfirmasi rotasi sertifikat CA. Prompt ini juga menyatakan periode terjadwal untuk pembaruan Anda.   
![\[Konfirmasikan rotasi sertifikat\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/AuroraUserGuide/images/ssl-rotate-cert-confirm-schedule.png)

   1. Jika Anda memilih **Terapkan sekarang**, Anda akan diminta untuk mengonfirmasi rotasi sertifikat CA.  
![\[Konfirmasikan rotasi sertifikat\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/AuroraUserGuide/images/ssl-rotate-cert-confirm-now.png)
**penting**  
Sebelum menjadwalkan rotasi sertifikat CA pada database Anda, perbarui aplikasi klien yang menggunakan SSL/TLS dan sertifikat server untuk terhubung. Pembaruan ini khusus untuk mesin DB Anda. Setelah Anda memperbarui aplikasi klien ini, Anda dapat mengonfirmasi rotasi sertifikat CA. 

   Untuk melanjutkan, pilih kotak centang, lalu pilih **Konfirmasi**. 

1. Ulangi langkah 3 dan 4 untuk setiap instans DB yang ingin Anda perbarui.

------

## Rotasi sertifikat server otomatis
<a name="UsingWithRDS.SSL-certificate-rotation-server-cert-rotation"></a>

Jika CA root Anda mendukung rotasi sertifikat server otomatis, RDS secara otomatis menangani rotasi sertifikat server DB. RDS menggunakan CA root yang sama untuk rotasi otomatis ini, jadi Anda tidak perlu mengunduh paket CA baru. Lihat[Otoritas sertifikat](UsingWithRDS.SSL.md#UsingWithRDS.SSL.RegionCertificateAuthorities).

Rotasi dan validitas sertifikat server DB Anda bergantung pada mesin DB Anda:
+ Jika mesin DB Anda mendukung rotasi tanpa pengaktifan ulang, RDS secara otomatis merotasi sertifikat server DB tanpa memerlukan tindakan apa pun dari Anda. RDS mencoba merotasi sertifikat server DB Anda dalam periode pemeliharaan yang Anda pilih di waktu paruh sertifikat server DB. Sertifikat server DB baru berlaku selama 12 bulan.
+ Jika mesin DB Anda tidak mendukung rotasi tanpa restart, Amazon RDS membuat Tindakan Pemeliharaan `server-certificate-rotation` Tertunda terlihat melalui Describe-pending-maintenance-actions API, pada waktu paruh sertifikat, atau setidaknya 3 bulan sebelum kedaluwarsa. Anda dapat menerapkan rotasi menggunakan apply-pending-maintenance-action API. Sertifikat server DB baru berlaku selama 36 bulan.

Gunakan [ describe-db-engine-versions](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html)perintah dan periksa `SupportsCertificateRotationWithoutRestart` bendera untuk mengidentifikasi apakah versi mesin DB mendukung memutar sertifikat tanpa memulai ulang. Untuk informasi selengkapnya, lihat [Mengatur CA untuk basis data Anda](UsingWithRDS.SSL.md#UsingWithRDS.SSL.RegionCertificateAuthorities.Selection). 

## Contoh skrip untuk mengimpor sertifikat ke trust store Anda
<a name="UsingWithRDS.SSL-certificate-rotation-sample-script"></a>

Berikut adalah contoh skrip shell yang mengimpor paket sertifikat ke trust store.

Setiap skrip shell menggunakan keytool, yang merupakan bagian dari Java Development Kit (JDK). Untuk informasi tentang cara menginstal JDK, lihat [JDK Installation Guide](https://docs.oracle.com/en/java/javase/17/install/overview-jdk-installation.html). 

------
#### [ Linux ]

Berikut adalah contoh skrip shell yang mengimpor paket sertifikat ke trust store di sistem operasi Linux.

```
mydir=tmp/certs
if [ ! -e "${mydir}" ]
then
mkdir -p "${mydir}"
fi truststore=${mydir}/rds-truststore.jks storepassword=changeit

curl -sS "https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem"> ${mydir}/global-bundle.pem
awk 'split_after == 1 {n++;split_after=0} /-----END CERTIFICATE-----/ {split_after=1}{print > "rds-ca-" n+1 ".pem"}' < ${mydir}/global-bundle.pem

for CERT in rds-ca-*; do alias=$(openssl x509 -noout -text -in $CERT | perl -ne 'next unless /Subject:/; s/.*(CN=|CN = )//; print')
  echo "Importing $alias"
  keytool -import -file ${CERT} -alias "${alias}" -storepass ${storepassword} -keystore ${truststore} -noprompt
  rm $CERT
done

rm ${mydir}/global-bundle.pem

echo "Trust store content is: "

keytool -list -v -keystore "$truststore" -storepass ${storepassword} | grep Alias | cut -d " " -f3- | while read alias 
do expiry=`keytool -list -v -keystore "$truststore" -storepass ${storepassword} -alias "${alias}" | grep Valid | perl -ne 'if(/until: (.*?)\n/) { print "$1\n"; }'`
   echo " Certificate ${alias} expires in '$expiry'" 
done
```

------
#### [ macOS ]

Berikut adalah contoh skrip shell yang mengimpor paket sertifikat ke trust store di sistem operasi macOS.

```
mydir=tmp/certs
if [ ! -e "${mydir}" ]
then
mkdir -p "${mydir}"
fi truststore=${mydir}/rds-truststore.jks storepassword=changeit

curl -sS "https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem"> ${mydir}/global-bundle.pem
split -p "-----BEGIN CERTIFICATE-----" ${mydir}/global-bundle.pem rds-ca-

for CERT in rds-ca-*; do alias=$(openssl x509 -noout -text -in $CERT | perl -ne 'next unless /Subject:/; s/.*(CN=|CN = )//; print')
  echo "Importing $alias"
  keytool -import -file ${CERT} -alias "${alias}" -storepass ${storepassword} -keystore ${truststore} -noprompt
  rm $CERT
done

rm ${mydir}/global-bundle.pem

echo "Trust store content is: "

keytool -list -v -keystore "$truststore" -storepass ${storepassword} | grep Alias | cut -d " " -f3- | while read alias 
do expiry=`keytool -list -v -keystore "$truststore" -storepass ${storepassword} -alias "${alias}" | grep Valid | perl -ne 'if(/until: (.*?)\n/) { print "$1\n"; }'`
   echo " Certificate ${alias} expires in '$expiry'" 
done
```

------

Untuk mempelajari lebih lanjut praktik terbaik tentang penggunaan SSL dengan Amazon RDS, lihat [Praktik terbaik untuk koneksi SSL yang berhasil ke Amazon RDS for Oracle](https://aws.amazon.com/blogs/database/best-practices-for-successful-ssl-connections-to-amazon-rds-for-oracle/). 

# Privasi lalu lintas antarjaringan
<a name="inter-network-traffic-privacy"></a>

Koneksi dilindungi baik antara Aurora dan aplikasi lokal dan antara Aurora AWS dan sumber daya lain dalam Wilayah yang sama. AWS 

## Lalu lintas antara layanan dan aplikasi serta klien on-premise
<a name="inter-network-traffic-privacy-on-prem"></a>

Anda memiliki dua opsi konektivitas antara jaringan pribadi Anda dan AWS: 
+ Koneksi AWS Site-to-Site VPN. Untuk informasi selengkapnya, lihat [Apa itu AWS Site-to-Site VPN?](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) 
+  Direct Connect Koneksi. Untuk informasi lebih lanjut, lihat [Apa itu Direct Connect?](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html) 

Anda mendapatkan akses ke Amazon Aurora melalui jaringan dengan AWS menggunakan operasi API yang diterbitkan. Klien harus mendukung hal-hal berikut:
+ Keamanan Lapisan Pengangkutan (TLS). Kami mensyaratkan TLS 1.2 dan menganjurkan TLS 1.3.
+ Sandi cocok dengan sistem kerahasiaan maju sempurna (perfect forward secrecy, PFS) seperti DHE (Ephemeral Diffie-Hellman) atau ECDHE (Elliptic Curve Ephemeral Diffie-Hellman). Sebagian besar sistem modern seperti Java 7 dan versi lebih baru mendukung mode-mode ini.

Selain itu, permintaan harus ditandatangani menggunakan ID kunci akses dan kunci akses rahasia yang terkait dengan principal IAM. Atau Anda bisa menggunakan [AWS Security Token Service](https://docs.aws.amazon.com/STS/latest/APIReference/Welcome.html) (AWS STS) untuk membuat kredensial keamanan sementara guna menandatangani permintaan.

# Manajemen identitas dan akses untuk Amazon Aurora
<a name="UsingWithRDS.IAM"></a>





AWS Identity and Access Management (IAM) adalah Layanan AWS yang membantu administrator mengontrol akses ke AWS sumber daya dengan aman. Administrator IAM mengontrol siapa yang dapat *diautentikasi* (masuk) dan *diotorisasi* (memiliki izin) untuk menggunakan sumber daya Amazon RDS. IAM adalah Layanan AWS yang dapat Anda gunakan tanpa biaya tambahan.

**Topics**
+ [Audiens](#security_iam_audience)
+ [Mengautentikasi dengan identitas](#security_iam_authentication)
+ [Mengelola akses menggunakan kebijakan](#security_iam_access-manage)
+ [Cara kerja Amazon Aurora dengan IAM](security_iam_service-with-iam.md)
+ [Contoh kebijakan berbasis identitas untuk Amazon Aurora](security_iam_id-based-policy-examples.md)
+ [AWS kebijakan terkelola untuk Amazon RDS](rds-security-iam-awsmanpol.md)
+ [Amazon RDS memperbarui kebijakan AWS terkelola](rds-manpol-updates.md)
+ [Pencegahan masalah confused deputy lintas layanan](cross-service-confused-deputy-prevention.md)
+ [Autentikasi basis data IAM](UsingWithRDS.IAMDBAuth.md)
+ [Memecahkan masalah identitas dan akses Amazon Aurora](security_iam_troubleshoot.md)

## Audiens
<a name="security_iam_audience"></a>

Cara Anda menggunakan AWS Identity and Access Management (IAM) berbeda, tergantung pada pekerjaan yang Anda lakukan di Aurora.

**Pengguna layanan** – Jika Anda menggunakan layanan Aurora untuk melakukan pekerjaan, administrator Anda akan memberikan kredensial dan izin yang Anda butuhkan. Saat Anda menggunakan lebih banyak fitur Aurora untuk melakukan pekerjaan, Anda mungkin memerlukan izin tambahan. Memahami bagaimana cara mengelola akses dapat membantu Anda meminta izin yang tepat dari administrator Anda. Jika Anda tidak dapat mengakses fitur di Aurora, lihat [Memecahkan masalah identitas dan akses Amazon Aurora](security_iam_troubleshoot.md).

**Administrator layanan** – Jika Anda bertanggung jawab atas sumber daya Aurora di perusahaan, Anda mungkin memiliki akses penuh ke Aurora. Tugas Anda adalah menentukan fitur Aurora dan sumber daya mana yang dapat diakses karyawan Anda. Kemudian, Anda harus mengirim permintaan kepada administrator untuk mengubah izin pengguna layanan. Tinjau informasi di halaman ini untuk memahami konsep dasar IAM. Untuk mempelajari selengkapnya tentang bagaimana perusahaan Anda dapat menggunakan IAM dengan Aurora, lihat [Cara kerja Amazon Aurora dengan IAM](security_iam_service-with-iam.md).

**Administrator** – Jika Anda adalah seorang administrator, Anda mungkin ingin mengetahui detail tentang cara menulis kebijakan untuk mengelola akses ke Aurora. Untuk melihat contoh kebijakan berbasis identitas Aurora yang dapat Anda gunakan di IAM, lihat [Contoh kebijakan berbasis identitas untuk Amazon Aurora](security_iam_id-based-policy-examples.md).

## Mengautentikasi dengan identitas
<a name="security_iam_authentication"></a>

Otentikasi adalah cara Anda masuk AWS menggunakan kredensi identitas Anda. Anda harus diautentikasi sebagai Pengguna root akun AWS, pengguna IAM, atau dengan mengasumsikan peran IAM.

Anda dapat masuk sebagai identitas federasi menggunakan kredensil dari sumber identitas seperti AWS IAM Identity Center (Pusat Identitas IAM), autentikasi masuk tunggal, atau kredensional. Google/Facebook Untuk informasi selengkapnya tentang masuk, lihat [Cara masuk ke *Panduan AWS Sign-In Pengguna* Anda Akun AWS](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html).

Untuk akses terprogram, AWS sediakan SDK dan CLI untuk menandatangani permintaan secara kriptografis. Untuk informasi selengkapnya, lihat [Versi AWS Tanda Tangan 4 untuk permintaan API](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) di *Panduan Pengguna IAM*.

### AWS pengguna root akun
<a name="security_iam_authentication-rootuser"></a>

 Saat Anda membuat Akun AWS, Anda mulai dengan satu identitas masuk yang disebut *pengguna Akun AWS root* yang memiliki akses lengkap ke semua Layanan AWS dan sumber daya. Kami sangat menyarankan agar Anda tidak menggunakan pengguna root untuk tugas sehari-hari. *Untuk tugas yang memerlukan kredensil pengguna root, lihat [Tugas yang memerlukan kredensil pengguna root di Panduan Pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks).* 

### Identitas gabungan
<a name="security_iam_authentication-federatedidentity"></a>

Sebagai praktik terbaik, mewajibkan pengguna manusia untuk menggunakan federasi dengan penyedia identitas untuk mengakses Layanan AWS menggunakan kredensi sementara.

*Identitas federasi* adalah pengguna dari direktori perusahaan Anda, penyedia identitas web, atau Directory Service yang mengakses Layanan AWS menggunakan kredensil dari sumber identitas. Identitas federasi mengambil peran yang memberikan kredensi sementara.

Untuk manajemen akses terpusat, kami sarankan AWS IAM Identity Center. Untuk informasi lebih lanjut, lihat [Apa itu Pusat Identitas IAM](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)? dalam *AWS IAM Identity Center User Guide*.

### Pengguna dan grup IAM
<a name="security_iam_authentication-iamuser"></a>

*[Pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)* adalah identitas dengan izin khusus untuk satu orang atau aplikasi. Sebaiknya gunakan kredensi sementara alih-alih pengguna IAM dengan kredensial jangka panjang. Untuk informasi selengkapnya, lihat [Mewajibkan pengguna manusia untuk menggunakan federasi dengan penyedia identitas untuk mengakses AWS menggunakan kredensi sementara](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp) di Panduan Pengguna *IAM*.

Grup [https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) pengguna IAM dan membuat izin lebih mudah dikelola untuk kumpulan pengguna yang besar. Untuk informasi selengkapnya, lihat [Kasus penggunaan untuk pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/gs-identities-iam-users.html) di *Panduan Pengguna IAM*.

Anda dapat mengautentikasi ke klaster DB Anda menggunakan autentikasi basis data IAM.

Autentikasi basis data IAM kompatibel dengan Aurora. Untuk informasi selengkapnya tentang cara mengautentikasi ke klaster DB Anda menggunakan IAM, lihat [Autentikasi basis data IAM](UsingWithRDS.IAMDBAuth.md).

### Peran IAM
<a name="security_iam_authentication-iamrole"></a>

*[Peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)* adalah identitas dalam diri Anda Akun AWS yang memiliki izin khusus. Peran ini mirip dengan pengguna, tetapi tidak terkait dengan orang tertentu. Anda dapat mengambil peran IAM untuk sementara Konsol Manajemen AWS dengan [beralih peran](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html). Anda dapat mengambil peran dengan memanggil operasi AWS CLI atau AWS API atau dengan menggunakan URL kustom. Untuk informasi selengkapnya tentang cara menggunakan peran, lihat [Menggunakan peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html) dalam *Panduan Pengguna IAM*.

Peran IAM dengan kredensial sementara berguna dalam situasi berikut:
+ **Izin pengguna sementara** – Pengguna dapat mengambil peran IAM untuk mendapatkan izin yang berbeda sementara waktu agar dapat melakukan tugas tertentu. 
+ **Akses pengguna terfederasi** – Untuk menetapkan izin ke identitas terfederasi, Anda membuat peran dan menentukan izin untuk peran tersebut. Ketika identitas terfederasi mengautentikasi, identitas tersebut terhubung dengan peran dan diberi izin yang ditentukan oleh peran. Untuk informasi tentang peran untuk federasi, lihat [Buat peran untuk penyedia identitas pihak ketiga](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp.html) dalam *Panduan Pengguna IAM*. Jika menggunakan Pusat Identitas IAM, Anda harus mengonfigurasi set izin. Untuk mengontrol apa yang dapat diakses identitas Anda setelah identitas tersebut diautentikasi, Pusat Identitas IAM akan mengorelasikan set izin ke peran dalam IAM. Untuk informasi tentang rangkaian izin, silakan lihat [Rangkaian izin](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) dalam *Panduan Pengguna AWS IAM Identity Center *. 
+ **Akses lintas akun** – Anda dapat menggunakan peran IAM untuk mengizinkan seseorang (prinsipal tepercaya) di akun lain untuk mengakses sumber daya di akun Anda. Peran adalah cara utama untuk memberikan akses lintas akun. Namun, dengan beberapa Layanan AWS, Anda dapat melampirkan kebijakan secara langsung ke sumber daya (alih-alih menggunakan peran sebagai proxy). Untuk mempelajari perbedaan antara peran dan kebijakan berbasis sumber daya untuk akses lintas akun, lihat [Bagaimana peran IAM berbeda dari kebijakan berbasis sumber daya](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_compare-resource-policies.html) dalam *Panduan Pengguna IAM*.
+ **Akses lintas layanan** — Beberapa Layanan AWS menggunakan fitur lain Layanan AWS. Misalnya, saat Anda melakukan panggilan dalam suatu layanan, biasanya layanan tersebut menjalankan aplikasi di Amazon EC2 atau menyimpan objek di Amazon S3. Sebuah layanan mungkin melakukannya menggunakan izin principal yang memanggil, menggunakan peran layanan, atau peran terkait layanan. 
  + **Sesi akses** teruskan — Sesi akses teruskan (FAS) menggunakan izin dari pemanggilan utama Layanan AWS, dikombinasikan dengan permintaan Layanan AWS untuk membuat permintaan ke layanan hilir. Untuk detail kebijakan ketika mengajukan permintaan FAS, lihat [Sesi akses terusan](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html). 
  + **Peran layanan** – Peran layanan adalah [peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) yang dijalankan oleh layanan untuk melakukan tindakan atas nama Anda. Administrator IAM dapat membuat, mengubah, dan menghapus peran layanan dari dalam IAM. Untuk informasi selengkapnya, lihat [Buat sebuah peran untuk mendelegasikan izin ke Layanan AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) dalam *Panduan pengguna IAM*. 
  + **Peran terkait layanan — Peran** terkait layanan adalah jenis peran layanan yang ditautkan ke peran layanan. Layanan AWS Layanan tersebut dapat menjalankan peran untuk melakukan tindakan atas nama Anda. Peran terkait layanan muncul di Anda Akun AWS dan dimiliki oleh layanan. Administrator IAM dapat melihat, tetapi tidak dapat mengedit izin untuk peran terkait layanan. 
+ **Aplikasi yang berjalan di Amazon EC2** — Anda dapat menggunakan peran IAM untuk mengelola kredensi sementara untuk aplikasi yang berjalan pada EC2 instance dan membuat AWS CLI atau AWS permintaan API. Ini lebih baik untuk menyimpan kunci akses dalam EC2 instance. Untuk menetapkan AWS peran ke EC2 instance dan membuatnya tersedia untuk semua aplikasinya, Anda membuat profil instance yang dilampirkan ke instance. Profil instance berisi peran dan memungkinkan program yang berjalan pada EC2 instance untuk mendapatkan kredensi sementara. Untuk informasi selengkapnya, lihat [Menggunakan peran IAM untuk memberikan izin ke aplikasi yang berjalan di EC2 instans Amazon di Panduan Pengguna](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html) *IAM*. 

Untuk mempelajari apakah harus menggunakan peran IAM, lihat [Kapan harus membuat peran IAM (bukan pengguna)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html#id_which-to-choose_role) dalam *Panduan Pengguna IAM*.

## Mengelola akses menggunakan kebijakan
<a name="security_iam_access-manage"></a>

Anda mengontrol akses AWS dengan membuat kebijakan dan melampirkannya ke identitas atau sumber daya IAM. AWS Kebijakan adalah objek AWS yang, ketika dikaitkan dengan identitas atau sumber daya, menentukan izinnya. AWS mengevaluasi kebijakan ini ketika entitas (pengguna root, pengguna, atau peran IAM) membuat permintaan. Izin dalam kebijakan menentukan apakah permintaan diizinkan atau ditolak. Sebagian besar kebijakan disimpan AWS sebagai dokumen JSON. Untuk informasi selengkapnya tentang struktur dan isi dokumen kebijakan JSON, lihat [Gambaran umum kebijakan JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json) dalam *Panduan Pengguna IAM*.

Administrator dapat menggunakan kebijakan untuk menentukan siapa yang memiliki akses ke AWS sumber daya, dan tindakan apa yang dapat mereka lakukan pada sumber daya tersebut. Setiap entitas IAM (set izin atau peran) dimulai tanpa izin. Dengan kata lain, secara default, pengguna tidak dapat melakukan apa pun, termasuk mengubah kata sandinya sendiri. Untuk memberikan izin kepada pengguna untuk melakukan sesuatu, administrator harus melampirkan kebijakan izin kepada pengguna. Atau administrator dapat menambahkan pengguna ke grup yang memiliki izin yang dimaksudkan. Ketika administrator memberikan izin untuk grup, semua pengguna dalam grup tersebut akan diberi izin tersebut.

Kebijakan IAM mendefinisikan izin untuk suatu tindakan terlepas dari metode yang Anda gunakan untuk melakukan operasinya. Misalnya, anggaplah Anda memiliki kebijakan yang mengizinkan tindakan `iam:GetRole`. Pengguna dengan kebijakan tersebut bisa mendapatkan informasi peran dari Konsol Manajemen AWS, API AWS CLI, atau AWS API.

### Kebijakan berbasis identitas
<a name="security_iam_access-manage-id-based-policies"></a>

Kebijakan berbasis identitas adalah dokumen kebijakan izin JSON yang dapat Anda lampirkan ke identitas, seperti set izin atau peran. Kebijakan ini mengontrol tindakan apa yang bisa dilakukan oleh identitas tersebut, sumber daya yang mana, dan dalam kondisi apa. Untuk mempelajari cara membuat kebijakan berbasis identitas, lihat [Membuat kebijakan IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) dalam *Panduan Pengguna IAM*.

Kebijakan berbasis identitas dapat dikategorikan lebih lanjut sebagai *kebijakan inline* atau *kebijakan yang dikelola*. Kebijakan inline disematkan secara langsung ke satu set izin atau peran. Kebijakan terkelola adalah kebijakan mandiri yang dapat Anda lampirkan ke beberapa set izin dan peran di AWS akun Anda. Kebijakan AWS terkelola mencakup kebijakan terkelola dan kebijakan yang dikelola pelanggan. Untuk mempelajari cara memilih antara kebijakan yang dikelola atau kebijakan inline, lihat [Memilih antara kebijakan yang dikelola dan kebijakan inline](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#choosing-managed-or-inline) dalam *Panduan Pengguna IAM*.

Untuk informasi tentang kebijakan AWS terkelola yang khusus untuk Amazon Aurora, lihat. [AWS kebijakan terkelola untuk Amazon RDS](rds-security-iam-awsmanpol.md)

### Jenis-jenis kebijakan lain
<a name="security_iam_access-manage-other-policies"></a>

AWS mendukung jenis kebijakan tambahan yang kurang umum. Jenis kebijakan ini dapat mengatur izin maksimum yang diberikan kepada Anda oleh jenis kebijakan yang lebih umum. 
+ **Batasan izin** – Batasan izin adalah fitur lanjutan untuk menetapkan izin maksimum yang dapat diberikan oleh kebijakan berbasis identitas kepada entitas IAM (set izin atau peran). Anda dapat menetapkan batasan izin untuk suatu entitas. Izin yang dihasilkan adalah perpotongan antara kebijakan berbasis identitas milik entitas dan batasan izin tersebut. Kebijakan berbasis sumber daya yang menentukan set izin atau peran di bidang `Principal` tidak dibatasi oleh batasan izin. Penolakan eksplisit dalam salah satu kebijakan ini membatalkan izin. Untuk informasi selengkapnya tentang batasan izin, lihat [Batasan izin untuk entitas IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) dalam *Panduan Pengguna IAM*.
+ **Kebijakan kontrol layanan (SCPs)** — SCPs adalah kebijakan JSON yang menentukan izin maksimum untuk organisasi atau unit organisasi (OU) di. AWS Organizations AWS Organizations adalah layanan untuk mengelompokkan dan mengelola beberapa AWS akun secara terpusat yang dimiliki bisnis Anda. Jika Anda mengaktifkan semua fitur dalam organisasi, Anda dapat menerapkan kebijakan kontrol layanan (SCPs) ke salah satu atau semua akun Anda. SCP membatasi izin untuk entitas di akun anggota, termasuk masing-masing. Pengguna root akun AWS Untuk informasi selengkapnya tentang Organizations dan SCPs, lihat [Cara SCPs kerja](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_about-scps.html) di *Panduan AWS Organizations Pengguna*.
+ **Kebijakan sesi** – Kebijakan sesi adalah kebijakan lanjutan yang Anda berikan sebagai parameter saat Anda membuat sesi sementara secara programatis untuk peran atau pengguna terfederasi. Izin sesi yang dihasilkan adalah perpotongan antara set izin atau kebijakan berbasis identitas peran dan kebijakan sesi tersebut. Izin juga dapat berasal dari kebijakan berbasis sumber daya. Penolakan eksplisit dalam salah satu kebijakan ini akan menggantikan pemberian izin. Untuk informasi selengkapnya, lihat [Kebijakan sesi](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) dalam *Panduan Pengguna IAM*. 

### Berbagai jenis kebijakan
<a name="security_iam_access-manage-multiple-policies"></a>

Ketika beberapa jenis kebijakan berlaku pada suatu permintaan, izin yang dihasilkan lebih rumit untuk dipahami. Untuk mempelajari cara AWS menentukan apakah akan mengizinkan permintaan saat beberapa jenis kebijakan terlibat, lihat [Logika evaluasi kebijakan](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html) di *Panduan Pengguna IAM*.

# Cara kerja Amazon Aurora dengan IAM
<a name="security_iam_service-with-iam"></a>

Sebelum menggunakan IAM untuk mengelola akses ke Amazon Aurora, Anda harus memahami fitur IAM yang dapat digunakan dengan Aurora.

Tabel berikut mencantumkan fitur IAM yang dapat Anda gunakan dengan Aurora:


| Fitur IAM | Dukungan Amazon Aurora | 
| --- | --- | 
|  [Kebijakan berbasis identitas](#security_iam_service-with-iam-id-based-policies)  |  Ya  | 
|  [Kebijakan berbasis sumber daya](#security_iam_service-with-iam-resource-based-policies)  |  Tidak  | 
|  [Tindakan kebijakan](#security_iam_service-with-iam-id-based-policies-actions)  |  Ya  | 
|  [Sumber daya kebijakan](#security_iam_service-with-iam-id-based-policies-resources)  |  Ya  | 
|  [kunci-kunci persyaratan kebijakan (spesifik layanan)](#UsingWithRDS.IAM.Conditions)  |  Ya  | 
|  [ACLs](#security_iam_service-with-iam-acls)  |  Tidak  | 
|  [Kontrol akses berbasis atribut (ABAC) (tag dalam kebijakan)](#security_iam_service-with-iam-tags)  |  Ya  | 
|  [Kredensial sementara](#security_iam_service-with-iam-roles-tempcreds)  |  Ya  | 
|  [Teruskan sesi akses](#security_iam_service-with-iam-principal-permissions)  |  Ya  | 
|  [Peran layanan](#security_iam_service-with-iam-roles-service)  |  Ya  | 
|  [Peran terkait layanan](#security_iam_service-with-iam-roles-service-linked)  |  Ya  | 

*Untuk mendapatkan tampilan tingkat tinggi tentang cara Aurora dan layanan AWS lainnya bekerja dengan IAM, [AWS lihat layanan yang bekerja dengan](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) IAM di Panduan Pengguna IAM.*

**Topics**
+ [Kebijakan berbasis identitas Aurora](#security_iam_service-with-iam-id-based-policies)
+ [Kebijakan berbasis sumber daya dalam Aurora](#security_iam_service-with-iam-resource-based-policies)
+ [Tindakan kebijakan untuk Aurora](#security_iam_service-with-iam-id-based-policies-actions)
+ [Sumber daya kebijakan untuk Aurora](#security_iam_service-with-iam-id-based-policies-resources)
+ [Kunci kondisi kebijakan untuk Aurora](#UsingWithRDS.IAM.Conditions)
+ [Daftar kontrol akses (ACLs) di](#security_iam_service-with-iam-acls)
+ [Kontrol akses berbasis atribut (ABAC) dalam kebijakan dengan tag Aurora](#security_iam_service-with-iam-tags)
+ [Menggunakan kredensial sementara dengan Aurora](#security_iam_service-with-iam-roles-tempcreds)
+ [Teruskan sesi akses untuk](#security_iam_service-with-iam-principal-permissions)
+ [Peran layanan untuk Aurora](#security_iam_service-with-iam-roles-service)
+ [Peran terkait layanan untuk Aurora](#security_iam_service-with-iam-roles-service-linked)

## Kebijakan berbasis identitas Aurora
<a name="security_iam_service-with-iam-id-based-policies"></a>

**Mendukung kebijakan berbasis identitas**: Ya.

Kebijakan berbasis identitas adalah dokumen kebijakan izin JSON yang dapat Anda lampirkan ke sebuah identitas, seperti pengguna IAM, grup pengguna IAM, atau peran IAM. Kebijakan ini mengontrol jenis tindakan yang dapat dilakukan oleh pengguna dan peran, di sumber daya mana, dan berdasarkan kondisi seperti apa. Untuk mempelajari cara membuat kebijakan berbasis identitas, lihat [Tentukan izin IAM kustom dengan kebijakan terkelola pelanggan](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) dalam *Panduan Pengguna IAM*.

Dengan kebijakan berbasis identitas IAM, Anda dapat menentukan secara spesifik apakah tindakan dan sumber daya diizinkan atau ditolak, serta kondisi yang menjadi dasar dikabulkan atau ditolaknya tindakan tersebut. Untuk mempelajari semua elemen yang dapat digunakan dalam kebijakan JSON, lihat [Referensi elemen kebijakan JSON IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) dalam *Panduan Pengguna IAM*.

### Contoh kebijakan berbasis identitas untuk Aurora
<a name="security_iam_service-with-iam-id-based-policies-examples"></a>

Untuk melihat contoh kebijakan berbasis identitas Aurora, lihat [Contoh kebijakan berbasis identitas untuk Amazon Aurora](security_iam_id-based-policy-examples.md).

## Kebijakan berbasis sumber daya dalam Aurora
<a name="security_iam_service-with-iam-resource-based-policies"></a>

**Mendukung kebijakan berbasis sumber daya**: No.

Kebijakan berbasis sumber daya adalah dokumen kebijakan JSON yang Anda lampirkan ke sumber daya. Contoh kebijakan berbasis sumber daya adalah *kebijakan kepercayaan peran* IAM dan *kebijakan bucket* Amazon S3. Dalam layanan yang mendukung kebijakan berbasis sumber daya, administrator layanan dapat menggunakannya untuk mengontrol akses ke sumber daya tertentu. Untuk sumber daya tempat kebijakan dilampirkan, kebijakan menentukan tindakan apa yang dapat dilakukan oleh principal tertentu pada sumber daya tersebut dan dalam kondisi apa. Anda harus [menentukan principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) dalam kebijakan berbasis sumber daya. Prinsipal dapat mencakup akun, pengguna, peran, pengguna federasi, atau. Layanan AWS

Untuk mengaktifkan akses lintas akun, Anda dapat menentukan secara spesifik seluruh akun atau entitas IAM di akun lain sebagai principal dalam kebijakan berbasis sumber daya. Untuk informasi selengkapnya, lihat [Akses sumber daya lintas akun di IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) dalam *Panduan Pengguna IAM*.

## Tindakan kebijakan untuk Aurora
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

**Mendukung tindakan kebijakan:** Ya.

Administrator dapat menggunakan kebijakan AWS JSON untuk menentukan siapa yang memiliki akses ke apa. Yaitu, di mana **utama** dapat melakukan **tindakan** pada **sumber daya**, dan dalam **kondisi apa**.

Elemen `Action` dari kebijakan JSON menjelaskan tindakan yang dapat Anda gunakan untuk mengizinkan atau menolak akses dalam sebuah kebijakan. Menyertakan tindakan dalam suatu kebijakan untuk memberikan izin melakukan operasi terkait.

Tindakan kebijakan di Aurora menggunakan awalan berikut sebelum tindakan: `rds:`. Misalnya, untuk memberikan izin kepada seseorang untuk menjelaskan instans DB dengan operasi API `DescribeDBInstances` Amazon RDS, Anda menyertakan tindakan `rds:DescribeDBInstances` dalam kebijakan mereka. Pernyataan kebijakan harus memuat elemen `Action` atau `NotAction`. Aurora menentukan serangkaian tindakannya sendiri yang menjelaskan tugas yang dapat Anda lakukan dengan layanan ini.

Untuk menentukan beberapa tindakan dalam satu pernyataan, pisahkan tindakan dengan koma seperti berikut:

```
"Action": [
      "rds:action1",
      "rds:action2"
```

Anda juga dapat menentukan beberapa tindakan menggunakan wildcard (\$1). Misalnya, untuk menentukan semua tindakan yang dimulai dengan kata `Describe`, sertakan tindakan berikut.

```
"Action": "rds:Describe*"
```



Untuk melihat daftar tindakan Aurora, lihat [Tindakan yang Ditentukan oleh Amazon RDS](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrds.html#amazonrds-actions-as-permissions) di *Referensi Otorisasi Layanan*.

## Sumber daya kebijakan untuk Aurora
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

**Mendukung sumber daya kebijakan:** Ya.

Administrator dapat menggunakan kebijakan AWS JSON untuk menentukan siapa yang memiliki akses ke apa. Yaitu, di mana **utama** dapat melakukan **tindakan** pada **sumber daya**, dan dalam **kondisi apa**.

Elemen kebijakan JSON `Resource` menentukan objek yang menjadi target penerapan tindakan. Praktik terbaiknya, tentukan sumber daya menggunakan [Amazon Resource Name (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html). Untuk tindakan yang tidak mendukung izin di tingkat sumber daya, gunakan wildcard (\$1) untuk menunjukkan bahwa pernyataan tersebut berlaku untuk semua sumber daya.

```
"Resource": "*"
```

Sumber daya instans DB memiliki Amazon Resource Name (ARN) berikut.

```
arn:${Partition}:rds:${Region}:${Account}:{ResourceType}/${Resource}
```

Untuk informasi selengkapnya tentang format ARNs, lihat [Amazon Resource Names (ARNs) dan ruang nama AWS layanan](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).

Misalnya, untuk menentukan instans DB `dbtest` dalam pernyataan Anda, gunakan ARN berikut.

```
"Resource": "arn:aws:rds:us-west-2:123456789012:db:dbtest"
```

Untuk menentukan semua instans DB milik akun tertentu, gunakan wildcard (\$1).

```
"Resource": "arn:aws:rds:us-east-1:123456789012:db:*"
```

Beberapa operasi API RDS, seperti operasi untuk membuat sumber daya, tidak dapat dilakukan pada sumber daya tertentu. Jika demikian, gunakan wildcard (\$1).

```
"Resource": "*"
```

Banyak operasi API Amazon RDS menggunakan beberapa sumber daya. Misalnya, `CreateDBInstance` membuat instans DB. Anda dapat menentukan bahwa seorang pengguna harus menggunakan grup keamanan dan grup parameter spesifik saat membuat instans DB. Untuk menentukan beberapa sumber daya dalam satu pernyataan, pisahkan ARNs dengan koma. 

```
"Resource": [
      "resource1",
      "resource2"
```

*Untuk melihat daftar jenis sumber daya Aurora beserta ARNs jenisnya, [lihat Sumber Daya yang Ditentukan oleh Amazon](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrds.html#amazonrds-resources-for-iam-policies) RDS di Referensi Otorisasi Layanan.* Untuk mempelajari jenis tindakan yang dapat Anda tentukan dengan ARN di tiap sumber daya, lihat [Tindakan yang Ditentukan oleh Amazon RDS](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrds.html#amazonrds-actions-as-permissions).

## Kunci kondisi kebijakan untuk Aurora
<a name="UsingWithRDS.IAM.Conditions"></a>

**Mendukung kunci kondisi kebijakan khusus layanan: Ya**.

Administrator dapat menggunakan kebijakan AWS JSON untuk menentukan siapa yang memiliki akses ke apa. Yaitu, **principal** dapat melakukan **tindakan** pada suatu **sumber daya**, dan dalam suatu **syarat**.

Elemen `Condition` menentukan ketika pernyataan dieksekusi berdasarkan kriteria yang ditetapkan. Anda dapat membuat ekspresi bersyarat yang menggunakan [operator kondisi](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html), misalnya sama dengan atau kurang dari, untuk mencocokkan kondisi dalam kebijakan dengan nilai-nilai yang diminta. Untuk melihat semua kunci kondisi AWS global, lihat [kunci konteks kondisi AWS global](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) di *Panduan Pengguna IAM*.

Aurora menentukan set kunci kondisinya sendiri dan juga mendukung penggunaan beberapa kunci kondisi global. Untuk melihat semua kunci kondisi AWS global, lihat [kunci konteks kondisi AWS global](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) di *Panduan Pengguna IAM*.



 Semua operasi API RDS mendukung kunci kondisi `aws:RequestedRegion`. 

Untuk melihat daftar kunci kondisi Aurora, lihat [Kunci Kondisi untuk Amazon RDS](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrds.html#amazonrds-policy-keys) di *Referensi Otorisasi Layanan*. Untuk mempelajari tindakan dan sumber daya yang dapat Anda gunakan dengan kunci kondisi, lihat [Tindakan yang Ditentukan oleh Amazon RDS](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrds.html#amazonrds-actions-as-permissions).

## Daftar kontrol akses (ACLs) di
<a name="security_iam_service-with-iam-acls"></a>

**Mendukung daftar kontrol akses (ACLs):** Tidak

Access control lists (ACLs) mengontrol prinsipal mana (anggota akun, pengguna, atau peran) yang memiliki izin untuk mengakses sumber daya. ACLs mirip dengan kebijakan berbasis sumber daya, meskipun mereka tidak menggunakan format dokumen kebijakan JSON.

## Kontrol akses berbasis atribut (ABAC) dalam kebijakan dengan tag Aurora
<a name="security_iam_service-with-iam-tags"></a>

**Mendukung tag kontrol akses berbasis atribut (ABAC) dalam** kebijakan: Ya

Kontrol akses berbasis atribut (ABAC) adalah strategi otorisasi yang menentukan izin berdasarkan atribut tanda. Anda dapat melampirkan tag ke entitas dan AWS sumber daya IAM, lalu merancang kebijakan ABAC untuk mengizinkan operasi saat tag prinsipal cocok dengan tag pada sumber daya.

Untuk mengendalikan akses berdasarkan tanda, berikan informasi tentang tanda di [elemen kondisi](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) dari kebijakan menggunakan kunci kondisi `aws:ResourceTag/key-name`, `aws:RequestTag/key-name`, atau `aws:TagKeys`.

Jika sebuah layanan mendukung ketiga kunci kondisi untuk setiap jenis sumber daya, nilainya adalah **Ya** untuk layanan tersebut. Jika suatu layanan mendukung ketiga kunci kondisi untuk hanya beberapa jenis sumber daya, nilainya adalah **Parsial**.

Untuk informasi selengkapnya tentang ABAC, lihat [Tentukan izin dengan otorisasi ABAC](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html) dalam *Panduan Pengguna IAM.* Untuk melihat tutorial terkait langkah-langkah penyiapan ABAC, lihat [Menggunakan kontrol akses berbasis atribut (ABAC)](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html) di *Panduan Pengguna IAM*.

Untuk informasi selengkapnya cara memberi tag ke sumber daya Aurora, lihat [Menentukan kondisi: Menggunakan tag kustom](UsingWithRDS.IAM.SpecifyingCustomTags.md). Untuk melihat contoh kebijakan berbasis identitas untuk membatasi akses ke sumber daya berdasarkan tag pada sumber daya tersebut, lihat [Berikan izin untuk tindakan atas suatu sumber daya dengan tag tertentu dengan dua nilai yang berbeda](security_iam_id-based-policy-examples-create-and-modify-examples.md#security_iam_id-based-policy-examples-grant-permissions-tags).

## Menggunakan kredensial sementara dengan Aurora
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

**Mendukung kredensi sementara: Ya**.

Kredensi sementara menyediakan akses jangka pendek ke AWS sumber daya dan secara otomatis dibuat saat Anda menggunakan federasi atau beralih peran. AWS merekomendasikan agar Anda secara dinamis menghasilkan kredensi sementara alih-alih menggunakan kunci akses jangka panjang. Untuk informasi selengkapnya, lihat [Kredensial keamanan sementara di IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) dan [Layanan AWS yang berfungsi dengan IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) dalam *Panduan Pengguna IAM*.

## Teruskan sesi akses untuk
<a name="security_iam_service-with-iam-principal-permissions"></a>

**Mendukung sesi akses maju:** Ya.

 Sesi akses teruskan (FAS) menggunakan izin dari pemanggilan utama Layanan AWS, dikombinasikan dengan permintaan Layanan AWS untuk membuat permintaan ke layanan hilir. Untuk detail kebijakan saat membuat permintaan FAS, lihat [Meneruskan sesi akses](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html). 

## Peran layanan untuk Aurora
<a name="security_iam_service-with-iam-roles-service"></a>

**Mendukung peran layanan:** Ya.

 Peran layanan adalah [peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) yang diambil oleh sebuah layanan untuk melakukan tindakan atas nama Anda. Administrator IAM dapat membuat, mengubah, dan menghapus peran layanan dari dalam IAM. Untuk informasi selengkapnya, lihat [Buat sebuah peran untuk mendelegasikan izin ke Layanan AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) dalam *Panduan pengguna IAM*. 

**Awas**  
Mengubah izin untuk peran layanan dapat mengganggu fungsionalitas Aurora. Edit peran layanan hanya jika Aurora menyediakan panduan untuk melakukannya.

## Peran terkait layanan untuk Aurora
<a name="security_iam_service-with-iam-roles-service-linked"></a>

**Mendukung peran terkait layanan: Ya**.

 Peran terkait layanan adalah jenis peran layanan yang ditautkan ke. Layanan AWS Layanan tersebut dapat menjalankan peran untuk melakukan tindakan atas nama Anda. Peran terkait layanan muncul di Anda Akun AWS dan dimiliki oleh layanan. Administrator IAM dapat melihat, tetapi tidak dapat mengedit izin untuk peran terkait layanan. 

Untuk detail tentang cara menggunakan peran terkait layanan Aurora, lihat [Menggunakan peran terkait layanan untuk Amazon Aurora](UsingWithRDS.IAM.ServiceLinkedRoles.md).

# Contoh kebijakan berbasis identitas untuk Amazon Aurora
<a name="security_iam_id-based-policy-examples"></a>

Secara default, peran dan kumpulan izin tidak memiliki izin untuk membuat atau mengubah sumber daya Aurora. Mereka juga tidak dapat melakukan tugas menggunakan Konsol Manajemen AWS, AWS CLI, atau AWS API. Administrator harus membuat kebijakan IAM yang memberikan izin kepada peran atau kumpulan izin untuk menjalankan operasi API tertentu pada sumber daya tertentu yang diperlukan. Administrator kemudian dapat melampirkan kebijakan tersebut ke peran atau kumpulan izin yang memerlukan izin tersebut.

Untuk mempelajari cara membuat kebijakan berbasis identitas IAM menggunakan contoh dokumen kebijakan JSON ini, lihat [Membuat kebijakan pada tab JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-json-editor) dalam *Panduan Pengguna IAM*.

**Topics**
+ [Praktik terbaik kebijakan](#security_iam_service-with-iam-policy-best-practices)
+ [Menggunakan konsol Aurora](#security_iam_id-based-policy-examples-console)
+ [Izin yang diperlukan untuk menggunakan konsol](#UsingWithRDS.IAM.RequiredPermissions.Console)
+ [Mengizinkan pengguna melihat izin mereka sendiri](#security_iam_id-based-policy-examples-view-own-permissions)
+ [](security_iam_id-based-policy-examples-create-and-modify-examples.md)
+ [Contoh Kebijakan: Menggunakan kunci kondisi](UsingWithRDS.IAM.Conditions.Examples.md)
+ [Menentukan kondisi: Menggunakan tag kustom](UsingWithRDS.IAM.SpecifyingCustomTags.md)
+ [Berikan izin untuk menandai sumber daya Aurora selama pembuatan](security_iam_id-based-policy-examples-grant-permissions-tags-on-create.md)

## Praktik terbaik kebijakan
<a name="security_iam_service-with-iam-policy-best-practices"></a>

Kebijakan berbasis identitas menentukan apakah seseorang dapat membuat, mengakses, atau menghapus sumber daya Amazon RDS yang ada di akun Anda. Tindakan ini dikenai biaya untuk Akun AWS Anda. Ketika Anda membuat atau mengedit kebijakan berbasis identitas, ikuti panduan dan rekomendasi ini:
+ **Mulailah dengan kebijakan AWS terkelola dan beralih ke izin hak istimewa paling sedikit — Untuk mulai memberikan izin** kepada pengguna dan beban kerja Anda, gunakan *kebijakan AWS terkelola* yang memberikan izin untuk banyak kasus penggunaan umum. Mereka tersedia di Anda Akun AWS. Kami menyarankan Anda mengurangi izin lebih lanjut dengan menentukan kebijakan yang dikelola AWS pelanggan yang khusus untuk kasus penggunaan Anda. Untuk informasi selengkapnya, lihat [Kebijakan yang dikelola AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) atau [Kebijakan yang dikelola AWS untuk fungsi tugas](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) dalam *Panduan Pengguna IAM*.
+ **Menerapkan izin dengan hak akses paling rendah** – Ketika Anda menetapkan izin dengan kebijakan IAM, hanya berikan izin yang diperlukan untuk melakukan tugas. Anda melakukannya dengan mendefinisikan tindakan yang dapat diambil pada sumber daya tertentu dalam kondisi tertentu, yang juga dikenal sebagai *izin dengan hak akses paling rendah*. Untuk informasi selengkapnya tentang cara menggunakan IAM untuk mengajukan izin, lihat [Kebijakan dan izin dalam IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) dalam *Panduan Pengguna IAM*.
+ **Gunakan kondisi dalam kebijakan IAM untuk membatasi akses lebih lanjut** – Anda dapat menambahkan suatu kondisi ke kebijakan Anda untuk membatasi akses ke tindakan dan sumber daya. Sebagai contoh, Anda dapat menulis kondisi kebijakan untuk menentukan bahwa semua permintaan harus dikirim menggunakan SSL. Anda juga dapat menggunakan ketentuan untuk memberikan akses ke tindakan layanan jika digunakan melalui yang spesifik Layanan AWS, seperti CloudFormation. Untuk informasi selengkapnya, lihat [Elemen kebijakan JSON IAM: Kondisi](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) dalam *Panduan Pengguna IAM*.
+ **Gunakan IAM Access Analyzer untuk memvalidasi kebijakan IAM Anda untuk memastikan izin yang aman dan fungsional** – IAM Access Analyzer memvalidasi kebijakan baru dan yang sudah ada sehingga kebijakan tersebut mematuhi bahasa kebijakan IAM (JSON) dan praktik terbaik IAM. IAM Access Analyzer menyediakan lebih dari 100 pemeriksaan kebijakan dan rekomendasi yang dapat ditindaklanjuti untuk membantu Anda membuat kebijakan yang aman dan fungsional. Untuk informasi selengkapnya, lihat [Validasi kebijakan dengan IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) dalam *Panduan Pengguna IAM*.
+ **Memerlukan otentikasi multi-faktor (MFA)** - Jika Anda memiliki skenario yang mengharuskan pengguna IAM atau pengguna root di Anda, Akun AWS aktifkan MFA untuk keamanan tambahan. Untuk meminta MFA ketika operasi API dipanggil, tambahkan kondisi MFA pada kebijakan Anda. Untuk informasi selengkapnya, lihat [Amankan akses API dengan MFA](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html) dalam *Panduan Pengguna IAM*.

Untuk informasi selengkapnya tentang praktik terbaik dalam IAM, lihat [Praktik terbaik keamanan di IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) dalam *Panduan Pengguna IAM*.

## Menggunakan konsol Aurora
<a name="security_iam_id-based-policy-examples-console"></a>

Untuk mengakses konsol Amazon Aurora, Anda harus memiliki kumpulan izin minimum. Izin ini harus memungkinkan Anda untuk membuat daftar dan melihat detail tentang sumber daya Amazon Aurora di Anda. Akun AWS Jika Anda membuat kebijakan berbasis identitas yang lebih ketat daripada izin minimum yang diperlukan, konsol tidak akan berfungsi sebagaimana mestinya untuk entitas (pengguna atau peran) dengan kebijakan tersebut.

Anda tidak perlu mengizinkan izin konsol minimum untuk pengguna yang melakukan panggilan hanya ke AWS CLI atau AWS API. Sebagai alternatif, hanya izinkan akses ke tindakan yang cocok dengan operasi API yang sedang Anda coba lakukan.

Untuk memastikan bahwa entitas tersebut masih dapat menggunakan konsol Aurora, lampirkan juga kebijakan terkelola AWS berikut ke entitas.

```
AmazonRDSReadOnlyAccess
```

Untuk informasi selengkapnya, lihat [Menambah izin untuk pengguna](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) dalam *Panduan Pengguna IAM*.

## Izin yang diperlukan untuk menggunakan konsol
<a name="UsingWithRDS.IAM.RequiredPermissions.Console"></a>

Agar pengguna dapat bekerja dengan konsol, pengguna tersebut harus memiliki kumpulan izin minimum. Izin ini memungkinkan pengguna untuk mendeskripsikan sumber daya Amazon Aurora untuk akun AWS mereka dan untuk memberikan informasi terkait lainnya, termasuk keamanan Amazon EC2 dan informasi jaringan.

Jika Anda membuat kebijakan IAM yang lebih ketat daripada izin minimum yang diperlukan, konsol tidak akan berfungsi sebagaimana mestinya untuk pengguna dengan kebijakan IAM. Untuk memastikan bahwa pengguna masih dapat menggunakan konsol, lampirkan juga kebijakan yang dikelola `AmazonRDSReadOnlyAccess` kepada pengguna, sebagaimana dijelaskan dalam [Mengelola akses menggunakan kebijakan](UsingWithRDS.IAM.md#security_iam_access-manage).

Anda tidak perlu memperbolehkan izin konsol minimum bagi pengguna yang hanya melakukan panggilan ke AWS CLI atau Amazon RDS API. 

Kebijakan berikut memberikan akses penuh ke semua sumber daya Amazon Aurora untuk akun root: AWS 

```
AmazonRDSFullAccess             
```

## Mengizinkan pengguna melihat izin mereka sendiri
<a name="security_iam_id-based-policy-examples-view-own-permissions"></a>

Contoh ini menunjukkan cara membuat kebijakan yang mengizinkan pengguna IAM melihat kebijakan inline dan terkelola yang dilampirkan ke identitas pengguna mereka. Kebijakan ini mencakup izin untuk menyelesaikan tindakan ini di konsol atau menggunakan API atau secara terprogram. AWS CLI AWS 

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}
```

# 
<a name="security_iam_id-based-policy-examples-create-and-modify-examples"></a>

Bagian berikut menyajikan contoh kebijakan izin yang memberikan dan membatasi akses ke sumber daya:

## Izinkan pengguna untuk membuat instans DB di akun AWS
<a name="security_iam_id-based-policy-examples-create-db-instance-in-account"></a>

Berikut ini adalah contoh kebijakan yang memungkinkan akun dengan ID `123456789012` untuk membuat instans DB untuk AWS akun Anda. Kebijakan ini mewajibkan nama instans DB baru dimulai dengan `test`. Instans DB yang baru juga harus menggunakan mesin basis data MySQL dan kelas instans DB `db.t2.micro`. Selain itu, instans DB baru harus menggunakan grup opsi dan grup parameter DB yang dimulai dengan `default`, dan harus menggunakan grup subnet `default`.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Sid": "AllowCreateDBInstanceOnly",
         "Effect": "Allow",
         "Action": [
            "rds:CreateDBInstance"
         ],
         "Resource": [
            "arn:aws:rds:*:123456789012:db:test*",
            "arn:aws:rds:*:123456789012:og:default*",
            "arn:aws:rds:*:123456789012:pg:default*",
            "arn:aws:rds:*:123456789012:subgrp:default"
         ],
         "Condition": {
            "StringEquals": {
               "rds:DatabaseEngine": "mysql",
               "rds:DatabaseClass": "db.t2.micro"
            }
         }
      }
   ]
}
```

------

Kebijakan ini mencakup pernyataan tunggal yang menentukan izin berikut untuk pengguna:
+ Kebijakan ini memungkinkan akun untuk membuat instans DB menggunakan operasi [Create DBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) API (ini juga berlaku untuk [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) AWS CLI perintah dan Konsol Manajemen AWS).
+ Elemen `Resource` menentukan bahwa pengguna dapat melakukan tindakan pada atau dengan sumber daya. Anda menentukan sumber daya menggunakan Amazon Resource Name (ARN). ARN ini mencakup nama layanan yang dimiliki sumber daya (`rds`), AWS Wilayah (`*`menunjukkan wilayah mana pun dalam contoh ini), nomor AWS akun (`123456789012`adalah nomor akun dalam contoh ini), dan jenis sumber daya. Untuk informasi selengkapnya tentang membuat ARNs, lihat[Nama Sumber Daya Amazon (ARNs) di Amazon RDS](USER_Tagging.ARN.md).

  Elemen `Resource` dalam contoh menentukan batasan kebijakan berikut pada sumber daya untuk pengguna:
  + ID instans DB untuk instans DB baru harus dimulai dengan `test` (misalnya, `testCustomerData1`, `test-region2-data`).
  + Grup opsi untuk instans DB baru harus dimulai dengan `default`.
  + Grup parameter DB opsi untuk instans DB baru harus dimulai dengan `default`.
  + Grup subnet untuk instans DB baru harus berupa grup subnet `default`.
+ Elemen `Condition` menentukan bahwa mesin DB harus berupa MySQL dan kelas instans DB harus berupa `db.t2.micro`. Elemen `Condition` menentukan kondisi ketika kebijakan harus diberlakukan. Anda dapat menambahkan izin atau batasan tambahan dengan menggunakan elemen `Condition`. Untuk informasi selengkapnya tentang cara menentukan kondisi, lihat [Kunci kondisi kebijakan untuk Aurora](security_iam_service-with-iam.md#UsingWithRDS.IAM.Conditions). Contoh ini menetapkan kondisi `rds:DatabaseEngine` dan `rds:DatabaseClass`. Untuk informasi tentang nilai kondisi yang valid untuk`rds:DatabaseEngine`, lihat daftar di bawah `Engine` parameter di [Buat DBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Untuk informasi tentang nilai kondisi yang valid untuk `rds:DatabaseClass`, Lihat [Mesin DB yang didukung untuk kelas instans DB](Concepts.DBInstanceClass.SupportAurora.md). 

Kebijakan ini tidak menentukan elemen `Principal` karena dalam kebijakan berbasis identitas, Anda tidak menentukan pengguna utama yang mendapatkan izin. Saat Anda menyematkan kebijakan kepada pengguna, pengguna ini menjadi pengguna utama implisit. Saat Anda menyematkan kebijakan izin pada peran IAM, pengguna utama yang diidentifikasi dalam kebijakan kepercayaan peran tersebut akan mendapatkan izin.

Untuk melihat daftar tindakan Aurora, lihat [Tindakan yang Ditentukan oleh Amazon RDS](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrds.html#amazonrds-actions-as-permissions) di *Referensi Otorisasi Layanan*.

## Mengizinkan pengguna melakukan setiap tindakan yang dijelaskan pada sumber daya RDS
<a name="IAMPolicyExamples-RDS-perform-describe-action"></a>

Kebijakan izin berikut memberikan izin kepada pengguna untuk menjalankan semua tindakan yang dimulai dengan `Describe`. Tindakan ini menunjukkan informasi tentang sumber daya RDS, seperti instans DB. Karakter wildcard (\$1) dalam elemen `Resource` menunjukkan bahwa tindakan diperbolehkan untuk semua sumber daya Amazon Aurora yang dimiliki akun tersebut. 

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Sid": "AllowRDSDescribe",
         "Effect": "Allow",
         "Action": "rds:Describe*",
         "Resource": "*"
      }
   ]
}
```

------

## Mengizinkan pengguna membuat instans DB yang menggunakan grup parameter DB dan grup subnet yang telah ditentukan
<a name="security_iam_id-based-policy-examples-create-db-instance-specified-groups"></a>

Kebijakan izin berikut memberikan izin untuk hanya memperbolehkan pengguna membuat instans DB yang harus menggunakan grup parameter DB `mydbpg` dan grup subnet DB `mydbsubnetgroup`. 

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Sid": "VisualEditor0",
         "Effect": "Allow",
         "Action": "rds:CreateDBInstance",
         "Resource": [
            "arn:aws:rds:*:*:pg:mydbpg",
            "arn:aws:rds:*:*:subgrp:mydbsubnetgroup"
         ]
      }
   ]
}
```

------

## Berikan izin untuk tindakan atas suatu sumber daya dengan tag tertentu dengan dua nilai yang berbeda
<a name="security_iam_id-based-policy-examples-grant-permissions-tags"></a>

Anda dapat menggunakan kondisi dalam kebijakan berbasis identitas untuk mengontrol akses ke sumber daya Aurora berdasarkan tag. Kebijakan berikut memungkinkan izin untuk melakukan operasi `CreateDBSnapshot` API pada instans DB dengan tag `stage` diatur ke `development` atau `test`.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"AllowAnySnapshotName",
         "Effect":"Allow",
         "Action":[
            "rds:CreateDBSnapshot"
         ],
         "Resource":"arn:aws:rds:*:123456789012:snapshot:*"
      },
      {
         "Sid":"AllowDevTestToCreateSnapshot",
         "Effect":"Allow",
         "Action":[
            "rds:CreateDBSnapshot"
         ],
         "Resource":"arn:aws:rds:*:123456789012:db:*",
         "Condition":{
            "StringEquals":{
                "rds:db-tag/stage":[
                  "development",
                  "test"
               ]
            }
         }
      }
   ]
}
```

------

Kebijakan berikut memungkinkan izin untuk melakukan operasi `ModifyDBInstance` API pada instans DB dengan tag `stage` diatur ke `development` atau `test`.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"AllowChangingParameterOptionSecurityGroups",
         "Effect":"Allow",
         "Action":[
            "rds:ModifyDBInstance"
         ],
         "Resource": [
            "arn:aws:rds:*:123456789012:pg:*",
            "arn:aws:rds:*:123456789012:secgrp:*",
            "arn:aws:rds:*:123456789012:og:*"
         ]
      },
      {
         "Sid":"AllowDevTestToModifyInstance",
         "Effect":"Allow",
         "Action":[
            "rds:ModifyDBInstance"
         ],
         "Resource":"arn:aws:rds:*:123456789012:db:*",
         "Condition":{
            "StringEquals":{
                "rds:db-tag/stage":[
                  "development",
                  "test"
               ]
            }
         }
      }
   ]
}
```

------

## Mencegah pengguna menghapus instans DB
<a name="IAMPolicyExamples-RDS-prevent-db-deletion"></a>

Kebijakan izin berikut memberikan izin untuk mencegah pengguna menghapus instans DB tertentu. Misalnya, Anda mungkin ingin menolak kemampuan untuk menghapus instans DB produksi Anda kepada setiap pengguna yang bukan administrator.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Sid": "DenyDelete1",
         "Effect": "Deny",
         "Action": "rds:DeleteDBInstance",
         "Resource": "arn:aws:rds:us-west-2:123456789012:db:my-mysql-instance"
      }
   ]
}
```

------

## Menolak semua akses ke sumber daya
<a name="IAMPolicyExamples-RDS-deny-all-access"></a>

Anda juga dapat secara eksplisit menolak akses ke sumber daya. Kebijakan penolakan lebih diutamakan daripada kebijakan yang diizinkan. Kebijakan berikut secara eksplisit menolak kemampuan pengguna untuk mengelola sumber daya:

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Deny",
         "Action": "rds:*",
         "Resource": "arn:aws:rds:us-east-1:123456789012:db:mydb"
      }
   ]
}
```

------

# Contoh Kebijakan: Menggunakan kunci kondisi
<a name="UsingWithRDS.IAM.Conditions.Examples"></a>

Berikut ini adalah contoh cara menggunakan kunci kondisi dalam kebijakan izin IAM Amazon Aurora. 

## Contoh 1: Memberikan izin untuk membuat instans DB yang menggunakan mesin DB spesifik dan tidak berupa Multi-AZ
<a name="w2aac73c48c33c21b5"></a>

Kebijakan berikut menggunakan kunci kondisi RDS dan memungkinkan pengguna membuat instans DB yang menggunakan mesin basis data MySQL saja dan tidak menggunakan MultiAZ. Elemen `Condition` menunjukkan persyaratan bahwa mesin basis data adalah MySQL. 

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Sid": "AllowMySQLCreate",
         "Effect": "Allow",
         "Action": "rds:CreateDBInstance",
         "Resource": "*",
         "Condition": {
            "StringEquals": {
               "rds:DatabaseEngine": "mysql"
            },
            "Bool": {
               "rds:MultiAz": false
            }
         }
      }
   ]
}
```

------

## Contoh 2: Secara eksplisit menolak izin untuk membuat instans DB untuk kelas instans DB tertentu dan membuat instans DB yang menggunakan IOPS yang Tersedia
<a name="w2aac73c48c33c21b7"></a>

Kebijakan berikut secara eksplisit menolak izin untuk membuat instans DB yang menggunakan kelas instans DB `r3.8xlarge` dan `m4.10xlarge`, yang merupakan kelas instans DB terbesar dan termahal. Kebijakan ini juga mencegah pengguna membuat instans DB yang menggunakan IOPS yang Tersedia, yang menimbulkan biaya tambahan. 

Izin yang secara tegas menolak lebih diprioritaskan daripada izin lain yang diberikan. Ini memastikan bahwa identitas tidak akan secara kebetulan mendapatkan izin yang tidak pernah ingin Anda berikan.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Sid": "DenyLargeCreate",
         "Effect": "Deny",
         "Action": "rds:CreateDBInstance",
         "Resource": "*",
         "Condition": {
            "StringEquals": {
               "rds:DatabaseClass": [
                  "db.r3.8xlarge",
                  "db.m4.10xlarge"
               ]
            }
         }
      },
      {
         "Sid": "DenyPIOPSCreate",
         "Effect": "Deny",
         "Action": "rds:CreateDBInstance",
         "Resource": "*",
         "Condition": {
            "NumericNotEquals": {
               "rds:Piops": "0"
            }
         }
      }
   ]
}
```

------

## Contoh 3: Membatasi kumpulan kunci dan nilai tag yang dapat digunakan untuk menandai sumber daya
<a name="w2aac73c48c33c21b9"></a>

Kebijakan berikut menggunakan kunci kondisi RDS dan memungkinkan penambahan tag dengan kunci `stage` untuk ditambahkan ke sumber daya dengan nilai `test`, `qa`, dan `production`.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowTagEdits",
      "Effect": "Allow",
      "Action": [
        "rds:AddTagsToResource",
        "rds:RemoveTagsFromResource"
      ],
      "Resource": "arn:aws:rds:us-east-1:123456789012:db:db-123456",
      "Condition": {
        "StringEquals": {
          "rds:req-tag/stage": [
            "test",
            "qa",
            "production"
          ]
        }
      }
    }
  ]
}
```

------

# Menentukan kondisi: Menggunakan tag kustom
<a name="UsingWithRDS.IAM.SpecifyingCustomTags"></a>

Amazon Aurora mendukung penentuan kondisi dalam kebijakan IAM menggunakan tag kustom.

Sebagai contoh, misalkan Anda menambahkan tag bernama `environment` ke instans DB Anda dengan nilai seperti `beta`, `staging`, `production`, dan sebagainya. Jika melakukannya, Anda dapat membuat kebijakan yang membatasi pengguna tertentu pada instans DB berdasarkan nilai tag `environment`.

**catatan**  
ID tag kustom bersifat peka huruf besar-kecil.

Tabel berikut mencantumkan ID tag RDS yang dapat digunakan pada elemen `Condition`. 

<a name="rds-iam-condition-tag-reference"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.IAM.SpecifyingCustomTags.html)

Sintaks untuk kondisi tag kustom adalah sebagai berikut:

`"Condition":{"StringEquals":{"rds:rds-tag-identifier/tag-name": ["value"]} }` 

Misalnya, elemen `Condition` berikut berlaku untuk instans DB dengan tag bernama `environment` dan nilai tag `production`. 

` "Condition":{"StringEquals":{"rds:db-tag/environment": ["production"]} } ` 

Untuk informasi tentang membuat tag, lihat [Menandai sumber daya Amazon Aurora dan Amazon RDS](USER_Tagging.md).

**penting**  
Jika Anda mengelola akses ke sumber daya RDS Anda menggunakan pemberian tag, sebaiknya Anda mengamankan akses ke tag untuk sumber daya RDS Anda. Anda dapat mengelola akses ke tag dengan membuat kebijakan untuk tindakan `AddTagsToResource` dan `RemoveTagsFromResource`. Misalnya, kebijakan berikut menolak kemampuan pengguna untuk menambahkan atau menghapus tag untuk semua sumber daya. Anda kemudian dapat membuat kebijakan untuk mengizinkan pengguna tertentu menambahkan atau menghapus tag.   

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"DenyTagUpdates",
         "Effect":"Deny",
         "Action":[
            "rds:AddTagsToResource",
            "rds:RemoveTagsFromResource"
         ],
         "Resource":"*"
      }
   ]
}
```

Untuk melihat daftar tindakan Aurora, lihat [Tindakan yang Ditentukan oleh Amazon RDS](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrds.html#amazonrds-actions-as-permissions) di *Referensi Otorisasi Layanan*.

## Contoh kebijakan: Menggunakan tag kustom
<a name="UsingWithRDS.IAM.Conditions.Tags.Examples"></a>

Contoh berikut menunjukkan cara menggunakan tag kustom dalam kebijakan izin IAM Amazon Aurora. Untuk informasi lebih lanjut tentang cara menambahkan tag ke sumber daya Amazon Aurora, lihat [Nama Sumber Daya Amazon (ARNs) di Amazon RDS](USER_Tagging.ARN.md). 

**catatan**  
Semua contoh menggunakan wilayah us-west-2 dan berisi akun fiktif. IDs

### Contoh 1: Memberikan izin untuk tindakan pada sumber daya dengan tag tertentu dengan dua nilai yang berbeda
<a name="w2aac73c48c33c23c29b6"></a>

Kebijakan berikut memungkinkan izin untuk melakukan operasi `CreateDBSnapshot` API pada instans DB dengan tag `stage` diatur ke `development` atau `test`.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"AllowAnySnapshotName",
         "Effect":"Allow",
         "Action":[
            "rds:CreateDBSnapshot"
         ],
         "Resource":"arn:aws:rds:*:123456789012:snapshot:*"
      },
      {
         "Sid":"AllowDevTestToCreateSnapshot",
         "Effect":"Allow",
         "Action":[
            "rds:CreateDBSnapshot"
         ],
         "Resource":"arn:aws:rds:*:123456789012:db:*",
         "Condition":{
            "StringEquals":{
                "rds:db-tag/stage":[
                  "development",
                  "test"
               ]
            }
         }
      }
   ]
}
```

------

Kebijakan berikut memungkinkan izin untuk melakukan operasi `ModifyDBInstance` API pada instans DB dengan tag `stage` diatur ke `development` atau `test`.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"AllowChangingParameterOptionSecurityGroups",
         "Effect":"Allow",
         "Action":[
            "rds:ModifyDBInstance"
            ],
          "Resource": [
            "arn:aws:rds:*:123456789012:pg:*",
            "arn:aws:rds:*:123456789012:secgrp:*",
            "arn:aws:rds:*:123456789012:og:*"
            ]
       },
       {
         "Sid":"AllowDevTestToModifyInstance",
         "Effect":"Allow",
         "Action":[
            "rds:ModifyDBInstance"
            ],
         "Resource":"arn:aws:rds:*:123456789012:db:*",
         "Condition":{
            "StringEquals":{
               "rds:db-tag/stage":[
                  "development",
                  "test"
                  ]
               }
            }
       }
    ]
}
```

------

### Contoh 2: Secara eksplisit menolak izin untuk membuat instans DB yang menggunakan grup parameter DB yang ditentukan
<a name="w2aac73c48c33c23c29b8"></a>

Kebijakan berikut secara eksplisit menolak izin untuk membuat instans DB yang menggunakan grup parameter DB dengan nilai tag spesifik. Anda dapat menerapkan kebijakan ini jika Anda mengharuskan grup parameter DB yang dibuat pengguna tertentu selalu digunakan saat membuat instans DB. Kebijakan yang menggunakan `Deny` paling sering digunakan untuk membatasi akses yang diberikan oleh kebijakan yang lebih luas.

Izin yang secara tegas menolak lebih diprioritaskan daripada izin lain yang diberikan. Ini memastikan bahwa identitas tidak akan secara kebetulan mendapatkan izin yang tidak pernah ingin Anda berikan.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"DenyProductionCreate",
         "Effect":"Deny",
         "Action":"rds:CreateDBInstance",
         "Resource":"arn:aws:rds:*:123456789012:pg:*",
         "Condition":{
            "StringEquals":{
               "rds:pg-tag/usage":"prod"
            }
         }
      }
   ]
}
```

------

### Contoh 3: Memberikan izin untuk tindakan pada instans DB dengan nama instans yang diawali dengan nama pengguna
<a name="w2aac73c48c33c23c29c10"></a>

Kebijakan berikut memungkinkan izin untuk memanggil API apa pun (kecuali untuk `AddTagsToResource` atau `RemoveTagsFromResource`) pada instans DB yang memiliki nama instans DB yang diawali dengan nama pengguna dan memiliki tag bernama `stage` yang sama dengan `devo` atau yang tidak memiliki tag bernama `stage`.

Baris `Resource` dalam kebijakan mengidentifikasi sumber daya berdasarkan Amazon Resource Name (ARN). Untuk informasi selengkapnya tentang penggunaan ARNs dengan sumber daya Amazon Aurora, lihat. [Nama Sumber Daya Amazon (ARNs) di Amazon RDS](USER_Tagging.ARN.md) 

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"AllowFullDevAccessNoTags",
         "Effect":"Allow",
         "NotAction":[
            "rds:AddTagsToResource",
            "rds:RemoveTagsFromResource"
         ],
         "Resource":"arn:aws:rds:*:123456789012:db:${aws:username}*",
         "Condition":{
            "StringEqualsIfExists":{
               "rds:db-tag/stage":"devo"
            }
         }
      }
   ]
}
```

------

# Berikan izin untuk menandai sumber daya Aurora selama pembuatan
<a name="security_iam_id-based-policy-examples-grant-permissions-tags-on-create"></a>

Beberapa operasi API RDS memungkinkan Anda menentukan tag saat membuat sumber daya. Anda dapat menggunakan tanda sumber daya untuk menerapkan pengendalian berbasis atribut (ABAC). Untuk informasi lebih lanjut, lihat [Untuk apa ABAC? AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html) dan [Mengontrol akses ke AWS sumber daya menggunakan tag](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html).

Untuk memungkinkan pengguna menandai sumber daya pada pembuatan, mereka harus memiliki izin untuk menggunakan tindakan yang membuat sumber daya, seperti . Jika tag ditentukan dalam tindakan buat, RDS melakukan otorisasi tambahan pada `rds:AddTagsToResource` tindakan untuk memverifikasi apakah pengguna memiliki izin untuk membuat tag. Oleh karena itu, para pengguna juga harus memiliki izin eksplisit untuk menggunakan tindakan `rds:AddTagsToResource`.

Dalam definisi kebijakan IAM untuk `rds:AddTagsToResource` tindakan, Anda dapat menggunakan kunci `aws:RequestTag` kondisi untuk mewajibkan tag dalam permintaan untuk menandai sumber daya.

Misalnya, kebijakan berikut memungkinkan pengguna untuk membuat instance DB dan menerapkan tag selama pembuatan instans DB, tetapi hanya dengan kunci tag tertentu (`environment`atau`project`):

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
       {
           "Effect": "Allow",
           "Action": [
               "rds:CreateDBInstance"
           ],
           "Resource": "*"
       },
       {
           "Effect": "Allow",
           "Action": [
               "rds:AddTagsToResource"
           ],
           "Resource": "*",
           "Condition": {
               "StringEquals": {
                   "aws:RequestTag/environment": ["production", "development"],
                   "aws:RequestTag/project": ["dataanalytics", "webapp"]
               },
               "ForAllValues:StringEquals": {
                   "aws:TagKeys": ["environment", "project"]
               }
           }
       }
   ]
}
```

------

Kebijakan ini menolak permintaan instans create DB yang menyertakan tag selain `project` tag `environment` atau, atau yang tidak menentukan salah satu tag ini. Selain itu, pengguna harus menentukan nilai untuk tag yang cocok dengan nilai yang diizinkan dalam kebijakan.

Kebijakan berikut memungkinkan pengguna untuk membuat cluster DB dan menerapkan tag apa pun selama pembuatan kecuali `environment=prod` tag:

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
       {
           "Effect": "Allow",
           "Action": [
               "rds:CreateDBCluster"
           ],
           "Resource": "*"
       },
       {
           "Effect": "Allow",
           "Action": [
               "rds:AddTagsToResource"
           ],
           "Resource": "*",
           "Condition": {
               "StringNotEquals": {
                   "aws:RequestTag/environment": "prod"
               }
           }
       }
   ]
}
```

------

## Tindakan API RDS yang didukung untuk menandai pada pembuatan
<a name="security_iam_id-based-policy-examples-supported-rds-api-actions-tagging-creation"></a>

Tindakan API RDS berikut mendukung penandaan saat Anda membuat sumber daya. Untuk tindakan ini, Anda dapat menentukan tag saat membuat sumber daya:
+ `CreateBlueGreenDeployment`
+ `CreateCustomDBEngineVersion`
+ `CreateDBCluster`
+ `CreateDBClusterEndpoint`
+ `CreateDBClusterParameterGroup`
+ `CreateDBClusterSnapshot`
+ `CreateDBInstance`
+ `CreateDBInstanceReadReplica`
+ `CreateDBParameterGroup`
+ `CreateDBProxy`
+ `CreateDBProxyEndpoint`
+ `CreateDBSecurityGroup`
+ `CreateDBShardGroup`
+ `CreateDBSnapshot`
+ `CreateDBSubnetGroup`
+ `CreateEventSubscription`
+ `CreateGlobalCluster`
+ `CreateIntegration`
+ `CreateOptionGroup`
+ `CreateTenantDatabase`
+ `CopyDBClusterParameterGroup`
+ `CopyDBClusterSnapshot`
+ `CopyDBParameterGroup`
+ `CopyDBSnapshot`
+ `CopyOptionGroup`
+ `RestoreDBClusterFromS3`
+ `RestoreDBClusterFromSnapshot`
+ `RestoreDBClusterToPointInTime`
+ `RestoreDBInstanceFromDBSnapshot`
+ `RestoreDBInstanceFromS3`
+ `RestoreDBInstanceToPointInTime`
+ `PurchaseReservedDBInstancesOffering`

Jika Anda menggunakan API AWS CLI atau untuk membuat sumber daya dengan tag, `Tags` parameter tersebut digunakan untuk menerapkan tag ke sumber daya selama pembuatan.

Untuk tindakan API ini, jika penandaan gagal, sumber daya tidak dibuat, dan permintaan gagal dengan kesalahan. Ini memastikan bahwa sumber daya dibuat dengan tag atau tidak dibuat sama sekali, mencegah sumber daya dibuat tanpa tag yang dimaksudkan.

# AWS kebijakan terkelola untuk Amazon RDS
<a name="rds-security-iam-awsmanpol"></a>

Untuk menambahkan izin ke set dan peran izin, lebih mudah menggunakan kebijakan AWS terkelola daripada menulis kebijakan sendiri. Dibutuhkan waktu dan keahlian untuk [membuat kebijakan yang dikelola pelanggan IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html) yang hanya memberi tim Anda izin yang mereka butuhkan. Untuk memulai dengan cepat, Anda dapat menggunakan kebijakan AWS terkelola kami. Kebijakan ini mencakup kasus penggunaan umum dan tersedia di Akun AWS Anda. Untuk informasi selengkapnya tentang kebijakan AWS [AWS terkelola, lihat kebijakan terkelola](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) di *Panduan Pengguna IAM*.

Layanan AWS memelihara dan memperbarui kebijakan AWS terkelola. Anda tidak dapat mengubah izin dalam kebijakan AWS terkelola. Layanan terkadang menambahkan izin tambahan ke kebijakan AWS terkelola untuk mendukung fitur baru. Jenis pembaruan ini akan memengaruhi semua identitas (pengguna, grup, dan peran) di mana kebijakan tersebut dilampirkan. Layanan kemungkinan besar akan memperbarui kebijakan AWS terkelola saat fitur baru diluncurkan atau saat operasi baru tersedia. Layanan tidak menghapus izin dari kebijakan AWS terkelola, sehingga pembaruan kebijakan tidak merusak izin yang ada.

Selain itu, AWS mendukung kebijakan terkelola untuk fungsi pekerjaan yang mencakup beberapa layanan. Misalnya, kebijakan `ReadOnlyAccess` AWS terkelola menyediakan akses hanya-baca ke semua Layanan AWS dan sumber daya. Saat layanan meluncurkan fitur baru, AWS tambahkan izin hanya-baca untuk operasi dan sumber daya baru. Untuk melihat daftar dan deskripsi dari kebijakan fungsi tugas, lihat [kebijakan yang dikelola AWS untuk fungsi tugas](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) di *Panduan Pengguna IAM*.

**Topics**
+ [AWS kebijakan terkelola: Amazon RDSRead OnlyAccess](#rds-security-iam-awsmanpol-AmazonRDSReadOnlyAccess)
+ [AWS kebijakan terkelola: RDSFull Akses Amazon](#rds-security-iam-awsmanpol-AmazonRDSFullAccess)
+ [AWS kebijakan terkelola: Amazon RDSData FullAccess](#rds-security-iam-awsmanpol-AmazonRDSDataFullAccess)
+ [AWS kebijakan terkelola: Amazon RDSEnhanced MonitoringRole](#rds-security-iam-awsmanpol-AmazonRDSEnhancedMonitoringRole)
+ [AWS kebijakan terkelola: Amazon RDSPerformance InsightsReadOnly](#rds-security-iam-awsmanpol-AmazonRDSPerformanceInsightsReadOnly)
+ [AWS kebijakan terkelola: Amazon RDSPerformance InsightsFullAccess](#rds-security-iam-awsmanpol-AmazonRDSPerformanceInsightsFullAccess)
+ [AWS kebijakan terkelola: Amazon RDSDirectory ServiceAccess](#rds-security-iam-awsmanpol-AmazonRDSDirectoryServiceAccess)
+ [AWS kebijakan terkelola: Amazon RDSService RolePolicy](#rds-security-iam-awsmanpol-AmazonRDSServiceRolePolicy)
+ [AWS kebijakan terkelola: Amazon RDSPreview ServiceRolePolicy](#rds-security-iam-awsmanpol-AmazonRDSPreviewServiceRolePolicy)
+ [AWS kebijakan terkelola: Amazon RDSBeta ServiceRolePolicy](#rds-security-iam-awsmanpol-AmazonRDSBetaServiceRolePolicy)

## AWS kebijakan terkelola: Amazon RDSRead OnlyAccess
<a name="rds-security-iam-awsmanpol-AmazonRDSReadOnlyAccess"></a>

Kebijakan ini memungkinkan akses hanya-baca ke Amazon RDS melalui. Konsol Manajemen AWS

**Detail izin**

Kebijakan ini mencakup izin berikut:
+ `rds` – Mengizinkan pengguna utama mendeskripsikan sumber daya Amazon RDS dan mencantumkan tag untuk sumber daya Amazon RDS.
+ `cloudwatch`— Memungkinkan kepala sekolah untuk mendapatkan statistik metrik Amazon CloudWatch .
+ `ec2` – Mengizinkan pengguna utama mendeskripsikan Zona Ketersediaan dan sumber daya jaringan.
+ `logs`— Memungkinkan prinsipal untuk menggambarkan aliran CloudWatch log Log dari grup log, dan mendapatkan CloudWatch peristiwa log Log.
+ `devops-guru`— Memungkinkan prinsipal untuk mendeskripsikan sumber daya yang memiliki cakupan Amazon DevOps Guru, yang ditentukan baik oleh nama CloudFormation tumpukan atau tag sumber daya.

Untuk informasi selengkapnya tentang kebijakan ini, termasuk dokumen kebijakan JSON, lihat [Amazon RDSRead OnlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRDSReadOnlyAccess.html) di *Panduan Referensi Kebijakan AWS Terkelola*.

## AWS kebijakan terkelola: RDSFull Akses Amazon
<a name="rds-security-iam-awsmanpol-AmazonRDSFullAccess"></a>

Kebijakan ini menyediakan akses penuh ke Amazon RDS melalui. Konsol Manajemen AWS

**Detail izin**

Kebijakan ini mencakup izin berikut:
+ `rds` – Mengizinkan pengguna utama memiliki akses penuh ke Amazon RDS.
+ `application-autoscaling` – Mengizinkan pengguna utama mendeskripsikan dan mengelola target dan kebijakan penskalaan Application Auto Scaling.
+ `cloudwatch`— Memungkinkan kepala sekolah mendapatkan statika CloudWatch metrik dan mengelola alarm. CloudWatch 
+ `ec2` – Mengizinkan pengguna utama mendeskripsikan Zona Ketersediaan dan sumber daya jaringan.
+ `logs`— Memungkinkan prinsipal untuk menggambarkan aliran CloudWatch log Log dari grup log, dan mendapatkan CloudWatch peristiwa log Log.
+ `outposts`— Memungkinkan prinsipal untuk mendapatkan AWS Outposts jenis instance.
+ `pi` – Mengizinkan pengguna utama untuk mendapatkan metrik Wawasan Performa.
+ `sns` – Mengizinkan pengguna utama untuk menggunakan langganan dan topik Amazon Simple Notification Service (Amazon SNS), dan menerbitkan pesan Amazon SNS.
+ `devops-guru`— Memungkinkan prinsipal untuk mendeskripsikan sumber daya yang memiliki cakupan Amazon DevOps Guru, yang ditentukan baik oleh nama CloudFormation tumpukan atau tag sumber daya.

Untuk informasi selengkapnya tentang kebijakan ini, termasuk dokumen kebijakan JSON, lihat [Amazon RDSFull Access](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRDSFullAccess.html) di *Panduan Referensi Kebijakan AWS Terkelola*.

## AWS kebijakan terkelola: Amazon RDSData FullAccess
<a name="rds-security-iam-awsmanpol-AmazonRDSDataFullAccess"></a>

Kebijakan ini memungkinkan akses penuh untuk menggunakan Data API dan editor kueri pada Aurora Serverless cluster tertentu Akun AWS. Kebijakan ini memungkinkan Akun AWS untuk mendapatkan nilai rahasia dari AWS Secrets Manager. 

Anda dapat melampirkan kebijakan `AmazonRDSDataFullAccess` ke identitas IAM Anda.

**Detail izin**

Kebijakan ini mencakup izin berikut:
+ `dbqms` – Mengizinkan pengguna utama mengakses, menghapus, mendeskripsikan, dan memperbarui kueri. Layanan Metadata Kueri Basis Data (`dbqms`) adalah layanan khusus internal. Ini memberikan kueri terbaru dan tersimpan Anda untuk editor kueri di Konsol Manajemen AWS untuk beberapa Layanan AWS, termasuk Amazon RDS.
+ `rds-data` – Mengizinkan pengguna utama untuk menjalankan pernyataan SQL pada basis data Aurora Serverless.
+ `secretsmanager`— Memungkinkan kepala sekolah untuk mendapatkan nilai rahasia dari. AWS Secrets Manager

Untuk informasi selengkapnya tentang kebijakan ini, termasuk dokumen kebijakan JSON, lihat [Amazon RDSData FullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRDSDataFullAccess.html) di *Panduan Referensi Kebijakan AWS Terkelola*.

## AWS kebijakan terkelola: Amazon RDSEnhanced MonitoringRole
<a name="rds-security-iam-awsmanpol-AmazonRDSEnhancedMonitoringRole"></a>

Kebijakan ini menyediakan akses ke Amazon CloudWatch Logs untuk Amazon RDS Enhanced Monitoring.

**Detail izin**

Kebijakan ini mencakup izin berikut:
+ `logs`— Memungkinkan prinsipal untuk membuat grup CloudWatch log Log dan kebijakan retensi, dan untuk membuat dan mendeskripsikan aliran CloudWatch log log dari grup log. Ini juga memungkinkan kepala sekolah untuk menempatkan dan mendapatkan peristiwa CloudWatch log Log.

Untuk informasi selengkapnya tentang kebijakan ini, termasuk dokumen kebijakan JSON, lihat [Amazon RDSEnhanced MonitoringRole](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRDSEnhancedMonitoringRole.html) di *Panduan Referensi Kebijakan AWS Terkelola*.

## AWS kebijakan terkelola: Amazon RDSPerformance InsightsReadOnly
<a name="rds-security-iam-awsmanpol-AmazonRDSPerformanceInsightsReadOnly"></a>

Kebijakan ini menyediakan akses hanya-baca ke Wawasan Performa Amazon RDS untuk instans DB Amazon RDS dan klaster DB Amazon Aurora.

Kebijakan ini kini mencakup `Sid` (ID pernyataan) sebagai pengidentifikasi pernyataan kebijakan. 

**Detail izin**

Kebijakan ini mencakup izin berikut:
+ `rds` – Mengizinkan pengguna utama mendeskripsikan instans DB Amazon RDS dan klaster DB Amazon Aurora.
+ `pi` – Mengizinkan pengguna utama melakukan panggilan ke API Wawasan Performa Amazon RDS dan mengakses metrik Wawasan Performa.

Untuk informasi selengkapnya tentang kebijakan ini, termasuk dokumen kebijakan JSON, lihat [Amazon RDSPerformance InsightsReadOnly](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRDSPerformanceInsightsReadOnly.html) di *Panduan Referensi Kebijakan AWS Terkelola*.

## AWS kebijakan terkelola: Amazon RDSPerformance InsightsFullAccess
<a name="rds-security-iam-awsmanpol-AmazonRDSPerformanceInsightsFullAccess"></a>

Kebijakan ini menyediakan akses penuh ke Wawasan Performa Amazon RDS untuk instans DB Amazon RDS dan klaster DB Amazon Aurora.

Kebijakan ini kini mencakup `Sid` (ID pernyataan) sebagai pengidentifikasi pernyataan kebijakan. 

**Detail izin**

Kebijakan ini mencakup izin berikut:
+ `rds` – Mengizinkan pengguna utama mendeskripsikan instans DB Amazon RDS dan klaster DB Amazon Aurora.
+ `pi` – Mengizinkan pengguna utama melakukan panggilan ke API Wawasan Performa Amazon RDS, serta membuat, melihat, dan menghapus laporan analisis performa.
+ `cloudwatch`— Memungkinkan kepala sekolah untuk membuat daftar semua metrik Amazon, dan mendapatkan CloudWatch data metrik dan statistik.

Untuk informasi selengkapnya tentang kebijakan ini, termasuk dokumen kebijakan JSON, lihat [Amazon RDSPerformance InsightsFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRDSPerformanceInsightsFullAccess.html) di *Panduan Referensi Kebijakan AWS Terkelola*.

## AWS kebijakan terkelola: Amazon RDSDirectory ServiceAccess
<a name="rds-security-iam-awsmanpol-AmazonRDSDirectoryServiceAccess"></a>

Kebijakan ini mengizinkan Amazon RDS untuk melakukan panggilan ke Directory Service.

**Detail izin**

Kebijakan ini mencakup izin berikut:
+ `ds`— Memungkinkan kepala sekolah untuk mendeskripsikan Directory Service direktori dan mengontrol otorisasi ke direktori. Directory Service 

Untuk informasi selengkapnya tentang kebijakan ini, termasuk dokumen kebijakan JSON, lihat [Amazon RDSDirectory ServiceAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRDSDirectoryServiceAccess.html) di *Panduan Referensi Kebijakan AWS Terkelola*.

## AWS kebijakan terkelola: Amazon RDSService RolePolicy
<a name="rds-security-iam-awsmanpol-AmazonRDSServiceRolePolicy"></a>

Anda tidak dapat melampirkan kebijakan `AmazonRDSServiceRolePolicy` ke entitas IAM Anda. Kebijakan ini dilampirkan ke peran tertaut layanan yang memungkinkan Amazon RDS melakukan tindakan atas nama Anda. Untuk informasi selengkapnya, lihat [Izin peran terkait layanan untuk Amazon Aurora](UsingWithRDS.IAM.ServiceLinkedRoles.md#service-linked-role-permissions).

## AWS kebijakan terkelola: Amazon RDSPreview ServiceRolePolicy
<a name="rds-security-iam-awsmanpol-AmazonRDSPreviewServiceRolePolicy"></a>

Anda tidak harus melampirkan `AmazonRDSPreviewServiceRolePolicy` ke entitas IAM Anda. Kebijakan ini dilampirkan ke peran terkait layanan yang memungkinkan Amazon RDS memanggil AWS layanan atas nama sumber daya RDS DB Anda. Untuk informasi selengkapnya, lihat [Peran terkait layanan untuk Amazon RDS Preview](UsingWithRDS.IAM.ServiceLinkedRoles.md#slr-permissions-rdspreview). 

**Detail izin**

Kebijakan ini mencakup izin berikut:
+ `ec2`- Memungkinkan kepala sekolah untuk menggambarkan Availability Zone dan sumber daya jaringan.
+ `secretsmanager`— Memungkinkan kepala sekolah untuk mendapatkan nilai rahasia dari. AWS Secrets Manager
+ `cloudwatch`, `logs` - Memungkinkan Amazon RDS mengunggah metrik dan log instans DB CloudWatch melalui CloudWatch agen.

Untuk informasi selengkapnya tentang kebijakan ini, termasuk dokumen kebijakan JSON, lihat [Amazon RDSPreview ServiceRolePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRDSPreviewServiceRolePolicy.html) di *Panduan Referensi Kebijakan AWS Terkelola*.

## AWS kebijakan terkelola: Amazon RDSBeta ServiceRolePolicy
<a name="rds-security-iam-awsmanpol-AmazonRDSBetaServiceRolePolicy"></a>

Anda tidak harus melampirkan `AmazonRDSBetaServiceRolePolicy` ke entitas IAM Anda. Kebijakan ini dilampirkan ke peran terkait layanan yang memungkinkan Amazon RDS memanggil AWS layanan atas nama sumber daya RDS DB Anda. Untuk informasi selengkapnya, lihat [Izin peran terkait layanan untuk Amazon RDS Beta](UsingWithRDS.IAM.ServiceLinkedRoles.md#slr-permissions-rdsbeta).

**Detail izin**

Kebijakan ini mencakup izin berikut:
+ `ec2`- Memungkinkan Amazon RDS melakukan operasi pencadangan pada instans DB yang menyediakan kemampuan point-in-time pemulihan.
+ `secretsmanager`- Memungkinkan Amazon RDS mengelola rahasia spesifik instans DB yang dibuat oleh Amazon RDS.
+ `cloudwatch`, `logs` - Memungkinkan Amazon RDS mengunggah metrik dan log instans DB CloudWatch melalui CloudWatch agen.

Untuk informasi selengkapnya tentang kebijakan ini, termasuk dokumen kebijakan JSON, lihat [Amazon RDSBeta ServiceRolePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRDSBetaServiceRolePolicy.html) di *Panduan Referensi Kebijakan AWS Terkelola*.

# Amazon RDS memperbarui kebijakan AWS terkelola
<a name="rds-manpol-updates"></a>

Lihat detail tentang pembaruan kebijakan AWS terkelola untuk Amazon RDS sejak layanan ini mulai melacak perubahan ini. Untuk peringatan otomatis tentang perubahan pada halaman ini, berlangganan di umpan RSS di halaman [Riwayat dokumen](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/WhatsNew.html) Amazon RDS.




| Perubahan | Deskripsi | Tanggal | 
| --- | --- | --- | 
| [AWS kebijakan terkelola: Amazon RDSPreview ServiceRolePolicy](rds-security-iam-awsmanpol.md#rds-security-iam-awsmanpol-AmazonRDSPreviewServiceRolePolicy) – Pembaruan ke kebijakan yang sudah ada |  Amazon RDS menghapus `sns:Publish` izin `AmazonRDSPreviewServiceRolePolicy` dari peran `AWSServiceRoleForRDSPreview` terkait layanan. Untuk informasi selengkapnya, lihat [AWS kebijakan terkelola: Amazon RDSPreview ServiceRolePolicy](rds-security-iam-awsmanpol.md#rds-security-iam-awsmanpol-AmazonRDSPreviewServiceRolePolicy). | Agustus 7, 2024 | 
| [AWS kebijakan terkelola: Amazon RDSBeta ServiceRolePolicy](rds-security-iam-awsmanpol.md#rds-security-iam-awsmanpol-AmazonRDSBetaServiceRolePolicy) – Pembaruan ke kebijakan yang sudah ada |  Amazon RDS menghapus `sns:Publish` izin `AmazonRDSBetaServiceRolePolicy` dari peran `AWSServiceRoleForRDSBeta` terkait layanan. Untuk informasi selengkapnya, lihat [AWS kebijakan terkelola: Amazon RDSBeta ServiceRolePolicy](rds-security-iam-awsmanpol.md#rds-security-iam-awsmanpol-AmazonRDSBetaServiceRolePolicy).  | Agustus 7, 2024 | 
| [AWS kebijakan terkelola: Amazon RDSService RolePolicy](rds-security-iam-awsmanpol.md#rds-security-iam-awsmanpol-AmazonRDSServiceRolePolicy) – Pembaruan ke kebijakan yang sudah ada |  Amazon RDS menghapus `sns:Publish` izin `AmazonRDSServiceRolePolicy` dari peran ` AWSServiceRoleForRDS` terkait layanan. Untuk informasi selengkapnya, lihat [AWS kebijakan terkelola: Amazon RDSService RolePolicy](rds-security-iam-awsmanpol.md#rds-security-iam-awsmanpol-AmazonRDSServiceRolePolicy).  | Juli 2, 2024 | 
| [AWS kebijakan terkelola untuk Amazon RDS](rds-security-iam-awsmanpol.md) – Pembaruan ke kebijakan yang sudah ada |  Amazon RDS menambahkan izin baru ke peran `AWSServiceRoleForRDSCustom` terkait layanan untuk memungkinkan RDS Custom for SQL Server memodifikasi jenis instans host database yang mendasarinya. `AmazonRDSCustomServiceRolePolicy` RDS juga menambahkan `ec2:DescribeInstanceTypes` izin untuk mendapatkan informasi tipe instance untuk host database. Untuk informasi selengkapnya, lihat [AWS kebijakan terkelola untuk Amazon RDS](rds-security-iam-awsmanpol.md).  | April 8, 2024 | 
|  [AWS kebijakan terkelola untuk Amazon RDS](rds-security-iam-awsmanpol.md) – Kebijakan baru  | Amazon RDS menambahkan kebijakan terkelola baru yang diberi nama AmazonRDSCustomInstanceProfileRolePolicy untuk memungkinkan RDS Custom melakukan tindakan otomatisasi dan tugas manajemen database melalui profil EC2 instans. Untuk informasi selengkapnya, lihat [AWS kebijakan terkelola untuk Amazon RDS](rds-security-iam-awsmanpol.md). | Februari 27, 2024 | 
|  [Izin peran terkait layanan untuk Amazon Aurora](UsingWithRDS.IAM.ServiceLinkedRoles.md#service-linked-role-permissions) – Pembaruan ke kebijakan yang ada | Amazon RDS menambahkan pernyataan baru IDs ke `AmazonRDSServiceRolePolicy` peran `AWSServiceRoleForRDS` terkait layanan. Untuk informasi selengkapnya, lihat [Izin peran terkait layanan untuk Amazon Aurora](UsingWithRDS.IAM.ServiceLinkedRoles.md#service-linked-role-permissions).  |  Januari 19, 2024  | 
|  [AWS kebijakan terkelola untuk Amazon RDS](rds-security-iam-awsmanpol.md) – Pembaruan ke kebijakan yang ada  |  Kebijakan yang dikelola `AmazonRDSPerformanceInsightsReadOnly` dan `AmazonRDSPerformanceInsightsFullAccess` kini menyertakan `Sid` (ID pernyataan) sebagai ID dalam pernyataan kebijakan.  Untuk informasi selengkapnya, lihat [AWS kebijakan terkelola: Amazon RDSPerformance InsightsReadOnly](rds-security-iam-awsmanpol.md#rds-security-iam-awsmanpol-AmazonRDSPerformanceInsightsReadOnly) dan [AWS kebijakan terkelola: Amazon RDSPerformance InsightsFullAccess](rds-security-iam-awsmanpol.md#rds-security-iam-awsmanpol-AmazonRDSPerformanceInsightsFullAccess)   |  23 Oktober 2023  | 
|  [AWS kebijakan terkelola untuk Amazon RDS](rds-security-iam-awsmanpol.md) – Pembaruan ke kebijakan yang sudah ada  |  Amazon RDS menambahkan izin baru ke kebijakan yang dikelola `AmazonRDSFullAccess`. Kebijakan ini memungkinkan Anda membuat, melihat, dan menghapus laporan analisis performa selama periode tertentu. Untuk informasi selengkapnya tentang cara mengonfigurasi kebijakan akses untuk Wawasan Performa, lihat [Mengonfigurasi kebijakan akses untuk Wawasan Performa](USER_PerfInsights.access-control.md)  |  17 Agustus 2023  | 
|  [AWS kebijakan terkelola untuk Amazon RDS](rds-security-iam-awsmanpol.md) – Kebijakan baru dan pembaruan ke kebijakan yang ada  |  Amazon RDS menambahkan izin baru ke kebijakan yang dikelola `AmazonRDSPerformanceInsightsReadOnly` dan kebijakan terkelola baru bernama `AmazonRDSPerformanceInsightsFullAccess`. Izin ini memungkinkan Anda menganalisis Wawasan Performa selama periode tertentu, melihat hasil analisis beserta rekomendasinya, dan menghapus laporan. Untuk informasi selengkapnya tentang cara mengonfigurasi kebijakan akses untuk Wawasan Performa, lihat [Mengonfigurasi kebijakan akses untuk Wawasan Performa](USER_PerfInsights.access-control.md)  |  16 Agustus 2023  | 
|  [AWS kebijakan terkelola untuk Amazon RDS](rds-security-iam-awsmanpol.md) – Pembaruan ke kebijakan yang ada  |  Amazon RDS menambahkan CloudWatch namespace `ListMetrics` Amazon baru ke dan. `AmazonRDSFullAccess` `AmazonRDSReadOnlyAccess` Nama ruang ini diperlukan untuk Amazon RDS untuk mencantumkan metrik penggunaan sumber daya tertentu. Untuk informasi selengkapnya, lihat [Ringkasan mengelola izin akses ke CloudWatch sumber daya Anda](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/iam-access-control-overview-cw.html) di *Panduan CloudWatch Pengguna Amazon*.  |  4 April 2023  | 
|  [Izin peran terkait layanan untuk Amazon Aurora](UsingWithRDS.IAM.ServiceLinkedRoles.md#service-linked-role-permissions) – Pembaruan ke kebijakan yang ada  |  Amazon RDS menambahkan izin baru ke `AmazonRDSServiceRolePolicy` peran `AWSServiceRoleForRDS` terkait layanan untuk integrasi. AWS Secrets Manager RDS memerlukan integrasi dengan Secrets Manager untuk mengelola kata sandi pengguna utama di Secrets Manager. Rahasianya menggunakan konvensi penamaan yang dicadangkan dan membatasi pembaruan pelanggan. Untuk informasi selengkapnya, lihat [Manajemen kata sandi dengan dan AWS Secrets Manager](rds-secrets-manager.md).  |  22 Desember 2022  | 
|  [AWS kebijakan terkelola untuk Amazon RDS](rds-security-iam-awsmanpol.md) – Pembaruan ke kebijakan yang ada  |  Amazon RDS menambahkan izin baru ke `AmazonRDSFullAccess` dan kebijakan `AmazonRDSReadOnlyAccess` terkelola untuk memungkinkan Anda mengaktifkan Amazon DevOps Guru di konsol RDS. Izin ini diperlukan untuk memeriksa apakah DevOps Guru dihidupkan. Untuk informasi selengkapnya, lihat [Mengkonfigurasi kebijakan akses IAM untuk DevOps Guru untuk RDS](devops-guru-for-rds.md#devops-guru-for-rds.configuring.access).  |  19 Desember 2022  | 
|  [Izin peran terkait layanan untuk Amazon Aurora](UsingWithRDS.IAM.ServiceLinkedRoles.md#service-linked-role-permissions) – Pembaruan ke kebijakan yang ada  |  Amazon RDS menambahkan CloudWatch namespace Amazon baru ke for. `AmazonRDSPreviewServiceRolePolicy` `PutMetricData` Namespace ini mewajibkan Amazon RDS menerbitkan metrik penggunaan sumber daya. Untuk informasi selengkapnya, lihat [Menggunakan tombol kondisi untuk membatasi akses ke CloudWatch ruang nama](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/iam-cw-condition-keys-namespace.html) di * CloudWatch Panduan Pengguna Amazon*.  |  7 Juni 2022  | 
|  [Izin peran terkait layanan untuk Amazon Aurora](UsingWithRDS.IAM.ServiceLinkedRoles.md#service-linked-role-permissions) – Pembaruan ke kebijakan yang ada  |  Amazon RDS menambahkan CloudWatch namespace Amazon baru ke for. `AmazonRDSBetaServiceRolePolicy` `PutMetricData` Namespace ini mewajibkan Amazon RDS menerbitkan metrik penggunaan sumber daya. Untuk informasi selengkapnya, lihat [Menggunakan tombol kondisi untuk membatasi akses ke CloudWatch ruang nama](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/iam-cw-condition-keys-namespace.html) di * CloudWatch Panduan Pengguna Amazon*.  |  7 Juni 2022  | 
|  [Izin peran terkait layanan untuk Amazon Aurora](UsingWithRDS.IAM.ServiceLinkedRoles.md#service-linked-role-permissions) – Pembaruan ke kebijakan yang ada  |  Amazon RDS menambahkan CloudWatch namespace Amazon baru ke for. `AWSServiceRoleForRDS` `PutMetricData` Namespace ini mewajibkan Amazon RDS menerbitkan metrik penggunaan sumber daya. Untuk informasi selengkapnya, lihat [Menggunakan tombol kondisi untuk membatasi akses ke CloudWatch ruang nama](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/iam-cw-condition-keys-namespace.html) di * CloudWatch Panduan Pengguna Amazon*.  |  22 April 2022  | 
|  [AWS kebijakan terkelola untuk Amazon RDS](rds-security-iam-awsmanpol.md) – Kebijakan baru  |  Amazon RDS menambahkan kebijakan terkelola baru yang diberi nama `AmazonRDSPerformanceInsightsReadOnly` untuk mengizinkan Amazon RDS memanggil AWS layanan atas nama instans DB Anda. Untuk informasi selengkapnya tentang cara mengonfigurasi kebijakan akses untuk Wawasan Performa, lihat [Mengonfigurasi kebijakan akses untuk Wawasan Performa](USER_PerfInsights.access-control.md)  |  10 Maret 2022  | 
|  [Izin peran terkait layanan untuk Amazon Aurora](UsingWithRDS.IAM.ServiceLinkedRoles.md#service-linked-role-permissions) – Pembaruan ke kebijakan yang ada  |  Amazon RDS menambahkan CloudWatch ruang nama Amazon baru ke for. `AWSServiceRoleForRDS` `PutMetricData` Ruang nama ini diperlukan untuk Amazon DocumentDB (dengan kompatibilitas MongoDB) dan Amazon Neptune untuk menerbitkan metrik. CloudWatch  Untuk informasi selengkapnya, lihat [Menggunakan tombol kondisi untuk membatasi akses ke CloudWatch ruang nama](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/iam-cw-condition-keys-namespace.html) di * CloudWatch Panduan Pengguna Amazon*.  |  4 Maret 2022  | 
|  Amazon RDS memulai pelacakan perubahan  |  Amazon RDS mulai melacak perubahan untuk kebijakan yang AWS dikelola.  |  26 Oktober 2021  | 

# Pencegahan masalah confused deputy lintas layanan
<a name="cross-service-confused-deputy-prevention"></a>

*Masalah confused deputy* adalah masalah keamanan saat entitas yang tidak memiliki izin untuk melakukan suatu tindakan dapat memaksa entitas yang lebih berhak untuk melakukan tindakan tersebut. Pada tahunAWS, peniruan lintas layanan dapat mengakibatkan masalah wakil yang membingungkan. 

Peniruan identitas lintas layanan dapat terjadi ketika satu layanan (*layanan panggilan*) memanggil layanan lain (*layanan yang dipanggil*). Layanan panggilan dapat dimanipulasi agar menggunakan izinnya untuk bertindak pada sumber daya pelanggan lain dengan cara yang seharusnya tidak dilakukannya kecuali bila memiliki izin untuk mengakses. Untuk mencegah hal ini, AWS sediakan alat yang dapat membantu Anda melindungi data Anda untuk semua layanan dengan prinsip layanan yang telah diberikan akses ke sumber daya di akun Anda. Untuk informasi selengkapnya, lihat [Masalah confused deputy](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html) di *Panduan Pengguna IAM*.

Untuk membatasi izin yang diberikan Amazon RDS ke layanan lain untuk sumber daya tertentu, sebaiknya gunakan kunci konteks kondisi global [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) dan [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) di kebijakan sumber daya. 

Dalam beberapa kasus, nilai `aws:SourceArn` tidak berisi ID akun, misalnya saat Anda menggunakan Amazon Resource Name (ARN) untuk bucket Amazon S3. Dalam kasus ini, pastikan untuk menggunakan kedua kunci konteks kondisi global untuk membatasi izin. Dalam beberapa kasus, Anda menggunakan kunci konteks kondisi global dan nilai `aws:SourceArn` yang berisi ID akun. Dalam hal ini, pastikan bahwa nilai `aws:SourceAccount` dan akun dalam nilai `aws:SourceArn` menggunakan ID akun yang sama ketika digunakan dalam pernyataan yang sama. Jika Anda ingin hanya satu sumber daya yang akan dikaitkan dengan akses lintas layanan, gunakan `aws:SourceArn`. Jika Anda ingin mengizinkan sumber daya apa pun di AWS akun yang ditentukan dikaitkan dengan penggunaan lintas layanan, gunakan`aws:SourceAccount`.

Pastikan nilai `aws:SourceArn` adalah ARN untuk jenis sumber daya Amazon RDS. Untuk informasi selengkapnya, lihat [Nama Sumber Daya Amazon (ARNs) di Amazon RDS](USER_Tagging.ARN.md).

Cara paling efektif untuk melindungi dari masalah "confused deputy" adalah dengan menggunakan kunci konteks kondisi global `aws:SourceArn` dengan ARN lengkap sumber daya. Dalam beberapa kasus, Anda mungkin tidak mengetahui ARN lengkap sumber daya atau mungkin Anda menentukan beberapa sumber daya. Dalam hal ini, gunakan kunci kondisi konteks global `aws:SourceArn` dengan wildcard (`*`) untuk bagian ARN yang tidak diketahui. Contohnya adalah `arn:aws:rds:*:123456789012:*`. 

Contoh berikut menunjukkan cara Anda dapat menggunakan `aws:SourceArn` dan kunci konteks kondisi global `aws:SourceAccount` di Amazon RDS untuk mencegah masalah confused deputy.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Sid": "ConfusedDeputyPreventionExamplePolicy",
    "Effect": "Allow",
    "Principal": {
      "Service": "rds.amazonaws.com"
    },
    "Action": "sts:AssumeRole",
    "Condition": {
      "ArnLike": {
        "aws:SourceArn": "arn:aws:rds:us-east-1:123456789012:db:mydbinstance"
      },
      "StringEquals": {
        "aws:SourceAccount": "123456789012"
      }
    }
  }
}
```

------

Untuk contoh kebijakan lainnya yang menggunakan kunci konteks kondisi global `aws:SourceArn` dan `aws:SourceAccount`, lihat bagian berikut:
+ [Memberikan izin untuk menerbitkan pemberitahuan ke topik Amazon SNS](USER_Events.GrantingPermissions.md)
+ [Menyiapkan akses ke bucket Amazon S3](USER_PostgreSQL.S3Import.AccessPermission.md) (Impor PostgreSQL)
+ [Menyiapkan akses ke bucket Amazon S3](postgresql-s3-export-access-bucket.md) (Ekspor PostgreSQL)

# Autentikasi basis data IAM
<a name="UsingWithRDS.IAMDBAuth"></a>

Anda dapat mengautentikasi ke cluster DB Anda menggunakan otentikasi database AWS Identity and Access Management (IAM). Autentikasi basis data IAM berfungsi dengan Aurora MySQL, dan Aurora PostgreSQL. Dengan metode autentikasi ini, Anda tidak perlu menggunakan kata sandi saat menghubungkan dengan klaster basis data. Sebagai gantinya, gunakan token autentikasi.

*Token autentikasi* adalah string karakter unik yang dihasilkan Amazon Aurora sesuai permintaan. Token otentikasi dihasilkan menggunakan AWS Signature Version 4. Setiap token memiliki masa pakai 15 menit. Anda tidak perlu menyimpan kredensial pengguna di basis data karena autentikasi dikelola secara eksternal menggunakan IAM. Anda juga masih dapat menggunakan autentikasi basis data standar. Token hanya digunakan untuk autentikasi dan tidak memengaruhi sesi setelah dibuat.

Autentikasi basis data IAM memberikan manfaat berikut:
+ Lalu lintas jaringan ke dan dari basis data dienkripsi menggunakan Lapisan Soket Aman (SSL) atau Keamanan Lapisan Pengangkutan (TLS). Untuk informasi selengkapnya tentang penggunaan SSL/TLS Amazon Aurora, lihat. [Menggunakan SSL/TLS untuk mengenkripsi koneksi ke ](UsingWithRDS.SSL.md)
+ Anda dapat menggunakan IAM untuk mengelola akses ke sumber daya basis data Anda secara terpusat, bukan mengelola akses satu per satu pada setiap klaster DB.
+ Untuk aplikasi yang berjalan di Amazon EC2, Anda dapat menggunakan kredensial profil khusus untuk instans EC2 untuk mengakses basis data, bukan menggunakan kata sandi, untuk keamanan yang lebih baik.

Secara umum, pertimbangkan untuk menggunakan autentikasi basis data IAM ketika aplikasi Anda membuat kurang dari 200 koneksi per detik, dan Anda tidak ingin mengelola nama pengguna dan kata sandi secara langsung dalam kode aplikasi Anda.

Driver Amazon Web Services (AWS) JDBC mendukung autentikasi database IAM. Untuk informasi selengkapnya, lihat [Plugin Autentikasi AWS IAM di repositori](https://github.com/aws/aws-advanced-jdbc-wrapper/blob/main/docs/using-the-jdbc-driver/using-plugins/UsingTheIamAuthenticationPlugin.md) [Driver Amazon Web Services (AWS) JDBC](https://github.com/aws/aws-advanced-jdbc-wrapper). GitHub 

Driver Python Amazon Web Services (AWS) mendukung otentikasi database IAM. Untuk informasi selengkapnya, lihat [Plugin Autentikasi AWS IAM](https://github.com/aws/aws-advanced-python-wrapper/blob/main/docs/using-the-python-driver/using-plugins/UsingTheIamAuthenticationPlugin.md) di repositori [Amazon Web Services ()AWS Python](https://github.com/aws/aws-advanced-python-wrapper) Driver. GitHub

Arahkan topik berikut untuk mempelajari proses menyetel IAM untuk otentikasi DB:
+ [Mengaktifkan dan menonaktifkan autentikasi basis data IAM](UsingWithRDS.IAMDBAuth.Enabling.md)
+ [Membuat dan menggunakan kebijakan IAM untuk akses basis data IAM](UsingWithRDS.IAMDBAuth.IAMPolicy.md)
+ [Membuat akun basis data menggunakan autentikasi IAM](UsingWithRDS.IAMDBAuth.DBAccounts.md)
+ [Menghubungkan ke klaster DB menggunakan autentikasi IAM](UsingWithRDS.IAMDBAuth.Connecting.md) 

## Ketersediaan wilayah dan versi
<a name="UsingWithRDS.IAMDBAuth.Availability"></a>

 Ketersediaan fitur dan dukungan bervariasi di seluruh versi spesifik dari setiap mesin basis data Aurora, dan di seluruh Wilayah AWS. Untuk informasi selengkapnya tentang ketersediaan versi dan Wilayah dengan autentikasi basis data IAM dan Aurora, lihat [Daerah yang Didukung dan mesin Aurora DB untuk otentikasi database IAM](Concepts.Aurora_Fea_Regions_DB-eng.Feature.IAMdbauth.md). 

Untuk Aurora MySQL, semua kelas instans DB yang didukung mendukung autentikasi basis data IAM, kecuali untuk db.t2.small dan db.t3.small. Untuk informasi tentang kelas instans DB yang didukung, lihat [Mesin DB yang didukung untuk kelas instans DB](Concepts.DBInstanceClass.SupportAurora.md). 

## Dukungan CLI dan SDK
<a name="UsingWithRDS.IAMDBAuth.cli-sdk"></a>

Autentikasi database IAM tersedia untuk [AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/rds/generate-db-auth-token.html)dan untuk bahasa khusus berikut: AWS SDKs
+ [AWS SDK untuk .NET](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/RDS/TRDSAuthTokenGenerator.html)
+ [AWS SDK untuk C\$1\$1](https://docs.aws.amazon.com/sdk-for-cpp/latest/api/class_aws_1_1_r_d_s_1_1_r_d_s_client.html#ae134ffffed5d7672f6156d324e7bd392)
+ [AWS SDK untuk Go](https://docs.aws.amazon.com/sdk-for-go/api/service/rds/#pkg-overview)
+ [AWS SDK untuk Java](https://docs.aws.amazon.com/sdk-for-java/latest/reference/software/amazon/awssdk/services/rds/RdsUtilities.html)
+ [AWS SDK untuk JavaScript](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/modules/_aws_sdk_rds_signer.html)
+ [AWS SDK untuk PHP](https://docs.aws.amazon.com/aws-sdk-php/v3/api/class-Aws.Rds.AuthTokenGenerator.html)
+ [AWS SDK untuk Python (Boto3)](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html#RDS.Client.generate_db_auth_token)
+ [AWS SDK untuk Ruby](https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/RDS/AuthTokenGenerator.html)

## Batasan untuk autentikasi basis data IAM
<a name="UsingWithRDS.IAMDBAuth.Limitations"></a>

Saat menggunakan autentikasi basis data IAM, batasan berikut berlaku:
+ Saat ini, autentikasi basis data IAM tidak mendukung kunci konteks kondisi global.

  Untuk informasi selengkapnya tentang kunci konteks kondisi global, lihat [Kunci konteks kondisi global AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) dalam *Panduan Pengguna IAM*.
+ Untuk PostgreSQL, jika peran IAM (`rds_iam`) ditambahkan ke pengguna (termasuk pengguna master RDS), autentikasi IAM akan lebih diprioritaskan daripada autentikasi kata sandi, sehingga pengguna harus login sebagai pengguna IAM.
+ Anda tidak dapat menggunakan data DNS Route 53 kustom sebagai pengganti titik akhir klaster DB untuk menghasilkan token autentikasi.
+ CloudWatch dan CloudTrail jangan mencatat otentikasi IAM. Layanan ini tidak melacak panggilan `generate-db-auth-token` API yang mengotorisasi peran IAM untuk mengaktifkan koneksi database.
+  Anda harus memiliki antara 300 dan 1000 MiB memori tambahan pada database Anda untuk konektivitas yang andal. Untuk melihat memori yang dibutuhkan untuk beban kerja Anda, bandingkan kolom RES untuk proses RDS dalam daftar proses Enhanced Monitoring sebelum dan sesudah mengaktifkan autentikasi IAM DB. Lihat [Melihat metrik OS di konsol RDS](USER_Monitoring.OS.Viewing.md).

  Jika Anda menggunakan instance kelas burstable, hindari kehabisan memori dengan mengurangi memori yang digunakan oleh parameter lain seperti buffer dan cache dengan jumlah yang sama.
+ Untuk Aurora MySQL, Anda tidak dapat menggunakan otentikasi berbasis kata sandi untuk pengguna database yang Anda konfigurasikan dengan otentikasi IAM.
+ Autentikasi IAM DB tidak didukung untuk RDS di Outposts untuk mesin apa pun.

## Rekomendasi untuk autentikasi basis data IAM
<a name="UsingWithRDS.IAMDBAuth.ConnectionsPerSecond"></a>

Kami merekomendasikan hal berikut saat menggunakan autentikasi basis data IAM:
+ Gunakan autentikasi basis data IAM ketika aplikasi Anda membutuhkan tidak lebih dari 200 koneksi autentikasi basis data IAM per detik.

  Mesin basis data yang berfungsi dengan Amazon Aurora tidak memberlakukan batasan apa pun untuk percobaan autentikasi per detik. Namun, ketika Anda menggunakan autentikasi basis data IAM, aplikasi Anda harus membuat token autentikasi. Aplikasi Anda kemudian menggunakan token tersebut untuk terhubung ke klaster DB. Jika Anda melebihi batas maksimum untuk koneksi baru per detik, maka overhead tambahan dari autentikasi basis data IAM dapat menyebabkan throttling koneksi. 

  Pertimbangkan untuk menggunakan pooling koneksi di aplikasi Anda untuk mengurangi pembuatan koneksi yang konstan. Cara ini dapat mengurangi overhead dari autentikasi DB IAM dan memungkinkan aplikasi Anda menggunakan kembali koneksi yang ada. Alternatifnya, pertimbangkan untuk menggunakan Proksi RDS untuk kasus penggunaan ini. Proksi RDS memiliki biaya tambahan. Lihat [Harga Proksi RDS](https://aws.amazon.com/rds/proxy/pricing/).
+ Ukuran token autentikasi basis data IAM tergantung pada banyak hal termasuk jumlah tag IAM, kebijakan layanan IAM, panjang ARN, serta properti IAM dan basis data lainnya. Ukuran minimum token ini umumnya sekitar 1 KB tetapi bisa lebih besar. Karena token ini digunakan sebagai kata sandi dalam string koneksi ke database menggunakan otentikasi IAM, Anda harus memastikan bahwa driver database Anda (misalnya, ODBC) alat and/or apa pun tidak membatasi atau memotong token ini karena ukurannya. Token yang terpotong akan menyebabkan kegagalan validasi autentikasi oleh basis data dan IAM.
+ Jika Anda menggunakan kredensial sementara saat membuat token autentikasi basis data IAM, kredensial sementara masih harus valid saat menggunakan token autentikasi basis data IAM untuk membuat permintaan koneksi.

## Kunci konteks kondisi AWS global yang tidak didukung
<a name="UsingWithRDS.IAMDBAuth.GlobalContextKeys"></a>

 Autentikasi database IAM tidak mendukung subset kunci konteks kondisi AWS global berikut. 
+ `aws:Referer`
+ `aws:SourceIp`
+ `aws:SourceVpc`
+ `aws:SourceVpce`
+ `aws:UserAgent`
+ `aws:VpcSourceIp`

Untuk informasi selengkapnya, lihat [Kunci konteks kondisi global AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) dalam *Panduan Pengguna IAM*. 

# Mengaktifkan dan menonaktifkan autentikasi basis data IAM
<a name="UsingWithRDS.IAMDBAuth.Enabling"></a>

Secara default, autentikasi basis data IAM dinonaktifkan di klaster DB. Anda dapat mengaktifkan atau menonaktifkan autentikasi database IAM menggunakan Konsol Manajemen AWS, AWS CLI, atau API.

Anda dapat mengaktifkan autentikasi basis data IAM saat Anda melakukan salah satu tindakan berikut:
+ Untuk membuat klaster DB baru dengan autentikasi IAM diaktifkan, lihat [Membuat klaster DB Amazon Aurora](Aurora.CreateInstance.md).
+ Untuk memodifikasi klaster DB untuk mengaktifkan autentikasi basis data IAM, lihat [Memodifikasi klaster DB Amazon Aurora](Aurora.Modifying.md).
+ Untuk memulihkan klaster DB dari snapshot dengan autentikasi basis data IAM diaktifkan, lihat [Memulihkan dari snapshot klaster DB](aurora-restore-snapshot.md).
+ Untuk memulihkan klaster DB ke titik waktu dengan autentikasi basis data IAM diaktifkan, lihat [Memulihkan klaster DB ke waktu tertentu](aurora-pitr.md).

## Konsol
<a name="UsingWithRDS.IAMDBAuth.Enabling.Console"></a>

Setiap alur kerja pembuatan atau modifikasi memiliki bagian **Autentikasi basis data**, tempat Anda dapat mengaktifkan atau menonaktifkan autentikasi basis data IAM. Di bagian tersebut, pilih **Kata sandi dan autentikasi basis data IAM** untuk mengaktifkan autentikasi basis data IAM.

**Untuk mengaktifkan atau menonaktifkan autentikasi basis data IAM untuk klaster DB yang ada**

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

1. Di panel navigasi, pilih **Basis data**.

1. Pilih klaster DB yang ingin Anda ubah.
**catatan**  
Anda hanya dapat mengaktifkan autentikasi IAM jika semua instans DB dalam klaster DB kompatibel dengan IAM. Periksa persyaratan kompatibilitas dalam [Ketersediaan wilayah dan versi](UsingWithRDS.IAMDBAuth.md#UsingWithRDS.IAMDBAuth.Availability). 

1. Pilih **Ubah**.

1. Di bagian **otentikasi database**, pilih untuk mengaktifkan **autentikasi database IAM**. Pilih **Autentikasi kata sandi** atau **Kata sandi dan autentikasi Kerberos** untuk menonaktifkan autentikasi IAM.

1. Anda juga dapat memilih untuk mengaktifkan penerbitan log otentikasi IAM DB ke CloudWatch Log. Di bawah **Ekspor log**, pilih opsi **iam-db-auth-error log**. Menerbitkan log Anda ke CloudWatch Log menghabiskan penyimpanan dan Anda dikenakan biaya untuk penyimpanan itu. Pastikan untuk menghapus CloudWatch Log apa pun yang tidak lagi Anda butuhkan.

1. Pilih **Lanjutkan**.

1. Untuk segera menerapkan perubahan, pilih **Segera** di bagian **Penjadwalan modifikasi**.

1. Pilih **Ubah klaster**.

## AWS CLI
<a name="UsingWithRDS.IAMDBAuth.Enabling.CLI"></a>

Untuk membuat cluster DB baru dengan otentikasi IAM dengan menggunakan AWS CLI, gunakan perintah. [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster.html) Tentukan opsi `--enable-iam-database-authentication`.

Untuk memperbarui klaster DB yang ada agar memiliki atau tidak memiliki autentikasi IAM, gunakan perintah AWS CLI [https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html). Tentukan opsi `--enable-iam-database-authentication` atau `--no-enable-iam-database-authentication`, sesuai kebutuhan.

**catatan**  
Anda hanya dapat mengaktifkan autentikasi IAM jika semua instans DB dalam klaster DB kompatibel dengan IAM. Periksa persyaratan kompatibilitas dalam [Ketersediaan wilayah dan versi](UsingWithRDS.IAMDBAuth.md#UsingWithRDS.IAMDBAuth.Availability). 

Secara default, Aurora melakukan modifikasi selama periode pemeliharaan berikutnya. Jika Anda ingin menggantinya dan mengaktifkan autentikasi DB IAM sesegera mungkin, gunakan parameter `--apply-immediately`. 

Jika Anda memulihkan cluster DB, gunakan salah satu AWS CLI perintah berikut:
+ `[restore-db-cluster-to-point-in-time](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-cluster-to-point-in-time.html)`
+ `[restore-db-cluster-from-db-snapshot](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html)`

Pengaturan autentikasi basis data IAM akan ditetapkan secara default ke pengaturan untuk snapshot sumber. Untuk mengubah pengaturan ini, atur opsi `--enable-iam-database-authentication` atau `--no-enable-iam-database-authentication` sebagaimana diperlukan.

## API RDS
<a name="UsingWithRDS.IAMDBAuth.Enabling.API"></a>

Untuk membuat instans DB baru dengan autentikasi IAM dengan menggunakan API, gunakan operasi API [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html). Atur parameter `EnableIAMDatabaseAuthentication` ke `true`.

Untuk memperbarui klaster DB yang ada agar memiliki autentikasi IAM, gunakan operasi API [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBCluster.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBCluster.html). Atur parameter `EnableIAMDatabaseAuthentication` ke `true` untuk mengaktifkan autentikasi IAM, atau `false` untuk menonaktifkannya.

**catatan**  
Anda hanya dapat mengaktifkan autentikasi IAM jika semua instans DB dalam klaster DB kompatibel dengan IAM. Periksa persyaratan kompatibilitas dalam [Ketersediaan wilayah dan versi](UsingWithRDS.IAMDBAuth.md#UsingWithRDS.IAMDBAuth.Availability). 

Jika Anda memulihkan klaster DB, gunakan salah satu operasi API berikut:
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBClusterFromSnapshot.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBClusterFromSnapshot.html)
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBClusterToPointInTime.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBClusterToPointInTime.html)

Pengaturan autentikasi basis data IAM akan ditetapkan secara default ke pengaturan untuk snapshot sumber. Untuk mengubah pengaturan ini, atur parameter `EnableIAMDatabaseAuthentication` ke `true` untuk mengaktifkan autentikasi IAM, atau `false` untuk menonaktifkannya.

# Membuat dan menggunakan kebijakan IAM untuk akses basis data IAM
<a name="UsingWithRDS.IAMDBAuth.IAMPolicy"></a>

Untuk memungkinkan pengguna atau peran terhubung ke klaster DB, Anda harus membuat kebijakan IAM. Setelah itu, lampirkan kebijakan tersebut ke set izin atau peran.

**catatan**  
Untuk mempelajari selengkapnya tentang kebijakan IAM, lihat [Manajemen identitas dan akses untuk Amazon Aurora](UsingWithRDS.IAM.md).

Contoh kebijakan berikut memungkinkan pengguna terhubung ke klaster DB menggunakan autentikasi basis data IAM.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "rds-db:connect"
            ],
            "Resource": [
                "arn:aws:rds-db:us-east-2:111122223333:dbuser:cluster-ABCDEFGHIJKL01234/db_user"
            ]
        }
    ]
}
```

------

**penting**  
Pengguna dengan izin administrator dapat mengakses klaster DB tanpa izin eksplisit dalam kebijakan IAM. Jika Anda ingin membatasi akses administrator ke klaster DB, Anda dapat membuat peran IAM yang dengan izin istimewa yang sesuai dan menetapkannya ke administrator.

**catatan**  
Jangan samakan awalan `rds-db:` dengan awalan operasi API RDS lain yang diawali dengan `rds:`. Anda menggunakan awalan `rds-db:` dan tindakan `rds-db:connect` hanya untuk autentikasi basis data IAM. Hal ini tidak berlaku dalam konteks lainnya. 

Contoh kebijakan ini mencakup satu pernyataan dengan elemen berikut:
+ `Effect` – Tentukan `Allow` untuk memberikan akses ke klaster DB. Jika Anda tidak secara eksplisit mengizinkan akses, maka akses ditolak secara default.
+ `Action` – Tentukan `rds-db:connect` untuk mengizinkan koneksi ke klaster DB.
+ `Resource` – Tentukan Amazon Resource Name (ARN) yang menjelaskan satu akun basis data dalam satu klaster DB. Format ARN adalah sebagai berikut.

  ```
  arn:aws:rds-db:region:account-id:dbuser:DbClusterResourceId/db-user-name
  ```

  Dalam format ini, ganti hal berikut:
  + `region`adalah AWS Region untuk cluster DB. Dalam contoh kebijakan, AWS Wilayah adalah`us-east-2`.
  + `account-id`adalah nomor AWS akun untuk cluster DB. Dalam contoh kebijakan, nomor akun adalah `1234567890`. Pengguna harus berada di akun yang sama dengan akun untuk klaster DB.

    Untuk melakukan akses lintas akun, buat peran IAM dengan kebijakan yang ditunjukkan di atas di akun untuk klaster DB dan izinkan akun Anda yang lain untuk mengambil peran tersebut. 
  + `DbClusterResourceId` adalah pengidentifikasi untuk klaster DB. Pengenal ini unik untuk AWS Wilayah dan tidak pernah berubah. Dalam contoh kebijakan, pengidentifikasi adalah `cluster-ABCDEFGHIJKL01234`.

    Untuk menemukan ID sumber daya cluster DB di Amazon Aurora Amazon, pilih cluster instans untuk melihat detailnya. Konsol Manajemen AWS Kemudian, pilih tab **Konfigurasi**. **ID Sumber Daya** ditampilkan di bagian **Konfigurasi**.

    Atau, Anda dapat menggunakan AWS CLI perintah untuk mencantumkan pengenal dan sumber daya IDs untuk semua cluster DB Anda di AWS Wilayah saat ini, seperti yang ditunjukkan berikut.

    ```
    aws rds describe-db-clusters --query "DBClusters[*].[DBClusterIdentifier,DbClusterResourceId]"
    ```
**catatan**  
Jika Anda terhubung ke basis data melalui Proksi RDS, tentukan ID sumber daya proksi, seperti `prx-ABCDEFGHIJKL01234`. Untuk informasi tentang menggunakan autentikasi basis data IAM dengan Proksi RDS, lihat [Menghubungkan ke database menggunakan otentikasi IAM](rds-proxy-connecting.md#rds-proxy-connecting-iam).
  + `db-user-name` adalah nama akun basis data untuk dikaitkan dengan autentikasi IAM. Dalam contoh kebijakan, akun basis data adalah `db_user`.

Anda dapat membangun yang lain ARNs untuk mendukung berbagai pola akses. Kebijakan berikut memungkinkan akses ke dua akun basis data yang berbeda dalam klaster DB.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Action": [
             "rds-db:connect"
         ],
         "Resource": [
             "arn:aws:rds-db:us-east-2:123456789012:dbuser:cluster-ABCDEFGHIJKL01234/jane_doe",
             "arn:aws:rds-db:us-east-2:123456789012:dbuser:cluster-ABCDEFGHIJKL01234/mary_roe"
         ]
      }
   ]
}
```

------

Kebijakan berikut menggunakan karakter “\$1” untuk mencocokkan semua cluster DB dan akun database untuk AWS akun dan AWS Wilayah tertentu. 

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "rds-db:connect"
            ],
            "Resource": [
                "arn:aws:rds-db:us-east-2:111122223333:dbuser:*/*"
            ]
        }
    ]
}
```

------

Kebijakan berikut cocok dengan semua cluster DB untuk AWS akun dan AWS Wilayah tertentu. Namun, kebijakan ini hanya memberikan akses ke klaster DB yang memiliki akun basis data `jane_doe`.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Action": [
             "rds-db:connect"
         ],
         "Resource": [
             "arn:aws:rds-db:us-east-2:123456789012:dbuser:*/jane_doe"
         ]
      }
   ]
}
```

------

Pengguna atau peran hanya memiliki akses ke basis data yang aksesnya dimiliki oleh pengguna basis data tersebut. Misalnya, anggaplah klaster DB Anda memiliki basis data bernama *dev*, dan basis data lain bernama *uji*. Jika pengguna basis data `jane_doe` hanya memiliki akses ke *dev*, setiap pengguna atau peran yang mengakses klaster DB tersebut dengan pengguna `jane_doe` juga hanya akan memiliki akses ke *dev*. Pembatasan akses ini juga berlaku untuk objek basis data lain, seperti tabel, tampilan, dan sebagainya.

Administrator harus membuat kebijakan IAM yang memberikan izin pada entitas untuk melakukan operasi API tertentu pada sumber daya yang diperlukan. Administrator kemudian harus melampirkan kebijakan tersebut ke set izin atau peran yang memerlukan izin tersebut. Untuk contoh kebijakan, lihat [Contoh kebijakan berbasis identitas untuk Amazon Aurora](security_iam_id-based-policy-examples.md).

## Melampirkan kebijakan IAM ke set izin atau peran
<a name="UsingWithRDS.IAMDBAuth.IAMPolicy.Attaching"></a>

Setelah membuat kebijakan IAM untuk memungkinkan autentikasi basis data, Anda perlu melampirkan kebijakan tersebut ke set izin atau peran. Untuk tutorial tentang topik ini, lihat [Buat dan lampirkan kebijakan yang dikelola pelanggan pertama Anda](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_managed-policies.html) dalam *Panduan Pengguna IAM*.

Saat mengikuti tutorial ini, Anda dapat menggunakan salah satu contoh kebijakan yang ditunjukkan dalam bagian ini sebagai titik awal dan menyesuaikannya dengan kebutuhan Anda. Di akhir tutorial, Anda akan memiliki set izin dengan kebijakan terlampir yang dapat menggunakan tindakan `rds-db:connect`.

**catatan**  
Anda dapat memetakan beberapa set izin atau peran ke akun pengguna basis data yang sama. Misalnya, anggaplah kebijakan IAM Anda telah menentukan ARN sumber daya berikut.  

```
arn:aws:rds-db:us-east-2:123456789012:dbuser:cluster-12ABC34DEFG5HIJ6KLMNOP78QR/jane_doe
```
Jika Anda melampirkan kebijakan ke *Jane*, *Bob*, dan *Diego*, maka masing-masing pengguna tersebut dapat terhubung ke instans DB yang telah ditentukan menggunakan akun basis data `jane_doe`.

# Membuat akun basis data menggunakan autentikasi IAM
<a name="UsingWithRDS.IAMDBAuth.DBAccounts"></a>

Dengan autentikasi basis data IAM, Anda tidak perlu menetapkan kata sandi basis data ke akun pengguna yang Anda buat. Jika Anda menghapus pengguna yang dipetakan ke akun basis data, Anda juga harus menghapus akun basis data dengan pernyataan `DROP USER`.

**catatan**  
Nama pengguna yang digunakan untuk autentikasi IAM harus sesuai dengan huruf besar/kecil nama pengguna dalam basis data.

**Topics**
+ [Menggunakan autentikasi IAM dengan Aurora MySQL](#UsingWithRDS.IAMDBAuth.DBAccounts.MySQL)
+ [Menggunakan otentikasi IAM dengan Aurora PostgreSQL](#UsingWithRDS.IAMDBAuth.DBAccounts.PostgreSQL)

## Menggunakan autentikasi IAM dengan Aurora MySQL
<a name="UsingWithRDS.IAMDBAuth.DBAccounts.MySQL"></a>

Dengan dan Aurora MySQL, otentikasi `AWSAuthenticationPlugin` ditangani AWS oleh —sebuah plugin yang disediakan yang bekerja mulus dengan IAM untuk mengautentikasi pengguna Anda. Hubungkan ke klaster DB sebagai pengguna master atau pengguna lain yang dapat membuat pengguna dan memberikan hak akses. Setelah terhubung, berikan pernyataan `CREATE USER`, seperti yang ditunjukkan pada contoh berikut.

```
CREATE USER 'jane_doe' IDENTIFIED WITH AWSAuthenticationPlugin AS 'RDS'; 
```

Klausa `IDENTIFIED WITH` memungkinkan Aurora MySQL menggunakan `AWSAuthenticationPlugin` untuk mengautentikasi akun basis data (`jane_doe`). Klausa `AS 'RDS'` mengacu pada metode autentikasi. Pastikan nama pengguna basis data yang ditentukan sama dengan sumber daya dalam kebijakan IAM untuk akses basis data IAM. Untuk informasi selengkapnya, lihat [Membuat dan menggunakan kebijakan IAM untuk akses basis data IAM](UsingWithRDS.IAMDBAuth.IAMPolicy.md). 

**catatan**  
Jika Anda melihat pesan berikut, itu berarti plugin AWS-provided tidak tersedia untuk cluster DB saat ini.  
`ERROR 1524 (HY000): Plugin 'AWSAuthenticationPlugin' is not loaded`  
Untuk mengatasi kesalahan ini, verifikasikan bahwa Anda menggunakan konfigurasi yang didukung dan bahwa Anda telah mengaktifkan autentikasi basis data IAM di klaster DB Anda. Untuk informasi lebih lanjut, lihat [Ketersediaan wilayah dan versi](UsingWithRDS.IAMDBAuth.md#UsingWithRDS.IAMDBAuth.Availability) dan [Mengaktifkan dan menonaktifkan autentikasi basis data IAM](UsingWithRDS.IAMDBAuth.Enabling.md).

Setelah membuat akun menggunakan `AWSAuthenticationPlugin`, Anda mengelolanya dengan cara yang sama seperti akun basis data lainnya. Misalnya, Anda dapat memodifikasi hak akses akun dengan pernyataan `GRANT` dan `REVOKE`, atau memodifikasi berbagai atribut akun dengan pernyataan `ALTER USER`. 

Lalu lintas jaringan database dienkripsi menggunakan SSL/TLS saat menggunakan IAM. Untuk mengizinkan koneksi SSL, ubah akun pengguna dengan perintah berikut.

```
ALTER USER 'jane_doe'@'%' REQUIRE SSL;     
```

 

## Menggunakan otentikasi IAM dengan Aurora PostgreSQL
<a name="UsingWithRDS.IAMDBAuth.DBAccounts.PostgreSQL"></a>

Untuk menggunakan autentikasi IAM dengan Aurora PostgreSQL, hubungkan ke klaster DB sebagai pengguna master atau pengguna lain yang dapat membuat pengguna dan memberikan hak istimewa. Setelah terhubung, buat pengguna basis data lalu berikan peran `rds_iam` kepada pengguna tersebut seperti yang ditunjukkan pada contoh berikut.

```
CREATE USER db_userx; 
GRANT rds_iam TO db_userx;
```

Pastikan nama pengguna basis data yang ditentukan sama dengan sumber daya dalam kebijakan IAM untuk akses basis data IAM. Untuk informasi selengkapnya, lihat [Membuat dan menggunakan kebijakan IAM untuk akses basis data IAM](UsingWithRDS.IAMDBAuth.IAMPolicy.md). Anda harus memberikan `rds_iam` peran untuk menggunakan otentikasi IAM. Anda juga dapat menggunakan keanggotaan bersarang atau hibah tidak langsung dari peran tersebut. 

Perhatikan bahwa pengguna basis data PostgreSQL dapat menggunakan autentikasi IAM atau Kerberos tetapi tidak keduanya, sehingga pengguna ini tidak dapat memiliki juga peran `rds_ad`. Hal ini juga berlaku untuk keanggotaan bersarang. Lihat informasi yang lebih lengkap di [Langkah 7: Buat pengguna PostgreSQL untuk pengguna utama Kerberos Anda](postgresql-kerberos-setting-up.md#postgresql-kerberos-setting-up.create-logins).

# Menghubungkan ke klaster DB menggunakan autentikasi IAM
<a name="UsingWithRDS.IAMDBAuth.Connecting"></a>

Dengan autentikasi basis data IAM, Anda menggunakan token autentikasi ketika Anda terhubung ke klaster DB Anda. *Token autentikasi* adalah string karakter yang Anda gunakan sebagai pengganti kata sandi. Setelah Anda membuat token autentikasi, token tersebut berlaku selama 15 menit sebelum kedaluwarsa. Jika Anda mencoba terhubung menggunakan token yang kedaluwarsa, permintaan koneksi ditolak.

Setiap token autentikasi harus disertai dengan tanda tangan yang valid, menggunakan AWS Signature versi 4. (Untuk informasi selengkapnya, lihat [Proses penandatanganan Versi Tanda Tangan 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) di * Referensi Umum AWS.* ) SDK AWS CLI dan AWS SDK, seperti AWS SDK untuk Java or AWS SDK untuk Python (Boto3), dapat secara otomatis menandatangani setiap token yang Anda buat.

Anda dapat menggunakan token otentikasi saat Anda terhubung ke Aurora dari layanan AWS lain, seperti. AWS Lambda Dengan menggunakan token, Anda tidak perlu menempatkan kata sandi dalam kode Anda. Atau, Anda dapat menggunakan AWS SDK untuk membuat dan menandatangani token otentikasi secara terprogram secara terprogram.

Setelah Anda memiliki token autentikasi IAM yang telah ditandatangani, Anda dapat terhubung ke klaster DB Aurora. Berikut ini, Anda dapat mengetahui cara melakukan ini menggunakan alat baris perintah atau AWS SDK, seperti AWS SDK untuk Java atau AWS SDK untuk Python (Boto3).

Untuk informasi selengkapnya, lihat postingan blog berikut ini:
+ [Gunakan autentikasi IAM untuk terhubung dengan SQL Workbench/J ke Aurora MySQL atau Amazon RDS for MySQL](https://aws.amazon.com/blogs/database/use-iam-authentication-to-connect-with-sql-workbenchj-to-amazon-aurora-mysql-or-amazon-rds-for-mysql/)
+ [Menggunakan autentikasi IAM untuk terhubung dengan pgAdmin Amazon Aurora PostgreSQL atau Amazon RDS for PostgreSQL](https://aws.amazon.com/blogs/database/using-iam-authentication-to-connect-with-pgadmin-amazon-aurora-postgresql-or-amazon-rds-for-postgresql/)

**Prasyarat**  
Berikut adalah prasyarat untuk menghubungkan ke klaster DB menggunakan autentikasi IAM:
+ [Mengaktifkan dan menonaktifkan autentikasi basis data IAM](UsingWithRDS.IAMDBAuth.Enabling.md)
+ [Membuat dan menggunakan kebijakan IAM untuk akses basis data IAM](UsingWithRDS.IAMDBAuth.IAMPolicy.md)
+ [Membuat akun basis data menggunakan autentikasi IAM](UsingWithRDS.IAMDBAuth.DBAccounts.md)

**Topics**
+ [Menghubungkan ke cluster DB Anda menggunakan autentikasi IAM dengan driver AWS](IAMDBAuth.Connecting.Drivers.md)
+ [Menghubungkan ke cluster DB Anda menggunakan otentikasi IAM dari baris perintah: AWS CLI dan klien mysql](UsingWithRDS.IAMDBAuth.Connecting.AWSCLI.md)
+ [Menghubungkan ke cluster DB Anda menggunakan otentikasi IAM dari baris perintah: AWS CLI dan klien psql](UsingWithRDS.IAMDBAuth.Connecting.AWSCLI.PostgreSQL.md)
+ [Menghubungkan ke cluster DB Anda menggunakan otentikasi IAM dan AWS SDK untuk .NET](UsingWithRDS.IAMDBAuth.Connecting.NET.md)
+ [Menghubungkan ke cluster DB Anda menggunakan otentikasi IAM dan AWS SDK untuk Go](UsingWithRDS.IAMDBAuth.Connecting.Go.md)
+ [Menghubungkan ke cluster DB Anda menggunakan otentikasi IAM dan AWS SDK untuk Java](UsingWithRDS.IAMDBAuth.Connecting.Java.md)
+ [Menghubungkan ke cluster DB Anda menggunakan otentikasi IAM dan AWS SDK untuk Python (Boto3)](UsingWithRDS.IAMDBAuth.Connecting.Python.md)

# Menghubungkan ke cluster DB Anda menggunakan autentikasi IAM dengan driver AWS
<a name="IAMDBAuth.Connecting.Drivers"></a>

 AWS Rangkaian driver telah dirancang untuk memberikan dukungan untuk waktu peralihan dan failover yang lebih cepat, dan otentikasi dengan, AWS Identity and Access Management (IAM) AWS Secrets Manager, dan Federated Identity. AWS Driver mengandalkan pemantauan status dan menyadari topologi cluster untuk menentukan penulis baru. Pendekatan ini mengurangi waktu peralihan dan failover menjadi satu digit detik, dibandingkan dengan puluhan detik untuk driver open-source.

[Untuk informasi lebih lanjut tentang AWS driver, lihat driver bahasa yang sesuai untuk klaster Aurora [MySQL atau Aurora PostgreSQL DB](Aurora.Connecting.md#Aurora.Connecting.JDBCDriverMySQL) Anda.](Aurora.Connecting.md#Aurora.Connecting.AuroraPostgreSQL.Utilities)

# Menghubungkan ke cluster DB Anda menggunakan otentikasi IAM dari baris perintah: AWS CLI dan klien mysql
<a name="UsingWithRDS.IAMDBAuth.Connecting.AWSCLI"></a>

Anda dapat terhubung dari baris perintah ke cluster Aurora DB dengan AWS CLI alat baris perintah `mysql` dan seperti yang dijelaskan berikut.

**Prasyarat**  
Berikut adalah prasyarat untuk menghubungkan ke klaster DB menggunakan autentikasi IAM:
+ [Mengaktifkan dan menonaktifkan autentikasi basis data IAM](UsingWithRDS.IAMDBAuth.Enabling.md)
+ [Membuat dan menggunakan kebijakan IAM untuk akses basis data IAM](UsingWithRDS.IAMDBAuth.IAMPolicy.md)
+ [Membuat akun basis data menggunakan autentikasi IAM](UsingWithRDS.IAMDBAuth.DBAccounts.md)

**catatan**  
Untuk informasi tentang menghubungkan ke database Anda menggunakan SQL Workbench/J dengan autentikasi IAM, lihat posting blog [Menggunakan otentikasi IAM untuk terhubung dengan SQL ke Workbench/J Aurora MySQL atau Amazon RDS for MySQL](https://aws.amazon.com/blogs/database/use-iam-authentication-to-connect-with-sql-workbenchj-to-amazon-aurora-mysql-or-amazon-rds-for-mysql/).

**Topics**
+ [Membuat token autentikasi IAM](#UsingWithRDS.IAMDBAuth.Connecting.AWSCLI.AuthToken)
+ [Menghubungkan ke klaster DB](#UsingWithRDS.IAMDBAuth.Connecting.AWSCLI.Connect)

## Membuat token autentikasi IAM
<a name="UsingWithRDS.IAMDBAuth.Connecting.AWSCLI.AuthToken"></a>

Contoh berikut menunjukkan cara mendapatkan token autentikasi yang ditandatangani menggunakan AWS CLI.

```
aws rds generate-db-auth-token \
   --hostname rdsmysql.123456789012.us-west-2.rds.amazonaws.com \
   --port 3306 \
   --region us-west-2 \
   --username jane_doe
```

Dalam contoh, parameternya adalah sebagai berikut:
+ `--hostname` – Nama host klaster DB yang ingin Anda akses
+ `--port` – Nomor port yang digunakan untuk menghubungkan ke klaster DB Anda
+ `--region`— AWS Wilayah tempat cluster DB berjalan
+ `--username` – Akun basis data yang ingin Anda akses

Beberapa karakter pertama dari token terlihat seperti berikut.

```
rdsmysql.123456789012.us-west-2.rds.amazonaws.com:3306/?Action=connect&DBUser=jane_doe&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=900...
```

**catatan**  
Anda tidak dapat menggunakan data DNS Route 53 kustom sebagai pengganti titik akhir klaster DB untuk menghasilkan token autentikasi.

## Menghubungkan ke klaster DB
<a name="UsingWithRDS.IAMDBAuth.Connecting.AWSCLI.Connect"></a>

Format umum untuk terhubung ditampilkan sebagai berikut.

```
mysql --host=hostName --port=portNumber --ssl-ca=full_path_to_ssl_certificate --enable-cleartext-plugin --user=userName --password=authToken
```

Parameternya adalah sebagai berikut:
+ `--host` – Nama host klaster DB yang ingin Anda akses
+ `--port` – Nomor port yang digunakan untuk menghubungkan ke klaster DB Anda
+ `--ssl-ca` – Jalur lengkap ke file sertifikat SSL yang berisi kunci publik

  Untuk informasi selengkapnya, lihat [Koneksi TLS ke cluster DB MySQL Aurora](AuroraMySQL.Security.md#AuroraMySQL.Security.SSL).

  Untuk mengunduh sertifikat SSL, lihat [Menggunakan SSL/TLS untuk mengenkripsi koneksi ke ](UsingWithRDS.SSL.md).
+ `--enable-cleartext-plugin` – Nilai yang menentukan bahwa `AWSAuthenticationPlugin` harus digunakan untuk koneksi ini

  Jika Anda menggunakan klien MariaDB, opsi `--enable-cleartext-plugin` tidak diperlukan.
+ `--user` – Akun basis data yang ingin Anda akses
+ `--password` – Token autentikasi IAM yang ditandatangani

Token autentikasi terdiri atas beberapa ratus karakter. Hal ini dapat sulit ditangani di baris perintah. Salah satu cara untuk mengatasinya adalah dengan menyimpan token ke variabel lingkungan, lalu menggunakan variabel tersebut saat Anda terhubung. Contoh berikut menunjukkan satu cara untuk melakukan solusi ini. Dalam contoh, */sample\$1dir/* adalah path lengkap ke file sertifikat SSL yang berisi kunci publik.

```
RDSHOST="mysqlcluster.cluster-123456789012.us-east-1.rds.amazonaws.com"
TOKEN="$(aws rds generate-db-auth-token --hostname $RDSHOST --port 3306 --region us-west-2 --username jane_doe )"

mysql --host=$RDSHOST --port=3306 --ssl-ca=/sample_dir/global-bundle.pem --enable-cleartext-plugin --user=jane_doe --password=$TOKEN
```

Saat Anda terhubung menggunakan `AWSAuthenticationPlugin`, koneksi diamankan menggunakan SSL. Untuk memverifikasi hal ini, ketik berikut ini di prompt perintah `mysql>`.

```
show status like 'Ssl%';
```

Baris berikut dalam output menampilkan lebih banyak detail.

```
+---------------+-------------+
| Variable_name | Value                                                                                                                                                                                                                                |
+---------------+-------------+
| ...           | ...
| Ssl_cipher    | AES256-SHA                                                                                                                                                                                                                           |
| ...           | ...
| Ssl_version   | TLSv1.1                                                                                                                                                                                                                              |
| ...           | ...
+-----------------------------+
```

Jika Anda ingin terhubung ke klaster DB melalui proksi, lihat [Menghubungkan ke database menggunakan otentikasi IAM](rds-proxy-connecting.md#rds-proxy-connecting-iam).

# Menghubungkan ke cluster DB Anda menggunakan otentikasi IAM dari baris perintah: AWS CLI dan klien psql
<a name="UsingWithRDS.IAMDBAuth.Connecting.AWSCLI.PostgreSQL"></a>

Anda dapat terhubung dari baris perintah ke klaster DB Aurora PostgreSQL dengan AWS CLI dan alat baris perintah psql seperti yang dijelaskan berikut.

**Prasyarat**  
Berikut adalah prasyarat untuk menghubungkan ke klaster DB menggunakan autentikasi IAM:
+ [Mengaktifkan dan menonaktifkan autentikasi basis data IAM](UsingWithRDS.IAMDBAuth.Enabling.md)
+ [Membuat dan menggunakan kebijakan IAM untuk akses basis data IAM](UsingWithRDS.IAMDBAuth.IAMPolicy.md)
+ [Membuat akun basis data menggunakan autentikasi IAM](UsingWithRDS.IAMDBAuth.DBAccounts.md)

**catatan**  
Untuk informasi tentang menghubungkan ke basis data Anda menggunakan pgAdmin dengan autentikasi IAM, lihat postingan blog [Menggunakan autentikasi IAM untuk terhubung dengan pgAdmin Amazon Aurora PostgreSQL atau Amazon RDS for PostgreSQL](https://aws.amazon.com/blogs/database/using-iam-authentication-to-connect-with-pgadmin-amazon-aurora-postgresql-or-amazon-rds-for-postgresql/).

**Topics**
+ [Membuat token autentikasi IAM](#UsingWithRDS.IAMDBAuth.Connecting.AWSCLI.AuthToken.PostgreSQL)
+ [Menghubungkan ke klaster Aurora PostgreSQL](#UsingWithRDS.IAMDBAuth.Connecting.AWSCLI.Connect.PostgreSQL)

## Membuat token autentikasi IAM
<a name="UsingWithRDS.IAMDBAuth.Connecting.AWSCLI.AuthToken.PostgreSQL"></a>

Token autentikasi terdiri dari ratusan karakter sehingga kemungkinan menjadi sulit ditangani di baris perintah. Salah satu cara untuk mengatasi ini adalah dengan menyimpan token ke variabel lingkungan, lalu menggunakan variabel tersebut saat Anda terhubung. Contoh berikut menunjukkan bagaimana menggunakan AWS CLI untuk mendapatkan token otentikasi ditandatangani menggunakan `generate-db-auth-token` perintah, dan menyimpannya dalam variabel `PGPASSWORD` lingkungan.

```
export RDSHOST="mypostgres-cluster.cluster-123456789012.us-west-2.rds.amazonaws.com"
export PGPASSWORD="$(aws rds generate-db-auth-token --hostname $RDSHOST --port 5432 --region us-west-2 --username jane_doe )"
```

Dalam contoh, parameter untuk perintah `generate-db-auth-token` adalah sebagai berikut:
+ `--hostname` – Nama host klaster (titik akhir klaster) DB yang ingin Anda akses
+ `--port` – Nomor port yang digunakan untuk menghubungkan ke klaster DB Anda
+ `--region`— AWS Wilayah tempat cluster DB berjalan
+ `--username` – Akun basis data yang ingin Anda akses

Beberapa karakter pertama dari token yang dihasilkan terlihat seperti berikut.

```
mypostgres-cluster.cluster-123456789012.us-west-2.rds.amazonaws.com:5432/?Action=connect&DBUser=jane_doe&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=900...
```

**catatan**  
Anda tidak dapat menggunakan data DNS Route 53 kustom sebagai pengganti titik akhir klaster DB untuk menghasilkan token autentikasi.

## Menghubungkan ke klaster Aurora PostgreSQL
<a name="UsingWithRDS.IAMDBAuth.Connecting.AWSCLI.Connect.PostgreSQL"></a>

Format umum untuk menggunakan psql untuk terhubung ditampilkan sebagai berikut.

```
psql "host=hostName port=portNumber sslmode=verify-full sslrootcert=full_path_to_ssl_certificate dbname=DBName user=userName password=authToken"
```

Parameternya adalah sebagai berikut:
+ `host` – Nama host klaster (titik akhir klaster) DB yang ingin Anda akses
+ `port` – Nomor port yang digunakan untuk menghubungkan ke klaster DB Anda
+ `sslmode` – Mode SSL yang akan digunakan

  Saat Anda menggunakan `sslmode=verify-full`, koneksi SSL memverifikasi titik akhir klaster DB di sertifikat SSL.
+ `sslrootcert` – Jalur lengkap ke file sertifikat SSL yang berisi kunci publik

  Untuk informasi selengkapnya, lihat [Mengamankan data Aurora PostgreSQL dengan SSL/TLS](AuroraPostgreSQL.Security.md#AuroraPostgreSQL.Security.SSL).

  Untuk mengunduh sertifikat SSL, lihat [Menggunakan SSL/TLS untuk mengenkripsi koneksi ke ](UsingWithRDS.SSL.md).
+ `dbname` – Basis data yang ingin Anda akses
+ `user` – Akun basis data yang ingin Anda akses
+ `password` – Token autentikasi IAM yang ditandatangani

**catatan**  
Anda tidak dapat menggunakan data DNS Route 53 kustom sebagai pengganti titik akhir klaster DB untuk menghasilkan token autentikasi.

Contoh berikut menunjukkan penggunaan psql untuk terhubung. Dalam contoh, psql menggunakan variabel lingkungan `RDSHOST` untuk host dan variabel lingkungan `PGPASSWORD` untuk token yang dihasilkan. Juga, */sample\$1dir/* adalah jalur lengkap ke file sertifikat SSL yang berisi kunci publik.

```
export RDSHOST="mypostgres-cluster.cluster-123456789012.us-west-2.rds.amazonaws.com"
export PGPASSWORD="$(aws rds generate-db-auth-token --hostname $RDSHOST --port 5432 --region us-west-2 --username jane_doe )"
                    
psql "host=$RDSHOST port=5432 sslmode=verify-full sslrootcert=/sample_dir/global-bundle.pem dbname=DBName user=jane_doe password=$PGPASSWORD"
```

Jika Anda ingin terhubung ke klaster DB melalui proksi, lihat [Menghubungkan ke database menggunakan otentikasi IAM](rds-proxy-connecting.md#rds-proxy-connecting-iam).

# Menghubungkan ke cluster DB Anda menggunakan otentikasi IAM dan AWS SDK untuk .NET
<a name="UsingWithRDS.IAMDBAuth.Connecting.NET"></a>

Anda dapat terhubung ke dengan seperti yang dijelaskan berikut. AWS SDK untuk .NET 

**Prasyarat**  
Berikut adalah prasyarat untuk menghubungkan ke klaster DB menggunakan autentikasi IAM:
+ [Mengaktifkan dan menonaktifkan autentikasi basis data IAM](UsingWithRDS.IAMDBAuth.Enabling.md)
+ [Membuat dan menggunakan kebijakan IAM untuk akses basis data IAM](UsingWithRDS.IAMDBAuth.IAMPolicy.md)
+ [Membuat akun basis data menggunakan autentikasi IAM](UsingWithRDS.IAMDBAuth.DBAccounts.md)

**Contoh**  
Contoh kode berikut ini menunjukkan cara membuat token autentikasi, lalu menggunakannya untuk menghubungkan ke klaster DB.

Untuk menjalankan contoh kode ini, Anda memerlukan [AWS SDK untuk .NET](https://aws.amazon.com/sdk-for-net/), ditemukan di AWS situs. Paket `AWSSDK.CORE` dan `AWSSDK.RDS` diperlukan. Untuk terhubung ke cluster DB, gunakan konektor database.NET untuk mesin DB, seperti untuk MariaDB atau MySQL, atau Npgsql MySqlConnector untuk PostgreSQL.

Kode ini terhubung ke klaster DB Aurora MySQL. Ubah nilai variabel berikut sesuai kebutuhan:
+ `server` – Titik akhir klaster DB yang ingin Anda akses
+ `user` – Akun basis data yang ingin Anda akses
+ `database` – Basis data yang ingin Anda akses
+ `port` – Nomor port yang digunakan untuk menghubungkan ke klaster DB Anda
+ `SslMode` – Mode SSL yang akan digunakan

  Saat Anda menggunakan `SslMode=Required`, koneksi SSL memverifikasi titik akhir klaster DB di sertifikat SSL.
+ `SslCa` – Jalur lengkap ke sertifikat SSL untuk Amazon Aurora

  Untuk mengunduh sertifikat, lihat [Menggunakan SSL/TLS untuk mengenkripsi koneksi ke ](UsingWithRDS.SSL.md).

**catatan**  
Anda tidak dapat menggunakan data DNS Route 53 kustom sebagai pengganti titik akhir klaster DB untuk menghasilkan token autentikasi.

```
using System;
using System.Data;
using MySql.Data;
using MySql.Data.MySqlClient;
using Amazon;

namespace ubuntu
{
  class Program
  {
    static void Main(string[] args)
    {
      var pwd = Amazon.RDS.Util.RDSAuthTokenGenerator.GenerateAuthToken(RegionEndpoint.USEast1, "mysqlcluster.cluster-123456789012.us-east-1.rds.amazonaws.com", 3306, "jane_doe");
      // for debug only Console.Write("{0}\n", pwd);  //this verifies the token is generated

      MySqlConnection conn = new MySqlConnection($"server=mysqlcluster.cluster-123456789012.us-east-1.rds.amazonaws.com;user=jane_doe;database=mydB;port=3306;password={pwd};SslMode=Required;SslCa=full_path_to_ssl_certificate");
      conn.Open();

      // Define a query
      MySqlCommand sampleCommand = new MySqlCommand("SHOW DATABASES;", conn);

      // Execute a query
      MySqlDataReader mysqlDataRdr = sampleCommand.ExecuteReader();

      // Read all rows and output the first column in each row
      while (mysqlDataRdr.Read())
        Console.WriteLine(mysqlDataRdr[0]);

      mysqlDataRdr.Close();
      // Close connection
      conn.Close();
    }
  }
}
```

Kode ini terhubung ke klaster DB Aurora PostgreSQL.

Ubah nilai variabel berikut sesuai kebutuhan:
+ `Server` – Titik akhir klaster DB yang ingin Anda akses
+ `User ID` – Akun basis data yang ingin Anda akses
+ `Database` – Basis data yang ingin Anda akses
+ `Port` – Nomor port yang digunakan untuk menghubungkan ke klaster DB Anda
+ `SSL Mode` – Mode SSL yang akan digunakan

  Saat Anda menggunakan `SSL Mode=Required`, koneksi SSL memverifikasi titik akhir klaster DB di sertifikat SSL.
+ `Root Certificate` – Jalur lengkap ke sertifikat SSL untuk Amazon Aurora

  Untuk mengunduh sertifikat, lihat [Menggunakan SSL/TLS untuk mengenkripsi koneksi ke ](UsingWithRDS.SSL.md).

**catatan**  
Anda tidak dapat menggunakan data DNS Route 53 kustom sebagai pengganti titik akhir klaster DB untuk menghasilkan token autentikasi.

```
using System;
using Npgsql;
using Amazon.RDS.Util;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            var pwd = RDSAuthTokenGenerator.GenerateAuthToken("postgresmycluster.cluster-123456789012.us-east-1.rds.amazonaws.com", 5432, "jane_doe");
// for debug only Console.Write("{0}\n", pwd);  //this verifies the token is generated

            NpgsqlConnection conn = new NpgsqlConnection($"Server=postgresmycluster.cluster-123456789012.us-east-1.rds.amazonaws.com;User Id=jane_doe;Password={pwd};Database=mydb;SSL Mode=Require;Root Certificate=full_path_to_ssl_certificate");
            conn.Open();

            // Define a query
                   NpgsqlCommand cmd = new NpgsqlCommand("select count(*) FROM pg_user", conn);

            // Execute a query
            NpgsqlDataReader dr = cmd.ExecuteReader();

            // Read all rows and output the first column in each row
            while (dr.Read())
                Console.Write("{0}\n", dr[0]);

            // Close connection
            conn.Close();
        }
    }
}
```

Jika Anda ingin terhubung ke klaster DB melalui proksi, lihat [Menghubungkan ke database menggunakan otentikasi IAM](rds-proxy-connecting.md#rds-proxy-connecting-iam).

# Menghubungkan ke cluster DB Anda menggunakan otentikasi IAM dan AWS SDK untuk Go
<a name="UsingWithRDS.IAMDBAuth.Connecting.Go"></a>

Anda dapat terhubung ke dengan seperti yang dijelaskan berikut. AWS SDK untuk Go 

**Prasyarat**  
Berikut adalah prasyarat untuk menghubungkan ke klaster DB menggunakan autentikasi IAM:
+ [Mengaktifkan dan menonaktifkan autentikasi basis data IAM](UsingWithRDS.IAMDBAuth.Enabling.md)
+ [Membuat dan menggunakan kebijakan IAM untuk akses basis data IAM](UsingWithRDS.IAMDBAuth.IAMPolicy.md)
+ [Membuat akun basis data menggunakan autentikasi IAM](UsingWithRDS.IAMDBAuth.DBAccounts.md)

**Contoh**  
Untuk menjalankan contoh kode ini, Anda memerlukan [AWS SDK untuk Go](https://aws.amazon.com/sdk-for-go/), ditemukan di AWS situs.

Ubah nilai variabel berikut sesuai kebutuhan:
+ `dbName` – Basis data yang ingin Anda akses
+ `dbUser` – Akun basis data yang ingin Anda akses
+ `dbHost` – Titik akhir klaster DB yang ingin Anda akses
**catatan**  
Anda tidak dapat menggunakan data DNS Route 53 kustom sebagai pengganti titik akhir klaster DB untuk menghasilkan token autentikasi.
+ `dbPort` – Nomor port yang digunakan untuk menghubungkan ke klaster DB Anda
+ `region`— AWS Wilayah tempat cluster DB berjalan

Selain itu, pastikan pustaka yang diimpor dalam kode sampel ada di sistem Anda.

**penting**  
Contoh dalam bagian ini menggunakan kode berikut untuk menyediakan kredensial yang mengakses basis data dari lingkungan lokal:  
`creds := credentials.NewEnvCredentials()`  
Jika Anda mengakses database dari AWS layanan, seperti Amazon EC2 atau Amazon ECS, Anda dapat mengganti kode dengan kode berikut:  
`sess := session.Must(session.NewSession())`  
`creds := sess.Config.Credentials`  
Jika Anda membuat perubahan ini, pastikan Anda menambahkan impor berikut:  
`"github.com/aws/aws-sdk-go/aws/session"`

**Topics**
+ [Menghubungkan menggunakan otentikasi IAM dan V2 AWS SDK untuk Go](#UsingWithRDS.IAMDBAuth.Connecting.GoV2)
+ [Menghubungkan menggunakan otentikasi IAM dan V1. AWS SDK untuk Go](#UsingWithRDS.IAMDBAuth.Connecting.GoV1)

## Menghubungkan menggunakan otentikasi IAM dan V2 AWS SDK untuk Go
<a name="UsingWithRDS.IAMDBAuth.Connecting.GoV2"></a>

Anda dapat terhubung ke cluster DB menggunakan autentikasi IAM dan V2. AWS SDK untuk Go 

Contoh kode berikut ini menunjukkan cara membuat token autentikasi, lalu menggunakannya untuk menghubungkan ke klaster DB. 

Kode ini terhubung ke klaster DB Aurora MySQL.

```
package main
                
import (
     "context"
     "database/sql"
     "fmt"

     "github.com/aws/aws-sdk-go-v2/config"
     "github.com/aws/aws-sdk-go-v2/feature/rds/auth"
     _ "github.com/go-sql-driver/mysql"
)

func main() {

     var dbName string = "DatabaseName"
     var dbUser string = "DatabaseUser"
     var dbHost string = "mysqlcluster.cluster-123456789012.us-east-1.rds.amazonaws.com"
     var dbPort int = 3306
     var dbEndpoint string = fmt.Sprintf("%s:%d", dbHost, dbPort)
     var region string = "us-east-1"

    cfg, err := config.LoadDefaultConfig(context.TODO())
    if err != nil {
    	panic("configuration error: " + err.Error())
    }

    authenticationToken, err := auth.BuildAuthToken(
    	context.TODO(), dbEndpoint, region, dbUser, cfg.Credentials)
    if err != nil {
	    panic("failed to create authentication token: " + err.Error())
    }

    dsn := fmt.Sprintf("%s:%s@tcp(%s)/%s?tls=true&allowCleartextPasswords=true",
        dbUser, authenticationToken, dbEndpoint, dbName,
    )

    db, err := sql.Open("mysql", dsn)
    if err != nil {
        panic(err)
    }

    err = db.Ping()
    if err != nil {
        panic(err)
    }
}
```

Kode ini terhubung ke klaster DB Aurora PostgreSQL.

```
package main

import (
     "context"
     "database/sql"
     "fmt"

     "github.com/aws/aws-sdk-go-v2/config"
     "github.com/aws/aws-sdk-go-v2/feature/rds/auth"
     _ "github.com/lib/pq"
)

func main() {

     var dbName string = "DatabaseName"
     var dbUser string = "DatabaseUser"
     var dbHost string = "postgresmycluster.cluster-123456789012.us-east-1.rds.amazonaws.com"
     var dbPort int = 5432
     var dbEndpoint string = fmt.Sprintf("%s:%d", dbHost, dbPort)
     var region string = "us-east-1"

    cfg, err := config.LoadDefaultConfig(context.TODO())
    if err != nil {
    	panic("configuration error: " + err.Error())
    }

    authenticationToken, err := auth.BuildAuthToken(
    	context.TODO(), dbEndpoint, region, dbUser, cfg.Credentials)
    if err != nil {
	    panic("failed to create authentication token: " + err.Error())
    }

    dsn := fmt.Sprintf("host=%s port=%d user=%s password=%s dbname=%s",
        dbHost, dbPort, dbUser, authenticationToken, dbName,
    )

    db, err := sql.Open("postgres", dsn)
    if err != nil {
        panic(err)
    }

    err = db.Ping()
    if err != nil {
        panic(err)
    }
}
```

Jika Anda ingin terhubung ke klaster DB melalui proksi, lihat [Menghubungkan ke database menggunakan otentikasi IAM](rds-proxy-connecting.md#rds-proxy-connecting-iam).

## Menghubungkan menggunakan otentikasi IAM dan V1. AWS SDK untuk Go
<a name="UsingWithRDS.IAMDBAuth.Connecting.GoV1"></a>

Anda dapat terhubung ke cluster DB menggunakan otentikasi IAM dan V1 AWS SDK untuk Go 

Contoh kode berikut ini menunjukkan cara membuat token autentikasi, lalu menggunakannya untuk menghubungkan ke klaster DB. 

Kode ini terhubung ke klaster DB Aurora MySQL.

```
package main
         
import (
    "database/sql"
    "fmt"
    "log"

    "github.com/aws/aws-sdk-go/aws/credentials"
    "github.com/aws/aws-sdk-go/service/rds/rdsutils"
    _ "github.com/go-sql-driver/mysql"
)

func main() {
    dbName := "app"
    dbUser := "jane_doe"
    dbHost := "mysqlcluster.cluster-123456789012.us-east-1.rds.amazonaws.com"
    dbPort := 3306
    dbEndpoint := fmt.Sprintf("%s:%d", dbHost, dbPort)
    region := "us-east-1"

    creds := credentials.NewEnvCredentials()
    authToken, err := rdsutils.BuildAuthToken(dbEndpoint, region, dbUser, creds)
    if err != nil {
        panic(err)
    }

    dsn := fmt.Sprintf("%s:%s@tcp(%s)/%s?tls=true&allowCleartextPasswords=true",
        dbUser, authToken, dbEndpoint, dbName,
    )

    db, err := sql.Open("mysql", dsn)
    if err != nil {
        panic(err)
    }

    err = db.Ping()
    if err != nil {
        panic(err)
    }
}
```

Kode ini terhubung ke klaster DB Aurora PostgreSQL.

```
package main

import (
	"database/sql"
	"fmt"

	"github.com/aws/aws-sdk-go/aws/credentials"
	"github.com/aws/aws-sdk-go/service/rds/rdsutils"
	_ "github.com/lib/pq"
)

func main() {
    dbName := "app"
    dbUser := "jane_doe"
    dbHost := "postgresmycluster.cluster-123456789012.us-east-1.rds.amazonaws.com"
    dbPort := 5432
    dbEndpoint := fmt.Sprintf("%s:%d", dbHost, dbPort)
    region := "us-east-1"

    creds := credentials.NewEnvCredentials()
    authToken, err := rdsutils.BuildAuthToken(dbEndpoint, region, dbUser, creds)
    if err != nil {
        panic(err)
    }

    dsn := fmt.Sprintf("host=%s port=%d user=%s password=%s dbname=%s",
        dbHost, dbPort, dbUser, authToken, dbName,
    )

    db, err := sql.Open("postgres", dsn)
    if err != nil {
        panic(err)
    }

    err = db.Ping()
    if err != nil {
        panic(err)
    }
}
```

Jika Anda ingin terhubung ke klaster DB melalui proksi, lihat [Menghubungkan ke database menggunakan otentikasi IAM](rds-proxy-connecting.md#rds-proxy-connecting-iam).

# Menghubungkan ke cluster DB Anda menggunakan otentikasi IAM dan AWS SDK untuk Java
<a name="UsingWithRDS.IAMDBAuth.Connecting.Java"></a>

Anda dapat terhubung ke dengan seperti yang dijelaskan berikut. AWS SDK untuk Java 

**Prasyarat**  
Berikut adalah prasyarat untuk menghubungkan ke klaster DB menggunakan autentikasi IAM:
+ [Mengaktifkan dan menonaktifkan autentikasi basis data IAM](UsingWithRDS.IAMDBAuth.Enabling.md)
+ [Membuat dan menggunakan kebijakan IAM untuk akses basis data IAM](UsingWithRDS.IAMDBAuth.IAMPolicy.md)
+ [Membuat akun basis data menggunakan autentikasi IAM](UsingWithRDS.IAMDBAuth.DBAccounts.md)
+ [Menyiapkan AWS SDK for Java](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/setup-install.html)

Untuk contoh tentang cara menggunakan SDK for Java 2.x, lihat [contoh Amazon RDS menggunakan SDK for Java](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/java_rds_code_examples.html) 2.x. Anda juga dapat menggunakan AWS Advanced JDBC Wrapper, lihat Dokumentasi [AWS Advanced JDBC](https://github.com/aws/aws-advanced-jdbc-wrapper/blob/main/docs/Documentation.md) Wrapper.

**Topics**
+ [Membuat token autentikasi IAM](#UsingWithRDS.IAMDBAuth.Connecting.Java.AuthToken)
+ [Membuat token autentikasi IAM secara manual](#UsingWithRDS.IAMDBAuth.Connecting.Java.AuthToken2)
+ [Menghubungkan ke klaster DB](#UsingWithRDS.IAMDBAuth.Connecting.Java.AuthToken.Connect)

## Membuat token autentikasi IAM
<a name="UsingWithRDS.IAMDBAuth.Connecting.Java.AuthToken"></a>

Jika Anda menulis program menggunakan AWS SDK untuk Java, Anda bisa mendapatkan token otentikasi yang ditandatangani menggunakan `RdsIamAuthTokenGenerator` kelas. Menggunakan kelas ini mengharuskan Anda memberikan AWS kredensil. Untuk melakukan ini, Anda membuat instance dari `DefaultAWSCredentialsProviderChain` kelas. `DefaultAWSCredentialsProviderChain`menggunakan kunci AWS akses pertama dan kunci rahasia yang ditemukan di [rantai penyedia kredensi default](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/credentials.html#credentials-default). Untuk informasi selengkapnya tentang kunci akses AWS , lihat [Mengelola kunci akses untuk pengguna](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html).

**catatan**  
Anda tidak dapat menggunakan data DNS Route 53 kustom sebagai pengganti titik akhir klaster DB untuk menghasilkan token autentikasi.

Setelah membuat instans `RdsIamAuthTokenGenerator`, Anda dapat memanggil metode `getAuthToken` untuk mendapatkan token yang ditandatangani. Berikan Wilayah AWS , nama host, nomor port, dan nama pengguna. Contoh kode berikut menunjukkan cara melakukannya.

```
package com.amazonaws.codesamples;

import com.amazonaws.auth.DefaultAWSCredentialsProviderChain;
import com.amazonaws.services.rds.auth.GetIamAuthTokenRequest;
import com.amazonaws.services.rds.auth.RdsIamAuthTokenGenerator;

public class GenerateRDSAuthToken {

    public static void main(String[] args) {

	    String region = "us-west-2";
	    String hostname = "rdsmysql.123456789012.us-west-2.rds.amazonaws.com";
	    String port = "3306";
	    String username = "jane_doe";
	
	    System.out.println(generateAuthToken(region, hostname, port, username));
    }

    static String generateAuthToken(String region, String hostName, String port, String username) {

	    RdsIamAuthTokenGenerator generator = RdsIamAuthTokenGenerator.builder()
		    .credentials(new DefaultAWSCredentialsProviderChain())
		    .region(region)
		    .build();

	    String authToken = generator.getAuthToken(
		    GetIamAuthTokenRequest.builder()
		    .hostname(hostName)
		    .port(Integer.parseInt(port))
		    .userName(username)
		    .build());
	    
	    return authToken;
    }

}
```

## Membuat token autentikasi IAM secara manual
<a name="UsingWithRDS.IAMDBAuth.Connecting.Java.AuthToken2"></a>

Di Java, cara termudah untuk menghasilkan token autentikasi adalah dengan menggunakan `RdsIamAuthTokenGenerator`. Kelas ini membuat token otentikasi untuk Anda, dan kemudian menandatanganinya menggunakan AWS tanda tangan versi 4. Untuk informasi selengkapnya, lihat [Proses penandatanganan Signature versi 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) dalam *Referensi Umum AWS.*

Namun, Anda juga dapat membuat dan menandatangani token autentikasi secara manual, seperti ditunjukkan dalam contoh kode berikut.

```
package com.amazonaws.codesamples;

import com.amazonaws.SdkClientException;
import com.amazonaws.auth.DefaultAWSCredentialsProviderChain;
import com.amazonaws.auth.SigningAlgorithm;
import com.amazonaws.util.BinaryUtils;
import org.apache.commons.lang3.StringUtils;

import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import java.nio.charset.Charset;
import java.security.MessageDigest;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.SortedMap;
import java.util.TreeMap;

import static com.amazonaws.auth.internal.SignerConstants.AWS4_TERMINATOR;
import static com.amazonaws.util.StringUtils.UTF8;

public class CreateRDSAuthTokenManually {
    public static String httpMethod = "GET";
    public static String action = "connect";
    public static String canonicalURIParameter = "/";
    public static SortedMap<String, String> canonicalQueryParameters = new TreeMap();
    public static String payload = StringUtils.EMPTY;
    public static String signedHeader = "host";
    public static String algorithm = "AWS4-HMAC-SHA256";
    public static String serviceName = "rds-db";
    public static String requestWithoutSignature;

    public static void main(String[] args) throws Exception {

        String region = "us-west-2";
        String instanceName = "rdsmysql.123456789012.us-west-2.rds.amazonaws.com";
        String port = "3306";
        String username = "jane_doe";
	
        Date now = new Date();
        String date = new SimpleDateFormat("yyyyMMdd").format(now);
        String dateTimeStamp = new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'").format(now);
        DefaultAWSCredentialsProviderChain creds = new DefaultAWSCredentialsProviderChain();
	    String awsAccessKey = creds.getCredentials().getAWSAccessKeyId();
	    String awsSecretKey = creds.getCredentials().getAWSSecretKey();
        String expiryMinutes = "900";
        
        System.out.println("Step 1:  Create a canonical request:");
        String canonicalString = createCanonicalString(username, awsAccessKey, date, dateTimeStamp, region, expiryMinutes, instanceName, port);
        System.out.println(canonicalString);
        System.out.println();

        System.out.println("Step 2:  Create a string to sign:");        
        String stringToSign = createStringToSign(dateTimeStamp, canonicalString, awsAccessKey, date, region);
        System.out.println(stringToSign);
        System.out.println();

        System.out.println("Step 3:  Calculate the signature:");        
        String signature = BinaryUtils.toHex(calculateSignature(stringToSign, newSigningKey(awsSecretKey, date, region, serviceName)));
        System.out.println(signature);
        System.out.println();

        System.out.println("Step 4:  Add the signing info to the request");                
        System.out.println(appendSignature(signature));
        System.out.println();
        
    }

    //Step 1: Create a canonical request date should be in format YYYYMMDD and dateTime should be in format YYYYMMDDTHHMMSSZ
    public static String createCanonicalString(String user, String accessKey, String date, String dateTime, String region, String expiryPeriod, String hostName, String port) throws Exception {
        canonicalQueryParameters.put("Action", action);
        canonicalQueryParameters.put("DBUser", user);
        canonicalQueryParameters.put("X-Amz-Algorithm", "AWS4-HMAC-SHA256");
        canonicalQueryParameters.put("X-Amz-Credential", accessKey + "%2F" + date + "%2F" + region + "%2F" + serviceName + "%2Faws4_request");
        canonicalQueryParameters.put("X-Amz-Date", dateTime);
        canonicalQueryParameters.put("X-Amz-Expires", expiryPeriod);
        canonicalQueryParameters.put("X-Amz-SignedHeaders", signedHeader);
        String canonicalQueryString = "";
        while(!canonicalQueryParameters.isEmpty()) {
            String currentQueryParameter = canonicalQueryParameters.firstKey();
            String currentQueryParameterValue = canonicalQueryParameters.remove(currentQueryParameter);
            canonicalQueryString = canonicalQueryString + currentQueryParameter + "=" + currentQueryParameterValue;
            if (!currentQueryParameter.equals("X-Amz-SignedHeaders")) {
                canonicalQueryString += "&";
            }
        }
        String canonicalHeaders = "host:" + hostName + ":" + port + '\n';
        requestWithoutSignature = hostName + ":" + port + "/?" + canonicalQueryString;

        String hashedPayload = BinaryUtils.toHex(hash(payload));
        return httpMethod + '\n' + canonicalURIParameter + '\n' + canonicalQueryString + '\n' + canonicalHeaders + '\n' + signedHeader + '\n' + hashedPayload;

    }

    //Step 2: Create a string to sign using sig v4
    public static String createStringToSign(String dateTime, String canonicalRequest, String accessKey, String date, String region) throws Exception {
        String credentialScope = date + "/" + region + "/" + serviceName + "/aws4_request";
        return algorithm + '\n' + dateTime + '\n' + credentialScope + '\n' + BinaryUtils.toHex(hash(canonicalRequest));

    }

    //Step 3: Calculate signature
    /**
     * Step 3 of the &AWS; Signature version 4 calculation. It involves deriving
     * the signing key and computing the signature. Refer to
     * http://docs.aws.amazon
     * .com/general/latest/gr/sigv4-calculate-signature.html
     */
    public static byte[] calculateSignature(String stringToSign,
                                            byte[] signingKey) {
        return sign(stringToSign.getBytes(Charset.forName("UTF-8")), signingKey,
                SigningAlgorithm.HmacSHA256);
    }

    public static byte[] sign(byte[] data, byte[] key,
                          SigningAlgorithm algorithm) throws SdkClientException {
        try {
            Mac mac = algorithm.getMac();
            mac.init(new SecretKeySpec(key, algorithm.toString()));
            return mac.doFinal(data);
        } catch (Exception e) {
            throw new SdkClientException(
                    "Unable to calculate a request signature: "
                            + e.getMessage(), e);
        }
    }

    public static byte[] newSigningKey(String secretKey,
                                   String dateStamp, String regionName, String serviceName) {
        byte[] kSecret = ("AWS4" + secretKey).getBytes(Charset.forName("UTF-8"));
        byte[] kDate = sign(dateStamp, kSecret, SigningAlgorithm.HmacSHA256);
        byte[] kRegion = sign(regionName, kDate, SigningAlgorithm.HmacSHA256);
        byte[] kService = sign(serviceName, kRegion,
                SigningAlgorithm.HmacSHA256);
        return sign(AWS4_TERMINATOR, kService, SigningAlgorithm.HmacSHA256);
    }

    public static byte[] sign(String stringData, byte[] key,
                       SigningAlgorithm algorithm) throws SdkClientException {
        try {
            byte[] data = stringData.getBytes(UTF8);
            return sign(data, key, algorithm);
        } catch (Exception e) {
            throw new SdkClientException(
                    "Unable to calculate a request signature: "
                            + e.getMessage(), e);
        }
    }

    //Step 4: append the signature
    public static String appendSignature(String signature) {
        return requestWithoutSignature + "&X-Amz-Signature=" + signature;
    }

    public static byte[] hash(String s) throws Exception {
        try {
            MessageDigest md = MessageDigest.getInstance("SHA-256");
            md.update(s.getBytes(UTF8));
            return md.digest();
        } catch (Exception e) {
            throw new SdkClientException(
                    "Unable to compute hash while signing request: "
                            + e.getMessage(), e);
        }
    }
}
```

## Menghubungkan ke klaster DB
<a name="UsingWithRDS.IAMDBAuth.Connecting.Java.AuthToken.Connect"></a>

Contoh kode berikut menunjukkan cara membuat token autentikasi, lalu menggunakannya untuk menghubungkan ke klaster yang menjalankan Aurora MySQL. 

Untuk menjalankan contoh kode ini, Anda memerlukan [AWS SDK untuk Java](https://aws.amazon.com/sdk-for-java/), ditemukan di AWS situs. Selain itu, Anda memerlukan hal berikut:
+ MySQL Connector/J. Contoh kode ini diuji dengan `mysql-connector-java-5.1.33-bin.jar`.
+ Sertifikat perantara untuk Amazon Aurora yang khusus untuk AWS suatu Wilayah. (Untuk informasi selengkapnya, lihat [Menggunakan SSL/TLS untuk mengenkripsi koneksi ke ](UsingWithRDS.SSL.md).) Saat runtime, pemuat kelas mencari sertifikat di direktori yang sama seperti contoh kode Java ini, sehingga pemuat kelas dapat menemukannya.
+ Ubah nilai variabel berikut sesuai kebutuhan:
  + `RDS_INSTANCE_HOSTNAME` – Nama host klaster DB yang ingin Anda akses.
  + `RDS_INSTANCE_PORT` – Nomor port yang digunakan untuk menghubungkan ke klaster DB PostgreSQL Anda.
  + `REGION_NAME`— AWS Wilayah tempat cluster DB berjalan.
  + `DB_USER` – Akun basis data yang ingin Anda akses.
  + `SSL_CERTIFICATE`— Sertifikat SSL untuk Amazon Aurora yang khusus untuk suatu Wilayah. AWS 

    Untuk mengunduh sertifikat untuk Wilayah AWS Anda, lihat [Menggunakan SSL/TLS untuk mengenkripsi koneksi ke ](UsingWithRDS.SSL.md). Tempatkan sertifikat SSL di direktori yang sama dengan file program Java ini, sehingga pemuat kelas dapat menemukan sertifikat saat runtime.

Contoh kode ini memperoleh AWS kredensil dari rantai penyedia [kredensi default](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/credentials.html#credentials-default).

**catatan**  
Tentukan kata sandi untuk `DEFAULT_KEY_STORE_PASSWORD` selain prompt yang ditampilkan di sini sebagai praktik terbaik keamanan.

```
package com.amazonaws.samples;

import com.amazonaws.services.rds.auth.RdsIamAuthTokenGenerator;
import com.amazonaws.services.rds.auth.GetIamAuthTokenRequest;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.auth.DefaultAWSCredentialsProviderChain;
import com.amazonaws.auth.AWSStaticCredentialsProvider;

import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.security.KeyStore;
import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Properties;

import java.net.URL;

public class IAMDatabaseAuthenticationTester {
    //&AWS; Credentials of the IAM user with policy enabling IAM Database Authenticated access to the db by the db user.
    private static final DefaultAWSCredentialsProviderChain creds = new DefaultAWSCredentialsProviderChain();
    private static final String AWS_ACCESS_KEY = creds.getCredentials().getAWSAccessKeyId();
    private static final String AWS_SECRET_KEY = creds.getCredentials().getAWSSecretKey();

    //Configuration parameters for the generation of the IAM Database Authentication token
    private static final String RDS_INSTANCE_HOSTNAME = "rdsmysql.123456789012.us-west-2.rds.amazonaws.com";
    private static final int RDS_INSTANCE_PORT = 3306;
    private static final String REGION_NAME = "us-west-2";
    private static final String DB_USER = "jane_doe";
    private static final String JDBC_URL = "jdbc:mysql://" + RDS_INSTANCE_HOSTNAME + ":" + RDS_INSTANCE_PORT;

    private static final String SSL_CERTIFICATE = "rds-ca-2019-us-west-2.pem";

    private static final String KEY_STORE_TYPE = "JKS";
    private static final String KEY_STORE_PROVIDER = "SUN";
    private static final String KEY_STORE_FILE_PREFIX = "sys-connect-via-ssl-test-cacerts";
    private static final String KEY_STORE_FILE_SUFFIX = ".jks";
    private static final String DEFAULT_KEY_STORE_PASSWORD = "changeit";

    public static void main(String[] args) throws Exception {
        //get the connection
        Connection connection = getDBConnectionUsingIam();

        //verify the connection is successful
        Statement stmt= connection.createStatement();
        ResultSet rs=stmt.executeQuery("SELECT 'Success!' FROM DUAL;");
        while (rs.next()) {
        	    String id = rs.getString(1);
            System.out.println(id); //Should print "Success!"
        }

        //close the connection
        stmt.close();
        connection.close();
        
        clearSslProperties();
        
    }

    /**
     * This method returns a connection to the db instance authenticated using IAM Database Authentication
     * @return
     * @throws Exception
     */
    private static Connection getDBConnectionUsingIam() throws Exception {
        setSslProperties();
        return DriverManager.getConnection(JDBC_URL, setMySqlConnectionProperties());
    }

    /**
     * This method sets the mysql connection properties which includes the IAM Database Authentication token
     * as the password. It also specifies that SSL verification is required.
     * @return
     */
    private static Properties setMySqlConnectionProperties() {
        Properties mysqlConnectionProperties = new Properties();
        mysqlConnectionProperties.setProperty("verifyServerCertificate","true");
        mysqlConnectionProperties.setProperty("useSSL", "true");
        mysqlConnectionProperties.setProperty("user",DB_USER);
        mysqlConnectionProperties.setProperty("password",generateAuthToken());
        return mysqlConnectionProperties;
    }

    /**
     * This method generates the IAM Auth Token.
     * An example IAM Auth Token would look like follows:
     * btusi123---cmz7kenwo2ye---rds---cn-north-1.amazonaws.com.rproxy.goskope.com.cn:3306/?Action=connect&DBUser=iamtestuser&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20171003T010726Z&X-Amz-SignedHeaders=host&X-Amz-Expires=899&X-Amz-Credential=AKIAPFXHGVDI5RNFO4AQ%2F20171003%2Fcn-north-1%2Frds-db%2Faws4_request&X-Amz-Signature=f9f45ef96c1f770cdad11a53e33ffa4c3730bc03fdee820cfdf1322eed15483b
     * @return
     */
    private static String generateAuthToken() {
        BasicAWSCredentials awsCredentials = new BasicAWSCredentials(AWS_ACCESS_KEY, AWS_SECRET_KEY);

        RdsIamAuthTokenGenerator generator = RdsIamAuthTokenGenerator.builder()
                .credentials(new AWSStaticCredentialsProvider(awsCredentials)).region(REGION_NAME).build();
        return generator.getAuthToken(GetIamAuthTokenRequest.builder()
                .hostname(RDS_INSTANCE_HOSTNAME).port(RDS_INSTANCE_PORT).userName(DB_USER).build());
    }

    /**
     * This method sets the SSL properties which specify the key store file, its type and password:
     * @throws Exception
     */
    private static void setSslProperties() throws Exception {
        System.setProperty("javax.net.ssl.trustStore", createKeyStoreFile());
        System.setProperty("javax.net.ssl.trustStoreType", KEY_STORE_TYPE);
        System.setProperty("javax.net.ssl.trustStorePassword", DEFAULT_KEY_STORE_PASSWORD);
    }

    /**
     * This method returns the path of the Key Store File needed for the SSL verification during the IAM Database Authentication to
     * the db instance.
     * @return
     * @throws Exception
     */
    private static String createKeyStoreFile() throws Exception {
        return createKeyStoreFile(createCertificate()).getPath();
    }

    /**
     *  This method generates the SSL certificate
     * @return
     * @throws Exception
     */
    private static X509Certificate createCertificate() throws Exception {
        CertificateFactory certFactory = CertificateFactory.getInstance("X.509");
        URL url = new File(SSL_CERTIFICATE).toURI().toURL();
        if (url == null) {
            throw new Exception();
        }
        try (InputStream certInputStream = url.openStream()) {
            return (X509Certificate) certFactory.generateCertificate(certInputStream);
        }
    }

    /**
     * This method creates the Key Store File
     * @param rootX509Certificate - the SSL certificate to be stored in the KeyStore
     * @return
     * @throws Exception
     */
    private static File createKeyStoreFile(X509Certificate rootX509Certificate) throws Exception {
        File keyStoreFile = File.createTempFile(KEY_STORE_FILE_PREFIX, KEY_STORE_FILE_SUFFIX);
        try (FileOutputStream fos = new FileOutputStream(keyStoreFile.getPath())) {
            KeyStore ks = KeyStore.getInstance(KEY_STORE_TYPE, KEY_STORE_PROVIDER);
            ks.load(null);
            ks.setCertificateEntry("rootCaCertificate", rootX509Certificate);
            ks.store(fos, DEFAULT_KEY_STORE_PASSWORD.toCharArray());
        }
        return keyStoreFile;
    }
    
    /**
     * This method clears the SSL properties.
     * @throws Exception
     */
    private static void clearSslProperties() throws Exception {
           System.clearProperty("javax.net.ssl.trustStore");
           System.clearProperty("javax.net.ssl.trustStoreType");
           System.clearProperty("javax.net.ssl.trustStorePassword"); 
    }
    
}
```

Jika Anda ingin terhubung ke klaster DB melalui proksi, lihat [Menghubungkan ke database menggunakan otentikasi IAM](rds-proxy-connecting.md#rds-proxy-connecting-iam).

# Menghubungkan ke cluster DB Anda menggunakan otentikasi IAM dan AWS SDK untuk Python (Boto3)
<a name="UsingWithRDS.IAMDBAuth.Connecting.Python"></a>

Anda dapat terhubung ke dengan seperti yang dijelaskan berikut. AWS SDK untuk Python (Boto3) 

**Prasyarat**  
Berikut adalah prasyarat untuk menghubungkan ke klaster DB menggunakan autentikasi IAM:
+ [Mengaktifkan dan menonaktifkan autentikasi basis data IAM](UsingWithRDS.IAMDBAuth.Enabling.md)
+ [Membuat dan menggunakan kebijakan IAM untuk akses basis data IAM](UsingWithRDS.IAMDBAuth.IAMPolicy.md)
+ [Membuat akun basis data menggunakan autentikasi IAM](UsingWithRDS.IAMDBAuth.DBAccounts.md)

Selain itu, pastikan pustaka yang diimpor dalam kode sampel ada di sistem Anda.

**Contoh**  
Contoh kode ini menggunakan profil untuk kredensial bersama. Untuk informasi tentang kredensi yang menentukan, lihat [Kredensial](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html) dalam dokumentasi. AWS SDK untuk Python (Boto3) 

Contoh kode berikut ini menunjukkan cara membuat token autentikasi, lalu menggunakannya untuk menghubungkan ke klaster DB. 

Untuk menjalankan contoh kode ini, Anda memerlukan [AWS SDK untuk Python (Boto3)](https://aws.amazon.com/sdk-for-python/), ditemukan di AWS situs.

Ubah nilai variabel berikut sesuai kebutuhan:
+ `ENDPOINT` – Titik akhir klaster DB yang ingin Anda akses
+ `PORT` – Nomor port yang digunakan untuk menghubungkan ke klaster DB Anda
+ `USER` – Akun basis data yang ingin Anda akses
+ `REGION`— AWS Wilayah tempat cluster DB berjalan
+ `DBNAME` – Basis data yang ingin Anda akses
+ `SSLCERTIFICATE` – Jalur lengkap ke sertifikat SSL untuk Amazon Aurora

  Untuk `ssl_ca`, tentukan sertifikat SSL. Untuk mengunduh sertifikat SSL, lihat [Menggunakan SSL/TLS untuk mengenkripsi koneksi ke ](UsingWithRDS.SSL.md).

**catatan**  
Anda tidak dapat menggunakan data DNS Route 53 kustom sebagai pengganti titik akhir klaster DB untuk menghasilkan token autentikasi.

Kode ini terhubung ke klaster DB Aurora MySQL.

Sebelum menjalankan kode ini, instal driver PyMy SQL dengan mengikuti instruksi dalam Indeks [Paket Python](https://pypi.org/project/PyMySQL/).

```
import pymysql
import sys
import boto3
import os

ENDPOINT="mysqlcluster.cluster-123456789012.us-east-1.rds.amazonaws.com"
PORT="3306"
USER="jane_doe"
REGION="us-east-1"
DBNAME="mydb"
os.environ['LIBMYSQL_ENABLE_CLEARTEXT_PLUGIN'] = '1'

#gets the credentials from .aws/credentials
session = boto3.Session(profile_name='default')
client = session.client('rds')

token = client.generate_db_auth_token(DBHostname=ENDPOINT, Port=PORT, DBUsername=USER, Region=REGION)

try:
    conn =  pymysql.connect(auth_plugin_map={'mysql_clear_password':None},host=ENDPOINT, user=USER, password=token, port=PORT, database=DBNAME, ssl_ca='SSLCERTIFICATE', ssl_verify_identity=True, ssl_verify_cert=True)
    cur = conn.cursor()
    cur.execute("""SELECT now()""")
    query_results = cur.fetchall()
    print(query_results)
except Exception as e:
    print("Database connection failed due to {}".format(e))
```

Kode ini terhubung ke klaster DB Aurora PostgreSQL.

Sebelum menjalankan kode ini, instal `psycopg2` dengan mengikuti petunjuk dalam [dokumentasi Psycopg](https://pypi.org/project/psycopg2/).

```
import psycopg2
import sys
import boto3
import os

ENDPOINT="postgresmycluster.cluster-123456789012.us-east-1.rds.amazonaws.com"
PORT="5432"
USER="jane_doe"
REGION="us-east-1"
DBNAME="mydb"

#gets the credentials from .aws/credentials
session = boto3.Session(profile_name='RDSCreds')
client = session.client('rds')

token = client.generate_db_auth_token(DBHostname=ENDPOINT, Port=PORT, DBUsername=USER, Region=REGION)

try:
    conn = psycopg2.connect(host=ENDPOINT, port=PORT, database=DBNAME, user=USER, password=token, sslrootcert="SSLCERTIFICATE")
    cur = conn.cursor()
    cur.execute("""SELECT now()""")
    query_results = cur.fetchall()
    print(query_results)
except Exception as e:
    print("Database connection failed due to {}".format(e))
```

Jika Anda ingin terhubung ke klaster DB melalui proksi, lihat [Menghubungkan ke database menggunakan otentikasi IAM](rds-proxy-connecting.md#rds-proxy-connecting-iam).

# Pemecahan masalah untuk otentikasi IAM DB
<a name="UsingWithRDS.IAMDBAuth.Troubleshooting"></a>

Berikut ini, Anda dapat menemukan ide pemecahan masalah untuk beberapa masalah otentikasi IAM DB umum dan informasi tentang CloudWatch log dan metrik untuk otentikasi IAM DB.

## Mengekspor log kesalahan otentikasi IAM DB ke Log CloudWatch
<a name="UsingWithRDS.IAMDBAuth.Troubleshooting.ErrorLogs"></a>

Log kesalahan otentikasi IAM DB disimpan di host database, dan Anda dapat mengekspor log ini ke akun CloudWatch Log Anda. Gunakan log dan metode remediasi di halaman ini untuk memecahkan masalah autentikasi IAM DB.

Anda dapat mengaktifkan ekspor log ke CloudWatch Log dari konsol AWS CLI, dan RDS API. Untuk petunjuk konsol, lihat[Menerbitkan log database ke Amazon CloudWatch Logs](USER_LogAccess.Procedural.UploadtoCloudWatch.md).

Untuk mengekspor log kesalahan autentikasi IAM DB Anda ke CloudWatch Log saat membuat cluster DB dari AWS CLI, gunakan perintah berikut:

```
aws rds create-db-cluster --db-cluster-identifier mydbinstance \
--region us-east-1 \
--engine postgres \
--engine-version 16 \
--master-username master \
--master-user-password password \
--publicly-accessible \
--enable-iam-database-authentication \
--enable-cloudwatch-logs-exports=iam-db-auth-error
```

Untuk mengekspor log kesalahan autentikasi IAM DB Anda ke CloudWatch Log saat memodifikasi cluster DB dari AWS CLI, gunakan perintah berikut:

```
aws rds modify-db-cluster --db-cluster-identifier mydbcluster \
--region us-east-1 \
--cloudwatch-logs-export-configuration '{"EnableLogTypes":["iam-db-auth-error"]}'
```

Untuk memverifikasi apakah cluster DB Anda mengekspor log otentikasi IAM DB ke CloudWatch Log, periksa apakah `EnabledCloudwatchLogsExports` parameter diatur ke `iam-db-auth-error` dalam output untuk perintah tersebut. `describe-db-instances`

```
aws rds describe-db-cluster --region us-east-1 --db-cluster-identifier mydbcluster
            ...
            
             "EnabledCloudwatchLogsExports": [
                "iam-db-auth-error"
            ],
            ...
```

## Metrik otentikasi CloudWatch IAM DB
<a name="UsingWithRDS.IAMDBAuth.Troubleshooting.CWMetrics"></a>

 Amazon Aurora memberikan metrik waktu nyaris nyata tentang autentikasi IAM DB ke akun Amazon Anda. CloudWatch Tabel berikut mencantumkan metrik autentikasi IAM DB yang tersedia menggunakan: CloudWatch


| Metrik | Deskripsi | 
| --- | --- | 
|  `IamDbAuthConnectionRequests`  |  Jumlah total permintaan koneksi yang dibuat dengan otentikasi IAM DB.  | 
|  `IamDbAuthConnectionSuccess`  |  Jumlah total permintaan otentikasi IAM DB yang berhasil.  | 
|  `IamDbAuthConnectionFailure`  |  Jumlah total permintaan otentikasi IAM DB yang gagal.  | 
|  `IamDbAuthConnectionFailureInvalidToken`  | Jumlah total permintaan otentikasi IAM DB yang gagal karena token tidak valid. | 
|  `IamDbAuthConnectionFailureInsufficientPermissions`  |  Jumlah total permintaan otentikasi IAM DB yang gagal karena kebijakan atau izin yang salah.  | 
|  `IamDbAuthConnectionFailureThrottling`  |  Jumlah total permintaan otentikasi IAM DB yang gagal karena pelambatan otentikasi IAM DB.  | 
|  `IamDbAuthConnectionFailureServerError`  |  Jumlah total permintaan otentikasi IAM DB yang gagal karena kesalahan server internal dalam fitur otentikasi IAM DB.  | 

## Masalah dan solusi umum
<a name="UsingWithRDS.IAMDBAuth.Troubleshooting.IssuesSolutions"></a>

 Anda mungkin mengalami masalah berikut saat menggunakan keaslian IAM DB. Gunakan langkah-langkah remediasi dalam tabel untuk menyelesaikan masalah:


| Kesalahan | Metrik | Penyebab | Solusi | 
| --- | --- | --- | --- | 
|  `[ERROR] Failed to authenticate the connection request for user db_user because the provided token is malformed or otherwise invalid. (Status Code: 400, Error Code: InvalidToken)`  |  `IamDbAuthConnectionFailure` `IamDbAuthConnectionFailureInvalidToken`  |  Token autentiasi IAM DB dalam permintaan koneksi bukan token Sigv4a yang valid, atau tidak diformat dengan benar.  |  Periksa strategi pembuatan token Anda di aplikasi Anda. Dalam beberapa kasus, pastikan Anda meneruskan token dengan format yang valid. Memangkas token (atau pemformatan string yang salah) akan membuat token tidak valid.   | 
|  `[ERROR] Failed to authenticate the connection request for user db_user because the token age is longer than 15 minutes. (Status Code: 400, Error Code:ExpiredToken)`  |  `IamDbAuthConnectionFailure` `IamDbAuthConnectionFailureInvalidToken`  |  Token otentikasi IAM DB telah kedaluwarsa. Token hanya berlaku selama 15 menit.  |  Periksa logika penggunaan kembali token caching and/or token Anda di aplikasi Anda. Anda tidak boleh menggunakan kembali token yang lebih tua dari 15 menit.  | 
|  `[ERROR] Failed to authorize the connection request for user db_user because the IAM policy assumed by the caller 'arn:aws:sts::123456789012:assumed-role/ <RoleName>/ <RoleSession>' is not authorized to perform `rds-db:connect` on the DB instance. (Status Code: 403, Error Code:NotAuthorized)`  |  `IamDbAuthConnectionFailure` `IamDbAuthConnectionFailureInsufficientPermissions`  |  Kesalahan ini mungkin terjadi karena alasan berikut: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.IAMDBAuth.Troubleshooting.html)  |  Verifikasi bahwa and/or kebijakan peran IAM yang Anda asumsikan dalam aplikasi Anda. Pastikan Anda mengasumsikan kebijakan yang sama untuk menghasilkan token untuk terhubung ke DB.   | 
|  `[ERROR] Failed to authorize the connection request for user db_user due to IAM DB authentication throttling. (Status Code: 429, Error Code: ThrottlingException)`  |  `IamDbAuthConnectionFailure` `IamDbAuthConnectionFailureThrottling`  | Anda membuat terlalu banyak permintaan koneksi ke DB Anda dalam waktu singkat. Batas pelambatan otentikasi IAM DB adalah 200 koneksi per detik. |  Kurangi tingkat membangun koneksi baru dengan otentikasi IAM. Pertimbangkan untuk menerapkan penyatuan koneksi menggunakan RDS Proxy untuk menggunakan kembali koneksi yang sudah ada di aplikasi Anda.  | 
|  `[ERROR] Failed to authorize the connection request for user db_user due to an internal IAM DB authentication error. (Status Code: 500, Error Code: InternalError)`  |  `IamDbAuthConnectionFailure` `IamDbAuthConnectionFailureThrottling` |  Ada kesalahan internal saat mengotorisasi koneksi DB dengan otentikasi IAM DB.  |  Jangkau https://aws.amazon.com/premiumsupport/ untuk menyelidiki masalah ini.  | 

# Memecahkan masalah identitas dan akses Amazon Aurora
<a name="security_iam_troubleshoot"></a>

Gunakan informasi berikut untuk membantu Anda mendiagnosis dan memperbaiki masalah umum yang mungkin Anda hadapi saat bekerja dengan Aurora dan IAM.

**Topics**
+ [Saya tidak diberi otorisasi untuk melakukan tindakan di Aurora](#security_iam_troubleshoot-no-permissions)
+ [Saya tidak berwenang untuk melakukan iam: PassRole](#security_iam_troubleshoot-passrole)
+ [Saya ingin mengizinkan orang di luar AWS akun saya untuk mengakses sumber daya Aurora saya](#security_iam_troubleshoot-cross-account-access)

## Saya tidak diberi otorisasi untuk melakukan tindakan di Aurora
<a name="security_iam_troubleshoot-no-permissions"></a>

Jika Konsol Manajemen AWS memberitahu Anda bahwa Anda tidak berwenang untuk melakukan tindakan, maka Anda harus menghubungi administrator Anda untuk bantuan. Administrator Anda adalah orang yang memberi Anda kredensial masuk.

Contoh kesalahan berikut terjadi ketika `mateojackson` pengguna mencoba menggunakan konsol untuk melihat detail tentang *widget* tetapi tidak memiliki `rds:GetWidget` izin.

```
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: rds:GetWidget on resource: my-example-widget
```

Dalam hal ini, Mateo meminta administratornya untuk memperbarui kebijakannya untuk mengizinkan dia mengakses sumber daya `my-example-widget` menggunakan tindakan `rds:GetWidget`.

## Saya tidak berwenang untuk melakukan iam: PassRole
<a name="security_iam_troubleshoot-passrole"></a>

Jika Anda menerima kesalahan bahwa Anda tidak diberi otorisasi untuk melakukan tindakan `iam:PassRole`, Anda harus menghubungi administrator untuk mendapatkan bantuan. Administrator Anda adalah orang yang memberi Anda kredensial masuk. Minta orang tersebut untuk memperbarui kebijakan Anda agar Anda dapat meneruskan peran ke Aurora.

Beberapa AWS layanan memungkinkan Anda untuk meneruskan peran yang ada ke layanan tersebut, alih-alih membuat peran layanan baru atau peran terkait layanan. Untuk melakukannya, Anda harus memiliki izin untuk meneruskan peran ke layanan.

Contoh kesalahan berikut terjadi saat pengguna bernama `marymajor` mencoba menggunakan konsol untuk melakukan tindakan di Aurora. Namun, tindakan ini mengharuskan layanan memiliki izin yang diberikan oleh peran layanan. Mary tidak memiliki izin untuk meneruskan peran tersebut ke layanan.

```
User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole
```

Dalam kasus ini, Mary meminta administrator untuk memperbarui kebijakannya agar dia dapat melakukan tindakan `iam:PassRole`.

## Saya ingin mengizinkan orang di luar AWS akun saya untuk mengakses sumber daya Aurora saya
<a name="security_iam_troubleshoot-cross-account-access"></a>

Anda dapat membuat peran yang dapat digunakan pengguna di akun lain atau orang-orang di luar organisasi Anda untuk mengakses sumber daya Anda. Anda dapat menentukan siapa saja yang dipercaya untuk mengambil peran tersebut. Untuk layanan yang mendukung kebijakan berbasis sumber daya atau daftar kontrol akses (ACLs), Anda dapat menggunakan kebijakan tersebut untuk memberi orang akses ke sumber daya Anda.

Untuk mempelajari selengkapnya, periksa hal berikut:
+ Untuk mempelajari apakah Aurora mendukung fitur ini, lihat [Cara kerja Amazon Aurora dengan IAM](security_iam_service-with-iam.md).
+ Untuk mempelajari cara menyediakan akses ke sumber daya Anda di seluruh AWS akun yang Anda miliki, lihat [Menyediakan akses ke pengguna IAM di AWS akun lain yang Anda miliki](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html) di *Panduan Pengguna IAM*.
+ Untuk mempelajari cara menyediakan akses ke sumber daya Anda ke AWS akun pihak ketiga, lihat [Menyediakan akses ke AWS akun yang dimiliki oleh pihak ketiga](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_third-party.html) di *Panduan Pengguna IAM*.
+ Untuk mempelajari cara memberikan akses melalui federasi identitas, lihat [Menyediakan akses ke pengguna terautentikasi eksternal (federasi identitas)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_federated-users.html) dalam *Panduan Pengguna IAM*.
+ Untuk mempelajari perbedaan antara penggunaan kebijakan peran dan kebijakan berbasis sumber daya untuk akses lintas akun, lihat [Bagaimana peran IAM berbeda dari kebijakan berbasis sumber daya](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_compare-resource-policies.html) dalam *Panduan Pengguna IAM*.

# Pencatatan dan pemantauan di
<a name="Overview.LoggingAndMonitoring"></a>

Pemantauan adalah bagian penting dalam menjaga keandalan, ketersediaan, dan kinerja Aurora dan AWS solusi Anda. Anda harus mengumpulkan data pemantauan dari semua bagian AWS solusi Anda sehingga Anda dapat lebih mudah men-debug kegagalan multi-titik jika terjadi. AWS menyediakan beberapa alat untuk memantau sumber daya Amazon Aurora Anda dan menanggapi potensi insiden:

** CloudWatch Alarm Amazon**  
Menggunakan CloudWatch alarm Amazon, Anda menonton satu metrik selama periode waktu yang Anda tentukan. Jika metrik melebihi ambang batas tertentu, pemberitahuan akan dikirim ke topik atau AWS Auto Scaling kebijakan Amazon SNS. CloudWatch alarm tidak memanggil tindakan karena mereka berada dalam keadaan tertentu. Sebaliknya, status harus diubah dan dipelihara selama jangka waktu tertentu.

**AWS CloudTrail Log**  
CloudTrail menyediakan catatan tindakan yang diambil oleh pengguna, peran, atau AWS layanan di Aurora. CloudTrail menangkap semua panggilan API untuk Aurora sebagai peristiwa, termasuk panggilan dari konsol dan dari panggilan kode ke operasi Amazon RDS API. Dengan menggunakan informasi yang dikumpulkan oleh CloudTrail, Anda dapat menentukan permintaan yang dibuat untuk Amazon Aurora, alamat IP dari mana permintaan dibuat, siapa yang membuat permintaan, kapan dibuat, dan detail tambahan. Untuk informasi selengkapnya, lihat [Memantau panggilan Amazon Aurora  API AWS CloudTrail](logging-using-cloudtrail.md).

**Pemantauan yang Ditingkatkan**  
 Amazon Aurora menyediakan metrik secara real time untuk sistem operasi (OS) tempat cluster instans . Anda dapat melihat metrik untuk cluster DB menggunakan konsol, atau menggunakan output JSON Pemantauan yang Ditingkatkan dari Amazon CloudWatch Logs dalam sistem pemantauan pilihan Anda. Untuk informasi selengkapnya, lihat [Memantau metrik OS dengan Pemantauan yang Ditingkatkan](USER_Monitoring.OS.md).

**Wawasan Performa Amazon RDS**  
Performance Insights memperluas fitur pemantauan RDS yang ada untuk menggambarkan kinerja database Anda dan membantu Anda menganalisis masalah apa pun yang mempengaruhinya. Dengan dasbor Wawasan Performa, Anda dapat memvisualisasikan beban basis data dan memfilter beban berdasarkan waktu tunggu, pernyataan SQL, host, atau pengguna. Untuk informasi selengkapnya, lihat [Memantau muatan DB dengan Wawasan Performa di Amazon Aurora](USER_PerfInsights.md).

**Log Basis Data**  
Anda dapat melihat, mengunduh, dan menonton log database menggunakan Konsol Manajemen AWS, AWS CLI, atau RDS API. Untuk informasi selengkapnya, lihat [Memantau log Amazon Aurora Amazon](USER_LogAccess.md).

** Amazon Aurora**  
 Amazon Aurora memberikan rekomendasi otomatis untuk sumber daya basis data. Rekomendasi ini memberikan panduan praktik terbaik dengan menganalisis konfigurasi cluster DB, penggunaan, dan data kinerja. Untuk informasi selengkapnya, lihat [](monitoring-recommendations.md).

** Amazon Aurora**  
 Amazon Aurora menggunakan Amazon Simple Notification Service (Amazon SNS) untuk memberikan pemberitahuan saat peristiwa Amazon Aurora terjadi. Pemberitahuan ini dapat dalam bentuk pemberitahuan apa pun yang didukung oleh Amazon SNS untuk suatu AWS Wilayah, seperti email, pesan teks, atau panggilan ke titik akhir HTTP. Untuk informasi selengkapnya, lihat [Bekerja dengan pemberitahuan RDS acara Amazon](USER_Events.md).

**AWS Trusted Advisor**  
Trusted Advisor mengacu pada praktik terbaik yang dipelajari dari melayani ratusan ribu AWS pelanggan. Trusted Advisor memeriksa AWS lingkungan Anda dan kemudian membuat rekomendasi ketika ada peluang untuk menghemat uang, meningkatkan ketersediaan dan kinerja sistem, atau membantu menutup kesenjangan keamanan. Semua AWS pelanggan memiliki akses ke lima Trusted Advisor cek. Pelanggan dengan paket dukungan Bisnis atau Perusahaan dapat melihat semua Trusted Advisor pemeriksaan.   
Trusted Advisor memiliki pemeriksaan terkait Amazon Aurora berikut:  
+  Amazon Aurora Instans DB Menganggur
+  Amazon Aurora Security Group Risiko Akses
+  Amazon Aurora
+  Amazon Aurora Multi-AZ
+ Aksesibilitas Instans DB Aurora
Untuk informasi selengkapnya tentang pemeriksaan ini, lihat [Praktik terbaik Trusted Advisor (pemeriksaan)](https://aws.amazon.com/premiumsupport/trustedadvisor/best-practices/). 

**Aliran aktivitas basis data**  
Aliran aktivitas basis data dapat melindungi basis data Anda dari ancaman internal dengan mengontrol akses DBA ke aliran aktivitas basis data. Dengan demikian, pengumpulan, transmisi, penyimpanan, dan pemrosesan selanjutnya dari aliran aktivitas database berada di luar akses DBAs yang mengelola database. Aliran aktivitas basis data dapat menyediakan sarana keamanan RDS untuk basis data Anda dan memenuhi persyaratan kepatuhan dan peraturan. Untuk informasi selengkapnya, lihat [Memantau Amazon Aurora dengan Aliran Aktivitas Basis Data](DBActivityStreams.md).

Untuk informasi lebih lanjut tentang pemantauan Aurora, lihat. [Memantau metrik di klaster Amazon Aurora](MonitoringAurora.md)

# Validasi kepatuhan untuk Amazon Aurora
<a name="RDS-compliance"></a>

Auditor pihak ketiga menilai keamanan dan kepatuhan Amazon Aurora sebagai bagian dari beberapa program kepatuhan AWS. Program ini mencakup SOC, PCI, FedRAMP, HIPAA, dan lainnya. 

Untuk daftar AWS layanan dalam lingkup program kepatuhan tertentu, lihat [AWSlayanan dalam lingkup oleh program kepatuhan](https://aws.amazon.com/compliance/services-in-scope/). Untuk informasi umum, lihat [Program kepatuhan AWS](https://aws.amazon.com/compliance/programs/).

Anda dapat mengunduh laporan audit pihak ketiga menggunakanAWS Artifact. Untuk informasi selengkapnya, lihat [Mengunduh laporan di AWS Artifact](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html). 

Tanggung jawab kepatuhan Anda saat menggunakan Amazon Aurora ditentukan oleh sensitivitas data Anda, tujuan kepatuhan organisasi Anda, serta hukum dan peraturan yang berlaku. AWSmenyediakan sumber daya berikut untuk membantu kepatuhan: 
+ [Panduan memulai cepat keamanan dan kepatuhan — Panduan](https://aws.amazon.com/quickstart/?awsf.quickstart-homepage-filter=categories%23security-identity-compliance) penerapan ini membahas pertimbangan arsitektur dan memberikan langkah-langkah untuk menerapkan lingkungan dasar yang berfokus pada keamanan dan kepatuhan. AWS
+ [Arsitektur untuk Keamanan dan Kepatuhan HIPAA di Amazon Web Services](https://docs.aws.amazon.com/pdfs/whitepapers/latest/architecting-hipaa-security-and-compliance-on-aws/architecting-hipaa-security-and-compliance-on-aws.pdf) — Whitepaper ini menjelaskan bagaimana perusahaan dapat menggunakan AWS untuk membuat aplikasi yang sesuai dengan HIPAA.
+ [AWSsumber daya kepatuhan](https://aws.amazon.com/compliance/resources/) - Kumpulan buku kerja dan panduan ini yang mungkin berlaku untuk industri dan lokasi Anda.
+ [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html)AWSLayanan ini menilai seberapa baik konfigurasi sumber daya Anda mematuhi praktik internal, pedoman industri, dan peraturan.
+ [AWS Security Hub CSPM](https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html)— Ini Layanan AWS memberikan pandangan komprehensif tentang keadaan keamanan Anda di dalamnyaAWS. Security Hub CSPM menggunakan kontrol keamanan untuk mengevaluasi AWS sumber daya Anda dan untuk memeriksa kepatuhan Anda terhadap standar industri keamanan dan praktik terbaik. Untuk mengetahui daftar layanan dan kontrol yang didukung, lihat Referensi kontrol [CSPM Security Hub](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-controls-reference.html).

# Ketangguhan di Amazon Aurora
<a name="disaster-recovery-resiliency"></a>

Infrastruktur global AWS dibangun di sekitar Wilayah dan Zona Ketersediaan AWS. AWS Wilayah menyediakan beberapa Zona Ketersediaan yang terpisah dan terisolasi secara fisik, yang terhubung dengan jaringan latensi rendah, throughput tinggi, dan sangat redundan. Dengan Zona Ketersediaan, Anda dapat merancang serta mengoperasikan aplikasi dan basis data yang secara otomatis melakukan fail over di antara Zona Ketersediaan tanpa gangguan. Zona Ketersediaan memiliki ketersediaan dan toleransi kesalahan yang lebih baik, dan dapat diskalakan dibandingkan infrastruktur pusat data tunggal atau multi tradisional. 

Untuk informasi selengkapnya tentang Wilayah AWS dan Zona Ketersediaan, lihat [Infrastruktur Global AWS](https://aws.amazon.com/about-aws/global-infrastructure/).

Selain infrastruktur global AWS, Aurora menawarkan beberapa fitur untuk membantu mendukung kebutuhan ketangguhan dan pencadangan data Anda.

## Pencadangan dan pemulihan
<a name="disaster-recovery-resiliency.backup-restore"></a>

Aurora mencadangkan volume klaster Anda secara otomatis dan mempertahankan data yang dipulihkan selama *periode retensi cadangan*. Pencadangan Aurora bersifat kontinu dan inkremental, sehingga Anda dapat memulihkan dengan cepat ke titik mana pun dalam periode retensi cadangan. Tidak ada dampak performa atau gangguan layanan basis data saat data cadangan ditulis. Anda dapat menentukan periode retensi cadangan, dari 1 hingga 35 hari, saat Anda membuat atau memodifikasi klaster DB.

Jika Anda ingin mempertahankan cadangan di luar periode retensi cadangan, Anda juga dapat mengambil snapshot data itu di volume klaster Anda. Aurora mempertahankan data pemulihan inkremental selama masa retensi cadangan. Karena itu, Anda perlu membuat cuplikan hanya untuk data yang ingin Anda pertahankan setelah periode retensi cadangan. Anda dapat membuat klaster DB baru dari snapshot.

Anda dapat memulihkan data Anda dengan membuat klaster DB Aurora baru dari data cadangan yang dipertahankan Aurora, atau dari snapshot klaster DB yang telah Anda simpan. Anda dapat membuat dengan cepat salinan baru klaster DB dari data cadangan ke sebarang titik waktu selama masa retensi cadangan Anda. Sifat kontinu dan inkremental cadangan Aurora selama masa retensi cadangan berarti Anda tidak perlu sering-sering mengambil snapshot data untuk meningkatkan waktu pemulihan.

Untuk informasi selengkapnya, lihat [Mencadangkan dan memulihkan klaster DB Amazon Aurora](BackupRestoreAurora.md).

## Replikasi
<a name="disaster-recovery-resiliency.replication"></a>

Aurora Replica adalah titik akhir independen dalam klaster DB Aurora, yang paling berguna untuk menskalakan operasi baca dan meningkatkan ketersediaan. Hingga 15 Aurora Replica dapat disebarkan ke seluruh Zona Ketersediaan yang dijangkau klaster DB di dalam sebuah Wilayah AWS. Volume klaster DB terdiri atas beberapa salinan data untuk klaster DB. Namun, data dalam volume klaster disajikan berupa volume tunggal logis ke instans DB utama dan ke Aurora Replica dalam klaster DB. Jika instans DB primer gagal, Aurora Replica dipromosikan menjadi instans DB primer.

Aurora juga mendukung opsi-opsi replikasi yang khusus untuk Aurora MySQL dan Aurora PostgreSQL.

Untuk informasi selengkapnya, lihat [Replikasi dengan Amazon Aurora](Aurora.Replication.md).

## Failover
<a name="disaster-recovery-resiliency.failover"></a>

Aurora menyimpan salinan data dalam klaster DB di beberapa Zona Ketersediaan dalam satu Wilayah AWS. Penyimpanan ini terjadi terlepas dari apakah instans DB di klaster DB mencakup beberapa Zona Ketersediaan atau tidak. Saat Anda membuat Aurora Replica di beberapa Zona Ketersediaan, Aurora menyediakan dan memelihara secara otomatis semuanya secara sinkron. Instans DB utama direplikasi secara sinkron di beberapa Zona Ketersediaan ke Aurora Replica untuk menyediakan redundansi data, menghilangkan pembekuan I/O, dan meminimalkan lonjakan latensi selama pencadangan sistem. Menjalankan klaster DB dengan ketersediaan tinggi dapat meningkatkan ketersediaan selama pemeliharaan sistem terencana, dan membantu melindungi basis data Anda terhadap kegagalan dan gangguan Zona Ketersediaan.

Untuk informasi selengkapnya, lihat [Ketersediaan yang tinggi untuk Amazon Aurora](Concepts.AuroraHighAvailability.md).

# Keamanan infrastruktur di Amazon Aurora
<a name="infrastructure-security"></a>

Sebagai layanan terkelola, Amazon Relational Database Service dilindungi AWS oleh keamanan jaringan global. Untuk informasi tentang layanan AWS keamanan dan cara AWS melindungi infrastruktur, lihat [Keamanan AWS Cloud](https://aws.amazon.com/security/). Untuk mendesain AWS lingkungan Anda menggunakan praktik terbaik untuk keamanan infrastruktur, lihat [Perlindungan Infrastruktur dalam Kerangka Kerja](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/infrastructure-protection.html) yang * AWS Diarsiteksikan dengan Baik Pilar Keamanan*.

Anda menggunakan panggilan API yang AWS dipublikasikan untuk mengakses Amazon RDS melalui jaringan. Klien harus mendukung hal-hal berikut:
+ Keamanan Lapisan Pengangkutan (TLS). Kami mensyaratkan TLS 1.2 dan menganjurkan TLS 1.3.
+ Sandi cocok dengan sistem kerahasiaan maju sempurna (perfect forward secrecy, PFS) seperti DHE (Ephemeral Diffie-Hellman) atau ECDHE (Elliptic Curve Ephemeral Diffie-Hellman). Sebagian besar sistem modern seperti Java 7 dan versi lebih baru mendukung mode-mode ini.

Selain itu, Aurora menawarkan fitur-fitur untuk membantu mendukung pemeliharaan infrastruktur keamanan.

## Grup keamanan
<a name="infrastructure-security.security-groups"></a>

Grup keamanan mengendalikan akses yang dimiliki oleh lalu lintas masuk dan keluar dari klaster basis data. Secara default, akses jaringan ke klaster basis data dinonaktifkan. Anda dapat menentukan aturan dalam grup keamanan yang memungkinkan akses dari rentang alamat IP, port, atau grup keamanan. Setelah aturan masuk dikonfigurasikan, aturan yang sama berlaku untuk semua klaster basis data yang dikaitkan dengan grup keamanan itu.

Untuk informasi selengkapnya, lihat [Mengontrol akses dengan grup keamanan](Overview.RDSSecurityGroups.md).

## Aksesibilitas publik
<a name="infrastructure-security.publicly-accessible"></a>

Saat Anda meluncurkan instans basis data di dalam Cloud Privat Virtual (VPC) berbasis layanan Amazon VPC, Anda dapat mengaktifkan atau menonaktifkan akses publik untuk instans itu. Untuk menentukan apakah instans basis data yang Anda buat memiliki nama DNS yang terselesaikan ke alamat IP publik, Anda menggunakan parameter *Aksesibilitas publik*. Dengan menggunakan parameter ini, Anda dapat menetapkan apakah ada akses publik ke instans basis data. Anda dapat mengubah instans basis data untuk mengaktifkan atau menonaktifkan aksesibilitas publik dengan mengubah parameter *Aksesibilitas publik*.

Untuk informasi selengkapnya, lihat [Menyembunyikan klaster DB dalam VPC dari internet](USER_VPC.WorkingWithRDSInstanceinaVPC.md#USER_VPC.Hiding).

**catatan**  
Jika instans DB Anda berada dalam VPC tetapi tidak dapat diakses publik, Anda juga dapat menggunakan koneksi AWS Site-to-Site VPN atau Direct Connect koneksi untuk mengaksesnya dari jaringan pribadi. Lihat informasi yang lebih lengkap di [Privasi lalu lintas antarjaringan](inter-network-traffic-privacy.md).

# API Amazon RDS dan titik akhir VPC antarmuka (AWS PrivateLink)
<a name="vpc-interface-endpoints"></a>

Anda dapat membuat koneksi privat antara titik akhir VPC dan API Amazon RDS dengan membuat *titik akhir VPC antarmuka*. Titik akhir antarmuka didukung oleh [AWS PrivateLink](https://aws.amazon.com/privatelink). 

AWS PrivateLink memungkinkan Anda mengakses operasi Amazon RDS API secara pribadi tanpa gateway internet, perangkat NAT, koneksi VPN, atau koneksi. Direct Connect Instans DB dalam VPC Anda tidak memerlukan alamat IP publik untuk berkomunikasi dengan titik akhir API Amazon RDS untuk meluncurkan, memodifikasi, atau menghentikan instans DB  dan klaster DB. Instans DB Anda juga tidak memerlukan alamat IP publik untuk menggunakan salah satu dari operasi API RDS yang tersedia. Lalu lintas antara VPC Anda dan Amazon RDS tidak keluar dari jaringan Amazon. 

Setiap titik akhir antarmuka direpresentasikan oleh satu atau beberapa antarmuka jaringan elastis di subnet Anda. Untuk informasi selengkapnya tentang antarmuka jaringan elastis, lihat [Antarmuka jaringan elastis](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html) dalam *Panduan Pengguna Amazon EC2*. 

*Untuk informasi selengkapnya tentang titik akhir VPC, lihat Titik akhir [VPC Antarmuka () di AWS PrivateLink Panduan](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html) Pengguna Amazon VPC.* Untuk informasi selengkapnya tentang operasi API RDS, lihat [Referensi API Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/).

Anda tidak memerlukan titik akhir VPC antarmuka untuk terhubung ke klaster DB. Untuk informasi selengkapnya, lihat [Skenario untuk mengakses klaster DB di VPC](USER_VPC.Scenarios.md).

## Pertimbangan untuk titik akhir VPC
<a name="vpc-endpoint-considerations"></a>

Sebelum Anda menyiapkan titik akhir VPC antarmuka untuk titik akhir API Amazon RDS, pastikan Anda meninjau [Properti dan batasan titik akhir antarmuka](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#vpce-interface-limitations) dalam *Panduan Pengguna Amazon VPC*. 

Semua operasi API RDS yang relevan dengan pengelolaan sumber daya Amazon Aurora tersedia dari VPC Anda menggunakan AWS PrivateLink.

Kebijakan titik akhir VPC didukung untuk titik akhir API RDS. Secara default, akses penuh ke operasi API RDS diizinkan melalui titik akhir. Untuk informasi selengkapnya, lihat [Mengontrol akses ke layanan dengan titik akhir VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-access.html) dalam *Panduan Pengguna Amazon VPC*.

## Ketersediaan
<a name="rds-and-vpc-interface-endpoints-availability"></a>

Amazon RDS API saat ini mendukung titik akhir VPC di Wilayah berikut: AWS 
+ AS Timur (Ohio)
+ AS Timur (Virginia Utara)
+ AS Barat (California Utara)
+ AS Barat (Oregon)
+ Afrika (Cape Town)
+ Asia Pasifik (Hong Kong)
+ Asia Pasifik (Mumbai)
+ Asia Pasifik (Selandia Baru)
+ Asia Pasifik (Osaka)
+ Asia Pasifik (Seoul)
+ Asia Pasifik (Singapura)
+ Asia Pasifik (Sydney)
+ Asia Pasifik (Taipei)
+ Asia Pasifik (Thailand)
+ Asia Pasifik (Tokyo)
+ (Canada (Central)
+ Kanada Barat (Calgary)
+ China (Beijing)
+ Tiongkok (Ningxia)
+ Eropa (Frankfurt)
+ Europe (Zurich)
+ Eropa (Irlandia)
+ Eropa (London)
+ Eropa (Paris)
+ Eropa (Stockholm)
+ Eropa (Milan)
+ Israel (Tel Aviv)
+ Meksiko (Tengah)
+ Timur Tengah (Bahrain)
+ Amerika Selatan (Sao Paulo)
+ AWS GovCloud (AS-Timur)
+ AWS GovCloud (AS-Barat)

## Membuat titik akhir VPC antarmuka untuk API Amazon RDS
<a name="vpc-endpoint-create"></a>

Anda dapat membuat titik akhir VPC untuk Amazon RDS API menggunakan konsol VPC Amazon atau (). AWS Command Line Interface AWS CLI Untuk informasi selengkapnya, lihat [Membuat titik akhir antarmuka](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#create-interface-endpoint) dalam *Panduan Pengguna Amazon VPC*.

Buat titik akhir VPC untuk API Amazon RDS menggunakan nama layanan `com.amazonaws.region.rds`.

Tidak termasuk AWS Wilayah di Tiongkok, jika Anda mengaktifkan DNS pribadi untuk titik akhir, Anda dapat membuat permintaan API ke Amazon RDS dengan titik akhir VPC menggunakan nama DNS default untuk Wilayah, misalnya. AWS `rds.us-east-1.amazonaws.com` Untuk Wilayah Tiongkok (Beijing) dan Tiongkok (Ningxia AWS ), Anda dapat membuat permintaan API dengan titik akhir `rds-api---cn-north-1.amazonaws.com.rproxy.goskope.com.cn` VPC menggunakan dan, masing-masing. `rds-api---cn-northwest-1.amazonaws.com.rproxy.goskope.com.cn` 

Untuk informasi selengkapnya, lihat [Mengakses layanan melalui titik akhir antarmuka](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#access-service-though-endpoint) dalam *Panduan Pengguna Amazon VPC*.

## Membuat kebijakan titik akhir VPC untuk API Amazon RDS
<a name="vpc-endpoint-policy"></a>

Anda dapat menyisipkan kebijakan titik akhir ke titik akhir VPC yang mengontrol akses ke API Amazon RDS. Kebijakan titik akhir menentukan informasi berikut:
+ Prinsipal yang dapat melakukan tindakan.
+ Tindakan yang dapat dilakukan.
+ Sumber daya yang menjadi target tindakan.

Untuk informasi selengkapnya, lihat [Mengontrol akses ke layanan dengan titik akhir VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-access.html) dalam *Panduan Pengguna Amazon VPC*. 

**Contoh: Kebijakan titik akhir VPC untuk tindakan API Amazon RDS**  
Berikut ini adalah contoh kebijakan titik akhir untuk API Amazon RDS. Jika dilampirkan ke sebuah titik akhir, kebijakan ini memberikan akses ke tindakan API Amazon RDS untuk semua prinsipal di semua sumber daya.

```
{
   "Statement":[
      {
         "Principal":"*",
         "Effect":"Allow",
         "Action":[
            "rds:CreateDBInstance",
            "rds:ModifyDBInstance",
            "rds:CreateDBSnapshot"
         ],
         "Resource":"*"
      }
   ]
}
```

**Contoh: Kebijakan titik akhir VPC yang menolak semua akses dari akun tertentu AWS**  
Kebijakan titik akhir VPC berikut menolak `123456789012` semua akses AWS akun ke sumber daya menggunakan titik akhir. Kebijakan ini mengizinkan semua tindakan dari akun lainnya.

```
{
  "Statement": [
    {
      "Action": "*",
      "Effect": "Allow",
      "Resource": "*",
      "Principal": "*"
    },
    {
      "Action": "*",
      "Effect": "Deny",
      "Resource": "*",
      "Principal": { "AWS": [ "123456789012" ] }
     }
   ]
}
```

# Praktik terbaik keamanan untuk Amazon Aurora
<a name="CHAP_BestPractices.Security"></a>

Gunakan akun AWS Identity and Access Management (IAM) untuk mengontrol akses ke operasi Amazon RDS API, terutama operasi yang membuat, memodifikasi, atau menghapus sumber daya Amazon . Sumber daya tersebut termasuk cluster DB, grup keamanan, dan grup parameter. 
+ Buat pengguna individual untuk setiap orang yang mengelola sumber daya Amazon Aurora, termasuk Anda sendiri. Jangan gunakan kredensi AWS root untuk mengelola sumber daya Amazon .
+ Beri setiap pengguna set izin minimum yang diperlukan untuk melakukan tugas-tugasnya.
+ Gunakan grup IAM untuk mengelola izin secara efektif bagi beberapa pengguna.
+ Putar kredensial IAM Anda secara rutin.
+ Konfigurasikan AWS Secrets Manager untuk memutar rahasia Aurora secara otomatis. Untuk informasi selengkapnya, lihat [Memutar rahasia AWS Secrets Manager Anda](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets.html) di *Panduan Pengguna AWS Secrets Manager *. Anda juga dapat mengambil kredensialnya dari AWS Secrets Manager pemrograman. Untuk informasi selengkapnya, lihat [Mengambil nilai rahasia](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_retrieve-secret.html) di *Panduan Pengguna AWS Secrets Manager *. 

Untuk informasi selengkapnya tentang keamanan Amazon Aurora, lihat. [Keamanan di ](UsingWithRDS.md) Untuk informasi selengkapnya tentang IAM, lihat [AWS Identity and Access Management](https://docs.aws.amazon.com/IAM/latest/UserGuide/Welcome.html). Untuk informasi tentang praktik terbaik IAM, lihat [Praktik terbaik IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/IAMBestPractices.html). 

AWS Security Hub CSPM menggunakan kontrol keamanan untuk mengevaluasi konfigurasi sumber daya dan standar keamanan untuk membantu Anda mematuhi berbagai kerangka kerja kepatuhan. Untuk informasi selengkapnya tentang penggunaan CSPM Security Hub untuk mengevaluasi sumber daya RDS, lihat kontrol [Layanan Amazon Relational Database Service](https://docs.aws.amazon.com/securityhub/latest/userguide/rds-controls.html) di Panduan Pengguna. AWS Security Hub 

Anda dapat memantau penggunaan RDS yang berkaitan dengan praktik terbaik keamanan dengan menggunakan Security Hub CSPM. Untuk informasi lebih lanjut, lihat [Apa itu AWS Security Hub CSPM?](https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html) . 

Gunakan Konsol Manajemen AWS, API AWS CLI, atau RDS untuk mengubah kata sandi untuk pengguna utama Anda. Jika Anda menggunakan alat lain, seperti klien SQL, untuk mengubah kata sandi pengguna utama, hak istimewa pengguna kemungkinan dapat terhapus secara tidak sengaja.

Amazon GuardDuty adalah layanan pemantauan keamanan berkelanjutan yang menganalisis dan memproses berbagai sumber data, termasuk aktivitas login Amazon RDS. Ini menggunakan umpan intelijen ancaman dan pembelajaran mesin untuk mengidentifikasi perilaku login yang tidak terduga, berpotensi tidak sah, mencurigakan, dan aktivitas berbahaya di lingkungan Anda. AWS 

 Saat Amazon GuardDuty RDS Protection mendeteksi upaya login yang berpotensi mencurigakan atau anomali yang menunjukkan ancaman terhadap database Anda, GuardDuty buat temuan baru dengan detail tentang database yang berpotensi dikompromikan. Untuk informasi selengkapnya, lihat [Memantau ancaman dengan Perlindungan Amazon GuardDuty RDS untuk Amazon Aurora](guard-duty-rds-protection.md).

# Mengontrol akses dengan grup keamanan
<a name="Overview.RDSSecurityGroups"></a>

Grup keamanan VPC mengontrol akses yang dimiliki lalu lintas masuk dan keluar dari cluster DB. Secara default, akses jaringan dimatikan untuk cluster DB. Anda dapat menentukan aturan dalam grup keamanan yang mengizinkan akses dari rentang alamat IP, port, atau grup keamanan. Setelah aturan ingress dikonfigurasi, aturan yang sama berlaku untuk semua cluster DB yang terkait dengan grup keamanan tersebut. Anda dapat menentukan hingga 20 aturan dalam satu grup keamanan.

## Ikhtisar grup keamanan VPC
<a name="Overview.RDSSecurityGroups.VPCSec"></a>

Setiap aturan grup keamanan VPC memungkinkan sumber tertentu untuk mengakses cluster DB di VPC yang terkait dengan grup keamanan VPC tersebut. Sumbernya dapat berupa rentang alamat (misalnya, 203.0.113.0/24), atau grup keamanan VPC lain. Dengan menentukan grup keamanan VPC sebagai sumber, Anda mengizinkan lalu lintas masuk dari semua instans (biasanya server aplikasi) yang menggunakan grup keamanan VPC sumber. Grup keamanan VPC dapat memiliki aturan yang mengatur lalu lintas masuk dan keluar. Namun, aturan lalu lintas keluar biasanya tidak berlaku untuk cluster DB. Aturan lalu lintas keluar hanya berlaku jika cluster DB bertindak sebagai klien. Anda harus menggunakan opsi [API Amazon EC2 ](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Welcome.html) atau **Grup Keamanan** pada konsol VPC untuk membuat grup keamanan VPC. 

Saat membuat aturan untuk grup keamanan VPC yang mengizinkan akses ke cluster di VPC, Anda harus menentukan port untuk setiap rentang alamat yang diizinkan oleh aturan tersebut. Misalnya, jika Anda ingin mengaktifkan akses Secure Shell (SSH) untuk instans di VPC, buat aturan yang mengizinkan akses ke port 22 TCP untuk rentang alamat tertentu.

Anda dapat mengonfigurasi beberapa grup keamanan VPC yang mengizinkan akses ke port yang berbeda untuk instans yang berbeda di VPC Anda. Misalnya, Anda dapat membuat grup keamanan VPC yang memungkinkan akses ke port 80 TCP untuk server web di VPC Anda. Anda kemudian dapat membuat grup keamanan VPC lain yang memungkinkan akses ke port TCP 3306 untuk RDS untuk instance MySQL DB di VPC Anda.

**catatan**  
Dalam klaster DB Aurora, grup keamanan VPC yang terkait dengan klaster DB juga terkait dengan semua instans DB dalam klaster DB. Jika Anda mengubah grup keamanan VPC untuk klaster atau instans DB, perubahan akan diterapkan secara otomatis ke semua instans DB dalam klaster DB.

Untuk informasi selengkapnya tentang grup keamanan VPC, lihat [Grup keamanan](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html) di *Panduan Pengguna Amazon Virtual Private Cloud*. 

**catatan**  
Jika cluster DB Anda berada dalam VPC tetapi tidak dapat diakses publik, Anda juga dapat menggunakan koneksi AWS Site-to-Site VPN atau Direct Connect koneksi untuk mengaksesnya dari jaringan pribadi. Untuk informasi selengkapnya, lihat [Privasi lalu lintas antarjaringan](inter-network-traffic-privacy.md).

## Skenario grup keamanan
<a name="Overview.RDSSecurityGroups.Scenarios"></a>

Penggunaan umum cluster DB di VPC adalah untuk berbagi data dengan server aplikasi yang berjalan di instans Amazon EC2 di VPC yang sama, yang diakses oleh aplikasi klien di luar VPC. Untuk skenario ini, Anda menggunakan halaman RDS dan VPC pada Konsol Manajemen AWS atau operasi RDS dan EC2 API untuk membuat instans dan grup keamanan yang diperlukan: 

1. Buat grup keamanan VPC (misalnya, `sg-0123ec2example`) dan tentukan aturan masuk yang menggunakan alamat IP aplikasi klien sebagai sumber. Grup keamanan ini memungkinkan aplikasi klien Anda untuk terhubung ke instans EC2 dalam VPC yang menggunakan grup keamanan ini.

1. Buat instans EC2 untuk aplikasi dan tambahkan instans EC2 ke grup keamanan VPC (`sg-0123ec2example`) yang Anda buat pada langkah sebelumnya.

1. Buat grup keamanan VPC kedua (misalnya, `sg-6789rdsexample`) dan buat aturan baru dengan menentukan grup keamanan VPC yang Anda buat di langkah 1 (`sg-0123ec2example`) sebagai sumbernya.

1. Buat cluster DB baru dan tambahkan cluster DB ke grup keamanan VPC (`sg-6789rdsexample`) yang Anda buat di langkah sebelumnya. Saat Anda membuat cluster DB, gunakan nomor port yang sama dengan yang ditentukan untuk aturan grup keamanan VPC (`sg-6789rdsexample`) yang Anda buat di langkah 3.

Diagram berikut menunjukkan skenario ini.

![\[Kluster DB dan instans EC2 dalam VPC\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/AuroraUserGuide/images/con-VPC-sec-grp-aurora.png)


Untuk petunjuk terperinci tentang mengonfigurasi VPC untuk skenario ini, lihat. [Tutorial: Buat VPC untuk digunakan dengan cluster DB (hanya) IPv4](CHAP_Tutorials.WebServerDB.CreateVPC.md) Untuk informasi selengkapnya tentang menggunakan VPC, lihat. [Amazon VPC dan Aurora](USER_VPC.md)

## Membuat grup keamanan VPC
<a name="Overview.RDSSecurityGroups.Create"></a>

Anda dapat membuat grup keamanan VPC untuk instans DB menggunakan konsol VPC. Untuk informasi tentang pembuatan grup keamanan, lihat [Berikan akses ke klaster DB dalam VPC dengan membuat grup keamanan](CHAP_SettingUp_Aurora.md#CHAP_SettingUp_Aurora.SecurityGroup) dan [Grup Keamanan](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html) dalam *Panduan Pengguna Amazon Virtual Private Cloud*. 

## Mengaitkan grup keamanan dengan klaster DB
<a name="Overview.RDSSecurityGroups.AssociateWithCluster"></a>

Anda dapat mengaitkan grup keamanan dengan cluster DB menggunakan **Modify cluster** di konsol RDS, `ModifyDBCluster` Amazon RDS API, atau perintah. `modify-db-cluster` AWS CLI 

Contoh CLI berikut mengaitkan grup VPC tertentu dan menghapus grup keamanan DB dari cluster DB

```
aws rds modify-db-cluster --db-cluster-identifier dbName --vpc-security-group-ids sg-ID
```

Untuk informasi tentang memodifikasi cluster DB, lihat[Memodifikasi klaster DB Amazon Aurora](Aurora.Modifying.md).

# Hak akses akun pengguna master
<a name="UsingWithRDS.MasterAccounts"></a>

Saat Anda membuat cluster DB baru, pengguna master default yang Anda gunakan mendapatkan hak istimewa tertentu untuk cluster DB tersebut. Anda tidak dapat mengubah nama pengguna master setelah cluster DB dibuat.

**penting**  
Kami sangat menyarankan agar Anda tidak menggunakan pengguna master secara langsung di aplikasi Anda. Sebagai gantinya, ikuti praktik terbaik menggunakan pengguna basis data yang dibuat dengan hak akses paling rendah yang diperlukan untuk aplikasi Anda.

**catatan**  
Jika Anda secara tidak sengaja menghapus izin untuk pengguna master, Anda dapat memulihkannya dengan memodifikasi cluster DB dan menyetel kata sandi pengguna master baru. Untuk informasi selengkapnya tentang memodifikasi cluster DB, lihat . 

Tabel berikut menunjukkan hak akses dan peran basis data yang diperoleh pengguna master untuk masing-masing mesin basis data. 

<a name="master-user-account-privileges"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.MasterAccounts.html)

# Menggunakan peran terkait layanan untuk Amazon Aurora
<a name="UsingWithRDS.IAM.ServiceLinkedRoles"></a>

 [Amazon Aurora AWS Identity and Access Management menggunakan peran terkait layanan (IAM).](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role) Peran yang terkait layanan adalah jenis peran IAM unik yang ditautkan langsung ke Amazon Aurora. Peran terkait layanan telah ditentukan sebelumnya oleh Aurora dan menyertakan semua izin yang diperlukan layanan untuk memanggil layanan lain atas nama Anda. AWS 

Peran terkait layanan memudahkan penggunaan Amazon Aurora karena Anda tidak perlu menambahkan izin yang diperlukan secara manual. Amazon Aurora menentukan izin peran terkait layanannya, dan kecuali jika ditentukan lain, hanya Amazon Aurora yang dapat mengambil perannya. Izin yang ditentukan mencakup kebijakan kepercayaan dan kebijakan izin, serta bahwa kebijakan izin tidak dapat dilampirkan ke entitas IAM lainnya.

Anda dapat menghapus peran hanya setelah terlebih dahulu menghapus sumber daya terkaitnya. Cara ini akan melindungi sumber daya Amazon Aurora karena Anda tidak dapat menghapus izin untuk mengakses sumber daya tersebut secara tidak sengaja.

Untuk informasi tentang layanan lain yang mendukung peran terkait layanan, lihat [Layanan AWS yang berfungsi dengan IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) lalu cari layanan yang menampilkan **Ya** pada kolom **Peran Terkait Layanan**. Pilih **Ya** dengan sebuah tautan untuk melihat dokumentasi peran terkait layanan untuk layanan tersebut.

## Izin peran terkait layanan untuk Amazon Aurora
<a name="service-linked-role-permissions"></a>

 

Peran terkait layanan AWSService RoleFor RDS mempercayai layanan berikut untuk mengambil peran:
+ `rds.amazonaws.com`

Peran terkait layanan ini memiliki kebijakan izin yang menyertainya bernama `AmazonRDSServiceRolePolicy` yang memberikannya izin untuk beroperasi di akun Anda.

Untuk informasi selengkapnya tentang kebijakan ini, termasuk dokumen kebijakan JSON, lihat [Amazon RDSService RolePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRDSServiceRolePolicy.html) di *Panduan Referensi Kebijakan AWS Terkelola*.

**catatan**  
Anda harus mengonfigurasi izin agar entitas IAM (seperti pengguna, grup, atau peran) dapat membuat, mengedit, atau menghapus peran terkait layanan. Jika Anda menemukan pesan kesalahan berikut:  
**Tidak dapat membuat sumber daya. Verifikasi bahwa Anda memiliki izin untuk membuat peran terkait layanan. Jika tidak, tunggu dan coba lagi nanti.**  
 Pastikan Anda telah mengaktifkan izin berikut:   

```
{
    "Action": "iam:CreateServiceLinkedRole",
    "Effect": "Allow",
    "Resource": "arn:aws:iam::*:role/aws-service-role/rds.amazonaws.com/AWSServiceRoleForRDS",
    "Condition": {
        "StringLike": {
            "iam:AWSServiceName":"rds.amazonaws.com"
        }
    }
}
```
 Untuk informasi selengkapnya, lihat [Izin peran terkait layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions) dalam *Panduan Pengguna IAM*.

### Membuat peran terkait layanan untuk Amazon Aurora
<a name="create-service-linked-role"></a>

Anda tidak perlu membuat peran terkait layanan secara manual. Saat Anda membuat klaster DB, Amazon Aurora membuat peran terkait layanan untuk Anda. 

**penting**  
Jika Anda menggunakan layanan Amazon Aurora sebelum 1 Desember 2017, ketika mulai mendukung peran terkait layanan, maka Amazon di akun Anda. AWSService RoleFor Untuk mempelajari lebih lanjut, lihat [Peran baru muncul di AWS akun saya](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_roles.html#troubleshoot_roles_new-role-appeared).

Jika Anda menghapus peran terkait layanan ini, dan ingin membuatnya lagi, Anda dapat mengulangi proses yang sama untuk membuat kembali peran tersebut di akun Anda. Saat Anda membuat klaster DB, Amazon Aurora membuat peran terkait layanan untuk Anda.

### Mengedit peran terkait layanan untuk Amazon Aurora
<a name="edit-service-linked-role"></a>

 Amazon Aurora tidak memungkinkan Anda mengedit AWSService RoleFor peran terkait layanan RDS. Setelah membuat peran terkait layanan, Anda tidak dapat mengubah nama peran karena berbagai entitas mungkin merujuk peran tersebut. Namun, Anda dapat mengedit penjelasan peran menggunakan IAM. Untuk informasi selengkapnya, lihat [Mengedit peran terkait layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role) dalam *Panduan Pengguna IAM*.

### Menghapus peran terkait layanan untuk Amazon Aurora
<a name="delete-service-linked-role"></a>

Jika Anda tidak perlu lagi menggunakan fitur atau layanan yang memerlukan peran terkait layanan, kami merekomendasikan Anda menghapus peran tersebut. Dengan begitu, Anda tidak memiliki entitas yang tidak digunakan yang tidak dipantau atau dipelihara secara aktif. Namun, Anda harus menghapus semua klaster DB Anda sebelum Anda dapat menghapus peran terkait layanan.

#### Membersihkan peran terkait layanan
<a name="service-linked-role-review-before-delete"></a>

Sebelum dapat menggunakan IAM untuk menghapus peran tertaut layanan, Anda harus mengonfirmasi terlebih dahulu bahwa peran tersebut tidak memiliki sesi aktif dan menghapus sumber daya yang digunakan oleh peran tersebut.

**Untuk memeriksa apakah peran terkait layanan memiliki sesi aktif di konsol IAM**

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**. Kemudian pilih nama (bukan kotak centang) dari peran AWSService RoleFor RDS.

1. Pada halaman **Ringkasan** untuk peran yang dipilih, pilih tab **Terakhir Diakses**.

1. Pada tab **Terakhir Diakses**, tinjau aktivitas terbaru untuk peran terkait layanan.
**catatan**  
Jika Anda tidak yakin apakah Amazon Aurora menggunakan peran RDS, Anda dapat mencoba menghapus peran AWSService RoleFor tersebut. Jika layanan ini menggunakan peran tersebut, peran tidak dapat dihapus dan Anda dapat melihat Wilayah AWS tempat peran tersebut digunakan. Jika peran tersebut sedang digunakan, Anda harus menunggu hingga sesi ini berakhir sebelum dapat menghapus peran tersebut. Anda tidak dapat mencabut sesi untuk peran terkait layanan. 

Jika Anda ingin menghapus peran AWSService RoleFor RDS, Anda harus terlebih dahulu menghapus *semua* cluster DB Anda.

##### Menghapus semua klaster Anda
<a name="delete-service-linked-role.delete-rds-clusters"></a>

Gunakan salah satu prosedur berikut untuk menghapus satu klaster. Ulangi prosedur untuk setiap klaster Anda.

**Untuk menghapus sebuah klaster (konsol)**

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

1. Di daftar **Basis data** pilih klaster yang ingin Anda hapus.

1. Untuk **Tindakan Klaster**, pilih **Hapus**.

1. Pilih **Hapus**.

**Untuk menghapus sebuah klaster (CLI)**  
Lihat `[delete-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/delete-db-cluster.html)` dalam *Referensi Perintah AWS CLI *.

**Untuk menghapus sebuah klaster (API)**  
Lihat `[DeleteDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteDBCluster.html)` dalam *Referensi API Amazon RDS*.

Anda dapat menggunakan konsol IAM, IAM CLI, atau IAM API untuk menghapus peran terkait layanan RDS. AWSService RoleFor Untuk informasi selengkapnya, lihat [Menghapus peran terkait layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role) dalam *Panduan Pengguna IAM*.

## Izin peran terkait layanan untuk Amazon RDS Beta
<a name="slr-permissions-rdsbeta"></a>

 Amazon Aurora menggunakan peran terkait layanan bernama `AWSServiceRoleForRDSBeta` untuk memungkinkan Amazon Aurora AWS memanggil layanan atas nama sumber daya RDS DB Anda.

Peran AWSService RoleFor RDSBeta terkait layanan mempercayai layanan berikut untuk mengambil peran:
+ `rds.amazonaws.com`

Peran terkait layanan ini memiliki kebijakan izin yang menyertainya bernama `AmazonRDSBetaServiceRolePolicy` yang memberikannya izin untuk beroperasi di akun Anda. Untuk informasi selengkapnya, lihat [AWS kebijakan terkelola: Amazon RDSBeta ServiceRolePolicy](rds-security-iam-awsmanpol.md#rds-security-iam-awsmanpol-AmazonRDSBetaServiceRolePolicy).

**catatan**  
Anda harus mengonfigurasi izin agar entitas IAM (seperti pengguna, grup, atau peran) dapat membuat, mengedit, atau menghapus peran terkait layanan. Jika Anda menemukan pesan kesalahan berikut:  
**Tidak dapat membuat sumber daya. Verifikasi bahwa Anda memiliki izin untuk membuat peran terkait layanan. Jika tidak, tunggu dan coba lagi nanti.**  
 Pastikan Anda telah mengaktifkan izin berikut:   

```
{
    "Action": "iam:CreateServiceLinkedRole",
    "Effect": "Allow",
    "Resource": "arn:aws:iam::*:role/aws-service-role/custom.rds.amazonaws.com/AmazonRDSBetaServiceRolePolicy",
    "Condition": {
        "StringLike": {
            "iam:AWSServiceName":"custom.rds.amazonaws.com"
        }
    }
}
```
 Untuk informasi selengkapnya, lihat [Izin peran terkait layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions) dalam *Panduan Pengguna IAM*.

## Peran terkait layanan untuk Amazon RDS Preview
<a name="slr-permissions-rdspreview"></a>

 Amazon Aurora menggunakan peran terkait layanan bernama `AWSServiceRoleForRDSPreview` untuk memungkinkan Amazon Aurora AWS memanggil layanan atas nama sumber daya RDS DB Anda.

Peran AWSService RoleFor RDSPreview terkait layanan mempercayai layanan berikut untuk mengambil peran:
+ `rds.amazonaws.com`

Peran terkait layanan ini memiliki kebijakan izin yang menyertainya bernama `AmazonRDSPreviewServiceRolePolicy` yang memberikannya izin untuk beroperasi di akun Anda. Untuk informasi selengkapnya, lihat [AWS kebijakan terkelola: Amazon RDSPreview ServiceRolePolicy](rds-security-iam-awsmanpol.md#rds-security-iam-awsmanpol-AmazonRDSPreviewServiceRolePolicy).

**catatan**  
Anda harus mengonfigurasi izin agar entitas IAM (seperti pengguna, grup, atau peran) dapat membuat, mengedit, atau menghapus peran terkait layanan. Jika Anda menemukan pesan kesalahan berikut:  
**Tidak dapat membuat sumber daya. Verifikasi bahwa Anda memiliki izin untuk membuat peran terkait layanan. Jika tidak, tunggu dan coba lagi nanti.**  
 Pastikan Anda telah mengaktifkan izin berikut:   

```
{
    "Action": "iam:CreateServiceLinkedRole",
    "Effect": "Allow",
    "Resource": "arn:aws:iam::*:role/aws-service-role/custom.rds.amazonaws.com/AmazonRDSPreviewServiceRolePolicy",
    "Condition": {
        "StringLike": {
            "iam:AWSServiceName":"custom.rds.amazonaws.com"
        }
    }
}
```
 Untuk informasi selengkapnya, lihat [Izin peran terkait layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions) dalam *Panduan Pengguna IAM*.

# Amazon VPC dan Aurora
<a name="USER_VPC"></a>

Amazon Virtual Private Cloud (AmazonVPC) memungkinkan Anda untuk meluncurkan AWS sumber daya, seperti cluster Aurora DB, menjadi virtual private cloud (). VPC 

Ketika Anda menggunakanVPC, Anda memiliki kendali atas lingkungan jaringan virtual Anda. Anda dapat memilih rentang alamat IP Anda sendiri, membuat subnet, serta mengonfigurasi perutean dan daftar kontrol akses. Tidak ada biaya tambahan untuk menjalankan cluster DB Anda di fileVPC. 

Akun memiliki defaultVPC. Semua cluster DB baru dibuat secara default VPC kecuali Anda menentukan sebaliknya.

**Topics**
+ [Menggunakan klaster DB di VPC](USER_VPC.WorkingWithRDSInstanceinaVPC.md)
+ [Skenario untuk mengakses klaster DB di VPC](USER_VPC.Scenarios.md)
+ [Tutorial: Buat VPC untuk digunakan dengan cluster DB (hanya) IPv4](CHAP_Tutorials.WebServerDB.CreateVPC.md)
+ [Tutorial: Membuat VPC untuk digunakan dengan klaster DB (mode tumpukan ganda)](CHAP_Tutorials.CreateVPCDualStack.md)

Berikut ini, Anda dapat menemukan diskusi tentang VPC fungsionalitas yang relevan dengan Amazon Aurora DB cluster. Untuk informasi selengkapnya tentang AmazonVPC, lihat Panduan [VPCMemulai Amazon dan Panduan VPC](https://docs.aws.amazon.com/AmazonVPC/latest/GettingStartedGuide/) [Pengguna Amazon](https://docs.aws.amazon.com/vpc/latest/userguide/).

# Menggunakan klaster DB di VPC
<a name="USER_VPC.WorkingWithRDSInstanceinaVPC"></a>

Klaster DB Anda berada di cloud privat virtual (VPC). VPC adalah jaringan virtual yang secara logis terisolasi dari jaringan virtual lain di Cloud. AWS Amazon VPC memungkinkan Anda meluncurkan AWS sumber daya, seperti cluster instans Amazon Aurora DB Amazon instans Amazon EC2, ke dalam VPC. VPC dapat berupa VPC default dari akun Anda atau VPC yang Anda buat. Semua VPCs terkait dengan AWS akun Anda. 

VPC default memiliki tiga subnet yang dapat digunakan untuk mengisolasi sumber daya di dalam VPC. VPC default juga memiliki gateway internet yang dapat digunakan untuk memberikan akses ke sumber daya di dalam VPC dari luar VPC. 

Untuk daftar skenario yang melibatkan Aurora instans cluster di VPC , lihat. [Skenario untuk mengakses klaster DB di VPC](USER_VPC.Scenarios.md) 

**Topics**
+ [Bekerja dengan klaster DB dalam VPC](#Overview.RDSVPC.Create)
+ [Kontrol enkripsi VPC](#USER_VPC.EncryptionControl)
+ [Menggunakan grup subnet DB](#USER_VPC.Subnets)
+ [Subnet bersama](#USER_VPC.Shared_subnets)
+ [Penentuan alamat IP Amazon Aurora](#USER_VPC.IP_addressing)
+ [Menyembunyikan klaster DB dalam VPC dari internet](#USER_VPC.Hiding)
+ [Membuat klaster DB dalam VPC](#USER_VPC.InstanceInVPC)

Dalam tutorial berikut, Anda dapat mempelajari cara membuat VPC yang dapat Anda gunakan untuk skenario Amazon Aurora yang umum:
+ [Tutorial: Buat VPC untuk digunakan dengan cluster DB (hanya) IPv4](CHAP_Tutorials.WebServerDB.CreateVPC.md)
+ [Tutorial: Membuat VPC untuk digunakan dengan klaster DB (mode tumpukan ganda)](CHAP_Tutorials.CreateVPCDualStack.md)

## Bekerja dengan klaster DB dalam VPC
<a name="Overview.RDSVPC.Create"></a>

Berikut ini beberapa tips untuk menggunakan klaster DB di VPC:
+ VPC Anda harus memiliki setidaknya dua subnet. Subnet ini harus berada di dua Availability Zone yang berbeda di Wilayah AWS mana Anda ingin menyebarkan cluster DB Anda. *Subnet* adalah segmen dari rentang alamat IP VPC yang dapat Anda tentukan dan gunakan untuk mengelompokkan klaster DB berdasarkan kebutuhan keamanan dan operasional Anda. 
+ Jika ingin klaster DB dalam VPC dapat diakses publik, pastikan untuk mengaktifkan *nama host DNS* dan *resolusi DNS* pada atribut VPC. 
+ VPC Anda harus memiliki grup subnet DB yang Anda buat. Anda membuat grup subnet DB dengan menentukan subnet yang Anda buat. Amazon Aurora memilih subnet dan alamat IP dalam subnet tersebut untuk dikaitkan dengan instans DB utama di klaster DB Anda. Instans DB primer menggunakan Zona Ketersediaan yang berisi subnet tersebut.
+ VPC Anda harus memiliki grup keamanan VPC yang memungkinkan akses ke klaster DB.

  Untuk informasi selengkapnya, lihat [Skenario untuk mengakses klaster DB di VPC](USER_VPC.Scenarios.md).
+ Blok CIDR di setiap subnet Anda harus cukup besar untuk mengakomodasi alamat IP cadangan untuk Amazon Aurora untuk digunakan selama aktivitas pemeliharaan, termasuk failover dan penskalaan komputasi. Misalnya, rentang seperti 10.0.0.0/24 dan 10.0.1.0/24 biasanya memiliki kapasitas cukup besar.
+ VPC dapat memiliki atribut *penghunian instans*, baik yang bersifat *default* atau *khusus*. Semua default VPCs memiliki atribut penyewaan instance yang disetel ke default, dan VPC default dapat mendukung kelas instans DB apa pun.

  Jika Anda memilih untuk menempatkan klaster DB dalam VPC khusus tempat atribut penghunian instans ditetapkan ke khusus, maka kelas instans DB untuk klaster DB Anda harus merupakan salah satu jenis instans khusus Amazon EC2 yang disetujui. Misalnya, instans khusus EC2 r5.large sesuai dengan kelas instans DB db.r5.large. Untuk informasi tentang penghunian instans dalam VPC, lihat [Instans khusus](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-instance.html) dalam *Panduan Pengguna Amazon Elastic Compute Cloud*.

  Untuk informasi selengkapnya tentang jenis instans yang dapat berada dalam instans khusus, lihat [instans khusus Amazon EC2](https://aws.amazon.com/ec2/purchasing-options/dedicated-instances/) di halaman harga Amazon EC2. 
**catatan**  
Jika Anda menetapkan atribut penghunian instans ke khusus untuk klaster DB, hal tersebut tidak menjamin bahwa klaster DB akan berjalan di host khusus.

## Kontrol enkripsi VPC
<a name="USER_VPC.EncryptionControl"></a>

Kontrol enkripsi VPC memungkinkan Anda menegakkan encryption-in-transit semua lalu lintas jaringan di dalam Anda. VPCs Gunakan kontrol enkripsi untuk memenuhi persyaratan kepatuhan peraturan dengan memastikan bahwa hanya perangkat keras berbasis Nitro berkemampuan enkripsi yang dapat disediakan di tempat yang ditentukan. VPCs Kontrol enkripsi juga menangkap masalah kompatibilitas pada waktu permintaan API daripada selama penyediaan. Beban kerja Anda yang ada terus beroperasi dan hanya permintaan baru yang tidak kompatibel yang diblokir.

Setel kontrol enkripsi VPC Anda dengan menyetel mode kontrol VPC ke:
+ *dinonaktifkan* (default)
+ *memonitor*
+ *ditegakkan*

Untuk memeriksa mode kontrol saat ini untuk VPC Anda, gunakan perintah atau Konsol Manajemen AWS [DescribeVpcs](https://docs.aws.amazon.com//AWSEC2/latest/APIReference/API_DescribeVpcs.html)CLI atau API.

Jika VPC Anda memberlakukan enkripsi, Anda hanya dapat menyediakan DB cluster DB berbasis Nitro yang mendukung enkripsi saat transit di VPC tersebut. Untuk informasi selengkapnya, lihat [Jenis kelas instans DB](Concepts.DBInstanceClass.Types.md). *Untuk informasi tentang instans Nitro, lihat [Instans yang dibangun di Sistem AWS Nitro di Panduan Pengguna](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html) Amazon EC2.*

**catatan**  
 `VpcEncryptionControlViolationException`

Aurora ServerlessUntuk MySQL dan PostreSQL, kontrol enkripsi memerlukan platform versi 3 atau lebih tinggi.

## Menggunakan grup subnet DB
<a name="USER_VPC.Subnets"></a>

*Subnet* adalah segmen dari rentang alamat IP VPC yang Anda tetapkan untuk mengelompokkan sumber daya Anda berdasarkan kebutuhan keamanan dan operasional. *Grup subnet DB* adalah kumpulan subnet (biasanya privat) yang Anda buat dalam VPC lalu Anda tetapkan untuk klaster DB Anda. Dengan menggunakan grup subnet DB, Anda dapat menentukan VPC tertentu saat membuat cluster instance menggunakan AWS CLI API atau RDS. Jika menggunakan konsol, Anda dapat memilih VPC dan grup subnet yang ingin Anda gunakan.

Setiap subnet DB harus memiliki subnet di setidaknya dua Zona Ketersediaan dalam satu Wilayah AWS tertentu. Saat membuat klaster DB di VPC, Anda perlu memilih grup subnet DB untuknya. Dari grup subnet DB, Amazon Aurora memilih subnet dan alamat IP dalam subnet tersebut untuk dikaitkan dengan instans DB primer di klaster DB Anda. DB menggunakan Zona Ketersediaan yang berisi subnet tersebut. Aurora Amazon selalu memberikan alamat IP dari subnet yang memiliki ruang alamat IP gratis.

Subnet dalam grup subnet DB bersifat publik atau privat. Subnet bersifat publik atau pribadi, tergantung pada konfigurasi yang Anda tetapkan untuk daftar kontrol akses jaringan (jaringan ACLs) dan tabel perutean mereka. Agar klaster DB dapat diakses publik, semua subnet dalam grup subnet DB-nya harus bersifat publik. Jika subnet yang terkait dengan klaster DB yang dapat diakses publik berubah dari publik menjadi privat, hal tersebut dapat memengaruhi ketersediaan klaster DB.

Untuk membuat grup subnet DB yang mendukung mode dual-stack, pastikan bahwa setiap subnet yang Anda tambahkan ke grup subnet DB memiliki blok CIDR Internet Protocol versi 6 (IPv6) yang terkait dengannya. Untuk informasi selengkapnya, lihat [Penentuan alamat IP Amazon Aurora](#USER_VPC.IP_addressing) dan [Memigrasi ke IPv6](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-migrate-ipv6.html) dalam Panduan *Pengguna Amazon VPC*.

Saat Amazon Aurora membuat klaster DB dalam VPC, antarmuka jaringan ditetapkan ke klaster DB dengan menggunakan alamat IP dari grup subnet DB. Namun, kami sangat menyarankan agar Anda menggunakan nama Sistem Nama Domain (DNS) untuk terhubung ke klaster DB. Kami merekomendasikan hal ini karena alamat IP pokok berubah selama failover. 

**catatan**  
Untuk setiap klaster DB yang Anda jalankan dalam VPC, pastikan untuk mencadangkan minimal satu alamat di setiap subnet dalam grup subnet DB agar dapat digunakan oleh Amazon Aurora untuk tindakan pemulihan. 

## Subnet bersama
<a name="USER_VPC.Shared_subnets"></a>

Anda dapat membuat klaster DB dalam VPC bersama.

Beberapa pertimbangan yang perlu diingat saat menggunakan shared VPCs:
+ Anda dapat memindahkan klaster DB dari subnet VPC bersama ke subnet VPC privat dan sebaliknya.
+ Peserta dalam VPC bersama harus membuat grup keamanan dalam VPC agar dapat membuat klaster DB.
+ Pemilik dan peserta dalam VPC bersama dapat mengakses basis data dengan menggunakan kueri SQL. Namun, hanya pembuat sumber daya yang dapat melakukan panggilan API apa pun pada sumber daya.



## Penentuan alamat IP Amazon Aurora
<a name="USER_VPC.IP_addressing"></a>

Penentuan alamat IP memungkinkan sumber daya dalam VPC Anda berkomunikasi satu sama lain, dan dengan sumber daya melalui internet. Amazon Aurora mendukung protokol pengalamatan IPv6 dan IPv4 keduanya. Secara default, Amazon Aurora dan Amazon VPC menggunakan protokol pengalamatan. IPv4 Anda tidak dapat menonaktifkan perilaku ini. Saat Anda membuat VPC, pastikan untuk menentukan blok IPv4 CIDR (berbagai alamat pribadi IPv4 ). 

Support untuk IPv6 protokol memperluas jumlah alamat IP yang didukung. Dengan menggunakan IPv6 protokol, Anda memastikan bahwa Anda memiliki alamat yang cukup tersedia untuk pertumbuhan internet di masa depan. Sumber daya RDS baru dan yang sudah ada dapat digunakan IPv4 dan IPv6 alamat dalam VPC Anda. Mengonfigurasi, mengamankan, dan menerjemahkan lalu lintas jaringan di antara dua protokol yang digunakan di berbagai bagian aplikasi dapat menimbulkan overhead operasional. Anda dapat melakukan standarisasi pada IPv6 protokol untuk sumber daya Amazon RDS untuk menyederhanakan konfigurasi jaringan Anda.

**Topics**
+ [IPv4 alamat](#USER_VPC.IP_addressing.IPv4)
+ [IPv6 alamat](#USER_VPC.IP_addressing.IPv6)
+ [Mode tumpukan ganda](#USER_VPC.IP_addressing.dual-stack-mode)

### IPv4 alamat
<a name="USER_VPC.IP_addressing.IPv4"></a>

Saat Anda membuat VPC, Anda harus menentukan rentang IPv4 alamat untuk VPC dalam bentuk blok CIDR, seperti. `10.0.0.0/16` *Grup subnet DB* mendefinisikan rentang alamat IP di blok CIDR ini yang dapat digunakan oleh klaster DB. Alamat IP ini bisa bersifat privat atau publik.

 IPv4 Alamat pribadi adalah alamat IP yang tidak dapat dijangkau melalui internet. Anda dapat menggunakan IPv4 alamat pribadi untuk komunikasi antara cluster DB dan sumber daya lainnya, seperti instans Amazon EC2, di VPC yang sama. Setiap klaster DB memiliki alamat IP privat untuk komunikasi dalam VPC.

Alamat IP publik adalah IPv4 alamat yang dapat dijangkau dari internet. Anda dapat menggunakan alamat publik untuk komunikasi antara klaster DB dan sumber daya di internet, seperti klien SQL. Anda mengontrol apakah klaster DB Anda menerima alamat IP publik.

Amazon RDS menggunakan alamat Public Elastic IPv4 dari kumpulan IPv4 alamat publik EC2 untuk instans database yang dapat diakses publik. Alamat IP ini terlihat di AWS akun Anda saat menggunakan `describe-addresses` CLI, API, atau melihat bagian Elastic IPs (EIP) di bagian. Konsol Manajemen AWS Setiap alamat IP yang dikelola RDS ditandai dengan `service_managed` atribut yang disetel ke. `"rds"`

Meskipun ini IPs terlihat di akun Anda, mereka tetap dikelola sepenuhnya oleh Amazon RDS dan tidak dapat dimodifikasi atau dirilis. Amazon RDS dirilis IPs kembali ke kumpulan IPv4 alamat publik saat tidak lagi digunakan.

CloudTrail log panggilan API yang terkait dengan EIP RDS, seperti file. `AllocateAddress` Panggilan API ini dipanggil oleh `rds.amazonaws.com` Principal Layanan.

**catatan**  
IPs dialokasikan oleh Amazon RDS tidak dihitung terhadap batas EIP akun Anda.

Untuk tutorial yang menunjukkan cara membuat VPC hanya dengan IPv4 alamat pribadi yang dapat Anda gunakan untuk skenario Amazon , lihat. [Tutorial: Buat VPC untuk digunakan dengan cluster DB (hanya) IPv4](CHAP_Tutorials.WebServerDB.CreateVPC.md) 

### IPv6 alamat
<a name="USER_VPC.IP_addressing.IPv6"></a>

Anda dapat secara opsional mengaitkan blok IPv6 CIDR dengan VPC dan subnet Anda, dan menetapkan IPv6 alamat dari blok itu ke sumber daya di VPC Anda. Setiap IPv6 alamat unik secara global. 

Blok IPv6 CIDR untuk VPC Anda secara otomatis ditetapkan dari kumpulan IPv6 alamat Amazon. Anda tidak dapat memilih sendiri rentang tersebut.

Saat menghubungkan ke IPv6 alamat, pastikan bahwa kondisi berikut terpenuhi:
+ Klien dikonfigurasi sehingga lalu lintas klien ke database IPv6 diizinkan.
+ Grup keamanan RDS yang digunakan oleh instans DB dikonfigurasi dengan benar sehingga lalu lintas klien ke database IPv6 diizinkan.
+ Tumpukan sistem operasi klien memungkinkan lalu lintas pada IPv6 alamat, dan driver dan pustaka sistem operasi dikonfigurasi untuk memilih titik akhir instans DB default yang benar (baik IPv4 atau IPv6).

Untuk informasi selengkapnya IPv6, lihat [Pengalamatan IP](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-ip-addressing.html) di Panduan *Pengguna Amazon VPC*.

### Mode tumpukan ganda
<a name="USER_VPC.IP_addressing.dual-stack-mode"></a>

Cluster DB berjalan dalam mode dual-stack ketika dapat berkomunikasi melalui keduanya IPv4 dan protokol IPv6 pengalamatan. Sumber daya kemudian dapat berkomunikasi dengan cluster DB menggunakan salah satu IPv4 IPv6,, atau kedua protokol. Instans DB mode dual-stack pribadi memiliki IPv6 titik akhir yang dibatasi RDS hanya untuk akses VPC, memastikan titik akhir Anda tetap pribadi. IPv6 Instans DB mode dual-stack publik menyediakan keduanya IPv4 dan IPv6 titik akhir yang dapat Anda akses dari internet.

**Topics**
+ [Mode tumpukan ganda dan grup subnet DB](#USER_VPC.IP_addressing.dual-stack-db-subnet-groups)
+ [Menggunakan instans DB mode tumpukan ganda](#USER_VPC.IP_addressing.dual-stack-working-with)
+ [Memodifikasi cluster DB IPv4 -only untuk menggunakan mode dual-stack](#USER_VPC.IP_addressing.dual-stack-modifying-ipv4)
+ [Ketersediaan klaster DB jaringan tumpukan ganda](#USER_VPC.IP_addressing.dual-stack-availability)
+ [Batasan untuk klaster DB jaringan tumpukan ganda](#USER_VPC.IP_addressing.dual-stack-limitations)

Untuk tutorial yang menunjukkan cara membuat VPC dengan keduanya IPv4 dan IPv6 alamat yang dapat Anda gunakan untuk skenario Amazon yang umum, lihat. [Tutorial: Membuat VPC untuk digunakan dengan klaster DB (mode tumpukan ganda)](CHAP_Tutorials.CreateVPCDualStack.md) 

#### Mode tumpukan ganda dan grup subnet DB
<a name="USER_VPC.IP_addressing.dual-stack-db-subnet-groups"></a>

Untuk menggunakan mode dual-stack, pastikan bahwa setiap subnet dalam grup subnet DB yang Anda kaitkan dengan cluster DB memiliki blok IPv6 CIDR yang terkait dengannya. Anda dapat membuat grup subnet DB baru atau memodifikasi grup subnet DB yang ada untuk memenuhi persyaratan ini. Setelah klaster DB berada dalam mode tumpukan ganda, klien dapat terhubung secara normal. Pastikan firewall keamanan klien dan grup keamanan instans RDS DB dikonfigurasi secara akurat untuk memungkinkan lalu lintas berakhir. IPv6 Untuk terhubung, klien menggunakan titik akhir instans primer klaster DB. Aplikasi klien dapat menentukan protokol mana yang lebih disukai saat terhubung ke basis data. Dalam mode dual-stack, cluster DB mendeteksi protokol jaringan pilihan klien, baik IPv4 atau IPv6, dan menggunakan protokol itu untuk koneksi.

Jika grup subnet DB berhenti mendukung mode tumpukan ganda karena penghapusan subnet atau pembatalan pengaitan CIDR, ada risiko status jaringan menjadi tidak kompatibel untuk instans DB yang terkait dengan grup subnet DB. Selain itu, Anda tidak dapat menggunakan grup subnet DB saat membuat klaster DB mode tumpukan ganda baru.

Untuk menentukan apakah grup subnet DB mendukung mode dual-stack dengan menggunakan Konsol Manajemen AWS, lihat **tipe Jaringan** pada halaman detail grup subnet DB. Untuk menentukan apakah grup subnet DB mendukung mode dual-stack dengan menggunakan AWS CLI, jalankan [describe-db-subnet-groups](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-subnet-groups.html)perintah dan lihat `SupportedNetworkTypes` di output.

Replika baca dianggap sebagai instans DB independen dan dapat memiliki jenis jaringan yang berbeda dengan instans DB primer. Jika Anda mengubah jenis jaringan instans DB primer replika baca, replika baca ini tidak akan terpengaruh. Saat memulihkan instans DB, Anda dapat memulihkannya ke jenis jaringan apa pun yang didukung.

#### Menggunakan instans DB mode tumpukan ganda
<a name="USER_VPC.IP_addressing.dual-stack-working-with"></a>

Saat membuat atau memodifikasi cluster DB, Anda dapat menentukan mode dual-stack untuk memungkinkan sumber daya Anda berkomunikasi dengan cluster DB Anda melalui IPv4, IPv6, atau keduanya.

Bila Anda menggunakan Konsol Manajemen AWS untuk membuat atau memodifikasi instans DB, Anda dapat menentukan mode dual-stack di bagian **Jenis jaringan**. Gambar berikut menampilkan bagian **Jenis jaringan** di konsol.

![\[Bagian tipe jaringan di konsol dengan mode Dual-stack dipilih.\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/AuroraUserGuide/images/dual-stack-mode.png)


Saat Anda menggunakan AWS CLI untuk membuat atau memodifikasi cluster DB, atur `--network-type` opsi `DUAL` untuk menggunakan mode dual-stack. Saat Anda menggunakan API RDS untuk membuat atau memodifikasi klaster DB, atur parameter `NetworkType` ke `DUAL` untuk menggunakan mode tumpukan ganda. Saat Anda memodifikasi jenis jaringan instans DB, waktu henti mungkin akan terjadi. Jika mode tumpukan ganda tidak didukung oleh versi mesin DB yang ditentukan atau grup subnet DB, kesalahan `NetworkTypeNotSupported` akan ditampilkan.

Untuk informasi selengkapnya tentang cara membuat klaster DB, lihat [Membuat klaster DB Amazon Aurora](Aurora.CreateInstance.md). Untuk informasi selengkapnya tentang cara mengubah klaster DB, lihat [Memodifikasi klaster DB Amazon Aurora](Aurora.Modifying.md).

Untuk menentukan apakah klaster DB berada dalam mode tumpukan ganda dengan menggunakan konsol, lihat **Jenis jaringan** pada tab **Konektivitas & keamanan** untuk klaster DB.

#### Memodifikasi cluster DB IPv4 -only untuk menggunakan mode dual-stack
<a name="USER_VPC.IP_addressing.dual-stack-modifying-ipv4"></a>

Anda dapat memodifikasi cluster DB IPv4 -only untuk menggunakan mode dual-stack. Untuk melakukannya, ubah jenis jaringan klaster DB. Modifikasi dapat mengakibatkan waktu henti.

Sebaiknya Anda mengubah jenis jaringan klaster DB Amazon Aurora selama periode pemeliharaan. Saat ini, pengaturan jenis jaringan instans baru ke mode tumpukan ganda tidak didukung. Anda dapat mengatur jenis jaringan secara manual dengan menggunakan perintah `modify-db-cluster`. 

Sebelum memodifikasi klaster DB untuk menggunakan mode tumpukan ganda, pastikan grup subnet DB-nya mendukung mode tumpukan ganda. Jika grup subnet DB yang terkait dengan klaster DB tidak mendukung mode tumpukan ganda, tentukan grup subnet DB yang berbeda yang mendukungnya saat Anda memodifikasi klaster DB. Modifikasi terhadap grup subnet DB dari klaster DB dapat menyebabkan waktu henti.

Jika Anda memodifikasi grup subnet DB dari klaster DB sebelum mengubah klaster DB untuk menggunakan mode tumpukan ganda, pastikan grup subnet DB tersebut valid untuk klaster DB sebelum dan sesudah perubahan. 

Kami menyarankan Anda menjalankan [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html)API hanya dengan `--network-type` parameter dengan nilai `DUAL` untuk mengubah jaringan cluster Amazon Aurora ke mode dual-stack. Penambahan parameter lain bersama dengan parameter `--network-type` dalam panggilan API yang sama dapat mengakibatkan waktu henti.

Jika Anda tidak dapat terhubung ke cluster DB setelah perubahan, pastikan firewall keamanan klien dan database serta tabel rute dikonfigurasi secara akurat untuk memungkinkan lalu lintas ke database pada jaringan yang dipilih (baik IPv4 atau IPv6). Anda mungkin juga perlu memodifikasi parameter sistem operasi, pustaka, atau driver untuk terhubung menggunakan IPv6 alamat.

**Untuk memodifikasi cluster DB IPv4 -only agar menggunakan mode dual-stack**

1. Ubah grup subnet DB untuk mendukung mode tumpukan ganda, atau buat grup subnet DB yang mendukung mode tumpukan ganda:

   1. Kaitkan blok IPv6 CIDR dengan VPC Anda.

      Untuk petunjuknya, lihat [Menambahkan blok IPv6 CIDR ke VPC Anda](https://docs.aws.amazon.com/vpc/latest/userguide/modify-vpcs.html#vpc-associate-ipv6-cidr) di Panduan Pengguna *Amazon VPC*.

   1. Pasang blok IPv6 CIDR ke semua subnet di grup subnet DB Anda.

      Untuk petunjuk, lihat [Menambahkan blok IPv6 CIDR ke subnet Anda di Panduan](https://docs.aws.amazon.com/vpc/latest/userguide/modify-subnets.html#subnet-associate-ipv6-cidr) Pengguna Amazon *VPC*.

   1. Konfirmasikan bahwa grup subnet DB mendukung mode tumpukan ganda.

      Jika Anda menggunakan Konsol Manajemen AWS, pilih grup subnet DB, dan pastikan bahwa nilai **tipe jaringan yang didukung** adalah **Dual, IPv4**.

      Jika Anda menggunakan AWS CLI, jalankan [describe-db-subnet-groups](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-subnet-groups.html)perintah, dan pastikan bahwa `SupportedNetworkType` nilai untuk instans DB adalah`Dual, IPv4`.

1. Ubah grup keamanan yang terkait dengan cluster DB untuk memungkinkan IPv6 koneksi ke database, atau buat grup keamanan baru yang memungkinkan IPv6 koneksi.

   Untuk mendapatkan petunjuk, lihat [Aturan grup keamanan](https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html) dalam *Panduan Pengguna Amazon VPC*.

1. Modifikasi klaster DB untuk mendukung mode tumpukan ganda. Untuk melakukannya, tetapkan **Jenis jaringan** ke **Mode tumpukan ganda**.

   Jika Anda menggunakan konsol, pastikan bahwa pengaturan berikut sudah benar:
   + **Jenis jaringan** – **Mode tumpukan ganda**  
![\[Bagian tipe jaringan di konsol dengan mode Dual-stack dipilih.\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/AuroraUserGuide/images/dual-stack-mode.png)
   + **Grup subnet DB** – Grup subnet DB yang telah Anda konfigurasikan pada langkah sebelumnya
   + **Grup keamanan** — Grup keamanan yang telah Anda konfigurasikan pada langkah sebelumnya

   Jika Anda menggunakan AWS CLI, pastikan bahwa pengaturan berikut sudah benar:
   + `--network-type` – `dual`
   + `--db-subnet-group-name` – Grup subnet DB yang Anda konfigurasikan pada langkah sebelumnya
   + `--vpc-security-group-ids` – Grup keamanan VPC yang Anda konfigurasikan pada langkah sebelumnya

   Sebagai contoh: 

   ```
   aws rds modify-db-cluster --db-cluster-identifier my-cluster --network-type "DUAL"
   ```

1. Konfirmasikan bahwa klaster DB mendukung mode tumpukan ganda.

   Jika Anda menggunakan konsol, pilih tab **Konfigurasi** untuk klaster DB. Pada tab tersebut, pastikan nilai **Jenis jaringan** adalah **Mode tumpukan ganda**.

   Jika Anda menggunakan AWS CLI, jalankan [describe-db-clusters](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clusters.html)perintah, dan pastikan bahwa `NetworkType` nilai untuk cluster DB adalah`dual`.

   Jalankan `dig` perintah pada titik akhir instance DB penulis untuk mengidentifikasi IPv6 alamat yang terkait dengannya.

   ```
   dig db-instance-endpoint AAAA
   ```

   Gunakan titik akhir instans DB penulis, bukan IPv6 alamatnya, untuk terhubung ke cluster DB.

#### Ketersediaan klaster DB jaringan tumpukan ganda
<a name="USER_VPC.IP_addressing.dual-stack-availability"></a>

Cluster DB jaringan dual-stack tersedia di semua Wilayah AWS kecuali untuk yang berikut:
+ Asia Pasifik (Hyderabad)
+ Asia Pasifik (Malaysia)
+ Asia Pacific (Melbourne)
+ Asia Pasifik (Thailand)
+ Kanada Barat (Calgary)
+ Eropa (Spanyol)
+ Europe (Zurich)
+ Israel (Tel Aviv)
+ Meksiko (Tengah)
+ Timur Tengah (UAE)

Versi mesin DB berikut mendukung cluster DB jaringan dual-stack:
+ Versi Aurora MySQL: 
  + 3.02 dan versi 3 yang lebih tinggi
  + 2.09.1 dan versi 2 yang lebih tinggi

  Untuk informasi selengkapnya tentang versi Aurora MySQL, lihat [https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/Welcome.html](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/Welcome.html).
+ Versi Aurora PostgreSQL:
  + 15.2 dan semua versi yang lebih tinggi
  + 14.3 dan versi 14 yang lebih tinggi
  + 13.7 dan versi 13 yang lebih tinggi

  Untuk informasi selengkapnya tentang versi Aurora PostgreSQL, lihat [https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/Welcome.html](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/Welcome.html).

#### Batasan untuk klaster DB jaringan tumpukan ganda
<a name="USER_VPC.IP_addressing.dual-stack-limitations"></a>

Batasan berikut berlaku untuk klaster DB jaringan tumpukan ganda:
+ Cluster DB tidak dapat menggunakan IPv6 protokol secara eksklusif. Mereka dapat menggunakan IPv4 secara eksklusif, atau mereka dapat menggunakan IPv6 protokol IPv4 and (mode dual-stack).
+ Amazon RDS tidak mendukung IPv6 subnet asli.
+ Anda tidak dapat menggunakan Proksi RDS dengan klaster DB mode tumpukan ganda.

## Menyembunyikan klaster DB dalam VPC dari internet
<a name="USER_VPC.Hiding"></a>

Salah satu skenario Amazon Aurora yang umum adalah memiliki VPC di mana Anda memiliki instans Amazon EC2 dengan aplikasi web yang menghadap publik dan cluster instans dengan database yang tidak dapat diakses publik. Misalnya, Anda dapat membuat VPC yang memiliki subnet publik dan subnet privat. Instans EC2 yang berfungsi sebagai server web dapat digunakan di subnet publik. Klaster DB di-deploy di subnet privat. Dalam deployment tersebut, hanya server web yang memiliki akses ke klaster DB. Untuk ilustrasi skenario ini, lihat [Kluster DB di VPC yang diakses oleh instans Amazon EC2 di VPC yang sama](USER_VPC.Scenarios.md#USER_VPC.Scenario1). 

Saat Anda meluncurkan klaster DB di dalam VPC, klaster DB memiliki alamat IP privat untuk lalu lintas di dalam VPC. Alamat IP privat ini tidak dapat diakses publik. Anda dapat menggunakan opsi **Akses publik** untuk menetapkan apakah klaster DB juga memiliki alamat IP publik selain alamat IP privat. Jika klaster DB ditetapkan sebagai dapat diakses publik, titik akhir DNS-nya akan diresolusi ke alamat IP privat dari dalam VPC. Titik akhir tersebut akan diresolusi ke alamat IP publik dari luar VPC. Akses ke klaster DB pada dasarnya dikendalikan oleh grup keamanan yang menggunakannya. Akses publik tersebut tidak diizinkan jika grup keamanan yang ditetapkan ke klaster DB tidak menyertakan aturan masuk yang mengizinkannya. Selain itu, agar klaster DB dapat diakses publik, subnet dalam grup subnet DB-nya harus memiliki gateway internet. Untuk informasi selengkapnya, lihat [Tidak dapat terhubung ke instans DB Amazon RDS](CHAP_Troubleshooting.md#CHAP_Troubleshooting.Connecting)

Anda dapat memodifikasi klaster DB untuk mengaktifkan atau menonaktifkan aksesibilitas publik dengan memodifikasi opsi **Akses publik**. Ilustrasi berikut ini menunjukkan opsi **Akses publik** di bagian **Konfigurasi konektivitas tambahan**. Untuk mengatur opsi, buka bagian **Konfigurasi konektivitas tambahan** di bagian **Konektivitas**. 

![\[Tetapkan opsi akses publik database Anda di bagian Konfigurasi konektivitas tambahan ke No.\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/AuroraUserGuide/images/VPC-example4.png)


Untuk informasi tentang cara memodifikasi instans DB untuk menetapkan opsi **Akses publik**, lihat [Memodifikasi instans DB dalam klaster DB](Aurora.Modifying.md#Aurora.Modifying.Instance).

## Membuat klaster DB dalam VPC
<a name="USER_VPC.InstanceInVPC"></a>

Prosedur berikut membantu Anda membuat klaster DB dalam VPC. Untuk menggunakan VPC default, Anda dapat memulai dengan langkah 2, dan menggunakan VPC dan grup subnet DB yang sudah dibuat untuk Anda. Jika Anda ingin membuat VPC tambahan, Anda dapat membuat VPC baru. 

**catatan**  
Jika Anda ingin klaster DB dalam VPC dapat diakses publik, Anda harus memperbarui informasi DNS untuk VPC dengan mengaktifkan *nama host DNS* dan *resolusi DNS* atribut VPC. Untuk informasi tentang cara memperbarui informasi DNS untuk instans VPC, lihat [Memperbarui dukungan DNS untuk VPC Anda](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html). 

Ikuti langkah-langkah ini untuk membuat instans DB dalam VPC:
+ [Langkah 1: Buat VPC](#USER_VPC.CreatingVPC) 
+  [Langkah 2: Buat grup subnet DB](#USER_VPC.CreateDBSubnetGroup)
+  [Langkah 3: Buat grup keamanan VPC](#USER_VPC.CreateVPCSecurityGroup)
+  [Langkah 4: Buat instans DB dalam VPC](#USER_VPC.CreateDBInstanceInVPC) 

### Langkah 1: Buat VPC
<a name="USER_VPC.CreatingVPC"></a>

Buat VPC dengan subnet di setidaknya dua Zona Ketersediaan. Anda menggunakan subnet ini ketika membuat grup subnet DB. Jika Anda memiliki VPC default, subnet secara otomatis dibuat untuk Anda dalam setiap Zona Ketersediaan di Wilayah AWS.

Untuk informasi selengkapnya, lihat [Membuat VPC dengan subnet publik dan privat](CHAP_Tutorials.WebServerDB.CreateVPC.md#CHAP_Tutorials.WebServerDB.CreateVPC.VPCAndSubnets), atau lihat [Membuat VPC](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#Create-VPC) dalam *Panduan Pengguna Amazon VPC*. 

### Langkah 2: Buat grup subnet DB
<a name="USER_VPC.CreateDBSubnetGroup"></a>

Grup subnet DB adalah kumpulan subnet (biasanya privat) yang Anda buat untuk VPC lalu ditetapkan untuk klaster DB Anda. Grup subnet DB memungkinkan Anda menentukan VPC tertentu saat Anda membuat cluster instans menggunakan AWS CLI API atau RDS. Jika menggunakan konsol, Anda dapat memilih VPC dan subnet yang ingin Anda gunakan. Setiap subnet DB harus memiliki setidaknya satu subnet di setidaknya dua Zona Ketersediaan dalam Wilayah AWS. Sebagai praktik terbaik, setiap grup subnet DB harus memiliki minimal satu subnet untuk setiap Zona Ketersediaan di Wilayah AWS.

Agar klaster DB dapat diakses publik, subnet dalam grup subnet DB harus memiliki gateway internet. Untuk informasi selengkapnya tentang gateway internet untuk subnet, lihat [Terhubung ke internet menggunakan gateway internet](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html) dalam *Panduan Pengguna Amazon VPC*. 

Saat Anda membuat klaster DB dalam VPC, Anda dapat memilih grup subnet DB. Amazon Aurora memilih subnet dan alamat IP dalam subnet tersebut untuk dikaitkan dengan klaster DB Anda. Jika tidak ada grup subnet DB, Amazon Aurora membuat grup subnet default saat Anda membuat klaster DB. Amazon Aurora membuat dan mengaitkan Antarmuka Jaringan Elastis ke klaster DB Anda dengan alamat IP tersebut. Klaster DB menggunakan Zona Ketersediaan yang berisi subnet.

Pada langkah ini, Anda membuat grup subnet DB dan menambahkan subnet yang Anda buat untuk VPC Anda.

**Untuk membuat grup subnet DB**

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

1. Di panel navigasi, pilih **Grup subnet**.

1. Pilih **Buat Grup Subnet DB**.

1. Untuk **Nama**, ketik nama grup subnet DB Anda.

1. Untuk **Deskripsi**, ketik deskripsi untuk grup subnet DB Anda. 

1. Untuk **VPC**, pilih VPC default atau VPC yang Anda buat.

1. Di bagian **Tambahkan subnet**, pilih Zona Ketersediaan yang mencakup subnet dari **Zona Ketersediaan**, lalu pilih subnet dari **Subnet**.  
![\[Buat grup subnet DB.\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/AuroraUserGuide/images/RDSVPC101.png)

1. Pilih **Buat**. 

   Grup subnet DB baru Anda muncul dalam daftar grup subnet DB di konsol RDS. Anda dapat memilih grup subnet DB untuk melihat detail, termasuk semua subnet yang dikaitkan dengan grup, dalam panel detail di bagian bawah jendela. 

### Langkah 3: Buat grup keamanan VPC
<a name="USER_VPC.CreateVPCSecurityGroup"></a>

Sebelum membuat klaster DB, Anda dapat membuat grup keamanan VPC untuk dikaitkan dengan klaster DB. Jika Anda tidak membuat grup keamanan VPC, Anda dapat menggunakan grup keamanan default saat membuat klaster DB. Untuk petunjuk cara membuat grup keamanan untuk klaster DB, lihat [Membuat grup keamanan VPC untuk klaster DB privat](CHAP_Tutorials.WebServerDB.CreateVPC.md#CHAP_Tutorials.WebServerDB.CreateVPC.SecurityGroupDB), atau lihat [Mengontrol lalu lintas ke sumber daya menggunakan grup keamanan](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html) dalam *Panduan Pengguna Amazon VPC*. 

### Langkah 4: Buat instans DB dalam VPC
<a name="USER_VPC.CreateDBInstanceInVPC"></a>

Pada langkah ini, Anda membuat klaster DB dan menggunakan nama VPC, grup subnet DB, dan grup keamanan VPC yang telah Anda buat pada langkah sebelumnya.

**catatan**  
Jika ingin klaster DB dalam VPC dapat diakses publik, Anda harus mengaktifkan *Nama host DNS* dan *Resolusi DNS* atribut VPC. Untuk informasi selengkapnya, lihat [Atribut DNS untuk VPC Anda](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html) dalam *Panduan Pengguna Amazon VPC*.

Untuk detail tentang cara membuat klaster DB, lihat [Membuat klaster DB Amazon Aurora](Aurora.CreateInstance.md).

Saat diminta di bagian **Konektivitas**, masukkan nama VPC, grup subnet DB, dan grup keamanan VPC.

**catatan**  
Pembaruan saat ini VPCs tidak didukung untuk klaster Aurora DB.

# Skenario untuk mengakses klaster DB di VPC
<a name="USER_VPC.Scenarios"></a>

Amazon Aurora mendukung skenario berikut untuk mengakses klaster DB di VPC:
+ [Instans Amazon EC2 dalam VPC yang sama](#USER_VPC.Scenario1)
+ [Instans EC2 dalam VPC yang berbeda](#USER_VPC.Scenario3)
+ [Aplikasi klien melalui internet](#USER_VPC.Scenario4)
+ [Jaringan privat](#USER_VPC.NotPublic)

## Kluster DB di VPC yang diakses oleh instans Amazon EC2 di VPC yang sama
<a name="USER_VPC.Scenario1"></a>

Penggunaan umum cluster DB di VPC adalah untuk berbagi data dengan server aplikasi yang berjalan di instans Amazon EC2 di VPC yang sama.

Diagram berikut menunjukkan skenario ini.

![\[Skenario VPC dengan server web publik dan database pribadi.\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/AuroraUserGuide/images/con-VPC-sec-grp-aurora.png)


Cara paling sederhana untuk mengelola akses antara instans EC2 dan klaster DB di VPC yang sama adalah dengan melakukan tindakan berikut:
+ Buat grup keamanan VPC untuk instans DB Anda. Grup keamanan ini dapat digunakan untuk membatasi akses ke klaster DB. Misalnya, Anda dapat membuat aturan kustom untuk grup keamanan ini. Hal ini dapat mengizinkan akses TCP menggunakan port yang Anda tetapkan ke klaster DB saat Anda membuatnya dan alamat IP yang Anda gunakan untuk mengakses klaster DB untuk pengembangan atau tujuan lainnya.
+ Buat grup keamanan VPC untuk memasukkan instans EC2 (server web dan klien) Anda. Grup keamanan ini dapat, jika diperlukan, mengizinkan akses ke instans EC2 dari internet dengan menggunakan tabel perutean VPC. Sebagai contoh, Anda dapat menetapkan aturan pada grup keamanan ini untuk mengizinkan akses TCP ke instans EC2 melalui port 22.
+ Buat aturan kustom di grup keamanan untuk instans DB Anda yang memungkinkan koneksi dari grup keamanan yang Anda buat untuk instans EC2. Aturan ini dapat memungkinkan anggota grup keamanan untuk mengakses instans DB.

Ada subnet publik dan privat tambahan di Zona Ketersediaan terpisah. Grup subnet DB RDS membutuhkan subnet dalam setidaknya dua Zona Ketersediaan. Subnet tambahan memudahkan Anda untuk beralih ke deployment instans DB Multi-AZ di masa mendatang.

Untuk tutorial yang menunjukkan cara membuat VPC dengan subnet publik dan privat untuk skenario ini, lihat [Tutorial: Buat VPC untuk digunakan dengan cluster DB (hanya) IPv4](CHAP_Tutorials.WebServerDB.CreateVPC.md). 

**Tip**  
Anda dapat menyiapkan konektivitas jaringan antara instans Amazon EC2 dan klaster DB secara otomatis saat membuat klaster DB. Untuk informasi selengkapnya, lihat [Konfigurasikan konektivitas jaringan otomatis dengan instans EC2](Aurora.CreateInstance.md#Aurora.CreateInstance.Prerequisites.VPC.Automatic) .

**Untuk membuat aturan dalam grup keamanan VPC yang memungkinkan koneksi dari grup keamanan lain, lakukan hal berikut:**

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

1.  Pada panel navigasi, pilih **Grup keamanan**.

1. Pilih atau buat grup keamanan yang ingin Anda berikan aksesnya ke anggota grup keamanan lain. Dalam skenario sebelumnya, ini adalah grup keamanan yang Anda gunakan untuk klaster DB Anda. Pilih tab **Aturan masuk**, lalu pilih **Edit aturan masuk**.

1. Di halaman **Edit aturan masuk**, pilih **Tambahkan aturan**.

1. Untuk **Jenis**, pilih entri yang sesuai dengan port yang Anda gunakan saat membuat klaster DB Anda, seperti **MySQL/Aurora**.

1. Di kotak **Sumber**, mulai ketikkan ID dari grup keamanan, sehingga akan menampilkan daftar grup keamanan yang sesuai. Pilih grup keamanan dengan anggota yang ingin diberi akses ke sumber daya yang dilindungi oleh grup keamanan ini. Dalam skenario sebelumnya, ini adalah grup keamanan yang Anda gunakan untuk instans EC2 Anda.

1. Jika perlu, ulangi langkah-langkah untuk protokol TCP dengan membuat aturan **Semua TCP** sebagai **Jenis** dan grup keamanan Anda di kotak **Sumber**. Jika Anda ingin menggunakan protokol UDP, buat aturan dengan **Semua UDP** sebagai **Jenis** dan grup keamanan Anda di **Sumber**.

1. Pilih **Simpan aturan**.

Layar berikut menunjukkan aturan masuk dengan grup keamanan sebagai sumbernya.

![\[Menambahkan grup keamanan ke aturan grup keamanan lain.\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/AuroraUserGuide/images/con-vpc-add-sg-rule.png)


Untuk informasi selengkapnya tentang menghubungkan ke instans DB dari instans EC2 Anda, lihat [Menghubungkan ke klaster DB Amazon Aurora](Aurora.Connecting.md).

## Klaster DB dalam VPC yang diakses oleh instans EC2 dalam VPC yang sama
<a name="USER_VPC.Scenario3"></a>

Jika klaster DB Anda ada dalam VPC yang berbeda dari instans EC2 yang Anda gunakan untuk mengaksesnya, Anda dapat menggunakan peering VPC untuk mengakses klaster DB.

Diagram berikut menunjukkan skenario ini. 

![\[Instans DB dalam VPC yang diakses oleh instans Amazon EC2 di VPC yang berbeda.\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/AuroraUserGuide/images/RDSVPC2EC2VPC-aurora.png)


Koneksi peering VPC adalah koneksi jaringan antara dua VPCs yang memungkinkan Anda untuk merutekan lalu lintas di antara mereka menggunakan alamat IP pribadi. Sumber daya dalam VPC mana pun dapat berkomunikasi satu sama lain seolah-olahnya ada di jaringan yang sama. Anda dapat membuat koneksi peering VPC antara Anda sendiri VPCs, dengan VPC di AWS akun lain, atau dengan VPC di akun lain. Wilayah AWS Untuk mempelajari selengkapnya tentang peering VPC, lihat [Peering VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-peering.html) dalam *Panduan Pengguna Amazon Virtual Private Cloud*.

## Klaster DB dalam VPC yang diakses oleh aplikasi klien melalui internet
<a name="USER_VPC.Scenario4"></a>

Untuk mengakses klaster DB di VPC dari aplikasi klien melalui internet, Anda dapat mengonfigurasi VPC dengan subnet publik tunggal, dan gateway internet untuk memungkinkan komunikasi melalui internet.

Diagram berikut menunjukkan skenario ini.

![\[Sebuah cluster DB dalam VPC diakses oleh aplikasi klien melalui internet.\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/AuroraUserGuide/images/GS-VPC-network-aurora.png)


Kami merekomendasikan konfigurasi berikut:

 
+ VPC ukuran /16 (misalnya CIDR: 10.0.0.0/16). Ukuran ini menyediakan 65.536 alamat IP privat.
+ Subnet dengan ukuran /24 (misalnya CIDR: 10.0.0.0/24). Ukuran ini menyediakan 256 alamat IP privat.
+ Klaster DB Amazon Aurora yang dikaitkan dengan VPC dan subnet. Amazon RDS menetapkan alamat IP dalam subnet ke klaster DB Anda.
+ Gateway internet yang menghubungkan VPC ke internet dan ke produk AWS lainnya.
+ Grup keamanan yang terkait dengan klaster DB. Aturan masuk grup keamanan memungkinkan aplikasi klien Anda mengakses klaster DB Anda.

Untuk informasi tentang cara membuat klaster DB di VPC, lihat [Membuat klaster DB dalam VPC](USER_VPC.WorkingWithRDSInstanceinaVPC.md#USER_VPC.InstanceInVPC).

## Klaster DB dalam VPC yang diakses oleh jaringan privat
<a name="USER_VPC.NotPublic"></a>

Jika klaster DB Anda tidak dapat diakses secara publik, Anda memiliki opsi berikut untuk mengaksesnya dari jaringan privat:
+ Koneksi AWS Site-to-Site VPN. Untuk informasi selengkapnya, lihat [Apa itu AWS Site-to-Site VPN?](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html)
+  Direct Connect Koneksi. Untuk informasi lebih lanjut, lihat [Apa itu Direct Connect?](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html)
+  AWS Client VPN Koneksi. Untuk informasi selengkapnya, lihat [Apa itu AWS Client VPN?](https://docs.aws.amazon.com//vpn/latest/clientvpn-admin/what-is.html)

Diagram berikut menunjukkan skenario dengan koneksi AWS Site-to-Site VPN. 

![\[DB cluster dalam VPC yang diakses oleh jaringan pribadi.\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/AuroraUserGuide/images/site-to-site-vpn-connection-aurora.png)


Lihat informasi yang lebih lengkap di [Privasi lalu lintas antarjaringan](inter-network-traffic-privacy.md).

# Tutorial: Buat VPC untuk digunakan dengan cluster DB (hanya) IPv4
<a name="CHAP_Tutorials.WebServerDB.CreateVPC"></a>

Skenario umum mencakup klaster DB cloud privat virtual (VPC) berdasarkan layanan Amazon VPC. VPC ini berbagi data dengan server web yang berjalan di VPC yang sama. Dalam tutorial ini, Anda membuat VPC untuk skenario ini.

Diagram berikut menunjukkan skenario ini. Untuk informasi tentang skenario lain, lihat [Skenario untuk mengakses klaster DB di VPC](USER_VPC.Scenarios.md). 

![\[Skenario VPC Tunggal\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/AuroraUserGuide/images/con-VPC-sec-grp-aurora.png)


Klaster DB Anda harus tersedia hanya untuk server web Anda, dan bukan untuk internet publik. Dengan demikian, Anda membuat VPC dengan subnet publik maupun privat. Server web di-host di subnet publik, sehingga dapat menjangkau internet publik. Klaster DB di-host di subnet privat. Server web dapat terhubung ke klaster DB karena di-host dalam VPC yang sama. Tetapi klaster DB tidak tersedia untuk internet publik, sehingga memberikan keamanan yang lebih baik.

Tutorial ini mengonfigurasi subnet publik dan privat tambahan di Zona Ketersediaan terpisah. Subnet ini tidak digunakan oleh tutorial. Grup subnet DB RDS membutuhkan subnet, setidaknya di dua Zona Ketersediaan. Subnet tambahan memudahkan untuk mengonfigurasi lebih dari satu instans DB Aurora.

Tutorial ini menjelaskan konfigurasi VPC untuk klaster DB Amazon Aurora. Untuk tutorial yang menunjukkan cara membuat server web untuk skenario VPC ini, lihat [Tutorial: Membuat server web dan klaster DB Amazon Aurora](TUT_WebAppWithRDS.md). Untuk informasi selengkapnya tentang Amazon VPC, lihat [Panduan Memulai Amazon VPC](https://docs.aws.amazon.com/AmazonVPC/latest/GettingStartedGuide/) dan [Panduan Pengguna Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/). 

**Tip**  
Anda dapat mengatur konektivitas jaringan antara instans Amazon EC2 dan klaster DB secara otomatis saat membuat klaster DB. Konfigurasi jaringan mirip dengan yang dijelaskan dalam tutorial ini. Untuk informasi selengkapnya, lihat [Konfigurasikan konektivitas jaringan otomatis dengan instans EC2](Aurora.CreateInstance.md#Aurora.CreateInstance.Prerequisites.VPC.Automatic).

## Membuat VPC dengan subnet publik dan privat
<a name="CHAP_Tutorials.WebServerDB.CreateVPC.VPCAndSubnets"></a>

Gunakan prosedur berikut untuk membuat VPC dengan subnet publik maupun privat. 

**Untuk membuat VPC dan subnet**

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

1. Di pojok kanan atas Konsol Manajemen AWS, pilih Wilayah untuk membuat VPC Anda. Contoh ini menggunakan Wilayah AS Barat (Oregon).

1. Di sudut kiri atas, pilih **Dasbor VPC **. Untuk mulai membuat VPC, pilih **Buat VPC**.

1. Agar **Sumber daya dapat dibuat** di bagian **pengaturan VPC**, pilih **VPC dan lainnya**.

1. Untuk **pengaturan VPC**, atur nilai-nilai ini:
   + **Pembuatan otomatis tag nama** – **tutorial**
   + **IPv4 Blok CIDR** — **10.0.0.0/16**
   + IPv6 Blok **CIDR - Tidak ada blok IPv6 ** **CIDR**
   + **Penghunian** – **Default**
   + **Jumlah Availability Zone (AZs)** — **2**
   + **Kustomisasi AZs** - Pertahankan nilai default.
   + **Jumlah subnet publik** – **2**
   + **Jumlah subnet privat** – **2**
   + **Sesuaikan subnet blok CIDR** – Pertahankan nilai default.
   + **Gateway NAT (\$1)** – **Tidak ada**
   + **Titik akhir VPC** – **Tidak ada**
   + **Opsi DNS** – Pertahankan nilai default.

1. Pilih **Buat VPC**.

## Buat grup keamanan VPC untuk server web publik
<a name="CHAP_Tutorials.WebServerDB.CreateVPC.SecurityGroupEC2"></a>

Berikutnya, Anda membuat grup keamanan untuk akses publik. Untuk terhubung ke instans EC2 publik di VPC Anda, tambahkan aturan masuk ke grup keamanan VPC Anda. Ini memungkinkan lalu lintas untuk terhubung dari internet.

**Untuk membuat grup keamanan VPC**

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

1. Pilih **Dasbor VPC**, pilih **Grup Keamanan**, lalu pilih **Buat grup keamanan**. 

1. Di halaman **Buat grup keamanan**, atur nilai ini: 
   + **Nama grup keamanan:** **tutorial-securitygroup**
   + **Deskripsi:** **Tutorial Security Group**
   + **VPC:** Pilih VPC yang Anda buat sebelumnya, misalnya: vpc- (**tutorial-vpc**) *identifier* 

1. Tambahkan aturan masuk ke grup keamanan.

   1. Tentukan alamat IP yang akan digunakan untuk terhubung ke instans EC2 di VPC Anda menggunakan Secure Shell (SSH). Untuk menentukan alamat IP publik Anda, di jendela atau tab browser yang berbeda, Anda dapat menggunakan layanan di [https://checkip.amazonaws.com](https://checkip.amazonaws.com). Contoh alamat IP adalah `203.0.113.25/32`.

      Dalam banyak kasus, Anda dapat menghubungkan melalui penyedia layanan Internet (ISP) atau dari belakang firewall Anda tanpa alamat IP statis. Jika demikian, temukan rentang alamat IP yang digunakan oleh komputer klien.
**Awas**  
Jika Anda menggunakan `0.0.0.0/0` untuk akses SSH, Anda memungkinkan semua alamat IP untuk mengakses instans publik Anda menggunakan SSH. Hal ini dapat diterima untuk waktu yang singkat di lingkungan pengujian, tetapi tidak aman untuk lingkungan produksi. Dalam produksi, Anda hanya dapat memberikan otorisasi pada alamat IP atau rentang alamat tertentu saja untuk mengakses instans-instans Anda menggunakan SSH.

   1. Di bagian **Aturan masuk**, pilih **Tambahkan aturan**.

   1. Atur nilai berikut untuk aturan masuk baru Anda yang akan mengizinkan akses SSH ke instans Amazon EC2 Anda. Tindakan ini memungkinkan Anda terhubung ke instans Amazon EC2 Anda untuk menginstal server web dan utilitas lainnya. Anda juga terhubung ke instans EC2 Anda untuk mengunggah konten untuk server web Anda. 
      + **Jenis:** **SSH**
      + **Sumber:** Rentang atau alamat IP dari Langkah a, misalnya: **203.0.113.25/32**.

   1. Pilih **Tambahkan aturan**.

   1. Atur nilai berikut untuk aturan masuk baru yang akan mengizinkan akses HTTP ke server web Anda.
      + **Jenis**: **HTTP**
      + **Sumber:** **0.0.0.0/0**

1. Untuk membuat grup keamanan, pilih **Buat grup keamanan**.

   Catat ID grup keamanan karena Anda membutuhkannya nanti dalam tutorial ini.

## Membuat grup keamanan VPC untuk klaster DB privat
<a name="CHAP_Tutorials.WebServerDB.CreateVPC.SecurityGroupDB"></a>

Agar klaster DB tetap privat, buat grup keamanan kedua untuk akses privat. Untuk terhubung ke cluster DB pribadi di VPC Anda, Anda menambahkan aturan masuk ke grup keamanan VPC Anda yang mengizinkan lalu lintas dari server web Anda saja.

**Untuk membuat grup keamanan VPC**

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

1. Pilih **Dasbor VPC**, pilih **Grup Keamanan**, lalu pilih **Buat grup keamanan**.

1. Di halaman **Buat grup keamanan**, atur nilai ini:
   + **Nama grup keamanan:** **tutorial-db-securitygroup**
   + **Deskripsi:** **Tutorial DB Instance Security Group**
   + **VPC:** Pilih VPC yang Anda buat sebelumnya, misalnya: vpc- (**tutorial-vpc**) *identifier*

1. Tambahkan aturan masuk ke grup keamanan.

   1. Di bagian **Aturan masuk**, pilih **Tambahkan aturan**.

   1. Atur nilai berikut untuk aturan masuk baru Anda yang akan mengizinkan lalu lintas MySQL di port 3306 dari instans Amazon EC2 Anda. Tindakan ini memungkinkan Anda terhubung dari server web Anda ke klaster DB Anda. Dengan demikian, Anda dapat menyimpan dan mengambil data dari aplikasi web Anda ke basis data Anda. 
      + **Jenis**: **MySQL/Aurora**
      + **Sumber:** Pengidentifikasi grup keamanan**tutorial-securitygroup** yang Anda buat sebelumnya dalam tutorial ini, misalnya: **sg-9edd5cfb**.

1. Untuk membuat grup keamanan, pilih **Buat grup keamanan**.

## Membuat grup subnet DB
<a name="CHAP_Tutorials.WebServerDB.CreateVPC.DBSubnetGroup"></a>

*Grup subnet DB* adalah kumpulan subnet yang Anda buat dalam VPC dan yang Anda tetapkan untuk klaster DB. Grup subnet DB memungkinkan Anda untuk menentukan VPC tertentu saat membuat klaster DB.

**Untuk membuat grup subnet DB**

1. Identifikasi subnet privat untuk basis data Anda di VPC.

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

   1. Pilih **Dasbor VPC**, lalu pilih **Subnet**.

   1. **Perhatikan subnet dari subnet bernama IDs **tutorial-subnet-private1-us-west-2a dan 2-us-west-2b**. tutorial-subnet-private**

      Anda memerlukan subnet IDs saat Anda membuat grup subnet DB Anda.

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

   Pastikan Anda terhubung ke konsol Amazon RDS, bukan konsol Amazon VPC.

1. Di panel navigasi, pilih **Grup subnet**.

1. Pilih **Buat grup subnet DB**.

1. Di halaman **Buat kelompok subnet DB**, atur nilai ini di **Detail grup subnet**:
   + **Nama:** **tutorial-db-subnet-group**
   + **Deskripsi:** **Tutorial DB Subnet Group**
   + **VPC: tutorial-vpc** **(vpc** -) *identifier* 

1. Di bagian **Tambahkan subnet**, pilih **Zona Ketersediaan** dan **Subnet**.

   Untuk tutorial ini, pilih **us-west-2a** dan **us-west-2b** untuk **Zona Ketersediaan**. Untuk **Subnet**, pilih subnet privat yang Anda identifikasi pada langkah sebelumnya.

1. Pilih **Buat**. 

   Grup subnet DB baru Anda muncul dalam daftar grup subnet DB di konsol RDS. Anda dapat memilih grup subnet DB untuk melihat detail di panel detail di bagian bawah jendela. Detail ini mencakup semua subnet yang terkait dengan grup.

**catatan**  
Jika Anda membuat VPC ini untuk menyelesaikan [Tutorial: Membuat server web dan klaster DB Amazon Aurora](TUT_WebAppWithRDS.md), buat klaster DB dengan mengikuti petunjuk di [Membuat klaster DB Amazon Aurora](CHAP_Tutorials.WebServerDB.CreateDBCluster.md).

## Menghapus VPC
<a name="CHAP_Tutorials.WebServerDB.CreateVPC.Delete"></a>

Setelah membuat VPC dan sumber daya lainnya untuk tutorial ini, Anda dapat menghapusnya jika tidak dibutuhkan lagi.

**catatan**  
Jika Anda menambahkan sumber daya di VPC yang Anda buat untuk tutorial ini, Anda mungkin perlu menghapusnya sebelum menghapus VPC. Misalnya, sumber daya ini mungkin menyertakan instans Amazon EC2 atau klasterDB Amazon RDS. Untuk informasi selengkapnya, lihat [Menghapus VPC](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#VPC_Deleting) di *Panduan Pengguna Amazon VPC*.

**Untuk menghapus VPC dan sumber daya terkait**

1. Hapus grup subnet DB.

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

   1. Di panel navigasi, pilih **Grup Subnet**.

   1. Pilih grup subnet DB yang ingin Anda hapus, seperti **tutorial-db-subnet-group**.

   1. Pilih **Hapus**, lalu pilih **Hapus** di jendela konfirmasi.

1. Catat ID VPC.

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

   1. Pilih **Dasbor VPC**, lalu pilih. **VPCs**

   1. Dalam daftar, identifikasi VPC yang Anda buat, seperti **tutorial-vpc**.

   1. Catat **ID VPC** dari VPC yang Anda buat. ID VPC diperlukan di langkah berikutnya.

1. Hapus grup keamanan.

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

   1. Pilih **Dasbor VPC**, lalu pilih **Grup Keamanan**.

   1. Pilih grup keamanan untuk instans Amazon RDS DB, seperti **tutorial-db-securitygroup**.

   1. Untuk **Tindakan**, pilih **Hapus grup keamanan**, lalu pilih **Hapus** di halaman konfirmasi.

   1. Di halaman **Grup Keamanan**, pilih grup keamanan untuk instans Amazon EC2, seperti **tutorial-securitygroup**.

   1. Untuk **Tindakan**, pilih **Hapus grup keamanan**, lalu pilih **Hapus** di halaman konfirmasi.

1. Hapus VPC.

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

   1. Pilih **Dasbor VPC**, lalu pilih. **VPCs**

   1. Pilih VPC yang ingin Anda hapus, seperti **tutorial-vpc**.

   1. Untuk **Tindakan**, pilih **Hapus VPC**.

      Halaman konfirmasi menunjukkan sumber daya lain yang terkait dengan VPC yang juga akan dihapus, termasuk subnet yang terkait dengannya.

   1. Di halaman konfirmasi, masukkan **delete**, lalu pilih **Hapus**.

# Tutorial: Membuat VPC untuk digunakan dengan klaster DB (mode tumpukan ganda)
<a name="CHAP_Tutorials.CreateVPCDualStack"></a>

Skenario umum mencakup klaster DB cloud privat virtual (VPC) berdasarkan layanan Amazon VPC. VPC ini membagikan data dengan instans Amazon EC2 publik yang dijalankan di VPC yang sama.

Dalam tutorial ini, Anda akan membuat VPC untuk skenario ini yang berfungsi dengan basis data yang berjalan dalam mode tumpukan ganda. Mode dual-stack untuk mengaktifkan koneksi melalui protokol IPv6 pengalamatan. Untuk informasi selengkapnya tentang penentuan alamat IP, lihat [Penentuan alamat IP Amazon Aurora](USER_VPC.WorkingWithRDSInstanceinaVPC.md#USER_VPC.IP_addressing).

Klaster jaringan tumpukan ganda didukung di sebagian besar wilayah. Untuk informasi selengkapnya, lihat [Ketersediaan klaster DB jaringan tumpukan ganda](USER_VPC.WorkingWithRDSInstanceinaVPC.md#USER_VPC.IP_addressing.dual-stack-availability). Untuk melihat batasan mode tumpukan ganda, lihat [Batasan untuk klaster DB jaringan tumpukan ganda](USER_VPC.WorkingWithRDSInstanceinaVPC.md#USER_VPC.IP_addressing.dual-stack-limitations).

Diagram berikut menunjukkan skenario ini.

 

![\[Skenario VPC untuk mode tumpukan ganda\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/AuroraUserGuide/images/con-VPC-sec-grp-dual-stack-aurora.png)


Untuk informasi tentang skenario lain, lihat [Skenario untuk mengakses klaster DB di VPC](USER_VPC.Scenarios.md).

Klaster DB Anda harus tersedia hanya untuk instans Amazon EC2 Anda, dan bukan untuk internet publik. Dengan demikian, Anda membuat VPC dengan subnet publik maupun privat. Instans Amazon EC2 di-hosting di subnet publik agar dapat menjangkau internet publik. Klaster DB di-host di subnet privat. Instans Amazon EC2 dapat terhubung ke klaster DB karena di-hosting dalam VPC yang sama. Namun, klaster DB tidak tersedia untuk internet publik, sehingga memberikan keamanan yang lebih besar.

Tutorial ini mengonfigurasi subnet publik dan privat tambahan di Zona Ketersediaan terpisah. Subnet ini tidak digunakan oleh tutorial. Grup subnet DB RDS membutuhkan subnet, setidaknya di dua Zona Ketersediaan. Subnet tambahan memudahkan untuk mengonfigurasi lebih dari satu instans DB Aurora.

Untuk membuat klaster DB yang menggunakan mode tumpukan ganda, tetapkan **Mode tumpukan ganda** untuk pengaturan **Jenis jaringan**. Anda juga dapat mengubah klaster DB dengan pengaturan yang sama. Untuk informasi selengkapnya tentang cara membuat klaster DB, lihat [Membuat klaster DB Amazon Aurora](Aurora.CreateInstance.md). Untuk informasi selengkapnya tentang cara memodifikasi klaster DB, lihat [Memodifikasi klaster DB Amazon Aurora](Aurora.Modifying.md).

Tutorial ini menjelaskan konfigurasi VPC untuk klaster DB Amazon Aurora. Untuk informasi selengkapnya tentang Amazon VPC, lihat [Panduan Pengguna Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/). 

## Membuat VPC dengan subnet publik dan privat
<a name="CHAP_Tutorials.CreateVPCDualStack.VPCAndSubnets"></a>

Gunakan prosedur berikut untuk membuat VPC dengan subnet publik maupun privat. 

**Untuk membuat VPC dan subnet**

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

1. Di sudut kanan atas Konsol Manajemen AWS, pilih Wilayah untuk membuat VPC Anda. Contoh ini menggunakan Wilayah US East (Ohio).

1. Di sudut kiri atas, pilih **Dasbor VPC **. Untuk mulai membuat VPC, pilih **Buat VPC**.

1. Agar **Sumber daya dapat dibuat** di bagian **pengaturan VPC**, pilih **VPC dan lainnya**.

1. Untuk **Pengaturan VPC** lainnya, atur nilai-nilai ini:
   + **Pembuatan otomatis tag nama** – **tutorial-dual-stack**
   + **IPv4 Blok CIDR** — **10.0.0.0/16**
   + IPv6 Blok **CIDR - Blok** CIDR yang **disediakan Amazon IPv6 **
   + **Penghunian** – **Default**
   + **Jumlah Availability Zone (AZs)** — **2**
   + **Kustomisasi AZs** - Pertahankan nilai default.
   + **Jumlah subnet publik** – **2**
   + **Jumlah subnet privat** – **2**
   + **Sesuaikan subnet blok CIDR** – Pertahankan nilai default.
   + **Gateway NAT (\$1)** – **Tidak ada**
   + **Gateway internet khusus egress** – **Tidak**
   + **Titik akhir VPC** – **Tidak ada**
   + **Opsi DNS** – Pertahankan nilai default.
**catatan**  
Amazon RDS membutuhkan setidaknya dua subnet di dua Zona Ketersediaan yang berbeda untuk mendukung deployment instans DB Multi-AZ. Tutorial ini membuat deployment AZ Tunggal, tetapi persyaratannya memudahkan konversi ke deployment instans DB Multi-AZ di masa mendatang.

1. Pilih **Buat VPC**.

## Membuat grup keamanan VPC untuk instans Amazon EC2 publik
<a name="CHAP_Tutorials.CreateVPCDualStack.SecurityGroupEC2"></a>

Berikutnya, Anda membuat grup keamanan untuk akses publik. Untuk terhubung ke instans EC2 publik di VPC Anda, tambahkan aturan masuk ke grup keamanan VPC Anda yang mengizinkan lalu lintas untuk terhubung dari internet.

**Untuk membuat grup keamanan VPC**

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

1. Pilih **Dasbor VPC**, pilih **Grup Keamanan**, lalu pilih **Buat grup keamanan**. 

1. Di halaman **Buat grup keamanan**, atur nilai ini:
   + **Nama grup keamanan:** **tutorial-dual-stack-securitygroup**
   + **Deskripsi:** **Tutorial Dual-Stack Security Group**
   + **VPC:** **Pilih VPC yang Anda buat sebelumnya, misalnya: vpc- () *identifier* tutorial-dual-stack-vpc** 

1. Tambahkan aturan masuk ke grup keamanan.

   1. Tentukan alamat IP yang akan digunakan untuk terhubung ke instans EC2 di VPC Anda menggunakan Secure Shell (SSH).

      Contoh alamat Internet Protocol versi 4 (IPv4) adalah`203.0.113.25/32`. Contoh rentang alamat Internet Protocol versi 6 (IPv6) adalah`2001:db8:1234:1a00::/64`.

      Dalam banyak kasus, Anda dapat menghubungkan melalui penyedia layanan Internet (ISP) atau dari belakang firewall Anda tanpa alamat IP statis. Jika demikian, temukan rentang alamat IP yang digunakan oleh komputer klien.
**Awas**  
Jika Anda menggunakan `0.0.0.0/0` untuk IPv4 atau `::0` untuk IPv6, Anda memungkinkan semua alamat IP untuk mengakses instans publik Anda menggunakan SSH. Pendekatan ini dapat diterima untuk waktu yang singkat di lingkungan pengujian, tetapi tidak aman untuk lingkungan produksi. Dalam produksi, Anda hanya dapat memberikan otorisasi pada alamat IP atau rentang alamat tertentu saja untuk mengakses instans-instans Anda.

   1. Di bagian **Aturan masuk**, pilih **Tambahkan aturan**.

   1. Atur nilai berikut untuk aturan masuk baru Anda yang akan mengizinkan akses Secure Shell (SSH) ke instans Amazon EC2 Anda. Jika Anda melakukan ini, Anda dapat terhubung ke instans EC2 Anda untuk menginstal klien SQL dan aplikasi lainnya. Tentukan alamat IP agar Anda dapat mengakses instans EC2 Anda:
      + **Jenis**: **SSH**
      + **Sumber:** Rentang atau alamat IP dari langkah a. Contoh dari alamat IPv4 IP adalah**203.0.113.25/32**. Contoh dari alamat IPv6 IP adalah**2001:DB8::/32**.

1. Untuk membuat grup keamanan, pilih **Buat grup keamanan**.

   Catat ID grup keamanan karena Anda membutuhkannya nanti dalam tutorial ini.

## Membuat grup keamanan VPC untuk klaster DB privat
<a name="CHAP_Tutorials.CreateVPCDualStack.SecurityGroupDB"></a>

Agar klaster DB tetap privat, buat grup keamanan kedua untuk akses privat. Untuk terhubung ke klaster DB di VPC Anda, tambahkan aturan masuk ke grup keamanan VPC Anda. Hal ini mengizinkan lalu lintas dari instans Amazon EC2 Anda saja.

**Untuk membuat grup keamanan VPC**

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

1. Pilih **Dasbor VPC**, pilih **Grup Keamanan**, lalu pilih **Buat grup keamanan**.

1. Di halaman **Buat grup keamanan**, atur nilai ini:
   + **Nama grup keamanan:** **tutorial-dual-stack-db-securitygroup**
   + **Deskripsi:** **Tutorial Dual-Stack DB Instance Security Group**
   + **VPC:** **Pilih VPC yang Anda buat sebelumnya, misalnya: vpc- () *identifier* tutorial-dual-stack-vpc**

1. Tambahkan aturan masuk ke grup keamanan:

   1. Di bagian **Aturan masuk**, pilih **Tambahkan aturan**.

   1. Atur nilai berikut untuk aturan masuk baru Anda yang akan mengizinkan lalu lintas MySQL di port 3306 dari instans Amazon EC2 Anda. Dengan melakukannya, Anda dapat terhubung dari instans EC2 Anda ke klaster DB Anda. Melakukan hal ini berarti Anda dapat mengirimkan data dari instans EC2 Anda ke basis data Anda.
      + **Jenis:** **MySQL/Aurora**
      + **Sumber:** Pengidentifikasi grup **tutorial-dual-stack-securitygroup**keamanan yang Anda buat sebelumnya dalam tutorial ini, misalnya **sg-9edd5cfb**.

1. Untuk membuat grup keamanan, pilih **Buat grup keamanan**.

## Membuat grup subnet DB
<a name="CHAP_Tutorials.CreateVPCDualStack.DBSubnetGroup"></a>

*Grup subnet DB* adalah kumpulan subnet yang Anda buat dalam VPC dan yang Anda tetapkan untuk klaster DB. Dengan menggunakan grup subnet DB, Anda dapat menentukan VPC tertentu saat membuat klaster DB. Untuk membuat grup subnet DB yang kompatibel dengan `DUAL`, semua subnet harus kompatibel dengan `DUAL`. Agar `DUAL` kompatibel, subnet harus memiliki IPv6 CIDR yang terkait dengannya.

**Untuk membuat grup subnet DB**

1. Identifikasi subnet privat untuk basis data Anda di VPC.

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

   1. Pilih **Dasbor VPC**, lalu pilih **Subnet**.

   1. **Perhatikan subnet dari subnet bernama IDs **tutorial-dual-stack-subnet-private1-us-west-2a dan -private2-us-west-2b**. tutorial-dual-stack-subnet**

      Anda akan membutuhkan subnet IDs ketika Anda membuat grup subnet DB Anda.

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

   Pastikan Anda terhubung ke konsol Amazon RDS, bukan konsol Amazon VPC.

1. Di panel navigasi, pilih **Grup subnet**.

1. Pilih **Buat grup subnet DB**.

1. Di halaman **Buat kelompok subnet DB**, atur nilai ini di **Detail grup subnet**:
   + **Nama:** **tutorial-dual-stack-db-subnet-group**
   + **Deskripsi:** **Tutorial Dual-Stack DB Subnet Group**
   + **VPC: **tutorial-dual-stack-vpc (vpc**** -) *identifier* 

1. Di bagian **Tambahkan subnet**, pilih nilai untuk opsi **Zona Ketersediaan** dan **Subnet**.

   Untuk tutorial ini, pilih **us-east-2a** dan **us-east-2b** untuk **Zona Ketersediaan**. Untuk **Subnet**, pilih subnet privat yang Anda identifikasi pada langkah sebelumnya.

1. Pilih **Buat**. 

Grup subnet DB baru Anda muncul dalam daftar grup subnet DB di konsol RDS. Anda dapat memilih grup subnet DB untuk melihat detailnya. Detail ini termasuk protokol penentuan alamat yang didukung, semua subnet yang terkait dengan grup tersebut, dan jenis jaringan yang didukung oleh grup subnet DB.

## Membuat instans Amazon EC2 dalam mode tumpukan ganda
<a name="CHAP_Tutorials.CreateVPCDualStack.CreateEC2Instance"></a>

Untuk membuat instans Amazon EC2, ikuti petunjuk dalam [Meluncurkan instans menggunakan panduan instans peluncuran baru di Panduan](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html) Pengguna *Amazon EC2*.

Di halaman **Mengonfigurasi Detail Instans**, atur nilai-nilai ini dan biarkan nilai lainnya sebagai default:
+ **Jaringan** — Pilih VPC yang ada dengan subnet publik dan pribadi, seperti **tutorial-dual-stack-vpc**(vpc-*identifier*) yang dibuat di. [Membuat VPC dengan subnet publik dan privat](#CHAP_Tutorials.CreateVPCDualStack.VPCAndSubnets)
+ **Subnet** — Pilih subnet publik yang sudah ada, seperti **subnet- *identifier* \$1 tutorial-dual-stack-subnet -public1-us-east-2a \$1 us-east-2a** dibuat di. [Membuat grup keamanan VPC untuk instans Amazon EC2 publik](#CHAP_Tutorials.CreateVPCDualStack.SecurityGroupEC2)
+ **IP Publik yang Otomatis Ditetapkan** – Pilih **Aktifkan**.
+ **Tetapkan IPv6 IP secara otomatis** **- Pilih Aktifkan.**
+ **Firewall (grup keamanan)** – Pilih **Pilih grup keamanan yang ada**.
+ **Grup keamanan umum** – Pilih grup keamanan yang ada, seperti `tutorial-securitygroup` yang dibuat di [Membuat grup keamanan VPC untuk instans Amazon EC2 publik](#CHAP_Tutorials.CreateVPCDualStack.SecurityGroupEC2). Pastikan grup keamanan yang Anda pilih menyertakan aturan masuk untuk akses Secure Shell (SSH) dan HTTP.

## Membuat klaster DB dalam mode tumpukan ganda
<a name="CHAP_Tutorials.CreateVPCDualStack.CreateDBInstance"></a>

Pada langkah ini, Anda akan membuat klaster DB yang berjalan dalam mode tumpukan ganda.

**Membuat instans DB**

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

1.  Contoh ini menggunakan Wilayah AS Timur (Ohio).

1. Di panel navigasi, pilih **Basis Data**.

1. Pilih **Buat basis data**.

1. Di halaman **Membuat basis data**, pastikan opsi **Pembuatan standar** dipilih, lalu pilih jenis mesin Aurora MySQL DB.

1. Di bagian **Konektivitas**, atur nilai-nilai ini:
   + **Jenis jaringan** – Pilih **Mode tumpukan ganda**.  
![\[Bagian Jenis jaringan di konsol dengan Mode tumpukan ganda yang dipilih\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/AuroraUserGuide/images/dual-stack-mode.png)
   + **Virtual private cloud (VPC)** — Pilih VPC yang sudah ada dengan subnet publik dan pribadi, seperti **tutorial-dual-stack-vpc**(vpc-) yang dibuat di. *identifier* [Membuat VPC dengan subnet publik dan privat](#CHAP_Tutorials.CreateVPCDualStack.VPCAndSubnets)

     VPC tersebut harus memiliki subnet di Zona Ketersediaan yang berbeda.
   + **Grup **subnet DB - Pilih grup** subnet DB untuk VPC, seperti tutorial-dual-stack-db -subnet-group yang dibuat di.** [Membuat grup subnet DB](#CHAP_Tutorials.CreateVPCDualStack.DBSubnetGroup)
   + **Akses publik** – Pilih **Tidak**.
   + **Grup keamanan VPC (firewall)** – Pilih **Pilih grup keamanan yang ada**.
   + **Grup keamanan **VPC yang ada — Pilih grup keamanan** VPC yang ada yang dikonfigurasi untuk akses pribadi, seperti tutorial-dual-stack-db -securitygroup yang dibuat di.** [Membuat grup keamanan VPC untuk klaster DB privat](#CHAP_Tutorials.CreateVPCDualStack.SecurityGroupDB)

     Hapus grup keamanan lainnya, seperti grup keamanan default, dengan memilih **X** yang dikaitkan dengan masing-masing grup keamanan.
   + **Zona Ketersediaan** – Pilih **us-west-2a**.

     Untuk menghindari lalu lintas AZ, pastikan instans DB dan instans EC2 berada di Zona Ketersediaan yang sama.

1. Untuk bagian yang lainnya, tentukan pengaturan klaster DB Anda. Untuk informasi tentang setiap pengaturan, lihat [Pengaturan untuk klaster Aurora DB](Aurora.CreateInstance.md#Aurora.CreateInstance.Settings).

## Menghubungkan ke instans Amazon EC2 dan klaster DB
<a name="CHAP_Tutorials.CreateVPCDualStack.Connect"></a>

Setelah membuat instans Amazon EC2 dan klaster DB dalam mode tumpukan ganda, Anda dapat terhubung ke masing-masing instans menggunakan protokol IPv6. Untuk menyambung ke instans Amazon EC2 menggunakan IPv6 protokol, ikuti petunjuk di [Connect to Linux Anda di Panduan](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html) Pengguna *Amazon EC2*.

Untuk menghubungkan ke klaster DB Aurora MySQL dari instans Amazon EC2, ikuti petunjuk di [Menghubungkan ke klaster DB Aurora MySQL](CHAP_GettingStartedAurora.CreatingConnecting.Aurora.md#CHAP_GettingStartedAurora.Aurora.Connect).

## Menghapus VPC
<a name="CHAP_Tutorials.CreateVPCDualStack.Delete"></a>

Setelah membuat VPC dan sumber daya lainnya untuk tutorial ini, Anda dapat menghapusnya jika tidak dibutuhkan lagi.

Jika Anda menambahkan sumber daya di VPC yang Anda buat untuk tutorial ini, Anda mungkin perlu menghapusnya sebelum menghapus VPC. Contoh sumber dayanya adalah instans Amazon EC2 atau klaster DB. Untuk informasi selengkapnya, lihat [Menghapus VPC](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#VPC_Deleting) di *Panduan Pengguna Amazon VPC*.

**Untuk menghapus VPC dan sumber daya terkait**

1. Hapus grup subnet DB:

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

   1. Di panel navigasi, pilih **Grup Subnet**.

   1. Pilih grup subnet DB yang akan dihapus, seperti **tutorial-db-subnet-group**.

   1. Pilih **Hapus**, lalu pilih **Hapus** di jendela konfirmasi.

1. Catat ID VPC:

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

   1. Pilih **Dasbor VPC**, lalu pilih. **VPCs**

   1. Dalam daftar, identifikasi VPC yang Anda buat, seperti. **tutorial-dual-stack-vpc**

   1. Catat nilai **ID VPC** dari VPC yang Anda buat. Anda memerlukan ID VPC ini di langkah selanjutnya.

1. Hapus grup keamanan:

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

   1. Pilih **Dasbor VPC**, lalu pilih **Grup Keamanan**.

   1. Pilih grup keamanan untuk instans Amazon RDS DB, seperti **tutorial-dual-stack-db-securitygroup**.

   1. Untuk **Tindakan**, pilih **Hapus grup keamanan**, lalu pilih **Hapus** di halaman konfirmasi.

   1. Pada halaman **Grup Keamanan**, pilih grup keamanan untuk instans Amazon EC2, seperti. **tutorial-dual-stack-securitygroup**

   1. Untuk **Tindakan**, pilih **Hapus grup keamanan**, lalu pilih **Hapus** di halaman konfirmasi.

1. Hapus gateway NAT:

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

   1. Pilih **Dasbor VPC**, lalu pilih **Gateway NAT**.

   1. Pilih gateway NAT dari VPC yang Anda buat. Gunakan ID VPC untuk mengidentifikasi gateway NAT yang benar.

   1. Untuk **Tindakan**, pilih **Hapus gateway NAT**.

   1. Di halaman konfirmasi, masukkan **delete**, lalu pilih **Hapus**.

1. Hapus VPC:

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

   1. Pilih **Dasbor VPC**, lalu pilih. **VPCs**

   1. Pilih VPC yang ingin Anda hapus, seperti. **tutorial-dual-stack-vpc**

   1. Untuk **Tindakan**, pilih **Hapus VPC**.

      Halaman konfirmasi menunjukkan sumber daya lain yang terkait dengan VPC yang juga akan dihapus, termasuk subnet yang terkait dengannya.

   1. Di halaman konfirmasi, masukkan **delete**, lalu pilih **Hapus**.

1. Rilis alamat IP Elastis:

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

   1. Pilih **EC2 Dashboard**, dan kemudian pilih **Elastic IPs**.

   1. Pilih alamat IP Elastis yang ingin Anda rilis.

   1. Untuk **Tindakan**, pilih **Rilis alamat IP Elastis**.

   1. Di halaman konfirmasi, pilih **Rilis**.