

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

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

Untuk memungkinkan pengguna atau peran terhubung ke instans 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 RDS](UsingWithRDS.IAM.md).

Contoh kebijakan berikut memungkinkan pengguna terhubung ke instans 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:db-ABCDEFGHIJKL01234/db_user"
            ]
        }
    ]
}
```

------

**penting**  
Pengguna dengan izin administrator dapat mengakses instans DB tanpa izin eksplisit dalam kebijakan IAM. Jika Anda ingin membatasi akses administrator ke instans 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 instans DB. Jika Anda tidak secara eksplisit mengizinkan akses, maka akses ditolak secara default.
+ `Action` – Tentukan `rds-db:connect` untuk mengizinkan koneksi ke instans DB.
+ `Resource` – Tentukan Amazon Resource Name (ARN) yang menjelaskan satu akun basis data dalam satu instans DB. Format ARN adalah sebagai berikut.

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

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

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

    Untuk menemukan ID sumber daya instans DB di Amazon Aurora Amazon RDS , pilih cluster DB 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 instans DB Anda di AWS Wilayah saat ini, seperti yang ditunjukkan berikut.

    ```
    aws rds describe-db-instances --query "DBInstances[*].[DBInstanceIdentifier,DbiResourceId]"
    ```

    Jika Anda menggunakan Amazon Aurora, tentukan `DbClusterResourceId`, bukan `DbiResourceId`. Untuk informasi selengkapnya, lihat [Membuat dan menggunakan kebijakan IAM untuk akses basis data IAM](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.IAMDBAuth.IAMPolicy.html) dalam *Panduan Pengguna Amazon Aurora*.
**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 instans DB.

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

****  

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

------

Kebijakan berikut menggunakan karakter “\$1” untuk mencocokkan semua instans 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 instans DB untuk AWS akun dan AWS Wilayah tertentu. Namun, kebijakan ini hanya memberikan akses ke instans 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 instans 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 instans 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 RDS](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:db-12ABC34DEFG5HIJ6KLMNOP78QR/jane_doe
```
Jika Anda melampirkan kebijakan ke *Jane*, *Bob*, dan *Diego*, maka masing-masing pengguna tersebut dapat terhubung ke klaster DB yang telah ditentukan menggunakan akun basis data `jane_doe`.