Contoh kebijakan berbasis identitas untuk Amazon QLDB - 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.

Contoh kebijakan berbasis identitas untuk Amazon QLDB

Secara default, pengguna dan peran tidak memiliki izin untuk membuat atau memodifikasi QLDB sumber daya. Mereka juga tidak dapat melakukan tugas dengan menggunakan AWS Management Console, AWS Command Line Interface (AWS CLI), atau AWS API. Untuk memberikan izin kepada pengguna untuk melakukan tindakan pada sumber daya yang mereka butuhkan, IAM administrator dapat membuat IAM kebijakan. Administrator kemudian dapat menambahkan IAM kebijakan ke peran, dan pengguna dapat mengambil peran.

Untuk mempelajari cara membuat kebijakan IAM berbasis identitas menggunakan contoh dokumen kebijakan ini, lihat Membuat JSON IAM kebijakan (konsol) di Panduan Pengguna. IAM

Untuk detail tentang tindakan dan jenis sumber daya yang ditentukan olehQLDB, termasuk format ARNs untuk setiap jenis sumber daya, lihat Kunci tindakan, sumber daya, dan kondisi untuk Amazon QLDB di Referensi Otorisasi 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

Praktik terbaik kebijakan

Kebijakan berbasis identitas menentukan apakah seseorang dapat membuat, mengakses, atau menghapus QLDB sumber daya di akun Anda. Tindakan ini membuat Akun AWS Anda dikenai biaya. Ketika Anda membuat atau mengedit kebijakan berbasis identitas, ikuti panduan dan rekomendasi ini:

  • Mulailah dengan kebijakan AWS terkelola dan beralih ke izin hak istimewa paling sedikit — Untuk mulai memberikan izin kepada pengguna dan beban kerja Anda, gunakan kebijakan AWS terkelola yang memberikan izin untuk banyak kasus penggunaan umum. Mereka tersedia di Anda Akun AWS. Kami menyarankan Anda mengurangi izin lebih lanjut dengan menentukan kebijakan yang dikelola AWS pelanggan yang khusus untuk kasus penggunaan Anda. Untuk informasi selengkapnya, lihat kebijakan AWSAWS terkelola atau kebijakan terkelola untuk fungsi pekerjaan di Panduan IAM Pengguna.

  • Menerapkan izin hak istimewa paling sedikit — Saat Anda menetapkan izin dengan IAM kebijakan, berikan hanya izin yang diperlukan untuk melakukan tugas. Anda melakukannya dengan mendefinisikan tindakan yang dapat diambil pada sumber daya tertentu dalam kondisi tertentu, yang juga dikenal sebagai izin dengan hak akses paling rendah. Untuk informasi selengkapnya tentang penggunaan IAM untuk menerapkan izin, lihat Kebijakan dan izin IAM di IAM Panduan Pengguna.

  • Gunakan ketentuan dalam IAM kebijakan untuk membatasi akses lebih lanjut — Anda dapat menambahkan kondisi ke kebijakan Anda untuk membatasi akses ke tindakan dan sumber daya. Misalnya, Anda dapat menulis kondisi kebijakan untuk menentukan bahwa semua permintaan harus dikirim menggunakanSSL. Anda juga dapat menggunakan ketentuan untuk memberikan akses ke tindakan layanan jika digunakan melalui yang spesifik Layanan AWS, seperti AWS CloudFormation. Untuk informasi selengkapnya, lihat elemen IAM JSON kebijakan: Kondisi dalam Panduan IAM Pengguna.

  • Gunakan IAM Access Analyzer untuk memvalidasi IAM kebijakan Anda guna memastikan izin yang aman dan fungsional — IAM Access Analyzer memvalidasi kebijakan baru dan yang sudah ada sehingga kebijakan mematuhi bahasa IAM kebijakan () JSON dan praktik terbaik. IAM IAMAccess Analyzer menyediakan lebih dari 100 pemeriksaan kebijakan dan rekomendasi yang dapat ditindaklanjuti untuk membantu Anda membuat kebijakan yang aman dan fungsional. Untuk informasi selengkapnya, lihat Memvalidasi kebijakan dengan IAM Access Analyzer di IAMPanduan Pengguna.

  • Memerlukan otentikasi multi-faktor (MFA) - Jika Anda memiliki skenario yang mengharuskan IAM pengguna atau pengguna root di Anda Akun AWS, aktifkan MFA untuk keamanan tambahan. Untuk meminta MFA kapan API operasi dipanggil, tambahkan MFA kondisi ke kebijakan Anda. Untuk informasi selengkapnya, lihat APIAkses aman dengan MFA di Panduan IAM Pengguna.

