

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

# Mengonfigurasi izin IAM untuk integrasi RDS for Oracle dengan Amazon S3
<a name="oracle-s3-integration.preparing"></a>

Agar RDS for Oracle dapat diintegrasikan dengan Amazon S3, instans DB Anda harus memiliki akses ke bucket Amazon S3. Amazon VPC yang digunakan oleh instans DB Anda tidak perlu memberikan akses ke titik akhir Amazon S3.

RDS untuk Oracle mendukung transfer file antara instans DB dalam satu akun dan bucket Amazon S3 di akun yang berbeda. Langkah tambahan yang diperlukan akan disebutkan di bagian berikut.

**Topics**
+ [Langkah 1: Buat kebijakan IAM untuk peran Amazon RDS Anda](#oracle-s3-integration.preparing.policy)
+ [Langkah 2: (Opsional) Buat kebijakan IAM untuk bucket Amazon S3](#oracle-s3-integration.preparing.policy-bucket)
+ [Langkah 3: Buat peran IAM untuk instans DB Anda dan lampirkan kebijakan Anda](#oracle-s3-integration.preparing.role)
+ [Langkah 4: Kaitkan peran IAM Anda dengan instans DB RDS for Oracle](#oracle-s3-integration.preparing.instance)

## Langkah 1: Buat kebijakan IAM untuk peran Amazon RDS Anda
<a name="oracle-s3-integration.preparing.policy"></a>

Pada langkah ini, Anda membuat kebijakan AWS Identity and Access Management (IAM) dengan izin yang diperlukan untuk mentransfer file antara bucket Amazon S3 dan instans RDS DB Anda. Pada langkah ini, Anda dianggap telah membuat bucket S3.

Sebelum membuat kebijakan, catat potongan informasi berikut:
+ Amazon Resource Name (ARN) untuk bucket Anda
+ ARN untuk AWS KMS kunci Anda, jika bucket Anda menggunakan enkripsi SSE-KMS atau SSE-S3
**catatan**  
Instans DB RDS for Oracle tidak dapat mengakses bucket Amazon S3 yang dienkripsi dengan SSE-C.

Untuk informasi selengkapnya, lihat [Melindungi data menggunakan enkripsi sisi server](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html) dalam *Panduan Pengguna Amazon Simple Storage Service*.

### Konsol
<a name="oracle-s3-integration.preparing.policy.console"></a>

**Untuk membuat kebijakan IAM untuk mengizinkan Amazon RDS mengakses bucket Amazon S3**

1. Buka [Konsol Manajemen IAM](https://console.aws.amazon.com/iam/home?#home).

1. Di bagian **Manajemen akses**, pilih **Kebijakan**.

1. Pilih **Buat Kebijakan**.

1. Pada tab **Editor visual**, pilih **Pilih layanan**, lalu pilih **S3**.

1. Untuk **Tindakan**, pilih **Perluas semua**, lalu pilih izin bucket dan izin objek yang diperlukan untuk mentransfer file dari bucket Amazon S3 ke Amazon RDS. Sebagai contoh, lakukan hal berikut:
   + Perluas **Daftar**, lalu pilih **ListBucket**.
   + Perluas **Baca**, lalu pilih **GetObject**.
   + Perluas **Tulis**, lalu pilih **PutObject**, **DeleteObject**, **AbortMultipartUpload**, dan **ListMultipartUploadParts**. Izin upload multipart diperlukan saat mengunggah file besar (100 MB atau lebih besar) ke Amazon S3.
   + **Perluas manajemen Izin**, lalu pilih **PutObjectAcl**. Izin ini diperlukan jika Anda ingin mengunggah file ke bucket milik akun yang berbeda, dan akun ini memerlukan kontrol penuh terhadap konten bucket.

   *Izin objek* adalah izin untuk operasi objek di Amazon S3. Izin ini harus diberikan untuk objek di dalam bucket, bukan untuk bucket itu sendiri. Untuk informasi selengkapnya, lihat [Izin untuk operasi objek](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-objects).

1. Pilih **Sumber daya**, lalu lakukan hal berikut:

   1. Pilih **Spesifik**.

   1. Untuk **bucket**, pilih **Tambah ARN**. Masukkan ARN bucket. Nama bucket terisi secara otomatis. Kemudian pilih **Tambahkan**.

   1. Jika muncul sumber daya **objek**, pilih **Tambah ARN** untuk menambahkan sumber daya secara manual atau pilih **Apa pun**.
**catatan**  
Anda dapat mengatur **Amazon Resource Name (ARN)** ke nilai ARN yang lebih spesifik agar Amazon RDS hanya dapat mengakses file atau folder tertentu dalam bucket Amazon S3. Untuk informasi selengkapnya tentang cara penentuan kebijakan akses untuk Amazon S3, lihat [Mengelola izin akses ke sumber daya Amazon S3 Anda](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html).

1. (Opsional) Pilih **Tambahkan izin tambahan** untuk menambahkan sumber daya ke kebijakan. Sebagai contoh, lakukan hal berikut:

   1. Jika bucket Anda dienkripsi dengan kunci KMS kustom, pilih **KMS** untuk layanan. 

   1. Untuk **Tindakan manual**, pilih opsi berikut:
      + **Enkripsi**
      + **ReEncrypt dari** dan **ReEncrypt ke**
      + **Dekripsi**
      + **DescribeKey**
      + **GenerateDataKey**

   1. Untuk **Sumber daya**, pilih **Spesifik**.

   1. Untuk **kunci**, pilih **Tambahkan ARN**. Masukkan ARN kunci kustom Anda sebagai sumber daya, lalu pilih **Tambahkan**.

      Untuk informasi selengkapnya, lihat [Melindungi Data Menggunakan Enkripsi Sisi Server dengan kunci KMS yang Disimpan di AWS Key Management Service (SSE-KMS) di](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html) Panduan Pengguna Layanan Penyimpanan Sederhana *Amazon*.

   1. Jika Anda ingin Amazon RDS mengakses untuk mengakses ember lain, tambahkan ARNs untuk ember ini. Jika mau, Anda juga dapat memberikan akses ke semua bucket dan objek di Amazon S3.

1. Pilih **Berikutnya: Tag** lalu **Berikutnya: Tinjau**.

1. Untuk **Nama**, masukkan nama kebijakan IAM Anda, misalnya `rds-s3-integration-policy`. Anda menggunakan nama ini saat membuat peran IAM untuk dikaitkan dengan instans DB Anda. Anda juga dapat menambahkan nilai **Deskripsi** opsional.

1. Pilih **Buat kebijakan**.

### AWS CLI
<a name="oracle-s3-integration.preparing.policy.CLI"></a>

Buat kebijakan AWS Identity and Access Management (IAM) yang memberikan akses Amazon RDS ke bucket Amazon S3. Setelah membuat kebijakan, catat ARN-nya. ARN ini diperlukan pada langkah berikutnya.

Sertakan tindakan yang sesuai dalam kebijakan berdasarkan jenis akses yang diperlukan:
+ `GetObject` – Diperlukan untuk mentransfer file dari bucket Amazon S3 ke Amazon RDS.
+ `ListBucket` – Diperlukan untuk mentransfer file dari bucket Amazon S3 ke Amazon RDS.
+ `PutObject` – Diperlukan untuk mentransfer file dari Amazon RDS ke bucket Amazon S3.
+ `AbortMultipartUpload`- Diperlukan untuk unggahan multipart saat mentransfer file besar (100 MB atau lebih besar) dari Amazon RDS ke bucket Amazon S3.
+ `ListMultipartUploadParts`- Diperlukan untuk unggahan multipart saat mentransfer file besar (100 MB atau lebih besar) dari Amazon RDS ke bucket Amazon S3.

AWS CLIPerintah berikut membuat kebijakan IAM bernama `rds-s3-integration-policy` dengan opsi ini. Kebijakan ini memberikan akses ke bucket bernama `amzn-s3-demo-bucket`.

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

```
aws iam create-policy \
   --policy-name rds-s3-integration-policy \
   --policy-document '{
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "s3integration",
         "Action": [
           "s3:GetObject",
           "s3:ListBucket",
           "s3:PutObject",
           "s3:AbortMultipartUpload",
           "s3:ListMultipartUploadParts"
         ],
         "Effect": "Allow",
         "Resource": [
           "arn:aws:s3:::amzn-s3-demo-bucket", 
           "arn:aws:s3:::amzn-s3-demo-bucket/*"
         ]
       }
     ]
   }'
```
Contoh berikut mencakup izin untuk kunci KMS kustom.  

```
aws iam create-policy \
   --policy-name rds-s3-integration-policy \
   --policy-document '{
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "s3integration",
         "Action": [
           "s3:GetObject",
           "s3:ListBucket",
           "s3:PutObject",
           "kms:Decrypt",
           "kms:Encrypt",
           "kms:ReEncrypt*",
           "kms:GenerateDataKey",
           "kms:DescribeKey",
         ],
         "Effect": "Allow",
         "Resource": [
           "arn:aws:s3:::amzn-s3-demo-bucket", 
           "arn:aws:s3:::amzn-s3-demo-bucket/*",
           "arn:aws:kms:::your-kms-arn"
         ]
       }
     ]
   }'
```
Untuk Windows:  

```
aws iam create-policy ^
   --policy-name rds-s3-integration-policy ^
   --policy-document '{
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "s3integration",
         "Action": [
           "s3:GetObject",
           "s3:ListBucket",
           "s3:PutObject",
           "s3:AbortMultipartUpload",
           "s3:ListMultipartUploadParts"
         ],
         "Effect": "Allow",
         "Resource": [
           "arn:aws:s3:::amzn-s3-demo-bucket", 
           "arn:aws:s3:::amzn-s3-demo-bucket/*"
         ]
       }
     ]
   }'
```
Contoh berikut mencakup izin untuk kunci KMS kustom.  

```
aws iam create-policy ^
   --policy-name rds-s3-integration-policy ^
   --policy-document '{
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "s3integration",
         "Action": [
           "s3:GetObject",
           "s3:ListBucket",
           "s3:PutObject",
           "kms:Decrypt",
           "kms:Encrypt",
           "kms:ReEncrypt",
           "kms:GenerateDataKey",
           "kms:DescribeKey",
         ],
         "Effect": "Allow",
         "Resource": [
           "arn:aws:s3:::amzn-s3-demo-bucket", 
           "arn:aws:s3:::amzn-s3-demo-bucket/*",
           "arn:aws:kms:::your-kms-arn"
         ]
       }
     ]
   }'
```

## Langkah 2: (Opsional) Buat kebijakan IAM untuk bucket Amazon S3
<a name="oracle-s3-integration.preparing.policy-bucket"></a>

Langkah ini hanya diperlukan dalam kondisi berikut:
+ Anda ingin mengunggah file ke bucket Amazon S3 dari satu akun (akun A) dan mengaksesnya dari akun lain (akun B).
+ Akun B memiliki bucket.
+ Akun B memerlukan kontrol penuh atas objek yang dimasukkan ke dalam bucket tersebut.

Jika kondisi sebelumnya tidak berlaku untuk Anda, lanjutkan ke [Langkah 3: Buat peran IAM untuk instans DB Anda dan lampirkan kebijakan Anda](#oracle-s3-integration.preparing.role).

Untuk membuat kebijakan bucket, pastikan Anda memiliki hal berikut:
+ ID akun untuk akun A
+ Nama pengguna untuk akun A
+ Nilai ARN untuk bucket Amazon S3 di akun B

### Konsol
<a name="oracle-s3-integration.preparing.policy-bucket.console"></a>

**Untuk membuat atau mengedit kebijakan bucket**

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

1. Di daftar **Bucket**, pilih nama bucket yang ingin Anda buatkan kebijakan bucket atau yang kebijakan bucket-nya ingin Anda edit.

1. Pilih **Izin**.

1. Di bagian **Kebijakan bucket**, pilih **Edit**. Opsi ini akan membuka halaman Edit kebijakan bucket.

1. Di halaman **Edit kebijakan bucket**, jelajahi **Contoh kebijakan** dalam *Panduan Pengguna Amazon S3*, pilih **Pembuat kebijakan** untuk membuat kebijakan secara otomatis, atau edit JSON di bagian **Kebijakan**. 

   Jika Anda memilih **Policy Generator**, AWS Policy Generator akan terbuka di jendela baru:

   1. Di halaman **Pembuat Kebijakan AWS**, di bagian **Pilih Jenis Kebijakan**, pilih **Kebijakan Bucket S3**.

   1. Tambahkan pernyataan dengan memasukkan informasi di bidang yang tersedia, lalu pilih **Tambahkan Pernyataan**. Ulangi langkah ini sesuai jumlah pernyataan yang ingin Anda tambahkan. Untuk informasi selengkapnya tentang bidang ini, lihat [Referensi elemen kebijakan JSON IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) dalam *Panduan Pengguna IAM*. 
**catatan**  
Untuk memudahkan penggunaan, halaman **Edit kebijakan bucket** menampilkan **ARN Bucket **(Amazon Resource Name) bucket saat ini di atas bidang teks **Kebijakan**. Anda dapat menyalin ARN ini untuk digunakan dalam pernyataan di halaman **Pembuat Kebijakan AWS**. 

   1. Setelah Anda selesai menambahkan pernyataan, pilih **Buat Kebijakan**.

   1. Salin teks kebijakan yang dihasilkan, pilih **Tutup**, dan kembali ke halaman **Edit kebijakan bucket** di konsol Amazon S3.

1. Di kotak **Kebijakan**, edit kebijakan yang ada atau tempel kebijakan bucket dari Pembuat kebijakan. Pastikan peringatan keamanan, kesalahan, peringatan umum, dan saran telah ditangani sebelum menyimpan kebijakan.

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "ExamplePermissions",
         "Effect": "Allow",
         "Principal": {
           "AWS": "arn:aws:iam::123456789012:user/account-A-user"
         },
         "Action": [
           "s3:PutObject",
           "s3:PutObjectAcl"
         ],
         "Resource": [
           "arn:aws:s3:::amzn-s3-demo-destination-bucket",
           "arn:aws:s3:::amzn-s3-demo-destination-bucket/*"
         ]
       }
     ]
   }
   ```

------

1. Pilih **Simpan perubahan**, yang akan membawa Anda kembali ke halaman Izin Bucket.

## Langkah 3: Buat peran IAM untuk instans DB Anda dan lampirkan kebijakan Anda
<a name="oracle-s3-integration.preparing.role"></a>

Pada langkah ini, Anda dianggap telah membuat kebijakan IAM di [Langkah 1: Buat kebijakan IAM untuk peran Amazon RDS Anda](#oracle-s3-integration.preparing.policy). Pada langkah ini, Anda membuat peran untuk instans DB RDS for Oracle, kemudian melampirkan kebijakan Anda ke peran tersebut.

### Konsol
<a name="oracle-s3-integration.preparing.role.console"></a>

**Untuk membuat peran IAM agar Amazon RDS dapat mengakses bucket Amazon S3**

1. Buka [Konsol Manajemen IAM](https://console.aws.amazon.com/iam/home?#home).

1. Di panel navigasi, pilih **Peran**.

1. Pilih **Buat peran**.

1. Pilih **Layanan AWS**.

1. Untuk **kasus Penggunaan untuk AWS layanan lain:**, pilih **RDS dan kemudian RDS** **— Tambahkan Peran ke** Database. Lalu pilih **Selanjutnya**.

1. Untuk **Cari** di bagian **Kebijakan izin**, masukkan nama kebijakan IAM yang telah Anda buat di [Langkah 1: Buat kebijakan IAM untuk peran Amazon RDS Anda](#oracle-s3-integration.preparing.policy), lalu pilih kebijakan tersebut saat muncul dalam daftar. Lalu pilih **Selanjutnya**.

1. Untuk **Nama peran**, masukkan nama untuk peran IAM Anda, misalnya, `rds-s3-integration-role`. Anda juga dapat menambahkan nilai **Deskripsi** opsional.

1. Pilih **Buat peran**.

### AWS CLI
<a name="integration.preparing.role.CLI"></a>

**Untuk membuat peran dan melampirkan kebijakan ke peran ini**

1. Buat peran IAM yang dapat digunakan oleh Amazon RDS atas nama Anda untuk mengakses bucket Amazon S3 Anda.

   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) dalam hubungan kepercayaan berbasis sumber daya untuk membatasi izin layanan ke sumber daya tertentu. Ini adalah cara yang paling efektif untuk melindungi dari [masalah confused deputy](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html).

   Anda dapat menggunakan kedua kunci konteks kondisi global tersebut dan nilai `aws:SourceArn` berisi ID akun. Dalam hal ini, nilai `aws:SourceAccount` dan akun dalam nilai `aws:SourceArn` harus menggunakan ID akun yang sama saat digunakan dalam pernyataan yang sama.
   + Gunakan `aws:SourceArn` jika Anda menginginkan akses lintas layanan untuk satu sumber daya.
   + Gunakan `aws:SourceAccount` jika Anda ingin mengizinkan sumber daya apa pun di akun tersebut dikaitkan dengan penggunaan lintas layanan.

   Dalam hubungan kepercayaan, pastikan untuk menggunakan kunci konteks kondisi global `aws:SourceArn` dengan Amazon Resource Name (ARN) penuh pada sumber daya yang mengakses peran.

   AWS CLIPerintah berikut menciptakan peran yang dinamai `rds-s3-integration-role` untuk tujuan ini.  
**Example**  

   Untuk Linux, macOS, atau Unix:

   ```
   aws iam create-role \
      --role-name rds-s3-integration-role \
      --assume-role-policy-document '{
        "Version": "2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Principal": {
               "Service": "rds.amazonaws.com"
             },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "my_account_ID",
                    "aws:SourceArn": "arn:aws:rds:Region:my_account_ID:db:dbname"
                }
            }
          }
        ]
      }'
   ```

   Untuk Windows:

   ```
   aws iam create-role ^
      --role-name rds-s3-integration-role ^
      --assume-role-policy-document '{
        "Version": "2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Principal": {
               "Service": "rds.amazonaws.com"
             },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "my_account_ID",
                    "aws:SourceArn": "arn:aws:rds:Region:my_account_ID:db:dbname"
                }
            }
          }
        ]
      }'
   ```

   Untuk informasi selengkapnya, lihat [Membuat peran untuk mendelegasikan izin ke pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html) dalam *Panduan Pengguna IAM*.

1. Setelah peran dibuat, catat ARN peran tersebut. ARN ini diperlukan pada langkah berikutnya.

1. Lampirkan kebijakan yang Anda buat ke peran yang Anda buat.

   AWS CLIPerintah berikut melampirkan kebijakan ke peran bernama`rds-s3-integration-role`.  
**Example**  

   Untuk Linux, macOS, atau Unix:

   ```
   aws iam attach-role-policy \
      --policy-arn your-policy-arn \
      --role-name rds-s3-integration-role
   ```

   Untuk Windows:

   ```
   aws iam attach-role-policy ^
      --policy-arn your-policy-arn ^
      --role-name rds-s3-integration-role
   ```

   Ganti `your-policy-arn` dengan ARN kebijakan yang Anda catat di langkah sebelumnya.

## Langkah 4: Kaitkan peran IAM Anda dengan instans DB RDS for Oracle
<a name="oracle-s3-integration.preparing.instance"></a>

Langkah terakhir dalam mengonfigurasi izin untuk integrasi Amazon S3 adalah mengaitkan peran IAM Anda dengan instans DB. Perhatikan persyaratan berikut:
+ Anda harus memiliki akses ke peran IAM yang telah memiliki kebijakan izin Amazon S3 yang diperlukan. 
+ Anda hanya dapat mengaitkan satu peran IAM dengan instans DB RDS for Oracle Anda dalam satu waktu.
+ Instans DB Anda harus dalam status **Tersedia**.

### Konsol
<a name="oracle-s3-integration.preparing.instance.console"></a>

**Untuk mengaitkan peran IAM Anda dengan instans DB RDS for Oracle**

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. Pilih **Basis data** dari panel navigasi.

1. Pilih nama instans DB RDS for Oracle untuk menampilkan detailnya.

1. Pada tab **Konektivitas & keamanan**, gulir ke **Kelola peran IAM** di bagian bawah halaman.

1. Untuk **Tambahkan peran IAM ke instans ini**, pilih peran yang Anda buat di [Langkah 3: Buat peran IAM untuk instans DB Anda dan lampirkan kebijakan Anda](#oracle-s3-integration.preparing.role).

1. Untuk **Fitur**, pilih **S3\$1INTEGRATION**.  
![\[Tambahkan peran S3_INTEGRATION\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/images/ora-s3-integration-role.png)

1. Pilih **Tambahkan peran**.

### AWS CLI
<a name="oracle-s3-integration.preparing.instance.CLI"></a>

AWS CLIPerintah berikut menambahkan peran ke instance Oracle DB bernama`mydbinstance`.

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

```
aws rds add-role-to-db-instance \
   --db-instance-identifier mydbinstance \
   --feature-name S3_INTEGRATION \
   --role-arn your-role-arn
```
Untuk Windows:  

```
aws rds add-role-to-db-instance ^
   --db-instance-identifier mydbinstance ^
   --feature-name S3_INTEGRATION ^
   --role-arn your-role-arn
```

Ganti `your-role-arn` dengan peran ARN yang Anda catat di langkah sebelumnya. `S3_INTEGRATION` harus ditentukan untuk opsi `--feature-name`.