Membuat peran IAM secara manual untuk SQL Server Audit - 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.

Membuat peran IAM secara manual untuk SQL Server Audit

Biasanya, ketika Anda membuat opsi baru, AWS Management Console membuat peran IAM dan kebijakan kepercayaan IAM untuk Anda. Namun, Anda dapat secara manual membuat peran IAM baru untuk digunakan dengan SQL Server Audit sehingga Anda dapat menyesuaikannya dengan persyaratan tambahan yang mungkin Anda miliki. Untuk melakukan ini, Anda membuat peran IAM dan mendelegasikan izin sehingga layanan Amazon RDS dapat menggunakan bucket Amazon S3. Saat Anda membuat peran IAM ini, Anda dapat memberikan kebijakan kepercayaan dan izin. Dengan adanya kebijakan kepercayaan, Amazon RDS dapat mengambil peran ini. Kebijakan izin menentukan tindakan yang dapat dilakukan peran ini. Untuk informasi selengkapnya, lihat Membuat peran untuk mendelegasikan izin ke AWS layanan di Panduan Pengguna AWS Identity and Access Management.

Anda dapat menggunakan contoh di bagian ini untuk membuat kebijakan hubungan kepercayaan dan izin yang Anda butuhkan.

Contoh berikut menunjukkan hubungan kepercayaan untuk SQL Server Audit. Contoh tersebut menggunakan pengguna utama layanan rds.amazonaws.com untuk memungkinkan RDS menulis ke bucket S3. Pengguna utama layanan adalah pengidentifikasi yang digunakan untuk memberikan izin layanan. Setiap kali Anda mengizinkan akses ke rds.amazonaws.com dengan cara ini, Anda mengizinkan RDS untuk melakukan tindakan atas nama Anda. Untuk informasi pengguna utama layanan selengkapnya, lihat Elemen kebijakan AWS JSON: Pengguna Utama.

contoh hubungan kepercayaan untuk SQL Server Audit
JSON
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Sebaiknya gunakan kunci konteks kondisi global aws:SourceArn dan aws:SourceAccount dalam hubungan kepercayaan berbasis sumber daya untuk membatasi izin layanan ke sumber daya tertentu. Ini adalah cara yang paling efektif untuk melindungi dari masalah confused deputy.

Anda dapat menggunakan kedua kunci konteks kondisi global tersebut dan nilai aws:SourceArn berisi ID akun. Dalam hal ini, nilai aws:SourceAccount dan akun dalam nilai aws:SourceArn harus menggunakan ID akun yang sama saat digunakan dalam pernyataan 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 hubungan kepercayaan, pastikan Anda menggunakan kunci konteks kondisi global aws:SourceArn dengan Amazon Resource Name (ARN) dari sumber daya yang mengakses peran tersebut. Untuk SQL Server Audit, pastikan Anda menyertakan grup opsi DB dan instans DB, seperti yang ditunjukkan pada contoh berikut.

contoh hubungan kepercayaan dengan kunci konteks kondisi global untuk SQL Server Audit
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", "arn:aws:rds:Region:my_account_ID:og:option_group_name" ] } } } ] }

Dalam contoh kebijakan izin untuk SQL Server Audit berikut, kami menentukan ARN untuk bucket Amazon S3. Anda dapat menggunakan ARNs untuk mengidentifikasi akun, pengguna, atau peran tertentu yang ingin Anda beri akses. Untuk informasi selengkapnya tentang penggunaan ARNs, lihat nama sumber daya Amazon (ARNs).

contoh kebijakan izin untuk SQL Server Audit
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:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/key_prefix/*" } ] }
catatan

s3:ListAllMyBucketsTindakan ini diperlukan untuk memverifikasi bahwa AWS akun yang sama memiliki bucket S3 dan instance SQL Server DB. Tindakan tersebut mencantumkan nama bucket di akun.

Namespace bucket S3 bersifat global. Jika Anda tidak sengaja menghapus bucket, pengguna lain dapat membuat bucket dengan nama yang sama di akun lain. Kemudian, data SQL Server Audit akan ditulis ke bucket baru.