

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

# Prasyarat untuk mengintegrasikan RDS for SQL Server dengan S3
<a name="Appendix.SQLServer.Options.S3-integration.preparing"></a>

Sebelum Anda memulai, temukan atau buat bucket S3 yang ingin Anda gunakan. Selain itu, tambahkan izin sehingga RDS instans DB dapat mengakses bucket S3. Untuk mengonfigurasi akses ini, Anda perlu membuat kebijakan IAM dan peran IAM.

## Konsol
<a name="Appendix.SQLServer.Options.S3-integration.preparing.console"></a>

**Untuk membuat kebijakan IAM bagi Aurora untuk mengakses Amazon S3**

1. Di [Konsol Manajemen IAM](https://console.aws.amazon.com/iam/home?#home), pilih **Kebijakan** di panel navigasi.

1. Buat kebijakan baru, dan gunakan **Editor visual** untuk langkah-langkah berikut.

1. Untuk **Layanan**, masukkan **S3** lalu pilih layanan **S3**.

1. Untuk **Tindakan**, pilih yang berikut ini untuk memberikan akses yang diperlukan oleh instans DB Anda:
   + `ListAllMyBuckets` – diperlukan.
   + `ListBucket` – diperlukan.
   + `GetBucketAcl` – diperlukan.
   + `GetBucketLocation` – diperlukan.
   + `GetObject` – diperlukan untuk mengunduh file dari S3 ke `D:\S3\`
   + `PutObject` – diperlukan untuk mengunggah file dari `D:\S3\` ke S3
   + `ListMultipartUploadParts` – diperlukan untuk mengunggah file dari `D:\S3\` ke S3
   + `AbortMultipartUpload` – diperlukan untuk mengunggah file dari `D:\S3\` ke S3

1. Untuk **Sumber Daya**, opsi yang ditampilkan bergantung pada tindakan mana yang Anda pilih di langkah sebelumnya. Anda mungkin melihat opsi untuk **bucket**, **objek**, atau keduanya. Untuk setiap hal berikut ini, tambahkan Amazon Resource Name (ARN) yang sesuai.

   Untuk **bucket**, tambahkan ARN untuk bucket yang ingin Anda gunakan. Misalnya, jika bucket Anda diberi nama *amzn-s3-demo-bucket*, atur ARN ke `arn:aws:s3:::amzn-s3-demo-bucket`.

   Untuk **objek**, masukkan ARN untuk bucket lalu pilih salah satu hal berikut:
   + Untuk memberikan akses ke semua file dalam bucket tertentu, pilih **Semua** untuk **Nama bucket** dan **Nama objek**.
   + Untuk memberikan akses ke file atau folder tertentu di bucket, ARNs sediakan bucket dan objek tertentu yang ingin diakses SQL Server. 

1. Ikuti petunjuk dalam konsol hingga Anda selesai membuat kebijakan.

   Hal di atas adalah panduan singkat untuk membuat kebijakan. Untuk informasi selengkapnya tentang pembuatan peran IAM, lihat [Membuat kebijakan IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) dalam *Panduan Pengguna IAM*.

**Untuk membuat peran IAM yang menggunakan kebijakan IAM dari prosedur sebelumnya**

1. Di [Konsol Manajemen IAM](https://console.aws.amazon.com/iam/home?#home), pilih **Peran** di panel navigasi.

1. Buat peran IAM baru, dan pilih opsi berikut saat muncul di konsol:
   + **AWSlayanan**
   + **RDS**
   + **RDS – Tambahkan Peran ke Basis Data**

   Lalu, pilih **Next:Permissions** di bagian bawah.

1. Untuk **Lampirkan kebijakan izin**, masukkan nama kebijakan IAM yang telah Anda buat sebelumnya. Lalu, pilih kebijakan dari daftar.

1. Ikuti petunjuk dalam konsol hingga Anda selesai membuat peran.

   Hal di atas adalah panduan singkat untuk membuat peran. Jika Anda menginginkan petunjuk yang lebih terperinci tentang pembuatan peran, lihat [Peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) dalam *Panduan Pengguna IAM*.

## AWS CLI
<a name="Appendix.SQLServer.Options.S3-integration.preparing.CLI"></a>

Untuk memberi Amazon RDS akses ke bucket Amazon S3, gunakan proses berikut:

1. Buat kebijakan IAM yang memberi Amazon RDS akses ke bucket S3.

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

   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. Lampirkan kebijakan IAM yang Anda buat ke peran IAM yang Anda buat.

**Untuk membuat kebijakan IAM**

Sertakan tindakan yang sesuai untuk memberikan akses yang diperlukan oleh instans DB Anda:
+ `ListAllMyBuckets` – diperlukan.
+ `ListBucket` – diperlukan.
+ `GetBucketAcl` – diperlukan.
+ `GetBucketLocation` – diperlukan.
+ `GetObject` – diperlukan untuk mengunduh file dari S3 ke `D:\S3\`
+ `PutObject` – diperlukan untuk mengunggah file dari `D:\S3\` ke S3
+ `ListMultipartUploadParts` – diperlukan untuk mengunggah file dari `D:\S3\` ke S3
+ `AbortMultipartUpload` – diperlukan untuk mengunggah file dari `D:\S3\` ke S3

1. 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": [
   	            {
   	                "Effect": "Allow",
   	                "Action": "s3:ListAllMyBuckets",
   	                "Resource": "*"
   	            },
   	            {
   	                "Effect": "Allow",
   	                "Action": [
   	                    "s3:ListBucket",
   	                    "s3:GetBucketAcl",
   	                    "s3:GetBucketLocation"
   	                ],
   	                "Resource": "arn:aws:s3:::amzn-s3-demo-bucket"
   	            },
   	            {
   	                "Effect": "Allow",
   	                "Action": [
   	                    "s3:GetObject",
   	                    "s3:PutObject",
   	                    "s3:ListMultipartUploadParts",
   	                    "s3:AbortMultipartUpload"
   	                ],
   	                "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/key_prefix/*"
   	            }
   	        ]
   	    }'
   ```

   Untuk Windows:

   Pastikan untuk mengubah akhiran baris ke akhiran baris yang didukung oleh antarmuka Anda (`^`, bukan `\`). Selain itu, di Windows, Anda harus meng-escape semua tanda kutip ganda dengan `\`. Agar tidak perlu meng-escape kutipan dalam JSON, Anda dapat menyimpannya ke file dan meneruskannya sebagai parameter. 

   Pertama, buat file `policy.json` dengan kebijakan izin berikut:

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "s3:ListAllMyBuckets",
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "s3:ListBucket",
                   "s3:GetBucketACL",
                   "s3:GetBucketLocation"
               ],
               "Resource": "arn:aws:s3:::amzn-s3-demo-bucket"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "s3:GetObject",
                   "s3:PutObject",
                   "s3:ListMultipartUploadParts",
                   "s3:AbortMultipartUpload"
               ],
               "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/key_prefix/*"
           }
       ]
   }
   ```

------

   Lalu, gunakan perintah berikut ini untuk membuat kebijakan:

   ```
   aws iam create-policy ^
        --policy-name rds-s3-integration-policy ^
        --policy-document file://file_path/assume_role_policy.json
   ```

1. Setelah kebijakan dibuat, catat Amazon Resource Name (ARN) kebijakan tersebut. Anda memerlukan ARN ini untuk langkah berikutnya.

**Untuk membuat peran IAM**
+ AWS CLIPerintah berikut menciptakan peran `rds-s3-integration-role` IAM 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"
  	       }
  	     ]
  	   }'
  ```

  Untuk Windows:

  Pastikan untuk mengubah akhiran baris ke akhiran baris yang didukung oleh antarmuka Anda (`^`, bukan `\`). Selain itu, di Windows, Anda harus meng-escape semua tanda kutip ganda dengan `\`. Agar tidak perlu meng-escape kutipan dalam JSON, Anda dapat menyimpannya ke file dan meneruskannya sebagai parameter. 

  Pertama, buat file `assume_role_policy.json` dengan kebijakan berikut:

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Principal": {
                  "Service": [
                      "rds.amazonaws.com"
                  ]
              },
              "Action": "sts:AssumeRole"
          }
      ]
  }
  ```

