View a markdown version of this page

Membuat kebijakan otorisasi untuk peran IAM - Amazon Managed Streaming untuk Apache Kafka

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

Membuat kebijakan otorisasi untuk peran IAM

Lampirkan kebijakan otorisasi ke peran IAM yang sesuai dengan klien. Dalam kebijakan otorisasi, Anda menentukan tindakan mana yang akan diizinkan atau ditolak untuk peran tersebut. Jika klien Anda menggunakan instans Amazon EC2, kaitkan kebijakan otorisasi dengan peran IAM untuk instans Amazon EC2 tersebut. Atau, Anda dapat mengonfigurasi klien Anda untuk menggunakan profil bernama, dan kemudian Anda mengaitkan kebijakan otorisasi dengan peran untuk profil bernama tersebut. Konfigurasikan klien untuk kontrol akses IAMmenjelaskan cara mengonfigurasi klien untuk menggunakan profil bernama.

Untuk informasi tentang cara membuat kebijakan IAM, lihat Membuat kebijakan IAM.

Berikut ini adalah contoh kebijakan otorisasi untuk cluster bernama MyTestCluster. Untuk memahami semantik Resource elemen Action dan, lihat. Semantik tindakan dan sumber daya kebijakan otorisasi IAM

penting

Perubahan yang Anda buat pada kebijakan IAM akan tercermin dalam API IAM dan segera. AWS CLI Namun, perlu waktu yang cukup lama agar perubahan kebijakan mulai berlaku. Dalam kebanyakan kasus, perubahan kebijakan berlaku dalam waktu kurang dari satu menit. Kondisi jaringan terkadang dapat meningkatkan penundaan.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kafka-cluster:Connect", "kafka-cluster:AlterCluster", "kafka-cluster:DescribeCluster" ], "Resource": [ "arn:aws:kafka:us-east-1:111122223333:cluster/MyTestCluster/abcd1234-0123-abcd-5678-1234abcd-1" ] }, { "Effect": "Allow", "Action": [ "kafka-cluster:*Topic*", "kafka-cluster:WriteData", "kafka-cluster:ReadData" ], "Resource": [ "arn:aws:kafka:us-east-1:123456789012:topic/MyTestCluster/*" ] }, { "Effect": "Allow", "Action": [ "kafka-cluster:AlterGroup", "kafka-cluster:DescribeGroup" ], "Resource": [ "arn:aws:kafka:us-east-1:123456789012:group/MyTestCluster/*" ] } ] }

Untuk mempelajari cara membuat kebijakan dengan elemen tindakan yang sesuai dengan kasus penggunaan Apache Kafka yang umum, seperti memproduksi dan mengonsumsi data, lihatKasus penggunaan umum untuk kebijakan otorisasi klien.

Untuk Kafka versi 2.8.0 dan yang lebih tinggi, WriteDataIdempotently izin tidak digunakan lagi (). KIP-679 Secara default, enable.idempotence = true diatur. Oleh karena itu, untuk Kafka versi 2.8.0 dan yang lebih tinggi, IAM tidak menawarkan fungsionalitas yang sama dengan Kafka ACL. Tidak mungkin untuk WriteDataIdempotently ke topik dengan hanya menyediakan WriteData akses ke topik itu. Ini tidak mempengaruhi kasus ketika WriteData disediakan untuk SEMUA topik. Dalam hal ini, WriteDataIdempotently diperbolehkan. Hal ini disebabkan perbedaan dalam implementasi logika IAM dan bagaimana Kafka ACL diimplementasikan. Selain itu, menulis ke topik secara tepat juga membutuhkan akses ke. transactional-ids

Untuk mengatasi hal ini, sebaiknya gunakan kebijakan yang mirip dengan kebijakan berikut.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kafka-cluster:Connect", "kafka-cluster:AlterCluster", "kafka-cluster:DescribeCluster", "kafka-cluster:WriteDataIdempotently" ], "Resource": [ "arn:aws:kafka:us-east-1:123456789012:cluster/MyTestCluster/abcd1234-0123-abcd-5678-1234abcd-1" ] }, { "Effect": "Allow", "Action": [ "kafka-cluster:*Topic*", "kafka-cluster:WriteData", "kafka-cluster:ReadData" ], "Resource": [ "arn:aws:kafka:us-east-1:123456789012:topic/MyTestCluster/abcd1234-0123-abcd-5678-1234abcd-1/TestTopic", "arn:aws:kafka:us-east-1:123456789012:transactional-id/MyTestCluster/abcd1234-0123-abcd-5678-1234abcd-1/*" ] } ] }

Dalam hal ini, WriteData memungkinkan menulis keTestTopic, sementara WriteDataIdempotently memungkinkan idempotent menulis ke cluster. Kebijakan ini juga menambahkan akses ke transactional-id sumber daya yang akan dibutuhkan.

Karena WriteDataIdempotently merupakan izin tingkat cluster, Anda tidak dapat menggunakannya di tingkat topik. Jika WriteDataIdempotently dibatasi pada tingkat topik, kebijakan ini tidak akan berfungsi.