

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

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

IAM-Zugriffssteuerung für Amazon MSK ermöglicht es Ihnen, sowohl die Authentifizierung als auch die Autorisierung für Ihren MSK-Cluster zu verwalten. Dies macht die Verwendung eines Mechanismus für die Authentifizierung und einen anderen für die Autorisierung überflüssig. Wenn ein Client beispielsweise versucht, in Ihren Cluster zu schreiben, prüft Amazon MSK mithilfe von IAM, ob es sich bei diesem Client um eine authentifizierte Identität handelt und ob er berechtigt ist, für Ihren Cluster zu produzieren.

Die IAM-Zugriffskontrolle funktioniert für Java- und Nicht-Java-Clients, einschließlich Kafka-Clients, die in Python JavaScript, Go und.NET geschrieben sind. Die IAM-Zugriffskontrolle für Nicht-Java-Clients ist für MSK-Cluster mit Kafka-Version 2.7.1 oder höher verfügbar.

Um die IAM-Zugriffssteuerung zu ermöglichen, nimmt Amazon MSK geringfügige Änderungen am Apache-Kafka-Quellcode vor. Diese Änderungen werden keinen spürbaren Unterschied in Ihrem Apache-Kafka-Erlebnis bewirken. Amazon MSK protokolliert Zugriffsereignisse, sodass Sie sie prüfen können.

Sie können Apache Kafka ACL APIs für einen MSK-Cluster aufrufen, der IAM-Zugriffskontrolle verwendet. Apache Kafka ACLs hat jedoch keine Auswirkung auf die Autorisierung für IAM-Identitäten. Sie müssen IAM-Richtlinien verwenden, um den Zugriff auf IAM-Identitäten zu kontrollieren.

**Wichtige Überlegungen**  
Wenn Sie die IAM-Zugriffskontrolle mit Ihrem MSK-Cluster verwenden, sollten Sie die folgenden wichtigen Überlegungen berücksichtigen:  
Die IAM-Zugriffskontrolle gilt nicht für Apache-Knoten. ZooKeeper Weitere Informationen zum Steuern des Zugriffs auf diese Knoten finden Sie unter [Steuern Sie den Zugriff auf ZooKeeper Apache-Knoten in Ihrem Amazon MSK-Cluster](zookeeper-security.md).
Die Apache-Kafka-Einstellung `allow.everyone.if.no.acl.found` hat keine Auswirkung, wenn Ihr Cluster die IAM-Zugriffssteuerung verwendet. 
Sie können Apache Kafka ACL APIs für einen MSK-Cluster aufrufen, der IAM-Zugriffskontrolle verwendet. Apache Kafka ACLs hat jedoch keine Auswirkung auf die Autorisierung für IAM-Identitäten. Sie müssen IAM-Richtlinien verwenden, um den Zugriff auf IAM-Identitäten zu kontrollieren.

# So funktioniert die IAM-Zugriffssteuerung für Amazon MSK
<a name="how-to-use-iam-access-control"></a>

Um die IAM-Zugriffskontrolle für Amazon MSK zu verwenden, führen Sie die folgenden Schritte aus, die in diesen Themen ausführlich beschrieben werden:
+ [Erstellen Sie einen Amazon MSK-Cluster, der IAM-Zugriffskontrolle verwendet](create-iam-access-control-cluster-in-console.md) 
+ [Konfiguration von Clients für die IAM-Zugriffssteuerung](configure-clients-for-iam-access-control.md)
+ [Erstellen Sie Autorisierungsrichtlinien für die IAM-Rolle](create-iam-access-control-policies.md)
+ [Bootstrap-Broker für IAM-Zugriffssteuerung abrufen](get-bootstrap-brokers-for-iam.md)

# Erstellen Sie einen Amazon MSK-Cluster, der IAM-Zugriffskontrolle verwendet
<a name="create-iam-access-control-cluster-in-console"></a>

