View a markdown version of this page

Richten Sie die Voraussetzungen für MSK Replicator mit selbstverwalteten Apache Kafka-Clustern ein - Amazon Managed Streaming für Apache Kafka

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.

Richten Sie die Voraussetzungen für MSK Replicator mit selbstverwalteten Apache Kafka-Clustern ein

Erstellen Sie eine IAM-Ausführungsrolle

Erstellen Sie eine IAM-Rolle mit einer Vertrauensrichtlinie für. kafka.amazonaws.com Hängen Sie die AWSMSKReplicatorExecutionRole verwaltete Richtlinie an. Die verwaltete Richtlinie gewährt die Kafka-Berechtigungen auf Cluster-, Themen- und Benutzergruppenebene, die der Replikator benötigt, aber sie enthält keine AWS Secrets Manager oder AWS KMS -Berechtigungen, die für Authentifizierung und Anmeldeinformationen erforderlich sind. SASL/SCRAM CMK-encrypted Die Inline-Richtlinienfragmente, die Sie hinzufügen können, finden Sie unter. Zusätzliche SER-Berechtigungen für SASL/SCRAM, mTLs und vom SASL/OAUTHBEARER Kunden verwaltete Schlüssel

Beispiel für eine Vertrauensrichtlinie:

{ "Statement": [{ "Effect": "Allow", "Principal": {"Service": "kafka.amazonaws.com"}, "Action": "sts:AssumeRole" }] }

SASL/SCRAM Benutzer- und ACL-Berechtigungen konfigurieren

Erstellen Sie einen dedizierten SCRAM-Benutzer in Ihrem selbstverwalteten Kafka-Cluster. Die folgenden ACL-Berechtigungen sind erforderlich:

  1. Lesen, Beschreiben Sie zu allen Themen

  2. Lesen und beschreiben Sie alles über alle Verbrauchergruppen

  3. Beschreiben Sie die Cluster-Ressource

Beispiel für Befehle in der Datei kafka-acls.sh:

# Grant Read and Describe on all topics kafka-acls.sh --bootstrap-server <broker>:9092 \ --add --allow-principal User:msk-replicator \ --operation Read --operation Describe \ --topic '*' # Grant Read and Describe on all consumer groups kafka-acls.sh --bootstrap-server <broker>:9092 \ --add --allow-principal User:msk-replicator \ --operation Read --operation Describe \ --group '*' # Grant Describe on cluster kafka-acls.sh --bootstrap-server <broker>:9092 \ --add --allow-principal User:msk-replicator \ --operation Describe --cluster

Konfigurieren Sie mTLS auf einem selbstverwalteten Cluster

Konfigurieren Sie einen SSL-Listener auf Ihren selbstverwalteten Kafka-Brokern mit. ssl.client.auth=required Der Truststore des Brokers muss das CA-Zertifikat enthalten, das das Client-Zertifikat signiert hat, das Sie für MSK Replicator verwenden werden.

Erteilen Sie dem Kafka-Prinzipal ACL-Berechtigungen, die sich aus dem Distinguished Name (DN) des Client-Zertifikats ergeben. Die erforderlichen Berechtigungen lauten: Lesen und Beschreiben für alle Themen, Lesen und Beschreiben für alle Benutzergruppen und Describe für die Cluster-Ressource.

Configure SASL/OAUTHBEARER (OAuth) auf einem selbstverwalteten Cluster

Mit SASL/OAUTHBEARER erhält MSK Replicator ein Zugriffstoken von Ihrem Identitätsanbieter (IDP) und präsentiert es Ihrem selbstverwalteten Kafka-Cluster während des Handshakes (RFC 7628). SASL/OAUTHBEARER Konfigurieren Sie Ihre Broker mit einem SASL_SSL Listener, der OAUTHBEARER aktiviert ist, und konfigurieren Sie die Broker-seitige Validierung der von Ihrem sasl.enabled.mechanisms IDP ausgegebenen Token.

