

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

# Kontrol akses IAM
<a name="iam-access-control"></a>

Kontrol akses IAM untuk Amazon MSK memungkinkan Anda menangani otentikasi dan otorisasi untuk klaster MSK Anda. Ini menghilangkan kebutuhan untuk menggunakan satu mekanisme untuk otentikasi dan satu lagi untuk otorisasi. Misalnya, ketika klien mencoba menulis ke klaster Anda, Amazon MSK menggunakan IAM untuk memeriksa apakah klien tersebut adalah identitas yang diautentikasi dan juga apakah itu berwenang untuk diproduksi ke cluster Anda.

Kontrol akses IAM berfungsi untuk klien Java dan non-Java, termasuk klien Kafka yang ditulis dengan Python, Go, dan .NET. JavaScript Kontrol akses IAM untuk klien non-Java tersedia untuk kluster MSK dengan Kafka versi 2.7.1 atau lebih tinggi.

Untuk memungkinkan kontrol akses IAM, Amazon MSK membuat modifikasi kecil pada kode sumber Apache Kafka. Modifikasi ini tidak akan menyebabkan perbedaan nyata dalam pengalaman Apache Kafka Anda. Amazon MSK mencatat peristiwa akses sehingga Anda dapat mengaudit mereka.

Anda dapat memanggil Apache Kafka ACL APIs untuk cluster MSK yang menggunakan kontrol akses IAM. Namun, Apache Kafka tidak ACLs berpengaruh pada otorisasi untuk identitas IAM. Anda harus menggunakan kebijakan IAM untuk mengontrol akses identitas IAM.

**Pertimbangan penting**  
Saat Anda menggunakan kontrol akses IAM dengan kluster MSK Anda, ingatlah pertimbangan penting berikut:  
Kontrol akses IAM tidak berlaku untuk node Apache ZooKeeper . Untuk informasi tentang bagaimana Anda dapat mengontrol akses ke node tersebut, lihat[Kontrol akses ke ZooKeeper node Apache di kluster MSK Amazon Anda](zookeeper-security.md).
Pengaturan `allow.everyone.if.no.acl.found` Apache Kafka tidak berpengaruh jika cluster Anda menggunakan kontrol akses IAM. 
Anda dapat memanggil Apache Kafka ACL APIs untuk cluster MSK yang menggunakan kontrol akses IAM. Namun, Apache Kafka tidak ACLs berpengaruh pada otorisasi untuk identitas IAM. Anda harus menggunakan kebijakan IAM untuk mengontrol akses identitas IAM.

# Cara kerja kontrol akses IAM untuk Amazon MSK
<a name="how-to-use-iam-access-control"></a>

Untuk menggunakan kontrol akses IAM untuk Amazon MSK, lakukan langkah-langkah berikut, yang dijelaskan secara rinci dalam topik ini:
+ [Buat kluster MSK Amazon yang menggunakan kontrol akses IAM](create-iam-access-control-cluster-in-console.md) 
+ [Konfigurasikan klien untuk kontrol akses IAM](configure-clients-for-iam-access-control.md)
+ [Buat kebijakan otorisasi untuk peran IAM](create-iam-access-control-policies.md)
+ [Dapatkan broker bootstrap untuk kontrol akses IAM](get-bootstrap-brokers-for-iam.md)

# Buat kluster MSK Amazon yang menggunakan kontrol akses IAM
<a name="create-iam-access-control-cluster-in-console"></a>

Bagian ini menjelaskan bagaimana Anda dapat menggunakan Konsol Manajemen AWS, API, atau AWS CLI untuk membuat klaster MSK Amazon yang menggunakan kontrol akses IAM. Untuk informasi tentang cara mengaktifkan kontrol akses IAM untuk klaster yang ada, lihat[Perbarui pengaturan keamanan kluster MSK Amazon](msk-update-security.md).

**Gunakan Konsol Manajemen AWS untuk membuat cluster yang menggunakan kontrol akses IAM**

