Menyiapkan akses ke bucket Amazon 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.

Menyiapkan akses ke bucket Amazon S3

Untuk mengekspor data ke Amazon S3, berikan izin instans Postgre SQL DB Anda untuk mengakses bucket Amazon S3 tempat file tersebut akan masuk.

Untuk melakukannya, gunakan prosedur berikut.

Untuk memberikan akses instans Postgre SQL DB ke Amazon S3 melalui peran IAM
  1. Buat IAM kebijakan.

    Kebijakan ini menyediakan izin bucket dan objek yang memungkinkan instance S3.

    Sebagai bagian dari pembuatan kebijakan ini, lakukan langkah-langkah berikut:

    1. Sertakan dalam kebijakan tindakan yang diperlukan berikut untuk mengizinkan transfer file dari instans Postgre SQL DB Anda ke bucket Amazon S3:

      • s3:PutObject

      • s3:AbortMultipartUpload

    2. Sertakan Amazon Resource Name (ARN) yang mengidentifikasi bucket Amazon S3 dan objek dalam bucket. ARNFormat untuk mengakses Amazon S3 adalah: arn:aws:s3:::amzn-s3-demo-bucket/*

    Untuk informasi selengkapnya tentang membuat IAM kebijakan untuk , lihat. Membuat dan menggunakan kebijakan IAM untuk akses basis data IAM Lihat juga Tutorial: Buat dan lampirkan kebijakan terkelola pelanggan pertama Anda di Panduan IAM Pengguna.

    Berikut ini AWS CLI perintah membuat IAM kebijakan bernama rds-s3-export-policy dengan opsi ini. Ini memberikan akses ke ember bernama amzn-s3-demo-bucket.

    Awas

    Kami menyarankan Anda menyiapkan database Anda dalam private yang memiliki kebijakan endpoint VPC yang dikonfigurasi untuk mengakses bucket tertentu. Untuk informasi selengkapnya, lihat Menggunakan kebijakan titik akhir untuk Amazon S3 di Panduan Pengguna VPC Amazon.

    Kami sangat menyarankan Anda agar tidak membuat kebijakan dengan akses semua sumber daya. Akses ini dapat menjadi ancaman bagi data keamanan. Jika Anda membuat kebijakan yang memberi akses S3:PutObject ke semua sumber daya menggunakan "Resource":"*", pengguna yang memiliki hak istimewa ekspor dapat mengekspor data ke semua bucket di akun Anda. Selain itu, pengguna dapat mengekspor data ke bucket yang dapat ditulis secara publik di dalam AWS Wilayah.

    Setelah Anda membuat kebijakan, perhatikan Amazon Resource Name (ARN) kebijakan tersebut. Anda memerlukan langkah selanjutnya saat Anda melampirkan kebijakan ke suatu IAM peran. ARN

    aws iam create-policy --policy-name rds-s3-export-policy --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "s3export", "Action": [ "s3:PutObject*", "s3:ListBucket", "s3:GetObject*", "s3:DeleteObject*", "s3:GetBucketLocation", "s3:AbortMultipartUpload" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/*" ] } ] }'
  2. Buat IAM peran.

    Anda melakukan ini sehingga Amazon dapat mengambil peran IAM ini atas nama Anda untuk mengakses ember Amazon S3 Anda. Untuk informasi selengkapnya, lihat Membuat peran untuk mendelegasikan izin kepada IAM pengguna di Panduan IAM Pengguna.

    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 deputi yang membingungkan.

    Jika Anda menggunakan kunci konteks kondisi global dan nilai aws:SourceArn berisi ID akun, nilai aws:SourceAccount dan akun dalam nilai aws:SourceArn harus menggunakan ID akun yang sama saat digunakan dalam pernyataan kebijakan yang sama.

    • Gunakan aws:SourceArn jika Anda menginginkan 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 penuh ARN sumber daya. Contoh berikut menunjukkan bagaimana melakukannya dengan menggunakan AWS CLI perintah untuk membuat peran bernamards-s3-export-role.

    contoh

    Untuk Linux, macOS, atau Unix:

    aws iam create-role \ --role-name rds-s3-export-role \ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333", "aws:SourceArn": "arn:aws:rds:us-east-1:111122223333:db:dbname" } } } ] }'

    Untuk Windows:

    aws iam create-role ^ --role-name rds-s3-export-role ^ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333", "aws:SourceArn": "arn:aws:rds:us-east-1:111122223333:db:dbname" } } } ] }'
  3. Lampirkan IAM kebijakan yang Anda buat ke IAM peran yang Anda buat.

    Berikut ini AWS CLI perintah melampirkan kebijakan yang dibuat sebelumnya ke peran bernama rds-s3-export-role. Ganti your-policy-arn dengan kebijakan ARN yang Anda catat di langkah sebelumnya.

    aws iam attach-role-policy --policy-arn your-policy-arn --role-name rds-s3-export-role
  4. Tambahkan IAM peran ke instance DB. Anda melakukannya dengan menggunakan AWS Management Console atau AWS CLI, seperti yang dijelaskan berikut.

Untuk menambahkan IAM peran untuk instance Postgre SQL DB menggunakan konsol
  1. Masuk ke AWS Management Console dan buka RDS konsol Amazon di https://console.aws.amazon.com/rds/.

  2. Pilih nama instance Postgre SQL DB untuk menampilkan detailnya.

  3. Pada tab Konektivitas & keamanan, di bagian Kelola IAM peran, pilih peran yang akan ditambahkan di bawah Tambahkan IAM peran ke instance ini.

  4. Di bagian Fitur, pilih s3Export.

  5. Pilih Tambahkan peran.

Untuk menambahkan IAM peran untuk instance Postgre SQL DB menggunakan CLI
  • Gunakan perintah berikut untuk menambahkan peran ke instance Postgre SQL DB bernama. my-db-instance Ganti your-role-arn dengan peran ARN yang Anda catat di langkah sebelumnya. Gunakan s3Export untuk nilai opsi --feature-name.

    contoh

    Untuk Linux, macOS, atau Unix:

    aws rds add-role-to-db-instance \ --db-instance-identifier my-db-instance \ --feature-name s3Export \ --role-arn your-role-arn \ --region your-region

    Untuk Windows:

    aws rds add-role-to-db-instance ^ --db-instance-identifier my-db-instance ^ --feature-name s3Export ^ --role-arn your-role-arn ^ --region your-region