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
-
Di Konsol Manajemen IAM
, 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 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 kearn: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.
-
-
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
-
Di Konsol Manajemen IAM
, pilih Peran di panel navigasi. -
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.
-
-
Untuk Lampirkan kebijakan izin, masukkan nama kebijakan IAM yang telah Anda buat sebelumnya. 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 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:
-
Buat kebijakan IAM yang memberi Amazon RDS akses ke bucket S3.
-
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.
-
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 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 kebijakan IAM bernama
rds-s3-integration-policy
dengan opsi ini. Kebijakan ini memberikan akses ke bucket 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\
. 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: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, 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: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.jsoncontoh menggunakan kunci konteks kondisi global untuk membuat peran IAM
Sebaiknya gunakan kunci konteks kondisi global
aws:SourceArn
danaws: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, 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 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
. -
Untuk melampirkan kebijakan IAM untuk peran IAM
-
AWS CLI Perintah berikut melampirkan kebijakan ke peran bernama
rds-s3-integration-role
. Ganti
dengan ARN kebijakan 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