Prasyarat untuk mengintegrasikan RDS Server dengan S3 SQL - 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 Server dengan S3 SQL

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

Untuk membuat IAM kebijakan untuk akses ke Amazon S3
  1. Di Konsol IAM Manajemen, 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 masing-masing, tambahkan Amazon Resource Name (ARN) yang sesuai.

    Untuk ember, tambahkan ARN untuk ember yang ingin Anda gunakan. Misalnya, jika ember Anda diberi nama amzn-s3-demo-bucket, atur ARN kearn:aws:s3:::amzn-s3-demo-bucket.

    Untuk objek, masukkan ember ARN untuk lalu pilih salah satu dari berikut ini:

    • 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 petunjuk selengkapnya tentang IAM cara membuat kebijakan, lihat Membuat IAM kebijakan di Panduan IAM Pengguna.

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

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

    • AWS layanan

    • RDS

    • RDS— Tambahkan Peran ke Database

    Lalu, pilih Next:Permissions di bagian bawah.

  3. Untuk kebijakan Izin Lampirkan, masukkan nama IAM kebijakan yang sebelumnya Anda buat. 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 ingin petunjuk lebih rinci tentang membuat peran, lihat IAMperan di Panduan IAM Pengguna.

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

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

  2. Buat IAM peran yang RDS dapat diambil Amazon atas nama Anda untuk mengakses bucket S3 Anda.

    Untuk informasi selengkapnya, lihat Membuat peran untuk mendelegasikan izin kepada IAM pengguna di Panduan IAM Pengguna.

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

Untuk membuat IAM kebijakan

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 IAM kebijakan bernama rds-s3-integration-policy dengan opsi ini. Ini memberikan akses ke ember 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 \. Untuk menghindari kebutuhan untuk menghindari tanda kutip diJSON, Anda dapat menyimpannya ke file sebagai gantinya dan meneruskannya sebagai parameter.

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

    { "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, perhatikan Amazon Resource Name (ARN) kebijakan tersebut. Anda membutuhkan ARN untuk langkah selanjutnya.

Untuk membuat IAM peran
  • AWS CLI Perintah berikut menciptakan rds-s3-integration-role IAM peran 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 \. Untuk menghindari kebutuhan untuk menghindari tanda kutip diJSON, Anda dapat menyimpannya ke file sebagai gantinya dan meneruskannya sebagai parameter.

    Pertama, buat file assume_role_policy.json dengan kebijakan berikut:

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

    Kemudian gunakan perintah berikut untuk membuat IAM peran:

    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 IAM peran

    Sebaiknya gunakan kunci konteks kondisi global aws:SourceArn dan aws:SourceAccount dalam kebijakan 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 aws:SourceArn global dengan Amazon Resource Name (ARN) lengkap dari sumber daya yang mengakses peran. Untuk integrasi S3, pastikan untuk menyertakan instans DBARNs, 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.

    { "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 IAM kebijakan ke IAM peran
  • AWS CLI Perintah berikut melampirkan kebijakan ke peran bernamards-s3-integration-role. Ganti your-policy-arn dengan kebijakan ARN 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