

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

# Menyiapkan akses ke bucket Amazon S3
<a name="postgresql-s3-export-access-bucket"></a>

Untuk mengekspor data ke Amazon S3, berikan izin kepada instans DB PostgreSQL Anda untuk mengakses bucket Amazon S3 yang akan dimasuki file. 

Untuk melakukannya, gunakan prosedur berikut.

**Untuk memberi instans DB PostgreSQL akses ke Amazon S3 melalui peran IAM**

1. Buat kebijakan IAM. 

   Kebijakan ini memberikan izin kepada bucket dan objek yang memungkinkan instans DB PostgreSQL Anda mengakses Amazon S3. 

   Sebagai bagian dari pembuatan kebijakan ini, lakukan langkah-langkah berikut:

   1. Sertakan tindakan yang diperlukan berikut dalam kebijakan untuk mengizinkan transfer file dari instans DB PostgreSQL ke bucket Amazon S3: 
      + `s3:PutObject`
      + `s3:AbortMultipartUpload`

   1. Sertakan Amazon Resource Name (ARN) yang mengidentifikasi bucket dan objek Amazon S3 dalam bucket. Format ARN untuk mengakses Amazon S3 adalah: `arn:aws:s3:::amzn-s3-demo-bucket/*`

   Untuk informasi selengkapnya tentang cara membuat kebijakan IAM untuk Amazon RDS for PostgreSQL, lihat [Membuat dan menggunakan kebijakan IAM untuk akses basis data IAM](UsingWithRDS.IAMDBAuth.IAMPolicy.md). Lihat juga [Tutorial: Membuat dan melampirkan kebijakan yang dikelola pelanggan pertama Anda](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_managed-policies.html) di *Panduan Pengguna IAM*.

    AWS CLI Perintah berikut membuat kebijakan IAM bernama `rds-s3-export-policy` dengan opsi ini. Ini memberikan akses ke bucket bernama *amzn-s3-demo-bucket*. 
**Awas**  
Sebaiknya Anda menyiapkan basis data Anda dengan VPC privat yang memiliki kebijakan titik akhir yang dikonfigurasi untuk mengakses bucket tertentu. Untuk informasi selengkapnya, lihat [ Menggunakan kebijakan titik akhir untuk Amazon S3](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-s3.html#vpc-endpoints-policies-s3) di Panduan Pengguna Amazon VPC.  
Kami sangat menyarankan Anda agar tidak membuat kebijakan dengan akses semua sumber daya. Akses ini dapat menjadi ancaman bagi data keamanan. Jika Anda membuat kebijakan yang memberi akses `S3:PutObject` ke semua sumber daya menggunakan `"Resource":"*"`, pengguna yang memiliki hak istimewa ekspor dapat mengekspor data ke semua bucket di akun Anda. Selain itu, pengguna dapat mengekspor data ke *bucket yang dapat ditulis secara publik Wilayah AWS Anda*. 

   Setelah Anda membuat kebijakan, catat Amazon Resource Name (ARN) dari kebijakan tersebut. Anda memerlukan ARN ini untuk langkah berikutnya ketika Anda melampirkan kebijakan ke peran IAM. 

   ```
   aws iam create-policy  --policy-name rds-s3-export-policy  --policy-document '{
        "Version": "2012-10-17",		 	 	 
        "Statement": [
          {
            "Sid": "s3export",
            "Action": [
              "s3:PutObject*",
              "s3:ListBucket",
              "s3:GetObject*",
              "s3:DeleteObject*",
              "s3:GetBucketLocation",
              "s3:AbortMultipartUpload"
            ],
            "Effect": "Allow",
            "Resource": [
              "arn:aws:s3:::amzn-s3-demo-bucket/*"
            ] 
          }
        ] 
      }'
   ```

1. Buat peran IAM. 

   Lakukan langkah ini agar Amazon RDS dapat mengambil peran IAM ini atas nama Anda untuk mengakses bucket Amazon S3. 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*.

   Sebaiknya gunakan kunci konteks kondisi global `[aws:SourceArn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn)` dan `[aws:SourceAccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount)` dalam kebijakan berbasis sumber daya untuk membatasi izin layanan ke sumber daya tertentu. Ini adalah cara paling efektif untuk melindungi dari [masalah deputi yang membingungkan](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html). 

   Jika Anda menggunakan kunci konteks kondisi global dan nilai `aws:SourceArn` berisi ID akun, nilai `aws:SourceAccount` dan akun dalam nilai `aws:SourceArn` harus menggunakan ID akun yang sama saat digunakan dalam pernyataan kebijakan 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 kebijakan, pastikan untuk menggunakan kunci konteks kondisi global `aws:SourceArn` dengan ARN penuh sumber daya. Contoh berikut menunjukkan bagaimana melakukannya dengan menggunakan AWS CLI perintah untuk membuat peran bernama`rds-s3-export-role`.   
**Example**  

   Untuk Linux, macOS, atau Unix:

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

   Untuk Windows:

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

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

    AWS CLI Perintah berikut melampirkan kebijakan yang dibuat sebelumnya ke peran bernama `rds-s3-export-role.` Ganti `your-policy-arn` dengan ARN kebijakan yang Anda catat di langkah sebelumnya. 

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

1. Tambahkan peran IAM ke instans DB. Anda melakukannya dengan menggunakan Konsol Manajemen AWS atau AWS CLI, seperti yang dijelaskan berikut.

## Konsol
<a name="collapsible-section-1"></a>

**Untuk menambahkan peran IAM untuk instans DB PostgreSQL menggunakan konsol**

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 nama instans DB PostgreSQL untuk menampilkan detailnya.

1. Di tab **Konektivitas & keamanan**, di bagian **Kelola peran IAM**, pilih peran yang akan ditambahkan pada bagian **Tambahkan peran IAM ke instans ini**. 

1. Di bagian **Fitur**, pilih **s3Export**.

1. Pilih **Tambahkan peran**.

## AWS CLI
<a name="collapsible-section-2"></a>

**Untuk menambahkan peran IAM untuk instans DB PostgreSQL menggunakan CLI**
+ Gunakan perintah berikut untuk menambahkan peran ke instans DB PostgreSQL bernama `my-db-instance`. Ganti *`your-role-arn`* dengan ARN peran yang Anda catat pada langkah sebelumnya. Gunakan `s3Export` untuk nilai opsi `--feature-name`.   
**Example**  

  Untuk Linux, macOS, atau Unix:

  ```
  aws rds add-role-to-db-instance \
     --db-instance-identifier my-db-instance \
     --feature-name s3Export \
     --role-arn your-role-arn   \
     --region your-region
  ```

  Untuk Windows:

  ```
  aws rds add-role-to-db-instance ^
     --db-instance-identifier my-db-instance ^
     --feature-name s3Export ^
     --role-arn your-role-arn ^
     --region your-region
  ```