Pencegahan confused deputy lintas layanan - Database Buku Besar Amazon Quantum (AmazonQLDB)

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

Pencegahan confused deputy lintas layanan

penting

Pemberitahuan akhir dukungan: Pelanggan yang ada akan dapat menggunakan Amazon QLDB hingga akhir dukungan pada 07/31/2025. Untuk detail selengkapnya, lihat Memigrasi QLDB Buku Besar Amazon ke Amazon Aurora Postgre. SQL

Masalah deputi yang bingung adalah masalah keamanan di mana entitas yang tidak memiliki izin untuk melakukan tindakan dapat memaksa entitas yang lebih istimewa untuk melakukan tindakan. Masuk AWS, peniruan lintas layanan dapat mengakibatkan masalah wakil yang membingungkan.

Peniruan identitas lintas layanan dapat terjadi ketika satu layanan (layanan yang dipanggil) memanggil layanan lain (layanan yang dipanggil). 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 masalah wakil yang bingung, AWS menyediakan alat yang membantu Anda melindungi data Anda untuk semua layanan dengan prinsipal layanan yang telah diberikan 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 QLDB diberikan Amazon kepada layanan lain ke sumber daya. Jika Anda menggunakan kedua kunci konteks kondisi global, aws:SourceAccount nilai dan akun dalam aws:SourceArn nilai harus menggunakan ID akun yang sama saat digunakan dalam pernyataan kebijakan yang sama.

Tabel berikut mencantumkan kemungkinan nilai aws:SourceArn untuk ExportJournalToS3dan StreamsJournalToKinesisQLDBAPIoperasi. Operasi ini berada dalam ruang lingkup untuk masalah keamanan ini karena mereka memanggil AWS Security Token Service (AWS STS) untuk mengambil IAM peran yang Anda tentukan.

APIoperasi Layanan yang dipanggil aws: SourceArn
ExportJournalToS3 AWS STS (AssumeRole)

Memungkinkan QLDB untuk mengambil peran untuk QLDB sumber daya apa pun di akun:

arn:aws:qldb:us-east-1:123456789012:*

Saat ini, QLDB hanya mendukung wildcard ini ARN untuk ekspor jurnal.

StreamsJournalToKinesis AWS STS (AssumeRole)

Memungkinkan QLDB untuk mengambil peran untuk QLDB aliran tertentu:

arn:aws:qldb:us-east-1:123456789012:stream/myExampleLedger/IiPT4brpZCqCq3f4MTHbYy

Catatan: Anda hanya dapat menentukan ID aliran ARN setelah sumber daya aliran dibuat. Dengan menggunakan iniARN, Anda dapat mengizinkan peran hanya digunakan untuk satu QLDB aliran.

Memungkinkan QLDB untuk mengambil peran untuk setiap QLDB aliran buku besar:

arn:aws:qldb:us-east-1:123456789012:stream/myExampleLedger/*

Memungkinkan QLDB untuk mengambil peran untuk setiap QLDB aliran di akun:

arn:aws:qldb:us-east-1:123456789012:stream/*

Memungkinkan QLDB untuk mengambil peran untuk QLDB sumber daya apa pun di akun:

arn:aws:qldb:us-east-1:123456789012:*

Cara paling efektif untuk melindungi dari masalah wakil yang membingungkan adalah dengan menggunakan kunci konteks kondisi aws:SourceArn global dengan penuh ARN sumber daya. Jika Anda tidak mengetahui sumber daya penuh ARN atau jika Anda menentukan beberapa sumber daya, gunakan kunci kondisi konteks aws:SourceArn global dengan karakter wildcard (*) untuk bagian yang tidak diketahui dari ARN —misalnya,. arn:aws:qldb:us-east-1:123456789012:*

Contoh kebijakan kepercayaan berikut untuk IAM peran menunjukkan bagaimana Anda dapat menggunakan kunci konteks kondisi aws:SourceAccount global aws:SourceArn dan untuk mencegah masalah wakil yang membingungkan. Dengan kebijakan kepercayaan ini, QLDB dapat mengambil peran untuk QLDB aliran apa pun di akun 123456789012 untuk buku besar myExampleLedger saja.

Untuk menggunakan kebijakan ini, ganti us-east-1, 123456789012, dan myExampleLedger dalam contoh dengan informasi Anda sendiri.

{ "Version": "2012-10-17", "Statement": { "Sid": "ConfusedDeputyPreventionExamplePolicy", "Effect": "Allow", "Principal": { "Service": "qldb.amazonaws.com" }, "Action": [ "sts:AssumeRole" ], "Condition": { "ArnEquals": { "aws:SourceArn": "arn:aws:qldb:us-east-1:123456789012:stream/myExampleLedger/*" }, "StringEquals": { "aws:SourceAccount": "123456789012" } } } }