In diesem Abschnitt wird erklärt, wie Sie die AWS-Managementkonsole, die API oder die verwenden können, AWS CLI um einen Amazon MSK-Cluster zu erstellen, der IAM-Zugriffskontrolle verwendet. Informationen zum Aktivieren der IAM-Zugriffssteuerung für einen vorhandenen Cluster finden Sie unter [Sicherheitseinstellungen eines Amazon MSK-Clusters aktualisieren](msk-update-security.md).

**Verwenden Sie den AWS-Managementkonsole , um einen Cluster zu erstellen, der die IAM-Zugriffskontrolle verwendet**

1. Öffnen Sie die Amazon-MSK-Konsole unter [https://console.aws.amazon.com/msk/](https://console.aws.amazon.com/msk/).

1. Wählen Sie **Cluster erstellen**.

1. Wählen Sie **Cluster mit benutzerdefinierten Einstellungen erstellen**.

1. Wählen Sie im Abschnitt **Authentifizierung** die Option **IAM-Zugriffssteuerung** aus.

1. Führen Sie den Rest des Workflows zum Erstellen eines Clusters aus.

**Verwenden Sie die API oder die AWS CLI , um einen Cluster zu erstellen, der die IAM-Zugriffskontrolle verwendet**
+ Um einen Cluster mit aktivierter IAM-Zugriffskontrolle zu erstellen, verwenden Sie die [CreateCluster](https://docs.aws.amazon.com/msk/1.0/apireference/clusters.html#CreateCluster)API oder den CLI-Befehl [create-cluster](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kafka/create-cluster.html) und übergeben Sie den folgenden JSON-Code für den `ClientAuthentication` Parameter:. `"ClientAuthentication": { "Sasl": { "Iam": { "Enabled": true } }` 

# Konfiguration von Clients für die IAM-Zugriffssteuerung
<a name="configure-clients-for-iam-access-control"></a>

Damit Clients mit einem MSK-Cluster kommunizieren können, der die IAM-Zugriffskontrolle verwendet, können Sie einen der folgenden Mechanismen verwenden:
+ Konfiguration eines Nicht-Java-Clients mithilfe eines Mechanismus SASL\$1OAUTHBEARER
+ Konfiguration des Java-Clients mithilfe eines SASL\$1OAUTHBEARER Mechanismus oder AWS\$1MSK\$1IAM Mechanismus

## Verwenden Sie den SASL\$1OAUTHBEARER Mechanismus, um IAM zu konfigurieren
<a name="configure-clients-for-iam-access-control-sasl-oauthbearer"></a>

1. Bearbeiten Sie Ihre client.properties-Konfigurationsdatei mit dem folgenden Python-Kafka-Client-Beispiel. Konfigurationsänderungen sind in anderen Sprachen ähnlich.

   ```
   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 AWS-Region>')
           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. Laden Sie die Hilfsbibliothek für die von Ihnen gewählte Konfigurationssprache herunter und folgen Sie den Anweisungen im Abschnitt *Erste Schritte* auf der Homepage dieser Sprachbibliothek.
   + JavaScript: [https://github.com/aws/aws-msk-iam-sasl-signer-js](https://github.com/aws/aws-msk-iam-sasl-signer-js#getting-started) \$1getting -started
   + Python: [https://github.com/aws/aws-msk-iam-sasl-signer-python](https://github.com/aws/aws-msk-iam-sasl-signer-python#get-started) \$1get -gestartet
   + [Gehe zu: -signer-go \$1getting -gestartet https://github.com/aws/ aws-msk-iam-sasl](https://github.com/aws/aws-msk-iam-sasl-signer-go#getting-started)
   + [.NET: -signer-net \$1getting -gestartet https://github.com/aws/ aws-msk-iam-sasl](https://github.com/aws/aws-msk-iam-sasl-signer-net#getting-started)
   + JAVA: SASL\$1OAUTHBEARER Unterstützung für Java ist über die JAR-Datei verfügbar [https://github.com/aws/aws-msk-iam-auth/releases](https://github.com/aws/aws-msk-iam-auth/releases)

## Verwenden Sie den benutzerdefinierten AWS\$1MSK\$1IAM MSK-Mechanismus, um IAM zu konfigurieren
<a name="configure-clients-for-iam-access-control-msk-iam"></a>

1. Fügen Sie der Datei `client.properties` Folgendes hinzu. *<PATH\$1TO\$1TRUST\$1STORE\$1FILE>*Ersetzen Sie ihn durch den vollqualifizierten Pfad zur Trust Store-Datei auf dem Client.
**Anmerkung**  
Wenn Sie ein bestimmtes Zertifikat nicht verwenden möchten, können Sie `ssl.truststore.location=<PATH_TO_TRUST_STORE_FILE>` aus Ihrer `client.properties`-Datei entfernen. Wenn Sie keinen Wert für `ssl.truststore.location` angeben, verwendet der Java-Prozess das Standardzertifikat.

   ```
   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
   ```

   Um ein benanntes Profil zu verwenden, das Sie für AWS Anmeldeinformationen erstellt haben, nehmen Sie es `awsProfileName="your profile name";` in Ihre Client-Konfigurationsdatei auf. Informationen zu benannten Profilen finden Sie in der AWS CLI Dokumentation unter [Benannte Profile](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html).

1. Laden Sie die neueste stabile [aws-msk-iam-auth](https://github.com/aws/aws-msk-iam-auth/releases)JAR-Datei herunter und platzieren Sie sie im Klassenpfad. Wenn Sie Maven verwenden, fügen Sie die folgende Abhängigkeit hinzu und passen Sie die Versionsnummer nach Bedarf an:

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

Das Amazon-MSK-Client-Plugin ist unter der Apache-2.0-Lizenz als Open-Source verfügbar.

# Erstellen Sie Autorisierungsrichtlinien für die IAM-Rolle
<a name="create-iam-access-control-policies"></a>

Fügen Sie eine Autorisierungsrichtlinie an die IAM-Rolle an, die dem Client entspricht. In einer Autorisierungsrichtlinie geben Sie an, welche Aktionen für die Rolle erlaubt oder verweigert werden sollen. Wenn sich Ihr Client auf einer Amazon-EC2-Instance befindet, ordnen Sie die Autorisierungsrichtlinie der IAM-Rolle für diese Amazon-EC2-Instance zu. Alternativ können Sie Ihren Client so konfigurieren, dass er ein benanntes Profil verwendet, und dann die Autorisierungsrichtlinie der Rolle für dieses benannte Profil zuordnen. [Konfiguration von Clients für die IAM-Zugriffssteuerung](configure-clients-for-iam-access-control.md) beschreibt, wie ein Client für die Verwendung eines benannten Profils konfiguriert wird.

Informationen zum Erstellen einer IAM-Richtlinie finden Sie unter [Erstellen von IAM-Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html). 

Im Folgenden finden Sie ein Beispiel für eine Autorisierungsrichtlinie für einen Cluster mit dem Namen MyTestCluster. Informationen zur Semantik der `Action`- und `Resource`-Elemente finden Sie unter [Semantik der Aktionen und Ressourcen der IAM-Autorisierungsrichtlinie](kafka-actions.md).

**Wichtig**  
Änderungen, die Sie an einer IAM-Richtlinie vornehmen, werden in der IAM APIs und in der sofort widergespiegelt. AWS CLI Es kann jedoch einige Zeit dauern, bis die Änderung der Richtlinie wirksam wird. In den meisten Fällen werden Richtlinien-Änderungen in weniger als einer Minute wirksam. Netzwerkbedingungen können die Verzögerung manchmal erhöhen.

------
#### [ 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/*"
            ]
        }
    ]
}
```

------

Informationen zum Erstellen einer Richtlinie mit Aktionselementen, die gängigen Anwendungsfällen von Apache Kafka entsprechen, wie z. B. das Erzeugen und Verbrauchen von Daten, finden Sie unter [Häufige Anwendungsfälle für Client-Autorisierungsrichtlinien](iam-access-control-use-cases.md).

[Für Kafka-Versionen 2.8.0 und höher ist die **WriteDataIdempotently**Berechtigung veraltet (KIP-679).](https://cwiki.apache.org/confluence/display/KAFKA/KIP-679%3A+Producer+will+enable+the+strongest+delivery+guarantee+by+default) `enable.idempotence = true` ist standardmäßig festgelegt. Daher bietet IAM für die Kafka-Versionen 2.8.0 und höher nicht die gleiche Funktionalität wie Kafka. ACLs Es ist nicht möglich, zu einem Thema `WriteDataIdempotently` zu gelangen, indem man nur `WriteData` Zugriff auf dieses Thema gewährt. Dies hat keinen Einfluss auf den Fall, dass `WriteData` es für **ALLE** Themen bereitgestellt wird. In diesem Fall ist `WriteDataIdempotently` erlaubt. Dies ist auf Unterschiede in der Implementierung der IAM-Logik und der Implementierung von Kafka ACLs zurückzuführen. Darüber hinaus erfordert das Schreiben zu einem Thema unabhängig davon auch Zugriff auf. `transactional-ids`

Um dieses Problem zu umgehen, empfehlen wir, eine Richtlinie zu verwenden, die der folgenden Richtlinie ähnelt.

------
#### [ 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/*"
            ]
        }
    ]
}
```

------

In diesem Fall erlaubt `WriteData` Schreibvorgänge in `TestTopic`, während `WriteDataIdempotently` idempotente Schreibvorgänge in den Cluster erlaubt. Diese Richtlinie ermöglicht auch den Zugriff auf die `transactional-id` Ressourcen, die benötigt werden.

Da `WriteDataIdempotently` es sich um eine Berechtigung auf Clusterebene handelt, können Sie sie nicht auf Themenebene verwenden. Wenn sie auf Themenebene beschränkt `WriteDataIdempotently` ist, funktioniert diese Richtlinie nicht.

# Bootstrap-Broker für IAM-Zugriffssteuerung abrufen
<a name="get-bootstrap-brokers-for-iam"></a>

Siehe [Holen Sie sich die Bootstrap-Broker für einen Amazon MSK-Cluster](msk-get-bootstrap-brokers.md).

# Semantik der Aktionen und Ressourcen der IAM-Autorisierungsrichtlinie
<a name="kafka-actions"></a>

**Anmerkung**  
Für Cluster, auf denen Apache Kafka Version 3.8 oder höher ausgeführt wird, unterstützt die IAM-Zugriffskontrolle die WriteTxnMarkers API zum Beenden von Transaktionen. Für Cluster, auf denen Kafka-Versionen vor 3.8 ausgeführt werden, unterstützt die IAM-Zugriffskontrolle keine internen Clusteraktionen, einschließlich. WriteTxnMarkers Verwenden Sie für diese früheren Versionen zum Beenden von Transaktionen die SCRAM- oder mTLS-Authentifizierung mit entsprechender ACLs anstelle der IAM-Authentifizierung.

In diesem Abschnitt wird die Semantik der Aktions- und Ressourcenelemente erläutert, die Sie in einer IAM-Autorisierungsrichtlinie verwenden können. Eine Beispielrichtlinie finden Sie unter [Erstellen Sie Autorisierungsrichtlinien für die IAM-Rolle](create-iam-access-control-policies.md).

## Aktionen der Autorisierungsrichtlinie
<a name="actions"></a>

In der folgenden Tabelle sind die Aktionen aufgeführt, die Sie in eine Autorisierungsrichtlinie aufnehmen können, wenn Sie IAM-Zugriffssteuerung für Amazon MSK verwenden. Wenn Sie in Ihre Autorisierungsrichtlinie eine Aktion aus der Spalte *Aktion* der Tabelle aufnehmen, müssen Sie auch die entsprechenden Aktionen aus der Spalte *Erforderliche Aktionen* angeben. 


| Action | Description | Erforderliche Aktionen | Erforderliche -Ressourcen | Gilt für Serverless-Cluster | 
| --- | --- | --- | --- | --- | 
| kafka-cluster:Connect | Gewährt die Berechtigung, sich mit dem Cluster zu verbinden und zu authentifizieren. | Keine | Cluster | Ja | 
| kafka-cluster:DescribeCluster | Gewährt die Berechtigung zum Beschreiben verschiedener Aspekte des Clusters, was der DESCRIBE CLUSTER ACL von Apache Kafka entspricht. |  `kafka-cluster:Connect`  | Cluster | Ja | 
| kafka-cluster:AlterCluster | Gewährt die Berechtigung zum Ändern verschiedener Aspekte des Clusters, was der ALTER CLUSTER ACL von Apache Kafka entspricht. |  `kafka-cluster:Connect` `kafka-cluster:DescribeCluster`  | Cluster | Nein | 
| kafka-cluster:DescribeClusterDynamicConfiguration | Gewährt die Berechtigung zum Beschreiben der dynamischen Konfiguration eines Clusters, was der DESCRIBE\$1CONFIGS CLUSTER ACL von Apache Kafka entspricht. |  `kafka-cluster:Connect`  | Cluster | Nein | 
| kafka-cluster:AlterClusterDynamicConfiguration | Gewährt die Berechtigung zum Ändern der dynamischen Konfiguration eines Clusters, was der ALTER\$1CONFIGS CLUSTER ACL von Apache Kafka entspricht. |  `kafka-cluster:Connect` `kafka-cluster:DescribeClusterDynamicConfiguration`  | Cluster | Nein | 
| kafka-cluster:WriteDataIdempotently | Gewährt die Berechtigung zum idempotenten Schreiben von Daten auf einen Cluster, was der IDEMPOTENT\$1WRITE CLUSTER ACL von Apache Kafka entspricht. |  `kafka-cluster:Connect` `kafka-cluster:WriteData`  | Cluster | Ja | 
| kafka-cluster:CreateTopic | Erteilt die Berechtigung zum Erstellen von Themen in einem Cluster, was der CREATE CLUSTER/TOPIC ACL von Apache Kafka entspricht. |  `kafka-cluster:Connect`  | Thema | Ja | 
| kafka-cluster:DescribeTopic | Gewährt die Berechtigung zum Beschreiben von Themen auf einem Cluster, was der DESCRIBE TOPIC ACL von Apache Kafka entspricht. |  `kafka-cluster:Connect`  | Thema | Ja | 
| kafka-cluster:AlterTopic | Gewährt die Berechtigung zum Ändern von Themen auf einem Cluster, was der ALTER TOPIC ACL von Apache Kafka entspricht. |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopic`  | Thema | Ja | 
| kafka-cluster:DeleteTopic | Gewährt die Berechtigung zum Löschen von Themen auf einem Cluster, was der DELETE TOPIC ACL von Apache Kafka entspricht. |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopic`  | Thema | Ja | 
| kafka-cluster:DescribeTopicDynamicConfiguration | Gewährt die Berechtigung zum Beschreiben der dynamischen Konfiguration von Themen auf einem Cluster, was der DESCRIBE\$1CONFIGS TOPIC ACL von Apache Kafka entspricht. |  `kafka-cluster:Connect`  | Thema | Ja | 
| kafka-cluster:AlterTopicDynamicConfiguration | Gewährt die Berechtigung zum Ändern der dynamischen Konfiguration von Themen auf einem Cluster, was der ALTER\$1CONFIGS TOPIC ACL von Apache Kafka entspricht. |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopicDynamicConfiguration`  | Thema | Ja | 
| kafka-cluster:ReadData | Gewährt die Berechtigung zum Lesen von Daten aus Themen auf einem Cluster, was der READ TOPIC ACL von Apache Kafka entspricht. |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopic` `kafka-cluster:AlterGroup`  | Thema | Ja | 
| kafka-cluster:WriteData | Gewährt die Berechtigung zum Schreiben von Daten zu Themen auf einem Cluster, was der WRITE-TOPIC-ACL von Apache Kafka entspricht |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopic`  | Thema | Ja | 
| kafka-cluster:DescribeGroup | Gewährt die Berechtigung zum Beschreiben von Gruppen auf einem Cluster, was der DESCRIBE GROUP ACL von Apache Kafka entspricht. |  `kafka-cluster:Connect`  | Gruppe | Ja | 
| kafka-cluster:AlterGroup | Gewährt die Berechtigung, Gruppen in einem Cluster beizutreten, was der READ GROUP ACL von Apache Kafka entspricht. |  `kafka-cluster:Connect` `kafka-cluster:DescribeGroup`  | Gruppe | Ja | 
| kafka-cluster:DeleteGroup | Gewährt die Berechtigung zum Löschen von Gruppen auf einem Cluster, was der DELETE GROUP ACL von Apache Kafka entspricht. |  `kafka-cluster:Connect` `kafka-cluster:DescribeGroup`  | Gruppe | Ja | 
| kafka-cluster:DescribeTransactionalId | Erteilt die Berechtigung zur Beschreibung von Transaktionen IDs auf einem Cluster, was der DESCRIBE TRANSACTIONAL\$1ID-ACL von Apache Kafka entspricht. |  `kafka-cluster:Connect`  | transactional-id | Ja | 
| kafka-cluster:AlterTransactionalId | Erteilt die Berechtigung, Transaktionen auf einem Cluster zu ändern, was der WRITE IDs TRANSACTIONAL\$1ID-ACL von Apache Kafka entspricht. |  `kafka-cluster:Connect` `kafka-cluster:DescribeTransactionalId` `kafka-cluster:WriteData`  | transactional-id | Ja | 

