Contoh kebijakan berbasis identitas untuk Amazon QLDB - Amazon Quantum Ledger Database (Amazon QLDB)

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 sumber daya QLDB. 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 di sumber daya yang mereka perlukan, administrator IAM dapat membuat kebijakan IAM. Administrator kemudian akan dapat menambahkan kebijakan IAM ke peran, dan pengguna dapat mengambil peran.

Untuk mempelajari cara membuat kebijakan berbasis identitas IAM menggunakan contoh dokumen kebijakan JSON ini, lihat Membuat kebijakan IAM dalam Panduan Pengguna IAM.

Untuk detail tentang tindakan dan jenis sumber daya yang ditentukan oleh QLDB, termasuk format ARN untuk setiap jenis sumber daya, lihat Kunci tindakan, sumber daya, dan kondisi untuk Amazon QLDB di Referensi Otorisasi Layanan.

Praktik terbaik kebijakan

Kebijakan berbasis identitas menentukan apakah seseorang dapat membuat, mengakses, atau menghapus sumber daya QLDB 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 yang dikelola AWS atau Kebijakan yang dikelola AWS untuk fungsi tugas dalam Panduan Pengguna IAM.

  • Menerapkan izin dengan hak akses paling rendah – Ketika Anda menetapkan izin dengan kebijakan IAM, hanya berikan 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 cara menggunakan IAM untuk mengajukan izin, lihat Kebijakan dan izin dalam IAM dalam Panduan Pengguna IAM.

  • Gunakan kondisi dalam kebijakan IAM untuk membatasi akses lebih lanjut – Anda dapat menambahkan suatu kondisi ke kebijakan Anda untuk membatasi akses ke tindakan dan sumber daya. Sebagai contoh, Anda dapat menulis kondisi kebijakan untuk menentukan bahwa semua permintaan harus dikirim menggunakan SSL. 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 kebijakan JSON IAM: Kondisi dalam Panduan Pengguna IAM.

  • Gunakan IAM Access Analyzer untuk memvalidasi kebijakan IAM Anda untuk memastikan izin yang aman dan fungsional – IAM Access Analyzer memvalidasi kebijakan baru dan yang sudah ada sehingga kebijakan tersebut mematuhi bahasa kebijakan IAM (JSON) dan praktik terbaik IAM. IAM Access 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 Validasi kebijakan IAM Access Analyzer dalam Panduan Pengguna IAM.

  • Memerlukan otentikasi multi-faktor (MFA) - Jika Anda memiliki skenario yang mengharuskan pengguna IAM atau pengguna root di Anda, Akun AWS aktifkan MFA untuk keamanan tambahan. Untuk meminta MFA ketika operasi API dipanggil, tambahkan kondisi MFA pada kebijakan Anda. Untuk informasi selengkapnya, lihat Mengonfigurasi akses API yang dilindungi MFA dalam Panduan Pengguna IAM.

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

Menggunakan konsol QLDB

Untuk mengakses konsol QLDB Amazon, Anda harus memiliki set izin minimum. Izin ini harus memungkinkan Anda untuk membuat daftar dan melihat detail tentang sumber daya QLDB 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 sesuai dengan operasi API yang coba mereka lakukan.

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

AmazonQLDBConsoleFullAccess

Izin riwayat kueri

Selain izin QLDB, 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 AWSUntuk daftar lengkap tindakan API DBQMS, lihat Layanan Metadata Kueri Database di Referensi Otorisasi Layanan.

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

Atau, Anda dapat membuat kebijakan IAM kustom dan menyertakan tindakan DBQMS berikut. Editor kueri PartiQL di konsol QLDB 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 konsol QLDB tanpa izin riwayat kueri, Anda dapat membuat kebijakan IAM khusus yang mengecualikan semua tindakan DBQMS. Misalnya, dokumen kebijakan berikut memungkinkan izin yang sama yang diberikan oleh kebijakan AWS terkelola AmazonQLDB ConsoleFullAccess, kecuali tindakan yang dimulai dengan awalan layanan. dbqms