1. Buka konsol MSK Amazon di[https://console.aws.amazon.com/msk/](https://console.aws.amazon.com/msk/).

1. Pilih **Buat klaster**.

1. Pilih **Buat cluster dengan pengaturan khusus**.

1. Di bagian **Otentikasi**, pilih kontrol **akses IAM**.

1. Selesaikan sisa alur kerja untuk membuat cluster.

**Menggunakan API atau AWS CLI untuk membuat klaster yang menggunakan kontrol akses IAM**
+ Untuk membuat cluster dengan kontrol akses IAM diaktifkan, gunakan [CreateCluster](https://docs.aws.amazon.com/msk/1.0/apireference/clusters.html#CreateCluster)API atau perintah CLI [create-cluster](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kafka/create-cluster.html), dan teruskan JSON berikut untuk parameter:. `ClientAuthentication` `"ClientAuthentication": { "Sasl": { "Iam": { "Enabled": true } }` 

# Konfigurasikan klien untuk kontrol akses IAM
<a name="configure-clients-for-iam-access-control"></a>

Untuk memungkinkan klien berkomunikasi dengan kluster MSK yang menggunakan kontrol akses IAM, Anda dapat menggunakan salah satu dari mekanisme ini:
+ Konfigurasi klien non-Java menggunakan mekanisme SASL\$1OAUTHBEARER
+ Konfigurasi klien Java menggunakan SASL\$1OAUTHBEARER mekanisme atau AWS\$1MSK\$1IAM mekanisme

## Gunakan SASL\$1OAUTHBEARER mekanisme untuk mengkonfigurasi IAM
<a name="configure-clients-for-iam-access-control-sasl-oauthbearer"></a>

1. Edit file konfigurasi client.properties Anda menggunakan contoh klien Python Kafka berikut. Perubahan konfigurasi serupa dalam bahasa lain.

   ```
   from kafka import KafkaProducer
   from kafka.errors import KafkaError
   from kafka.sasl.oauth import AbstractTokenProvider
   import socket
   import time
   from aws_msk_iam_sasl_signer import MSKAuthTokenProvider
   
   class MSKTokenProvider():
       def token(self):
           token, _ = MSKAuthTokenProvider.generate_auth_token('<my Wilayah AWS>')
           return token
   
   tp = MSKTokenProvider()
   
   producer = KafkaProducer(
       bootstrap_servers='<myBootstrapString>',
       security_protocol='SASL_SSL',
       sasl_mechanism='OAUTHBEARER',
       sasl_oauth_token_provider=tp,
       client_id=socket.gethostname(),
   )
   
   topic = "<my-topic>"
   while True:
       try:
           inp=input(">")
           producer.send(topic, inp.encode())
           producer.flush()
           print("Produced!")
       except Exception:
           print("Failed to send message:", e)
   
   producer.close()
   ```

1. Unduh pustaka pembantu untuk bahasa konfigurasi yang Anda pilih dan ikuti petunjuk di bagian *Memulai* di beranda perpustakaan bahasa tersebut.
   + JavaScript: [https://github.com/aws/aws-msk-iam-sasl-signer-js \$1getting -dimulai](https://github.com/aws/aws-msk-iam-sasl-signer-js#getting-started)
   + Python: [https://github.com/aws/aws-msk-iam-sasl-signer-python \$1get -dimulai](https://github.com/aws/aws-msk-iam-sasl-signer-python#get-started)
   + Go: [https://github.com/aws/aws-msk-iam-sasl-signer-go](https://github.com/aws/aws-msk-iam-sasl-signer-go#getting-started) \$1getting -started
   + .NET: [https://github.com/aws/aws-msk-iam-sasl-signer-net](https://github.com/aws/aws-msk-iam-sasl-signer-net#getting-started) \$1getting -dimulai
   + JAVA: SASL\$1OAUTHBEARER dukungan untuk Java tersedia melalui file [https://github.com/aws/aws-msk-iam-auth/releases](https://github.com/aws/aws-msk-iam-auth/releases)jar

## Gunakan AWS\$1MSK\$1IAM mekanisme kustom MSK untuk mengkonfigurasi IAM
<a name="configure-clients-for-iam-access-control-msk-iam"></a>

1. Tambahkan yang berikut ini ke `client.properties` file. Ganti *<PATH\$1TO\$1TRUST\$1STORE\$1FILE>* dengan jalur yang sepenuhnya memenuhi syarat ke file trust store pada klien.
**catatan**  
Jika Anda tidak ingin menggunakan sertifikat tertentu, Anda dapat menghapus `ssl.truststore.location=<PATH_TO_TRUST_STORE_FILE>` dari `client.properties` file Anda. Bila Anda tidak menentukan nilai untuk`ssl.truststore.location`, proses Java menggunakan sertifikat default.

   ```
   ssl.truststore.location=<PATH_TO_TRUST_STORE_FILE>
   security.protocol=SASL_SSL
   sasl.mechanism=AWS_MSK_IAM
   sasl.jaas.config=software.amazon.msk.auth.iam.IAMLoginModule required;
   sasl.client.callback.handler.class=software.amazon.msk.auth.iam.IAMClientCallbackHandler
   ```

   Untuk menggunakan profil bernama yang Anda buat untuk AWS kredensyal, sertakan `awsProfileName="your profile name";` dalam file konfigurasi klien Anda. Untuk informasi tentang profil bernama, lihat [Profil bernama](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) dalam AWS CLI dokumentasi.

1. Unduh file [aws-msk-iam-auth](https://github.com/aws/aws-msk-iam-auth/releases)JAR stabil terbaru, dan letakkan di jalur kelas. Jika Anda menggunakan Maven, tambahkan dependensi berikut, sesuaikan nomor versi sesuai kebutuhan:

   ```
   <dependency>
       <groupId>software.amazon.msk</groupId>
       <artifactId>aws-msk-iam-auth</artifactId>
       <version>1.0.0</version>
   </dependency>
   ```

Plugin klien MSK Amazon bersumber terbuka di bawah lisensi Apache 2.0.

# Buat kebijakan otorisasi untuk peran IAM
<a name="create-iam-access-control-policies"></a>

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 IAM](configure-clients-for-iam-access-control.md)menjelaskan cara mengkonfigurasi klien untuk menggunakan profil bernama.

Untuk informasi tentang cara membuat kebijakan IAM, lihat [Membuat kebijakan IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html). 

Berikut ini adalah contoh kebijakan otorisasi untuk cluster bernama MyTestCluster. Untuk memahami semantik `Action` dan `Resource` elemen, lihat. [Semantik tindakan dan sumber daya kebijakan otorisasi IAM](kafka-actions.md)

**penting**  
Perubahan yang Anda buat pada kebijakan IAM tercermin dalam IAM APIs dan segera. AWS CLI Namun, perlu waktu yang nyata agar perubahan kebijakan 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 mengkonsumsi data, lihat. [Kasus penggunaan umum untuk kebijakan otorisasi klien](iam-access-control-use-cases.md)

[Untuk Kafka versi 2.8.0 dan di atasnya, **WriteDataIdempotently**izin tidak digunakan lagi (KIP-679).](https://cwiki.apache.org/confluence/display/KAFKA/KIP-679%3A+Producer+will+enable+the+strongest+delivery+guarantee+by+default) Secara default, `enable.idempotence = true` diatur. Oleh karena itu, untuk Kafka versi 2.8.0 ke atas, IAM tidak menawarkan fungsionalitas yang sama dengan Kafka. ACLs Tidak mungkin `WriteDataIdempotently` untuk 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 ACLs diimplementasikan. Selain itu, menulis ke topik idempotently juga membutuhkan akses ke. `transactional-ids`

Untuk mengatasi hal ini, sebaiknya gunakan kebijakan yang serupa 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 ke`TestTopic`, sementara `WriteDataIdempotently` memungkinkan penulisan idempoten 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.

# Dapatkan broker bootstrap untuk kontrol akses IAM
<a name="get-bootstrap-brokers-for-iam"></a>

Lihat [Dapatkan broker bootstrap untuk cluster MSK Amazon](msk-get-bootstrap-brokers.md).

# Semantik tindakan dan sumber daya kebijakan otorisasi IAM
<a name="kafka-actions"></a>

**catatan**  
Untuk cluster yang menjalankan Apache Kafka versi 3.8 atau yang lebih baru, kontrol akses IAM mendukung API untuk mengakhiri transaksi. WriteTxnMarkers Untuk cluster yang menjalankan versi Kafka lebih awal dari 3.8, kontrol akses IAM tidak mendukung tindakan klaster internal termasuk. WriteTxnMarkers Untuk versi sebelumnya, untuk mengakhiri transaksi, gunakan otentikasi SCRAM atau mTLS dengan tepat, ACLs bukan autentikasi IAM.

Bagian ini menjelaskan semantik elemen tindakan dan sumber daya yang dapat Anda gunakan dalam kebijakan otorisasi IAM. Untuk contoh kebijakan, lihat [Buat kebijakan otorisasi untuk peran IAM](create-iam-access-control-policies.md).

## Tindakan kebijakan otorisasi
<a name="actions"></a>

Tabel berikut mencantumkan tindakan yang dapat Anda sertakan dalam kebijakan otorisasi saat Anda menggunakan kontrol akses IAM untuk Amazon MSK. Bila Anda menyertakan dalam kebijakan otorisasi tindakan dari kolom *Tindakan* tabel, Anda juga harus menyertakan tindakan terkait dari kolom *Tindakan yang diperlukan*. 


| Tindakan | Deskripsi | Tindakan yang diperlukan | Sumber daya yang dibutuhkan | Berlaku untuk cluster tanpa server | 
| --- | --- | --- | --- | --- | 
| kafka-cluster:Connect | Memberikan izin untuk menghubungkan dan mengautentikasi ke cluster. | Tidak ada | cluster | Ya | 
| kafka-cluster:DescribeCluster | Memberikan izin untuk mendeskripsikan berbagai aspek cluster, setara dengan DESCRIPTION CLUSTER ACL Apache Kafka. |  `kafka-cluster:Connect`  | cluster | Ya | 
| kafka-cluster:AlterCluster | Memberikan izin untuk mengubah berbagai aspek cluster, setara dengan ALTER CLUSTER ACL Apache Kafka. |  `kafka-cluster:Connect` `kafka-cluster:DescribeCluster`  | klaster | Tidak | 
| kafka-cluster:DescribeClusterDynamicConfiguration | Memberikan izin untuk mendeskripsikan konfigurasi dinamis cluster, setara dengan APache Kafka DESCRIBE\$1CONFIGS CLUSTER ACL. |  `kafka-cluster:Connect`  | klaster | Tidak | 
| kafka-cluster:AlterClusterDynamicConfiguration | Memberikan izin untuk mengubah konfigurasi dinamis cluster, setara dengan ALTER\$1CONFIGS CLUSTER ACL Apache Kafka. |  `kafka-cluster:Connect` `kafka-cluster:DescribeClusterDynamicConfiguration`  | klaster | Tidak | 
| kafka-cluster:WriteDataIdempotently | Memberikan izin untuk menulis data idempotently pada cluster, setara dengan Apache Kafka IDEMPOTENT\$1WRITE CLUSTER ACL. |  `kafka-cluster:Connect` `kafka-cluster:WriteData`  | cluster | Ya | 
| kafka-cluster:CreateTopic | Memberikan izin untuk membuat topik di cluster, setara dengan CREATE ACL Apache Kafka. CLUSTER/TOPIC  |  `kafka-cluster:Connect`  | topik | Ya | 
| kafka-cluster:DescribeTopic | Memberikan izin untuk mendeskripsikan topik di cluster, setara dengan APache Kafka's DESCRIPTE TOPIC ACL. |  `kafka-cluster:Connect`  | topik | Ya | 
| kafka-cluster:AlterTopic | Memberikan izin untuk mengubah topik di klaster, setara dengan ALTER TOPIC ACL Apache Kafka. |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopic`  | topik | Ya | 
| kafka-cluster:DeleteTopic | Memberikan izin untuk menghapus topik di klaster, setara dengan DELETE TOPIC ACL Apache Kafka. |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopic`  | topik | Ya | 
| kafka-cluster:DescribeTopicDynamicConfiguration | Memberikan izin untuk mendeskripsikan konfigurasi dinamis topik pada klaster, setara dengan DESCRIBE\$1CONFIGS TOPIC ACL Apache Kafka. |  `kafka-cluster:Connect`  | topik | Ya | 
| kafka-cluster:AlterTopicDynamicConfiguration | Memberikan izin untuk mengubah konfigurasi dinamis topik pada klaster, setara dengan ALTER\$1CONFIGS TOPIC ACL Apache Kafka. |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopicDynamicConfiguration`  | topik | Ya | 
| kafka-cluster:ReadData | Memberikan izin untuk membaca data dari topik di cluster, setara dengan READ TOPIC ACL Apache Kafka. |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopic` `kafka-cluster:AlterGroup`  | topik | Ya | 
| kafka-cluster:WriteData | Memberikan izin untuk menulis data ke topik di cluster, setara dengan WRITE TOPIC ACL Apache Kafka |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopic`  | topik | Ya | 
| kafka-cluster:DescribeGroup | Memberikan izin untuk mendeskripsikan grup pada sebuah cluster, setara dengan Apache Kafka's DESCRIPTE GROUP ACL. |  `kafka-cluster:Connect`  | grup | Ya | 
| kafka-cluster:AlterGroup | Memberikan izin untuk bergabung dengan grup di cluster, setara dengan READ GROUP ACL Apache Kafka. |  `kafka-cluster:Connect` `kafka-cluster:DescribeGroup`  | grup | Ya | 
| kafka-cluster:DeleteGroup | Memberikan izin untuk menghapus grup di cluster, setara dengan DELETE GROUP ACL Apache Kafka. |  `kafka-cluster:Connect` `kafka-cluster:DescribeGroup`  | grup | Ya | 
| kafka-cluster:DescribeTransactionalId | Memberikan izin untuk mendeskripsikan transaksional IDs pada klaster, setara dengan DESCRIBE TRANSACTIONAL\$1ID ACL Apache Kafka. |  `kafka-cluster:Connect`  | transaksional-id | Ya | 
| kafka-cluster:AlterTransactionalId | Memberikan izin untuk mengubah transaksional IDs pada cluster, setara dengan WRITE TRANSACTIONAL\$1ID ACL Apache Kafka. |  `kafka-cluster:Connect` `kafka-cluster:DescribeTransactionalId` `kafka-cluster:WriteData`  | transaksional-id | Ya | 

Anda dapat menggunakan wildcard asterisk (\$1) beberapa kali dalam tindakan setelah titik dua. Berikut ini adalah beberapa contohnya.
+ `kafka-cluster:*Topic`singkatan dari`kafka-cluster:CreateTopic`,`kafka-cluster:DescribeTopic`,`kafka-cluster:AlterTopic`, dan`kafka-cluster:DeleteTopic`. Itu tidak termasuk `kafka-cluster:DescribeTopicDynamicConfiguration` atau`kafka-cluster:AlterTopicDynamicConfiguration`.
+ `kafka-cluster:*`singkatan dari semua izin.

## Sumber daya kebijakan otorisasi
<a name="msk-iam-resources"></a>

Tabel berikut menunjukkan empat jenis sumber daya yang dapat Anda gunakan dalam kebijakan otorisasi saat Anda menggunakan kontrol akses IAM untuk Amazon MSK. Anda bisa mendapatkan klaster Amazon Resource Name (ARN) dari Konsol Manajemen AWS atau dengan menggunakan [DescribeCluster](https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn.html#DescribeCluster)API atau perintah [AWS CLI describe-cluster](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kafka/describe-cluster.html). Anda kemudian dapat menggunakan ARN cluster untuk membangun topik, grup, dan ID transaksional. ARNs Untuk menentukan sumber daya dalam kebijakan otorisasi, gunakan ARN sumber daya tersebut.


| Sumber daya | Format ARN | 
| --- | --- | 
| Kluster | arn:aws:kafka: ::cluster//regionaccount-idcluster-namecluster-uuid | 
| Topik | arn:aws:kafka: ::topik///regionaccount-idcluster-namecluster-uuidtopic-name | 
| Kelompok | arn:aws:kafka: ::grup///regionaccount-idcluster-namecluster-uuidgroup-name | 
| ID Transaksional | arn:aws:kafka: ::transactional-id//regionaccount-idcluster-namecluster-uuidtransactional-id | 

Anda dapat menggunakan wildcard asterisk (\$1) beberapa kali di mana saja di bagian ARN yang muncul setelah`:cluster/`,,, `:topic/` dan. `:group/` `:transactional-id/` Berikut ini adalah beberapa contoh bagaimana Anda dapat menggunakan wildcard asterisk (\$1) untuk merujuk ke beberapa sumber daya:
+ `arn:aws:kafka:us-east-1:0123456789012:topic/MyTestCluster/*`: semua topik di cluster mana pun bernama MyTestCluster, terlepas dari UUID cluster.
+ `arn:aws:kafka:us-east-1:0123456789012:topic/MyTestCluster/abcd1234-0123-abcd-5678-1234abcd-1/*_test`: semua topik yang namanya diakhiri dengan “\$1test” di cluster yang namanya MyTestCluster dan UUIDnya abcd1234-0123-abcd-5678-1234abcd-1.
+ `arn:aws:kafka:us-east-1:0123456789012:transactional-id/MyTestCluster/*/5555abcd-1111-abcd-1234-abcd1234-1`: semua transaksi yang ID transaksionalnya adalah 5555abcd-1111-abcd-1234-abcd1234-1, di semua inkarnasi klaster yang disebutkan di akun Anda. MyTestCluster Ini berarti bahwa jika Anda membuat klaster bernama MyTestCluster, lalu menghapusnya, dan kemudian membuat cluster lain dengan nama yang sama, Anda dapat menggunakan ARN sumber daya ini untuk mewakili ID transaksi yang sama pada kedua cluster. Namun, cluster yang dihapus tidak dapat diakses.

# Kasus penggunaan umum untuk kebijakan otorisasi klien
<a name="iam-access-control-use-cases"></a>

Kolom pertama dalam tabel berikut menunjukkan beberapa kasus penggunaan umum. Untuk mengotorisasi klien untuk melaksanakan kasus penggunaan tertentu, sertakan tindakan yang diperlukan untuk kasus penggunaan tersebut dalam kebijakan otorisasi klien, dan atur `Effect` ke. `Allow`

Untuk informasi tentang semua tindakan yang merupakan bagian dari kontrol akses IAM untuk Amazon MSK, lihat. [Semantik tindakan dan sumber daya kebijakan otorisasi IAM](kafka-actions.md)

**catatan**  
Tindakan ditolak secara default. Anda harus secara eksplisit mengizinkan setiap tindakan yang ingin Anda berikan otorisasi kepada klien untuk dilakukan.


****  

| Kasus penggunaan | Tindakan yang diperlukan | 
| --- | --- | 
| Admin |  `kafka-cluster:*`  | 
| Buat topik |  `kafka-cluster:Connect` `kafka-cluster:CreateTopic`  | 
| Menghasilkan data |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopic` `kafka-cluster:WriteData`  | 
| Konsumsi data |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopic` `kafka-cluster:DescribeGroup` `kafka-cluster:AlterGroup` `kafka-cluster:ReadData`  | 
| Menghasilkan data secara idempotently |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopic` `kafka-cluster:WriteData` `kafka-cluster:WriteDataIdempotently`  | 
| Menghasilkan data secara transaksional |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopic` `kafka-cluster:WriteData` `kafka-cluster:DescribeTransactionalId` `kafka-cluster:AlterTransactionalId`  | 
| Jelaskan konfigurasi cluster |  `kafka-cluster:Connect` `kafka-cluster:DescribeClusterDynamicConfiguration`  | 
| Perbarui konfigurasi cluster |  `kafka-cluster:Connect` `kafka-cluster:DescribeClusterDynamicConfiguration` `kafka-cluster:AlterClusterDynamicConfiguration`  | 
| Jelaskan konfigurasi suatu topik |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopicDynamicConfiguration` | 
| Perbarui konfigurasi topik |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopicDynamicConfiguration` `kafka-cluster:AlterTopicDynamicConfiguration`  | 
| Mengubah topik |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopic` `kafka-cluster:AlterTopic`  | 