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

Biasanya, ketika Anda membuat opsi baru, AWS Management Console menciptakan IAM peran dan kebijakan IAM kepercayaan untuk Anda. Namun, Anda dapat secara manual membuat IAM peran baru untuk digunakan dengan Audit SQL Server, sehingga Anda dapat menyesuaikannya dengan persyaratan tambahan apa pun yang mungkin Anda miliki. Untuk melakukan ini, Anda membuat IAM peran dan mendelegasikan izin sehingga RDS layanan Amazon dapat menggunakan bucket Amazon S3 Anda. Saat membuat IAM peran ini, Anda melampirkan kebijakan kepercayaan dan izin. Kebijakan kepercayaan memungkinkan Amazon RDS untuk 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. Ini menggunakan prinsip layanan rds.amazonaws.com untuk memungkinkan menulis RDS ke ember S3. Pengguna utama layanan adalah pengidentifikasi yang digunakan untuk memberikan izin layanan. Kapan pun Anda mengizinkan akses dengan rds.amazonaws.com cara ini, Anda mengizinkan RDS untuk melakukan tindakan atas nama Anda. Untuk informasi selengkapnya tentang prinsip layanan, lihat elemen AWS JSON kebijakan: Principal.

contoh hubungan kepercayaan untuk SQL Server Audit
{ "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 untuk menggunakan kunci konteks kondisi aws:SourceArn global dengan Nama Sumber Daya Amazon (ARN) lengkap dari sumber daya yang mengakses peran. Untuk Audit SQL Server, pastikan untuk menyertakan grup opsi DB dan instance DB, seperti yang ditunjukkan pada contoh berikut.

contoh hubungan kepercayaan dengan kunci konteks kondisi global untuk SQL Server Audit
{ "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 berikut kebijakan izin untuk SQL Server Audit, kami menentukan bucket Amazon S3 ARN untuk Amazon S3. Anda dapat menggunakan ARNs untuk mengidentifikasi akun, pengguna, atau peran tertentu yang ingin Anda berikan akses. Untuk informasi selengkapnya tentang penggunaanARNs, lihat nama sumber daya Amazon (ARNs).

contoh kebijakan izin untuk SQL Server Audit
{ "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 Audit SQL Server ditulis ke bucket baru.