Untuk informasi selengkapnya tentang praktik terbaik diIAM, lihat Praktik terbaik keamanan IAM di Panduan IAM Pengguna.

Menggunakan QLDB konsol

Untuk mengakses QLDB konsol Amazon, Anda harus memiliki set izin minimum. Izin ini harus memungkinkan Anda untuk membuat daftar dan melihat detail tentang QLDB sumber daya di Anda Akun AWS. Jika Anda membuat kebijakan berbasis identitas yang lebih ketat daripada izin minimum yang diperlukan, konsol tidak akan berfungsi sebagaimana mestinya untuk entitas (pengguna atau peran) dengan kebijakan tersebut.

Anda tidak perlu mengizinkan izin konsol minimum untuk pengguna yang melakukan panggilan hanya ke AWS CLI atau. AWS API Sebagai gantinya, izinkan akses hanya ke tindakan yang cocok dengan API operasi yang mereka coba lakukan.

Untuk memastikan bahwa pengguna dan peran memiliki akses penuh ke QLDB konsol dan semua fitur-fiturnya, lampirkan kebijakan AWS terkelola berikut ke entitas. Untuk informasi selengkapnyaAWS kebijakan terkelola untuk Amazon QLDB, lihat, dan Menambahkan izin ke pengguna di Panduan IAM Pengguna.

AmazonQLDBConsoleFullAccess

Izin riwayat kueri

Selain QLDB izin, beberapa fitur konsol memerlukan izin untuk Layanan Metadata Kueri Database (awalan layanan:). dbqms Ini adalah layanan internal saja yang mengelola kueri terbaru dan tersimpan di editor kueri konsol untuk QLDB dan lainnya. Layanan AWS Untuk daftar lengkap DBQMS API tindakan, lihat Layanan Metadata Kueri Database di Referensi Otorisasi Layanan.

Untuk mengizinkan izin riwayat kueri, Anda dapat menggunakan kebijakan AWS terkelola A mazonQLDBConsole FullAccess. Kebijakan ini menggunakan wildcard (dbqms:*) untuk mengizinkan semua DBQMS tindakan untuk semua sumber daya.

Atau, Anda dapat membuat IAM kebijakan khusus dan menyertakan DBQMS tindakan berikut. Editor kueri PartiQL di QLDB konsol memerlukan izin untuk menggunakan tindakan ini untuk fitur riwayat kueri.

dbqms:CreateFavoriteQuery dbqms:CreateQueryHistory dbqms:DeleteFavoriteQueries dbqms:DeleteQueryHistory dbqms:DescribeFavoriteQueries dbqms:DescribeQueryHistory dbqms:UpdateFavoriteQuery

Izin konsol akses penuh tanpa riwayat kueri

