Prasyarat untuk mengintegrasikan RDS for SQL Server dengan S3 - Layanan Basis Data Relasional Amazon

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

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.

Untuk membuat kebijakan IAM bagi Aurora untuk mengakses Amazon S3
  1. Di Konsol Manajemen IAM, pilih Kebijakan di panel navigasi.

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

  3. Untuk Layanan, masukkan S3 lalu pilih layanan S3.

  4. 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

  5. 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.

  6. 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 dalam Panduan Pengguna IAM.

Untuk membuat peran IAM yang menggunakan kebijakan IAM dari prosedur sebelumnya
  1. Di Konsol Manajemen IAM, pilih Peran di panel navigasi.

  2. Buat peran IAM baru, dan pilih opsi berikut saat muncul di konsol:

    • AWS layanan

    • RDS

    • RDS – Tambahkan Peran ke Basis Data

    Lalu, pilih Next:Permissions di bagian bawah.

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

  4. 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 dalam Panduan Pengguna IAM.

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

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

  2. 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 dalam Panduan Pengguna IAM.

  3. 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 CLI Perintah berikut membuat kebijakan IAM bernama rds-s3-integration-policy dengan opsi ini. Kebijakan ini memberikan akses ke bucket bernama amzn-s3-demo-bucket.

    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
  2. Setelah kebijakan dibuat, catat Amazon Resource Name (ARN) kebijakan tersebut. Anda memerlukan ARN ini untuk langkah berikutnya.

Untuk membuat peran IAM
  • AWS CLI Perintah berikut menciptakan peran rds-s3-integration-role IAM untuk tujuan ini.

    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
    contoh menggunakan kunci konteks kondisi global untuk membuat peran IAM

    Sebaiknya gunakan kunci konteks kondisi global aws:SourceArn dan aws: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".

    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 CLI Perintah berikut melampirkan kebijakan ke peran bernamards-s3-integration-role. Ganti your-policy-arn dengan ARN kebijakan yang Anda catat di langkah sebelumnya.

    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