

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.

# SASL/SCRAM Authentifizierung für einen Amazon MSK-Cluster einrichten
<a name="msk-password-tutorial"></a>

Um ein Geheimnis in AWS Secrets Manager einzurichten, folgen Sie dem Tutorial [Creating and Retrieving a Secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/tutorials_basic.html) im [AWS Secrets Manager Manager-Benutzerhandbuch](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html).

Beachten Sie die folgenden Anforderungen, wenn Sie ein Secret für einen Amazon-MSK-Cluster erstellen:
+ Wählen Sie für Secret-Typ die Option **Anderer Secret-Typ (z. B. API-Schlüssel)**.
+ Ihr Secret-Nname muss mit dem Präfix **AmazonMSK\$1** beginnen.
+ Sie müssen entweder einen vorhandenen benutzerdefinierten AWS KMS Schlüssel verwenden oder einen neuen benutzerdefinierten AWS KMS Schlüssel für Ihr Geheimnis erstellen. Secrets Manager verwendet standardmäßig den AWS KMS Standardschlüssel für ein Geheimnis. 
**Wichtig**  
Ein mit dem AWS KMS Standardschlüssel erstelltes Geheimnis kann nicht mit einem Amazon MSK-Cluster verwendet werden.
+ Ihre Anmeldeinformationen müssen das folgende Format haben, um Schlüssel-Wert-Paare mit der **Klartext**-Option eingeben zu können.

  ```
  {
    "username": "alice",
    "password": "alice-secret"
  }
  ```