Untuk mengizinkan akses penuh ke QLDB konsol tanpa izin riwayat kueri, Anda dapat membuat IAM kebijakan khusus yang mengecualikan semua DBQMS tindakan. Misalnya, dokumen kebijakan berikut memungkinkan izin yang sama yang diberikan oleh kebijakan AWS terkelola A mazonQLDBConsole FullAccess, kecuali tindakan yang dimulai dengan awalan dbqms layanan.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "qldb:CreateLedger", "qldb:UpdateLedger", "qldb:UpdateLedgerPermissionsMode", "qldb:DeleteLedger", "qldb:ListLedgers", "qldb:DescribeLedger", "qldb:ExportJournalToS3", "qldb:ListJournalS3Exports", "qldb:ListJournalS3ExportsForLedger", "qldb:DescribeJournalS3Export", "qldb:CancelJournalKinesisStream", "qldb:DescribeJournalKinesisStream", "qldb:ListJournalKinesisStreamsForLedger", "qldb:StreamJournalToKinesis", "qldb:GetBlock", "qldb:GetDigest", "qldb:GetRevision", "qldb:TagResource", "qldb:UntagResource", "qldb:ListTagsForResource", "qldb:SendCommand", "qldb:ExecuteStatement", "qldb:ShowCatalog", "qldb:InsertSampleData", "qldb:PartiQLCreateIndex", "qldb:PartiQLDropIndex", "qldb:PartiQLCreateTable", "qldb:PartiQLDropTable", "qldb:PartiQLUndropTable", "qldb:PartiQLDelete", "qldb:PartiQLInsert", "qldb:PartiQLUpdate", "qldb:PartiQLSelect", "qldb:PartiQLHistoryFunction" ], "Effect": "Allow", "Resource": "*" }, { "Action": [ "kinesis:ListStreams", "kinesis:DescribeStream" ], "Effect": "Allow", "Resource": "*" }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "qldb.amazonaws.com" } } } ] }

Mengizinkan pengguna melihat izin mereka sendiri

Contoh ini menunjukkan cara Anda membuat kebijakan yang memungkinkan IAM pengguna melihat kebijakan sebaris dan terkelola yang dilampirkan pada identitas pengguna mereka. Kebijakan ini mencakup izin untuk menyelesaikan tindakan ini di konsol atau secara terprogram menggunakan atau. AWS CLI AWS API

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }

Menjalankan transaksi data

Untuk berinteraksi dengan data QLDB transaksional API (QLDBSesi) dengan menjalankan pernyataan PartiQL pada buku besar, Anda harus memberikan izin untuk tindakan tersebut. SendCommand API JSONDokumen berikut adalah contoh kebijakan yang memberikan izin hanya untuk SendCommand API tindakan pada buku besarmyExampleLedger.

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

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBSendCommandPermission", "Effect": "Allow", "Action": "qldb:SendCommand", "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger" } ] }

Jika myExampleLedger menggunakan mode ALLOW_ALL izin, kebijakan ini memberikan izin untuk menjalankan semua perintah PartiQL pada tabel mana pun di buku besar.

Anda juga dapat menggunakan kebijakan AWS terkelola untuk memberikan akses penuh ke semua QLDB sumber daya. Untuk informasi selengkapnya, lihat AWS kebijakan terkelola untuk Amazon QLDB.

Izin standar untuk tindakan PartiQL dan sumber daya tabel

Untuk buku besar dalam mode STANDARD izin, Anda dapat merujuk ke dokumen IAM kebijakan berikut sebagai contoh pemberian izin PartiQL yang sesuai. Untuk daftar izin yang diperlukan untuk setiap perintah PartiQL, lihat. Referensi izin PartiQL

Akses penuh ke semua tindakan