Gewähren Sie dem Kafka-Prinzipal, dass Ihr IDP das Zugriffstoken den ACL-Berechtigungen zuordnet, die MSK Replicator für den Quellcluster benötigt.

MSK Replicator unterstützt die folgenden Mechanismen für den Erwerb eines Zugriffstokens. Sie wählen einen aus, wenn Sie den Replicator erstellen (siehe). CreateReplicator API-Beispiele für selbstverwaltete Kafka-Cluster

  • Client-Anmeldeinformationen — Die client_credentials Standardzuteilung (RFC 6749 §4.4). Sie geben ein und einclient_id. client_secret AWS Secrets Manager Verwenden Sie diesen Mechanismus bei IdPs wie Okta, Microsoft Entra ID, Keycloak und Google. PingFederate

  • IAM JWT Bearer — Der JWT Bearer Assertion Grant (RFC 7523). MSK Replicator verwendet die AWS Identität der Dienstausführungsrolle, um ein signiertes JWT abzurufen, das als Assertion an den Token-Endpunkt gesendet wird. Es ist kein gemeinsamer geheimer Schlüssel erforderlich. Sie können jedoch optional Client-Anmeldeinformationen angeben, wenn Ihr IDP verlangt, dass sich der Client ebenfalls authentifiziert.

  • Bestätigung der Client-Anmeldeinformationen — Die client_credentials Gewährung mit einer JWT-Client-Assertion ( 7521/7523 RFC §2.2). Das signierte JWT der Serviceausführungsrolle wird zur Authentifizierung des Clients verwendetclient_assertion, ohne dass ein gemeinsames Geheimnis verwendet wird.

Die folgenden Anforderungen gelten für den Token-Endpunkt:

  • Der tokenEndpointUrl muss das HTTPS-Schema verwenden und einen Hostnamen angeben (IP-Adressliterale sind nicht zulässig, sodass eine TLS-Hostnamen-Überprüfung durchgeführt werden kann).

  • Der Token-Endpunkt muss von den VPC-Subnetzen aus erreichbar sein, die Sie für den Replicator bereitstellen. Siehe Netzwerkkonnektivität konfigurieren.

  • Wenn Ihr IDP ein von einer privaten Zertifizierungsstelle ausgestelltes Zertifikat vorlegt, speichern Sie das CA-Zertifikat darin AWS Secrets Manager und verweisen Sie darauf, tokenEndpointTlsCertificateArn wenn Sie den Replikator erstellen.

Konfigurieren Sie SSL auf einem selbstverwalteten Cluster

Konfigurieren Sie SSL-Listener auf Ihren Brokern. Für öffentlich vertrauenswürdige Zertifikate ist keine zusätzliche Konfiguration erforderlich. Fügen Sie bei privaten oder selbstsignierten Zertifikaten die gesamte CA-Zertifikatskette in das in AWS Secrets Manager gespeicherte Geheimnis ein.

Speichern Sie Anmeldeinformationen in AWS Secrets Manager

Erstellen Sie in AWS Secrets Manager ein Geheimnis vom Typ Andere (nicht RDS/Redshift) mit den entsprechenden Schlüssel-Wert-Paaren für Ihren Authentifizierungstyp.

Für: SASL/SCRAM

  1. username— SCRAM-Benutzername für den selbstverwalteten Cluster

  2. password— SCRAM-Passwort für den selbstverwalteten Cluster

  3. certificate— CA-Zertifikatskette (PEM-Format; für private/self -signierte Zertifikate erforderlich)

Für MTLs:

  1. certificate— PEM-encoded Client-Zertifikatskette

  2. privateKey— PEM-encoded privater Schlüssel

  3. privateKeyPassword— (Optional) Passphrase für den privaten Schlüssel, nur für verschlüsselte PKCS8-Schlüssel erforderlich

SASL/OAUTHBEARERFür:

