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.
Authentifizierung der Anmeldedaten mit AWS Secrets Manager
Sie können den Zugriff auf Ihre MSK Amazon-Cluster mithilfe von Anmeldeinformationen steuern, die mit AWS Secrets Manager gespeichert und gesichert werden. Das Speichern von Benutzeranmeldeinformationen in Secrets Manager reduziert den Aufwand für die Cluster-Authentifizierung, wie z. B. die Prüfung, Aktualisierung und Rotation von Anmeldeinformationen. Mit Secrets Manager können Sie auch Benutzeranmeldeinformationen clusterübergreifend freigeben.
Dieses Thema enthält die folgenden Abschnitte:
Funktionsweise
Die Authentifizierung mit den Anmeldedaten für Amazon MSK verwendet die AuthentifizierungSASL/SCRAM(Simple Authentication and Security Layer/Salted Challenge Response Mechanism). Um die Authentifizierung über Anmeldeinformationen für einen Cluster einzurichten, erstellen Sie eine Secret-Ressource in AWS Secrets Manager und ordnen diesem Secret Anmeldeinformationen zu.
SASL/SCRAMist in 5802 definiert. RFC
Anmerkung
Wenn Sie die SASL SCRAM /Authentifizierung für Ihren Cluster einrichten, MSK aktiviert Amazon die TLS Verschlüsselung für den gesamten Datenverkehr zwischen Kunden und Brokern.
SASLSCRAMEinrichtung/Authentifizierung für einen MSK Amazon-Cluster
Um ein Geheimnis in AWS Secrets Manager einzurichten, folgen Sie dem Tutorial Creating and Retrieving a Secret im AWS Secrets Manager Manager-Benutzerhandbuch.
Beachten Sie die folgenden Anforderungen, wenn Sie ein Geheimnis für einen MSK Amazon-Cluster erstellen:
Wählen Sie Andere Art von Geheimnissen (z. B. API Schlüssel) als Geheimtyp aus.
Ihr geheimer Name muss mit dem Präfix Amazon MSK _ 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 MSK Amazon-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 Wert ARN (Amazon Resource Name) für Ihr Geheimnis.
-
Wichtig
Sie können einem Cluster, der die unter Die Größe Ihres Clusters anpassen: Anzahl der Partitionen pro Broker beschriebenen Grenzwerte überschreitet, kein Secrets-Manager-Secret zuordnen.
Wenn Sie den AWS CLI zur Erstellung des Geheimnisses verwenden, geben Sie eine Schlüssel-ID oder ARN für den
kms-key-id
Parameter an. Geben Sie keinen Alias an.-
Verwenden Sie entweder die MSK Amazon-Konsole oder den BatchAssociateScramSecretVorgang, um das Geheimnis Ihrem Cluster zuzuordnen.
Wichtig
Wenn Sie einem Cluster ein Geheimnis zuordnen, MSK fügt Amazon dem Geheimnis 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.
Die folgende JSON Beispieleingabe für den
BatchAssociateScramSecret
Vorgang verknüpft ein Geheimnis mit einem Cluster:{ "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
Nachdem Sie ein Secret erstellt und es Ihrem Cluster zugeordnet haben, können Sie Ihren Client mit dem Cluster verbinden. Die folgenden Beispielschritte zeigen, wie Sie einen Client mit einem Cluster verbinden, der die SCRAM Authentifizierung SASL /verwendet, und wie Sie anhand eines Beispielthemas produzieren und konsumieren.
Führen Sie den folgenden Befehl auf einem Computer aus, auf dem das AWS CLI installiert ist, und ersetzen Sie
clusterARN
mit dem ARN Ihres Clusters.aws kafka get-bootstrap-brokers --cluster-arn clusterARN
Um ein Beispielthema zu erstellen, führen Sie den folgenden Befehl aus und ersetzen Sie
BootstrapServerString
mit einem der Broker-Endpunkte, die Sie im vorherigen Schritt erhalten haben.<path-to-your-kafka-installation>
/bin/kafka-topics.sh --create --bootstrap-server BootstrapServerString --replication-factor 3 --partitions 1 --topic ExampleTopicNameErstellen Sie auf Ihrem Client-Computer eine JAAS Konfigurationsdatei, die die in Ihrem Secret gespeicherten Benutzeranmeldedaten 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"; };
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.confErstellen Sie in einem
./tmp
-Verzeichnis eine Datei namenskafka.client.truststore.jks
.-
Verwenden Sie den folgenden Befehl, um die JDK Schlüsselspeicherdatei aus Ihrem JVM
cacerts
Ordner in diekafka.client.truststore.jks
Datei zu kopieren, die Sie im vorherigen Schritt erstellt haben. ErsetzenJDKFolder
mit dem Namen des JDK Ordners auf Ihrer Instanz. Beispielsweise könnte Ihr JDK Ordner benannt seinjava-1.8.0-openjdk-1.8.0.201.b09-0.amzn2.x86_64
.cp /usr/lib/jvm/
JDKFolder
/jre/lib/security/cacerts /tmp/kafka.client.truststore.jks Erstellen Sie im
bin
-Verzeichnis Ihrer Apache-Kafka-Installation eine Client-Eigenschaftendatei namensclient_sasl.properties
mit dem folgenden Inhalt. Diese Datei definiert den SASL Mechanismus und das Protokoll.security.protocol=SASL_SSL sasl.mechanism=SCRAM-SHA-512 ssl.truststore.location=
<path-to-keystore-file>
/kafka.client.truststore.jksRufen Sie die Zeichenfolge Ihres Bootstrap-Brokers mit dem folgenden Befehl ab. Ersetzen
ClusterArn
mit dem Amazon-Ressourcennamen (ARN) Ihres Clusters:aws kafka get-bootstrap-brokers --cluster-arn
ClusterArn
Speichern Sie aus dem JSON Ergebnis des Befehls den Wert, der der angegebenen Zeichenfolge zugeordnet ist
BootstrapBrokerStringSaslScram
.Führen Sie den folgenden Befehl auf Ihrem Client-Computer aus, um in dem von Ihnen erstellten Beispielthema zu produzieren. Ersetzen
BootstrapBrokerStringSaslScram
mit dem Wert, den Sie im vorherigen Schritt abgerufen haben.<path-to-your-kafka-installation>
/bin/kafka-console-producer.sh --broker-listBootstrapBrokerStringSaslScram
--topicExampleTopicName
--producer.config client_sasl.propertiesFühren Sie den folgenden Befehl auf Ihrem Client-Computer aus, um aus dem von Ihnen erstellten Thema zu verbrauchen. Ersetzen
BootstrapBrokerStringSaslScram
mit dem Wert, den Sie zuvor erhalten haben.<path-to-your-kafka-installation>
/bin/kafka-console-consumer.sh --bootstrap-serverBootstrapBrokerStringSaslScram
--topicExampleTopicName
--from-beginning --consumer.config client_sasl.properties
Working with users
Benutzer erstellen: Sie erstellen Benutzer in Ihrem Secret als Schlüssel-Wert-Paare. Wenn Sie die Klartext-Option in der Secrets-Manager-Konsole verwenden, sollten Sie die Anmeldeinformationen im folgenden Format angeben.
{ "username": "alice", "password": "alice-secret" }
Benutzerzugriff widerrufen: Um einem Benutzer die Anmeldeinformationen für den Zugriff auf einen Cluster zu entziehen, empfehlen wir, zuerst einen zu entfernen oder für den Cluster ACL zu erzwingen und dann die Zuordnung des Geheimnisses aufzuheben. Dies ist auf Folgendes zurückzuführen:
Durch das Entfernen eines Benutzers werden bestehende Verbindungen nicht geschlossen.
Es dauert bis zu 10 Minuten, bis Änderungen an Ihrem Secret verbreitet sind.
Informationen zur Verwendung von und ACL mit Amazon MSK finden Sie unterApache Kafka ACLs.
Für Cluster, die ZooKeeper den Modus verwenden, empfehlen wir, den Zugriff auf Ihre ZooKeeper Knoten einzuschränken, um zu verhindern, dass Benutzer Änderungen vornehmenACLs. Weitere Informationen finden Sie unter Steuern des Zugriffs auf Apache ZooKeeper.
Einschränkungen
Beachten Sie bei der Verwendung von SCRAM Geheimnissen die folgenden Einschränkungen:
Amazon unterstützt MSK nur die SCRAM SHA -512-Authentifizierung.
Ein MSK Amazon-Cluster kann bis zu 1000 Benutzer haben.
Sie müssen einen AWS KMS key mit Ihrem Secret verwenden. Sie können kein Secret, das den standardmäßigen Secrets Manager-Verschlüsselungsschlüssel verwendet, mit Amazon verwendenMSK. Informationen zum Erstellen eines KMS Schlüssels finden Sie unter Symmetrische KMS Verschlüsselungsschlüssel erstellen.
Sie können keinen asymmetrischen KMS Schlüssel mit Secrets Manager verwenden.
Mithilfe dieser BatchAssociateScramSecretOperation können Sie einem Cluster bis zu 10 Geheimnisse gleichzeitig zuordnen.
Der Name von Geheimnissen, die mit einem MSK Amazon-Cluster verknüpft sind, muss das Präfix Amazon MSK _ haben.
Mit einem MSK Amazon-Cluster verknüpfte Geheimnisse müssen sich im selben Amazon Web Services-Konto und derselben AWS Region wie der Cluster befinden.