Dokumen JSON kebijakan berikut memberikan akses penuh untuk menggunakan semua perintah PartiQL pada semua tabel di. myExampleLedger Kebijakan ini menghasilkan efek yang sama seperti menggunakan mode ALLOW_ALL izin untuk buku besar.

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

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBSendCommandPermission", "Effect": "Allow", "Action": "qldb:SendCommand", "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger" }, { "Sid": "QLDBPartiQLFullPermissions", "Effect": "Allow", "Action": [ "qldb:PartiQLCreateIndex", "qldb:PartiQLDropIndex", "qldb:PartiQLCreateTable", "qldb:PartiQLDropTable", "qldb:PartiQLUndropTable", "qldb:PartiQLDelete", "qldb:PartiQLInsert", "qldb:PartiQLUpdate", "qldb:PartiQLRedact", "qldb:PartiQLSelect", "qldb:PartiQLHistoryFunction" ], "Resource": [ "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/table/*", "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/information_schema/user_tables" ] } ] }

Akses penuh ke semua tindakan berdasarkan tag tabel

Dokumen JSON kebijakan berikut menggunakan kondisi yang didasarkan pada tag sumber daya tabel untuk memberikan akses penuh guna menggunakan semua perintah PartiQL pada semua tabel. myExampleLedger Izin diberikan hanya jika tag tabel environment memiliki nilaidevelopment.

Awas

Ini adalah contoh penggunaan karakter wildcard (*) untuk memungkinkan semua tindakan PartiQL, termasuk operasi administratif dan baca/tulis pada semua tabel dalam buku besar. QLDB Sebaliknya, ini adalah praktik terbaik untuk secara eksplisit menentukan setiap tindakan yang akan diberikan, dan hanya apa yang dibutuhkan pengguna, peran, atau grup itu.

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

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBSendCommandPermission", "Effect": "Allow", "Action": "qldb:SendCommand", "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger" }, { "Sid": "QLDBPartiQLFullPermissionsBasedOnTags", "Effect": "Allow", "Action": [ "qldb:PartiQL*" ], "Resource": [ "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/table/*", "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/information_schema/user_tables" ], "Condition": { "StringEquals": { "aws:ResourceTag/environment": "development" } } } ] }

Akses baca/tulis

Dokumen JSON kebijakan berikut memberikan izin untuk memilih, menyisipkan, memperbarui, dan menghapus data pada semua tabel. myExampleLedger Kebijakan ini tidak memberikan izin untuk menyunting data atau mengubah skema, misalnya, membuat dan menghapus tabel dan indeks.

catatan

UPDATEPernyataan memerlukan izin untuk kedua qldb:PartiQLSelect tindakan qldb:PartiQLUpdate dan pada tabel yang sedang dimodifikasi. Saat Anda menjalankan UPDATE pernyataan, ia melakukan operasi baca selain operasi pembaruan. Memerlukan kedua tindakan memastikan bahwa hanya pengguna yang diizinkan membaca isi tabel yang diberikan UPDATE izin.

Demikian pula, DELETE pernyataan memerlukan izin untuk qldb:PartiQLSelect tindakan qldb:PartiQLDelete dan tindakan.

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

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBSendCommandPermission", "Effect": "Allow", "Action": "qldb:SendCommand", "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger" }, { "Sid": "QLDBPartiQLReadWritePermissions", "Effect": "Allow", "Action": [ "qldb:PartiQLDelete", "qldb:PartiQLInsert", "qldb:PartiQLUpdate", "qldb:PartiQLSelect", "qldb:PartiQLHistoryFunction" ], "Resource": [ "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/table/*", "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/information_schema/user_tables" ] } ] }

Akses hanya-baca

Dokumen JSON kebijakan berikut memberikan izin hanya-baca pada semua tabel di. myExampleLedger Untuk menggunakan kebijakan ini, ganti us-east-1, 123456789012, dan myExampleLedger dalam contoh dengan informasi Anda sendiri.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBSendCommandPermission", "Effect": "Allow", "Action": "qldb:SendCommand", "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger" }, { "Sid": "QLDBPartiQLReadOnlyPermissions", "Effect": "Allow", "Action": [ "qldb:PartiQLSelect", "qldb:PartiQLHistoryFunction" ], "Resource": [ "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/table/*", "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/information_schema/user_tables" ] } ] }

Akses hanya-baca ke tabel tertentu

Dokumen JSON kebijakan berikut memberikan izin hanya-baca pada tabel tertentu di. myExampleLedger Dalam contoh ini, ID tabel adalahAu1EiThbt8s0z9wM26REZN.

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

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBSendCommandPermission", "Effect": "Allow", "Action": "qldb:SendCommand", "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger" }, { "Sid": "QLDBPartiQLReadOnlyPermissionsOnTable", "Effect": "Allow", "Action": [ "qldb:PartiQLSelect", "qldb:PartiQLHistoryFunction" ], "Resource": [ "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/table/Au1EiThbt8s0z9wM26REZN" ] } ] }

Izinkan akses untuk membuat tabel

Dokumen JSON kebijakan berikut memberikan izin untuk membuat tabel. myExampleLedger qldb:PartiQLCreateTableTindakan ini memerlukan izin untuk jenis sumber daya tabel. Namun, ID tabel tabel baru tidak diketahui pada saat Anda menjalankan CREATE TABLE pernyataan. Jadi, kebijakan yang memberikan qldb:PartiQLCreateTable izin harus menggunakan wildcard (*) dalam tabel ARN untuk menentukan sumber daya.

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

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBSendCommandPermission", "Effect": "Allow", "Action": "qldb:SendCommand", "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger" }, { "Sid": "QLDBPartiQLCreateTablePermission", "Effect": "Allow", "Action": [ "qldb:PartiQLCreateTable" ], "Resource": [ "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/table/*" ] } ] }

Izinkan akses untuk membuat tabel berdasarkan tag permintaan

Dokumen JSON kebijakan berikut menggunakan kondisi berdasarkan kunci aws:RequestTag konteks untuk memberikan izin untuk membuat tabelmyExampleLedger. Izin diberikan hanya jika tag permintaan environment memiliki nilaidevelopment. Menandai tabel pada pembuatan membutuhkan akses ke qldb:TagResource tindakan qldb:PartiQLCreateTable dan tindakan. Untuk mempelajari cara menandai tabel pada pembuatan, lihatMenandai tabel.

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

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBSendCommandPermission", "Effect": "Allow", "Action": "qldb:SendCommand", "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger" }, { "Sid": "QLDBPartiQLCreateTablePermission", "Effect": "Allow", "Action": [ "qldb:PartiQLCreateTable", "qldb:TagResource" ], "Resource": [ "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/table/*" ], "Condition": { "StringEquals": { "aws:RequestTag/environment": "development" } } } ] }

Mengekspor jurnal ke ember Amazon S3

Langkah 1: izin ekspor QLDB jurnal

Dalam contoh berikut, Anda memberi pengguna Akun AWS izin untuk melakukan qldb:ExportJournalToS3 tindakan pada sumber daya QLDB buku besar. Anda juga memberikan izin untuk melakukan iam:PassRole tindakan pada sumber daya IAM peran yang ingin diteruskan ke QLDB layanan. Ini diperlukan untuk semua permintaan ekspor jurnal.

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

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBJournalExportPermission", "Effect": "Allow", "Action": "qldb:ExportJournalToS3", "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger" }, { "Sid": "IAMPassRolePermission", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::123456789012:role/qldb-s3-export", "Condition": { "StringEquals": { "iam:PassedToService": "qldb.amazonaws.com" } } } ] }

Langkah 2: Izin bucket Amazon S3

Dalam contoh berikut, Anda menggunakan IAM peran untuk memberikan QLDB akses untuk menulis ke salah satu bucket Amazon S3 Anda. amzn-s3-demo-bucket Ini juga diperlukan untuk semua ekspor QLDB jurnal.

Selain memberikan s3:PutObject izin, kebijakan juga memberikan izin untuk kemampuan menyetel s3:PutObjectAcl izin daftar kontrol akses (ACL) untuk objek.

Untuk menggunakan kebijakan ini, ganti amzn-s3-demo-bucket dalam contoh dengan nama bucket Amazon S3 Anda.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBJournalExportS3Permissions", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:PutObjectAcl" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" } ] }

Kemudian, Anda melampirkan kebijakan izin ini ke IAM peran yang QLDB dapat diasumsikan untuk mengakses bucket Amazon S3 Anda. JSONDokumen berikut adalah contoh kebijakan kepercayaan yang memungkinkan QLDB untuk mengambil IAM peran untuk QLDB sumber daya apa pun di akun 123456789012 saja.

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

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

Streaming jurnal ke Kinesis Data Streams

Langkah 1: izin aliran QLDB jurnal

Dalam contoh berikut, Anda memberi pengguna Akun AWS izin untuk melakukan qldb:StreamJournalToKinesis tindakan pada semua subresource QLDB aliran dalam buku besar. Anda juga memberikan izin untuk melakukan iam:PassRole tindakan pada sumber daya IAM peran yang ingin diteruskan ke QLDB layanan. Ini diperlukan untuk semua permintaan aliran jurnal.

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

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBJournalStreamPermission", "Effect": "Allow", "Action": "qldb:StreamJournalToKinesis", "Resource": "arn:aws:qldb:us-east-1:123456789012:stream/myExampleLedger/*" }, { "Sid": "IAMPassRolePermission", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::123456789012:role/qldb-kinesis-stream", "Condition": { "StringEquals": { "iam:PassedToService": "qldb.amazonaws.com" } } } ] }

Langkah 2: Izin Kinesis Data Streams

Dalam contoh berikut, Anda menggunakan IAM peran untuk memberikan QLDB akses untuk menulis catatan data ke aliran data Amazon Kinesis, stream-for-qldb. Ini juga diperlukan untuk semua aliran QLDB jurnal.

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

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBStreamKinesisPermissions", "Action": [ "kinesis:PutRecord*", "kinesis:DescribeStream", "kinesis:ListShards" ], "Effect": "Allow", "Resource": "arn:aws:kinesis:us-east-1:123456789012:stream/stream-for-qldb" } ] }

Kemudian, Anda melampirkan kebijakan izin ini ke IAM peran yang QLDB dapat diasumsikan untuk mengakses aliran data Kinesis Anda. JSONDokumen berikut adalah contoh kebijakan kepercayaan yang memungkinkan QLDB untuk mengambil IAM 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": [ { "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" } } } ] }

Memperbarui QLDB buku besar berdasarkan tag

Anda dapat menggunakan kondisi dalam kebijakan berbasis identitas untuk mengontrol akses ke QLDB sumber daya berdasarkan tag. Contoh ini menunjukkan bagaimana Anda dapat membuat kebijakan yang memungkinkan memperbarui buku besar. Namun, izin diberikan hanya jika tag buku besar Owner memiliki nilai nama pengguna pengguna tersebut. Kebijakan ini juga memberi izin yang diperlukan untuk menyelesaikan tindakan ini pada konsol tersebut.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ListLedgersInConsole", "Effect": "Allow", "Action": "qldb:ListLedgers", "Resource": "*" }, { "Sid": "UpdateLedgerIfOwner", "Effect": "Allow", "Action": "qldb:UpdateLedger", "Resource": "arn:aws:qldb:*:*:ledger/*", "Condition": { "StringEquals": {"aws:ResourceTag/Owner": "${aws:username}"} } } ] }

Anda dapat melampirkan kebijakan ini ke pengguna di akun Anda. Jika pengguna bernama richard-roe mencoba memperbarui buku besar, QLDB buku besar harus diberi tag Owner=richard-roe atau. owner=richard-roe Jika tidak, aksesnya akan ditolak. Kunci tag kondisi Owner cocok dengan keduanya Owner dan owner karena nama kunci kondisi tidak peka huruf besar/kecil. Untuk informasi selengkapnya, lihat elemen IAM JSON kebijakan: Kondisi dalam Panduan IAM Pengguna.