Wie behebe ich Fehler bei einem kontoübergreifenden AWS Glue-Auftrag für einen Amazon MSK-Cluster?

Lesedauer: 4 Minute
0

Ich möchte Fehler bei einem fehlgeschlagenen AWS Glue-Auftrag beheben, der über AWS-Konten hinweg eine Verbindung zu einem Amazon Managed Streaming für Apache Kafka (MSK)-Cluster herstellt.

Lösung

Prüfe, ob der AWS Glue-Auftrag eine Verbindung zum Amazon MSK-Cluster herstellen kann, und behebe dann Fehler bei der Authentifizierungsmethode des AWS Glue-Auftrags.

Überprüfung der Konnektivität des kontoübergreifenden AWS Glue-Auftrags

Gehe wie folgt vor, um zu überprüfen, ob der AWS Glue-Auftrag eine Verbindung zum Amazon MSK-Cluster herstellen kann:

  1. Stelle sicher, dass die Netzwerk-Zugriffssteuerungsliste (Netzwerk-ACL) der AWS Glue-Verbindung den Datenverkehr zum Amazon MSK-Cluster in der kontoübergreifenden Amazon Virtual Private Cloud (Amazon VPC) zulässt.
  2. Vergewissere dich, dass die Sicherheitsgruppe des Amazon MSK-Clusters das Subnetz-CIDR der AWS Glue-Verbindung auf den Bootstrap-Serverports des Amazon MSK-Clusters zulässt.
    Hinweis: Die Sicherheitsgruppen der AWS Glue-Verbindung müssen eine selbstreferenzierende Regel für eingehenden Datenverkehr für die erforderlichen TCP-Ports enthalten.
  3. Stelle sicher, dass du die VPC-Peering-Verbindungen zwischen dem Amazon MSK-Cluster und den VPCs oder Subnetzen der AWS Glue-Verbindung korrekt konfiguriert hast.
  4. Verwende Reachability Analyzer, um zu überprüfen, ob eine Komponente die Konnektivität zwischen den VPCs beeinträchtigt.
  5. Starte eine Amazon Elastic Compute Cloud (Amazon EC2)-Instance in demselben Subnetz und derselben Sicherheitsgruppe, die die AWS Glue-Verbindung verwendet.

Verwende Session Manager, eine Funktion von AWS Systems Manager, oder einen SSH-Client, um dich bei der EC2-Instance anzumelden. Führe dann die folgenden Tests durch:

telnet example-bootstrap-server-hostname example-bootstrap-server-port  
nc -zv example-bootstrap-server-hostname example-bootstrap-server-port   
dig example-bootstrap-server-hostname

Hinweis: Ersetze in den vorherigen Befehlen die Beispielwerte durch deine Werte. Wenn Telnet nicht installiert ist, führe sudo yum install telnet -y aus, um es zu installieren.

Wenn die Ausgabe connected (verbunden) oder connections established (Verbindungen hergestellt) enthält, wird die Konnektivität des AWS Glue-Auftrags überprüft.

Probleme mit der Authentifizierung beheben

Gehe wie folgt vor, um die Bootstrap-Server-URL in der AWS Glue-Verbindung zu überprüfen:

  1. Hole dir die Bootstrap-Broker von Amazon MSK.
  2. Öffne die AWS Glue-Konsole.
  3. Wähle im Navigationsbereich unter Data Catalog (Datenkatalog) die Option Connections (Verbindungen) aus. Du kannst im Navigationsbereich auch Data connections (Datenverbindungen) auswählen.
  4. Wähle unter Connections (Verbindungen) deine Verbindung aus, und wähle dann Aktionen aus.
  5. Wähle in der Dropdown-Lliste Bearbeiten aus.
  6. Überprüfe unter Connection access (Verbindungszugriff), ob die URLs des Kafka-Bootstrap-Servers mit den URLs in der Amazon MSK-Konsole übereinstimmen.
  7. Wenn die URLs nicht übereinstimmen, aktualisiere sie gemäß der Authentifizierungsmethode, die der Amazon MSK-Cluster verwendet. Verwende die Portnummern, die der Broker-Konfiguration entsprechen:
    Verwende bei TLS/SSL Port 9094 für den Zugriff innerhalb von AWS und Port 9194 für den öffentlichen Zugriff.
    Verwende bei SASL/SCRAM Port 9096 für den Zugriff innerhalb von AWS und Port 9196 für den öffentlichen Zugriff.
  8. Wähle Änderungen speichern aus.

Führe dann die folgenden Aktionen auf der Grundlage der Authentifizierungsmethode des Amazon MSK-Clusters durch.

SASL/SCRAM-SHA-512

Verwende AWS Secrets Manager, um deinen Benutzernamen und dein Passwort zu verifizieren. Wenn du Secrets Manager zum Speichern deiner Anmeldeinformationen verwendest, stelle sicher, dass das Subnetz der AWS Glue-Verbindung den Endpunkt des Secret Managers erreichen kann.

TLS/SSL-Client-Authentifizierung

Führe den folgenden Befehl aus, um das Schlüsselspeicher-Zertifikat und das Schlüsselspeicher-Passwort oder das Schlüsselpasswort des Kafka-Clients zu überprüfen:

keytool -list -v -keystore /pathtocert/kafka.client.keystore.jks -storepass 123456

Stelle sicher, dass die Ausgabe das AWS Private Certificate Authority (AWS Private CA)-Zertifikat enthält, das der Amazon MSK-Cluster verwendet.

Wenn die Ausgabe das Zertifikat nicht enthält, führe die Schritte 5–11 unter Einrichten eines Clients zur Verwendung der Authentifizierung zum Erstellen neuer Schlüsselspeicher aus.

Wichtig: Erstelle neue Schlüsselspeicher für jeden Client mit demselben privaten Zertifikat, das der Amazon MSK-Cluster verwendet.

Lade das Zertifikat kafka.client.keystore.jks auf Amazon Simple Storage Service (Amazon S3) hoch. Konfiguriere dann die AWS Glue Kafka-Verbindung mit dem S3-Pfad des Zertifikats.

IAM-Authentifizierung

Stelle sicher, dass die AWS Identity and Access Management (IAM, Identitäts- und Zugriffsmanagement)-Rolle des AWS Glue-Auftrags über die richtige Autorisierungsrichtlinie für den Amazon MSK-Cluster verfügt.

Ähnliche Informationen

Eine Kafka-Verbindung herstellen

Streamen von ETL-Aufträgen in AWS Glue

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Monat