------

  Lalu gunakan perintah berikut ini untuk membuat peran IAM:

  ```
  aws iam create-role ^
       --role-name rds-s3-integration-role ^
       --assume-role-policy-document file://file_path/assume_role_policy.json
  ```  
**Example menggunakan kunci konteks kondisi global untuk membuat peran IAM**  

  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 relasi kepercayaan berbasis sumber daya untuk membatasi izin layanan ke sumber daya tertentu. Ini adalah cara 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 dan memiliki nilai `aws:SourceArn` yang berisi ID akun. Dalam hal ini, nilai `aws:SourceAccount` dan akun dalam nilai `aws:SourceArn` harus menggunakan ID akun yang sama ketika digunakan dalam pernyataan kebijakan yang sama.
  + Gunakan `aws:SourceArn` jika Anda ingin 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 Amazon Resource Name (ARN) lengkap dari sumber daya yang mengakses peran. Untuk integrasi S3, pastikan untuk menyertakan instans DB ARNs, seperti yang ditunjukkan pada contoh berikut.

  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:SourceArn":"arn:aws:rds:Region:my_account_ID:db:db_instance_identifier"
                      }
                  }
  	       }
  	     ]
  	   }'
  ```

  Untuk Windows:

  Tambahkan kunci konteks kondisi global ke `assume_role_policy.json`.

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Principal": {
                  "Service": [
                      "rds.amazonaws.com"
                  ]
              },
              "Action": "sts:AssumeRole",
              "Condition": {
                  "StringEquals": {
                      "aws:SourceArn":"arn:aws:rds:Region:my_account_ID:db:db_instance_identifier"
                  }
              }
          }
      ]
  }
  ```

------

**Untuk melampirkan kebijakan IAM untuk peran IAM**
+ AWS CLIPerintah berikut melampirkan kebijakan ke peran bernama`rds-s3-integration-role`. Ganti `your-policy-arn` dengan ARN kebijakan yang Anda catat di langkah sebelumnya.  
**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
  ```