{ "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 membuat kebijakan yang mengizinkan pengguna IAM melihat kebijakan inline dan terkelola yang dilampirkan ke identitas pengguna mereka. Kebijakan ini mencakup izin untuk menyelesaikan tindakan ini di konsol atau menggunakan API atau secara terprogram. AWS CLI AWS

{ "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 API data transaksional QLDB (Sesi QLDB) dengan menjalankan pernyataan PartiQL pada buku besar, Anda harus memberikan izin untuk tindakan API. SendCommand Dokumen JSON berikut adalah contoh kebijakan yang memberikan izin hanya untuk tindakan SendCommand API pada buku besar. myExampleLedger

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

{ "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 sumber daya QLDB. 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 kebijakan IAM 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 kebijakan JSON 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 dalam contoh dengan informasi Anda sendiri. myExampleLedger

{ "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 kebijakan JSON berikut menggunakan kondisi yang didasarkan pada tag sumber daya tabel untuk memberikan akses penuh untuk menggunakan semua perintah PartiQL pada semua tabel di. 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 dalam contoh dengan informasi Anda sendiri. myExampleLedger

{ "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 kebijakan JSON 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 dalam contoh dengan informasi Anda sendiri. myExampleLedger

{ "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 kebijakan JSON berikut memberikan izin hanya-baca pada semua tabel di. myExampleLedger Untuk menggunakan kebijakan ini, ganti us-east-1, 123456789012, dan dalam contoh dengan informasi Anda sendiri. myExampleLedger

{ "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 kebijakan JSON 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,, dan Au1 8S0Z9WM26Rezn dalam contoh dengan informasi Anda myExampleLedgersendiri. EiThbt

{ "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 kebijakan JSON berikut memberikan izin untuk membuat tabel di. 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 dalam contoh dengan informasi Anda sendiri. myExampleLedger

{ "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 kebijakan JSON berikut menggunakan kondisi berdasarkan kunci aws:RequestTag konteks untuk memberikan izin untuk membuat tabel dimyExampleLedger. 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 dalam contoh dengan informasi Anda sendiri. myExampleLedger

{ "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 jurnal QLDB

Dalam contoh berikut, Anda memberi pengguna Akun AWS izin untuk melakukan qldb:ExportJournalToS3 tindakan pada sumber daya buku besar QLDB. Anda juga memberikan izin untuk melakukan iam:PassRole tindakan pada sumber daya peran IAM yang ingin diteruskan ke layanan QLDB. 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 peran IAM untuk memberikan akses QLDB untuk menulis ke salah satu bucket Amazon S3 Anda. DOC-EXAMPLE-BUCKET Ini juga diperlukan untuk semua ekspor jurnal QLDB.

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

Untuk menggunakan kebijakan ini, ganti DOC-EXAMPLE-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:::DOC-EXAMPLE-BUCKET/*" } ] }

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

Untuk menggunakan kebijakan ini, ganti us-east-1 dan 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 jurnal QLDB

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

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

{ "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 peran IAM untuk memberikan akses QLDB untuk menulis catatan data ke aliran data Amazon Kinesis,. stream-for-qldb Ini juga diperlukan untuk semua aliran jurnal QLDB.

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

{ "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 peran IAM yang dapat diasumsikan QLDB untuk mengakses aliran data Kinesis Anda. Dokumen JSON berikut adalah contoh kebijakan kepercayaan yang memungkinkan QLDB untuk mengambil peran IAM untuk aliran QLDB apa pun di akun untuk buku besar saja. 123456789012 myExampleLedger

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

{ "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 buku besar QLDB berdasarkan tag

Anda dapat menggunakan kondisi dalam kebijakan berbasis identitas untuk mengontrol akses ke sumber daya QLDB 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 atau. Owner=richard-roe 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 kebijakan JSON IAM: Kondisi dalam Panduan Pengguna IAM.