Sie können das Sternchen (\$1) als Platzhalter in einer Aktion hinter dem Doppelpunkt beliebig oft verwenden. Im Folgenden sind einige Beispiele aufgeführt.
+ `kafka-cluster:*Topic` steht für `kafka-cluster:CreateTopic`, `kafka-cluster:DescribeTopic`, `kafka-cluster:AlterTopic` und `kafka-cluster:DeleteTopic`. Es beinhaltet nicht `kafka-cluster:DescribeTopicDynamicConfiguration` oder `kafka-cluster:AlterTopicDynamicConfiguration`.
+ `kafka-cluster:*` steht für alle Berechtigungen.

## Ressourcen für Autorisierungsrichtlinien
<a name="msk-iam-resources"></a>

In der folgenden Tabelle sind die vier Arten von Ressourcen aufgeführt, die Sie in eine Autorisierungsrichtlinie aufnehmen können, wenn Sie IAM-Zugriffssteuerung für Amazon MSK verwenden. Sie können den Cluster-Amazon-Ressourcennamen (ARN) von AWS-Managementkonsole oder mithilfe der [DescribeCluster](https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn.html#DescribeCluster)API oder des Befehls [describe-cluster](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kafka/describe-cluster.html) AWS CLI abrufen. Anschließend können Sie den Cluster-ARN verwenden, um Themen-, Gruppen- und Transaktions-IDs zu erstellen. ARNs Um eine Ressource in einer Autorisierungsrichtlinie anzugeben, verwenden Sie den ARN dieser Ressource.


| Ressource | ARN-Format | 
| --- | --- | 
| Cluster | arn:aws:kafka: ::cluster//regionaccount-idcluster-namecluster-uuid | 
| Thema | arn:aws:kafka: region ::topic///account-idcluster-namecluster-uuidtopic-name | 
| Group (Gruppieren) | arn:aws:kafka: region ::group///account-idcluster-namecluster-uuidgroup-name | 
| Transkaktions-ID | arn:aws:kafka: region ::transactional-id//account-idcluster-namecluster-uuidtransactional-id | 

Sie können das Sternchen (\$1) als Platzhalter beliebig oft an beliebiger Stelle in dem Teil des ARN verwenden, der nach `:cluster/`, `:topic/`, `:group/` und `:transactional-id/` folgt. Im Folgenden finden Sie einige Beispiele dafür, wie Sie das Sternchen (\$1) als Platzhalter verwenden können, um auf mehrere Ressourcen zu verweisen:
+ `arn:aws:kafka:us-east-1:0123456789012:topic/MyTestCluster/*`: alle Themen in einem beliebigen Cluster mit Namen, unabhängig von der UUID des Clusters. MyTestCluster
+ `arn:aws:kafka:us-east-1:0123456789012:topic/MyTestCluster/abcd1234-0123-abcd-5678-1234abcd-1/*_test`: alle Themen, deren Name mit „\$1test“ endet, in dem Cluster, dessen Name MyTestCluster und dessen UUID abcd1234-0123-abcd-5678-1234abcd-1 ist.
+ `arn:aws:kafka:us-east-1:0123456789012:transactional-id/MyTestCluster/*/5555abcd-1111-abcd-1234-abcd1234-1`: alle Transaktionen, deren Transaktions-ID 5555abcd-1111-abcd-1234-abcd1234-1 lautet, in allen Inkarnationen eines Clusters, der in Ihrem Konto benannt ist. MyTestCluster Das heißt, wenn Sie einen Cluster mit dem Namen erstellen MyTestCluster, ihn dann löschen und dann einen weiteren Cluster mit demselben Namen erstellen, können Sie diesen Ressourcen-ARN verwenden, um dieselbe Transaktions-ID auf beiden Clustern darzustellen. Auf den gelöschten Cluster kann jedoch nicht zugegriffen werden.

# Häufige Anwendungsfälle für Client-Autorisierungsrichtlinien
<a name="iam-access-control-use-cases"></a>

Die erste Spalte der folgenden Tabelle zeigt einige gängige Anwendungsfälle. Um einen Client zur Ausführung eines bestimmten Anwendungsfalls zu autorisieren, nehmen Sie die für diesen Anwendungsfall erforderlichen Aktionen in die Autorisierungsrichtlinie des Clients auf und stellen Sie `Effect` auf `Allow` ein.

Informationen zu allen Aktionen, die Teil der IAM-Zugriffssteuerung für Amazon MSK sind, finden Sie unter [Semantik der Aktionen und Ressourcen der IAM-Autorisierungsrichtlinie](kafka-actions.md).

**Anmerkung**  
Aktionen werden standardmäßig verweigert. Sie müssen jede Aktion, zu deren Ausführung Sie den Client autorisieren möchten, ausdrücklich erlauben.


****  

| Anwendungsfall | Erforderliche Aktionen | 
| --- | --- | 
| Admin. |  `kafka-cluster:*`  | 
| Erstellen Sie ein Thema |  `kafka-cluster:Connect` `kafka-cluster:CreateTopic`  | 
| Daten produzieren |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopic` `kafka-cluster:WriteData`  | 
| Daten verbrauchen |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopic` `kafka-cluster:DescribeGroup` `kafka-cluster:AlterGroup` `kafka-cluster:ReadData`  | 
| Daten idempotent produzieren |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopic` `kafka-cluster:WriteData` `kafka-cluster:WriteDataIdempotently`  | 
| Daten transaktionell produzieren |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopic` `kafka-cluster:WriteData` `kafka-cluster:DescribeTransactionalId` `kafka-cluster:AlterTransactionalId`  | 
| Die Konfiguration eines Clusters beschreiben |  `kafka-cluster:Connect` `kafka-cluster:DescribeClusterDynamicConfiguration`  | 
| Die Konfiguration eines Clusters aktualisieren |  `kafka-cluster:Connect` `kafka-cluster:DescribeClusterDynamicConfiguration` `kafka-cluster:AlterClusterDynamicConfiguration`  | 
| Die Konfiguration eines Themas beschreiben |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopicDynamicConfiguration` | 
| Die Konfiguration eines Themas aktualisieren |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopicDynamicConfiguration` `kafka-cluster:AlterTopicDynamicConfiguration`  | 
| Ein Thema ändern |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopic` `kafka-cluster:AlterTopic`  | 