+ Notieren Sie sich den ARN (Amazon-Ressourcenname) für Ihr Secret. 
+ 
**Wichtig**  
Sie können einem Cluster, der die unter [Passen Sie die Größe Ihres Clusters an: Anzahl der Partitionen pro Standard-Broker](bestpractices.md#partitions-per-broker) beschriebenen Grenzwerte überschreitet, kein Secrets-Manager-Secret zuordnen.
+ Wenn Sie den AWS CLI zum Erstellen des Geheimnisses verwenden, geben Sie eine Schlüssel-ID oder einen ARN für den `kms-key-id` Parameter an. Geben Sie keinen Alias an.
+ Um das Geheimnis Ihrem Cluster zuzuordnen, verwenden Sie entweder die Amazon MSK-Konsole oder den [ BatchAssociateScramSecret](https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-scram-secrets.html#BatchAssociateScramSecret)Vorgang. 
**Wichtig**  
Wenn Sie einem Cluster ein Secret zuordnen, fügt Amazon MSK dem Secret eine Ressourcenrichtlinie hinzu, die es Ihrem Cluster ermöglicht, auf die von Ihnen definierten geheimen Werte zuzugreifen und diese zu lesen. Sie sollten diese Ressourcenrichtlinie nicht ändern. Andernfalls kann Ihr Cluster daran gehindert werden, auf Ihr Secret zuzugreifen. Wenn Sie Änderungen an der Secrets-Ressourcenrichtlinie und/oder dem für die geheime Verschlüsselung verwendeten KMS-Schlüssel vornehmen, stellen Sie sicher, dass Sie die Secrets erneut Ihrem MSK-Cluster zuordnen. Dadurch wird sichergestellt, dass Ihr Cluster weiterhin auf Ihr Geheimnis zugreifen kann.

  Die folgende Beispiel-JSON-Eingabe für den Vorgang `BatchAssociateScramSecret` ordnet ein Secret einem Cluster zu:

  ```
  {
    "clusterArn" : "arn:aws:kafka:us-west-2:0123456789019:cluster/SalesCluster/abcd1234-abcd-cafe-abab-9876543210ab-4",          
    "secretArnList": [
      "arn:aws:secretsmanager:us-west-2:0123456789019:secret:AmazonMSK_MyClusterSecret"
    ]
  }
  ```

# Herstellen einer Verbindung zu Ihrem Cluster mit Anmeldeinformationen
<a name="msk-password-tutorial-connect"></a>

Nachdem Sie ein Secret erstellt und es Ihrem Cluster zugeordnet haben, können Sie Ihren Client mit dem Cluster verbinden. Das folgende Verfahren zeigt, wie Sie einen Client mit einem Cluster verbinden, der SASL/SCRAM Authentifizierung verwendet. Außerdem wird anhand eines Beispielthemas gezeigt, wie das Produzieren und das Konsumieren anhand eines Beispielthemas erfolgt.

**Topics**
+ [Einen Client mithilfe der SASL/SCRAM Authentifizierung mit dem Cluster verbinden](#w2aab9c13c29c17c13c11b9b7)
+ [Fehlerbehebung bei Verbindungsproblemen](#msk-password-tutorial-connect-troubleshooting)

## Einen Client mithilfe der SASL/SCRAM Authentifizierung mit dem Cluster verbinden
<a name="w2aab9c13c29c17c13c11b9b7"></a>

1. Führen Sie den folgenden Befehl auf einem Computer aus, der AWS CLI installiert wurde. *clusterARN*Ersetzen Sie es durch den ARN Ihres Clusters.

   ```
   aws kafka get-bootstrap-brokers --cluster-arn clusterARN
   ```

   Speichern Sie aus dem JSON-Ergebnis dieses Befehls den Wert, der der genannten Zeichenfolge zugeordnet ist`BootstrapBrokerStringSaslScram`. Sie werden diesen Wert in späteren Schritten verwenden.

1. Erstellen Sie auf Ihrem Client-Computer eine JAAS-Konfigurationsdatei, die die in Ihrem Secret gespeicherten Benutzeranmeldeinformationen enthält. Erstellen Sie beispielsweise für den Benutzer **alice** eine Datei namens `users_jaas.conf` mit dem folgenden Inhalt.

   ```
   KafkaClient {
      org.apache.kafka.common.security.scram.ScramLoginModule required
      username="alice"
      password="alice-secret";
   };
   ```

1. Verwenden Sie den folgenden Befehl, um Ihre JAAS-Konfigurationsdatei als `KAFKA_OPTS`-Umgebungsparameter zu exportieren.

   ```
   export KAFKA_OPTS=-Djava.security.auth.login.config=<path-to-jaas-file>/users_jaas.conf
   ```

1. Erstellen Sie in einem `/tmp`-Verzeichnis eine Datei namens `kafka.client.truststore.jks`.

1. (Optional) Verwenden Sie den folgenden Befehl, um die JDK-Schlüsselspeicherdatei aus Ihrem `cacerts` JVM-Ordner in die `kafka.client.truststore.jks` Datei zu kopieren, die Sie im vorherigen Schritt erstellt haben. *JDKFolder*Ersetzen Sie ihn durch den Namen des JDK-Ordners auf Ihrer Instanz. Beispielsweise könnte Ihr JDK-Ordner `java-1.8.0-openjdk-1.8.0.201.b09-0.amzn2.x86_64` benannt sein.

   ```
   cp /usr/lib/jvm/JDKFolder/lib/security/cacerts /tmp/kafka.client.truststore.jks
   ```

1. Erstellen Sie im `bin`-Verzeichnis Ihrer Apache-Kafka-Installation eine Client-Eigenschaftendatei namens `client_sasl.properties` mit dem folgenden Inhalt. Diese Datei definiert den SASL-Mechanismus und das SASL-Protokoll.

   ```
   security.protocol=SASL_SSL
   sasl.mechanism=SCRAM-SHA-512
   ```

1. Führen Sie den folgenden Befehl aus, um ein Beispielthema zu erstellen. *BootstrapBrokerStringSaslScram*Ersetzen Sie es durch die Bootstrap-Broker-Zeichenfolge, die Sie in Schritt 1 dieses Themas abgerufen haben.

   ```
   <path-to-your-kafka-installation>/bin/kafka-topics.sh --create --bootstrap-server BootstrapBrokerStringSaslScram --command-config <path-to-client-properties>/client_sasl.properties --replication-factor 3 --partitions 1 --topic ExampleTopicName
   ```

1. Führen Sie den folgenden Befehl auf Ihrem Client-Computer aus, um in dem von Ihnen erstellten Beispielthema zu produzieren. *BootstrapBrokerStringSaslScram*Ersetzen Sie sie durch die Bootstrap-Broker-Zeichenfolge, die Sie in Schritt 1 dieses Themas abgerufen haben.

   ```
   <path-to-your-kafka-installation>/bin/kafka-console-producer.sh --broker-list BootstrapBrokerStringSaslScram --topic ExampleTopicName --producer.config client_sasl.properties
   ```

1. Führen Sie den folgenden Befehl auf Ihrem Client-Computer aus, um aus dem von Ihnen erstellten Thema zu verbrauchen. *BootstrapBrokerStringSaslScram*Ersetzen Sie sie durch die Bootstrap-Broker-Zeichenfolge, die Sie in Schritt 1 dieses Themas abgerufen haben.

   ```
   <path-to-your-kafka-installation>/bin/kafka-console-consumer.sh --bootstrap-server BootstrapBrokerStringSaslScram --topic ExampleTopicName --from-beginning --consumer.config client_sasl.properties
   ```

## Fehlerbehebung bei Verbindungsproblemen
<a name="msk-password-tutorial-connect-troubleshooting"></a>

Beim Ausführen von Kafka-Client-Befehlen können Java-Heap-Speicherfehler auftreten, insbesondere bei der Arbeit mit großen Themen oder Datensätzen. Diese Fehler treten auf, weil Kafka-Tools als Java-Anwendungen mit Standardspeichereinstellungen ausgeführt werden, die für Ihre Arbeitslast möglicherweise nicht ausreichen.

Um `Out of Memory Java Heap` Fehler zu beheben, können Sie die Größe des Java-Heaps erhöhen, indem Sie die `KAFKA_OPTS` Umgebungsvariable so ändern, dass sie Speichereinstellungen enthält.

Im folgenden Beispiel wird die maximale Heap-Größe auf 1 GB () festgelegt. `-Xmx1G` Sie können diesen Wert an Ihren verfügbaren Systemspeicher und Ihre Anforderungen anpassen.

```
export KAFKA_OPTS="-Djava.security.auth.login.config=<path-to-jaas-file>/users_jaas.conf -Xmx1G"
```

Bei umfangreichen Themen sollten Sie die Verwendung von zeit- oder offsetbasierten Parametern in Betracht ziehen, anstatt die Speicherbelegung `--from-beginning` zu begrenzen:

```
<path-to-your-kafka-installation>/bin/kafka-console-consumer.sh --bootstrap-server BootstrapBrokerStringSaslScram --topic ExampleTopicName --max-messages 1000 --consumer.config client_sasl.properties
```