Ein Geheimnis ist für den Mechanismus der Client-Anmeldeinformationen erforderlich und für den IAM-JWT-Bearer-Mechanismus und die Zusicherungsmechanismen für Client-Anmeldeinformationen optional (geben Sie ihn nur an, wenn Ihr IDP verlangt, dass der Client sich ebenfalls authentifiziert). Das Geheimnis ist ein flaches JSON-Objekt aus Schlüssel-Wert-Paaren. MSK Replicator erkennt die folgenden Schlüssel:

  • client_id— Die OAuth-Client-ID. Erforderlich für den Mechanismus der Client-Anmeldeinformationen.

  • client_secret— Das geheime OAuth-Client. Erforderlich für den Mechanismus der Client-Anmeldeinformationen.

  • custom_param.<name>— (Optional) Ein zusätzlicher Formularparameter, der an die Token-Anfrage angehängt wird, für IdPs, die Parameter benötigen, die über den Standard-OAuth-Satz hinausgehen. Fügen Sie einen Schlüssel pro Parameter hinzu (z. B.). custom_param.resource

  • custom_header.<name>— (Optional) Ein zusätzlicher HTTP-Header, der mit der Token-Anfrage gesendet wurde. Fügen Sie einen Schlüssel pro Header hinzu (z. B.custom_header.X-Custom).

  • extension.<name>— (Optional) Eine SASL-Erweiterung, die während des SASL/OAUTHBEARER Handshakes an den Kafka-Broker gesendet wird, für Kafka-Anbieter, die während der Authentifizierung zusätzliche Schlüssel-Wert-Paare benötigen. Fügen Sie einen Schlüssel pro Erweiterung hinzu.

Andere Schlüssel als client_id undclient_secret, die keines dieser Präfixe verwenden, werden ignoriert. Im Folgenden finden Sie ein Beispiel für einen geheimen Wert für den Mechanismus der Client-Anmeldeinformationen:

{ "client_id": "my-oauth-client", "client_secret": "example-client-secret", "custom_param.resource": "urn:example:kafka" }
Anmerkung

MSK Replicator lehnt custom_param. Einträge ab, deren Parametername mit einem Standard-OAuth-Parameter in Konflikt steht (z. B.,,grant_type, client_id client_secretclient_assertion, client_assertion_type und). assertion scope Eingeschränkte custom_header. Einträge wie, und werden ebenfalls abgelehnt. Host Authorization Content-Type

Netzwerkkonnektivität konfigurieren

MSK Replicator benötigt Netzwerkkonnektivität zu Ihrem selbstverwalteten Kafka-Cluster. Unterstützte Optionen:

  • AWS Site-to-Site VPN — Verbinden Sie lokale Netzwerke über das Internet mit Ihrer VPC.

  • AWS Direct Connect — Stellen Sie eine dedizierte private Netzwerkverbindung von Ihren Räumlichkeiten zu her. AWS

Wenn Sie ihn verwenden SASL/OAUTHBEARER, muss der Token-Endpunkt auch von den VPC-Subnetzen aus erreichbar sein, die Sie für den Replicator bereitstellen. Für einen im Internet gehosteten IDP sind hierfür in der Regel ein Internet-Gateway, ein NAT-Gateway und Routingtabelleneinträge erforderlich. Verwenden Sie für einen lokalen oder privaten IDP VPN oder Direct Connect. AWS Site-to-Site AWS Der Token-Endpunkt darf nicht in eine Loopback-, Link-Local- oder Metadatenadresse aufgelöst werden. AWS

Configure Security Groups (Sicherheitsgruppen konfigurieren)

Stellen Sie sicher, dass Sicherheitsgruppen den Datenverkehr zwischen MSK Replicator und dem selbstverwalteten Cluster auf dem von Ihrem Authentifizierungs-Listener verwendeten Port zulassen. Aktualisieren Sie sowohl die Regeln für eingehenden Datenverkehr in den VPC-Sicherheitsgruppen als auch die Regeln für ausgehenden Datenverkehr auf der selbstverwalteten Cluster-Firewall.