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.
Daftar Isi
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
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
Topik
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
UPDATE
Pernyataan 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:PartiQLCreateTable
Tindakan 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.