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
-
Di Konsol IAM Manajemen
, pilih Kebijakan di panel navigasi. -
Buat kebijakan baru, dan gunakan Editor visual untuk langkah-langkah berikut.
-
Untuk Layanan, masukkan
S3
lalu pilih layanan S3. -
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 keD:\S3\
-
PutObject
– diperlukan untuk mengunggah file dariD:\S3\
ke S3 -
ListMultipartUploadParts
– diperlukan untuk mengunggah file dariD:\S3\
ke S3 -
AbortMultipartUpload
– diperlukan untuk mengunggah file dariD:\S3\
ke S3
-
-
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.
-
-
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
-
Di IAMManagement Console
, pilih Peran di panel navigasi. -
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.
-
-
Untuk kebijakan Izin Lampirkan, masukkan nama IAM kebijakan yang sebelumnya Anda buat. Lalu, pilih kebijakan dari daftar.
-
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:
-
Buat IAM kebijakan yang memberi Amazon RDS akses ke bucket S3.
-
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.
-
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 keD:\S3\
-
PutObject
– diperlukan untuk mengunggah file dariD:\S3\
ke S3 -
ListMultipartUploadParts
– diperlukan untuk mengunggah file dariD:\S3\
ke S3 -
AbortMultipartUpload
– diperlukan untuk mengunggah file dariD:\S3\
ke S3
-
AWS CLI Perintah berikut membuat IAM kebijakan bernama
rds-s3-integration-policy
dengan opsi ini. Ini memberikan akses ke ember bernamaamzn-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 -
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.jsoncontoh menggunakan kunci konteks kondisi global untuk membuat IAM peran
Sebaiknya gunakan kunci konteks kondisi global
aws:SourceArn
danaws: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, nilaiaws:SourceAccount
dan akun dalam nilaiaws: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 bernama
rds-s3-integration-role
. Ganti
dengan kebijakan ARN yang Anda catat di langkah sebelumnya.your-policy-arn
Untuk Linux, macOS, atau Unix:
aws iam attach-role-policy \ --policy-arn
your-policy-arn
\ --role-namerds-s3-integration-role
Untuk Windows:
aws iam attach-role-policy ^ --policy-arn
your-policy-arn
^ --role-namerds-s3-integration-role