View a markdown version of this page

Cross-service pencegahan wakil bingung - Amazon Aurora DSQL

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Cross-service pencegahan wakil bingung

Masalah "confused deputy" adalah masalah keamanan di mana entitas yang tidak memiliki izin untuk melakukan tindakan dapat memengaruhi entitas yang memiliki hak akses lebih tinggi untuk melakukan tindakan. Pada tahun AWS, peniruan lintas layanan dapat mengakibatkan masalah wakil yang membingungkan. Cross-service peniruan identitas dapat terjadi ketika satu layanan (layanan panggilan) memanggil layanan lain (layanan yang disebut). Layanan pemanggilan dapat dimanipulasi menggunakan izinnya untuk bertindak pada sumber daya pelanggan lain dengan cara yang seharusnya tidak dilakukannya kecuali bila memiliki izin untuk mengakses. Untuk mencegah hal ini, AWS menyediakan alat yang membantu Anda melindungi data untuk semua layanan dengan principal layanan yang telah diberi akses ke sumber daya di akun Anda.

Sebaiknya gunakan kunci konteks kondisi aws:SourceAccountglobal aws:SourceArndan global dalam kebijakan sumber daya untuk membatasi izin yang diberikan Amazon Aurora DSQL layanan lain ke sumber daya. Gunakan aws:SourceArn jika Anda ingin hanya satu sumber daya yang akan dikaitkan dengan akses lintas layanan. Gunakan aws:SourceAccount jika Anda ingin mengizinkan sumber daya apa pun di akun tersebut dikaitkan dengan penggunaan lintas layanan.

Cara paling efektif untuk melindungi dari masalah "confused deputy" adalah dengan menggunakan kunci konteks kondisi global aws:SourceArn dengan ARN lengkap sumber daya. Jika Anda tidak mengetahui ARN lengkap sumber daya atau jika Anda menentukan beberapa sumber daya, gunakan kunci kondisi konteks global aws:SourceArn dengan karakter wildcard (*) untuk bagian ARN yang tidak diketahui. Misalnya, arn:aws:dsql:*:123456789012:*.

Jika nilai aws:SourceArn tidak berisi ID akun, seperti ARN bucket Amazon S3, Anda harus menggunakan kedua kunci konteks kondisi global tersebut untuk membatasi izin.

Nilai aws:SourceArn harus ARN dari sumber daya Aurora DSQL yang peran layanan bertindak atas nama.

Contoh berikut menunjukkan bagaimana Anda dapat menggunakan aws:SourceArn dan kunci konteks kondisi aws:SourceAccount global di Aurora DSQL untuk mencegah masalah wakil bingung.

JSON
{ "Version":"2012-10-17", "Statement": { "Sid": "ConfusedDeputyPreventionExamplePolicy", "Effect": "Allow", "Principal": { "Service": "backup.amazonaws.com" }, "Action": "dsql:GetCluster", "Resource": [ "arn:aws:dsql:*:123456789012:cluster/*" ], "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:backup:*:123456789012:*" }, "StringEquals": { "aws:SourceAccount": "123456789012" } } } }

Peran layanan aliran CDC

Aliran perubahan pengambilan data (CDC) memerlukan peran layanan IAM yang diasumsikan Aurora DSQL untuk menulis catatan CDC ke target Anda. Saat Anda membuat peran ini, gunakan aws:SourceAccount dan aws:SourceArn ketentuan dalam kebijakan kepercayaan untuk memastikan bahwa hanya aliran CDC di akun Anda yang dapat mengambil peran tersebut.

Setel aws:SourceArn ke pola ARN aliran untuk cluster yang menggunakan peran. Karena Aurora DSQL belum menetapkan pengenal aliran saat Anda membuat aliran, gunakan wildcard untuk bagian aliran ARN:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DSQLAssumeRole", "Effect": "Allow", "Principal": { "Service": "dsql.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "your-account-id" }, "ArnLike": { "aws:SourceArn": "arn:aws:dsql:region:your-account-id:cluster/cluster-id/stream/*" } } } ] }

Setelah Anda membuat aliran, Anda dapat mengencangkan aws:SourceArn ke ARN streaming yang tepat jika peran tersebut melayani satu aliran. Untuk penjelasan selengkapnya tentang kebijakan kepercayaan dan kebijakan izin untuk peran layanan CDC, lihat. Mengkonfigurasi IAM