Konfiguration von Cluster-Authentifizierungsmethoden in Lambda - AWS Lambda

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.

Konfiguration von Cluster-Authentifizierungsmethoden in Lambda

Lambda benötigt die Erlaubnis, auf Ihren Amazon MSK-Cluster zuzugreifen, Datensätze abzurufen und andere Aufgaben auszuführen. Amazon MSK unterstützt mehrere Methoden zur Authentifizierung bei Ihrem MSK-Cluster.

Nicht authentifizierter Zugriff

Wenn keine Clients über das Internet auf den Cluster zugreifen, können Sie einen nicht authentifizierten Zugriff verwenden.

SASL/SCRAM-Authentifizierung

Lambda unterstützt die Authentifizierung Simple Authentication und Security Layer/Salted Challenge Response Authentication Mechanism (SASL/SCRAM) mit der SHA-512-Hash-Funktion und der Transport Layer Security (TLS) -Verschlüsselung. Damit Lambda eine Verbindung zum Cluster herstellen kann, speichern Sie die Authentifizierungsdaten (Benutzername und Passwort) in einem Secrets Manager-Geheimnis und verweisen Sie bei der Konfiguration Ihrer Ereignisquellenzuordnung auf dieses Geheimnis.

Weitere Informationen zur Verwendung von Secrets Manager finden Sie unter Authentifizierung von Anmeldedaten mit Secrets Manager im Amazon Managed Streaming for Apache Kafka Developer Guide.

Anmerkung

Amazon MSK unterstützt keine SASL/PLAIN Authentifizierung.

Gegenseitige TLS-Authentifizierung

Mutual TLS (mTLS) bietet eine bidirektionale Authentifizierung zwischen dem Client und dem Server. Der Client sendet ein Zertifikat an den Server, damit der Server den Client verifizieren kann. Der Server sendet außerdem ein Zertifikat an den Client, damit der Client den Server verifizieren kann.

Bei Amazon MSK-Integrationen mit Lambda fungiert Ihr MSK-Cluster als Server und Lambda als Client.

  • Damit Lambda Ihren MSK-Cluster verifizieren kann, konfigurieren Sie ein Client-Zertifikat als Secret in Secrets Manager und verweisen in Ihrer Konfiguration für die Zuordnung von Ereignisquellen auf dieses Zertifikat. Das Client-Zertifikat muss von einer Zertifizierungsstelle (CA) im Trust Store des Servers signiert werden.

  • Der MSK-Cluster sendet auch ein Serverzertifikat an Lambda. Das Serverzertifikat muss von einer Zertifizierungsstelle (CA) im AWS Trust Store signiert werden.

Amazon MSK unterstützt keine selbstsignierten Serverzertifikate. Alle Broker in Amazon MSK verwenden öffentliche Zertifikate, die von Amazon Trust Services signiert wurden CAs, denen Lambda standardmäßig vertraut.

Das Secret CLIENT_CERTIFICATE_TLS_AUTH erfordert ein Zertifikatfeld und ein Feld für einen privaten Schlüssel. Für einen verschlüsselten privaten Schlüssel erfordert das Secret ein Passwort für den privaten Schlüssel. Sowohl das Zertifikat als auch der private Schlüssel müssen im PEM-Format vorliegen.

Anmerkung

Lambda unterstützt die Verschlüsselungsalgorithmen mit privaten Schlüsseln PBES1(aber nicht PBES2).

Das Zertifikatfeld muss eine Liste von Zertifikaten enthalten, beginnend mit dem Client-Zertifikat, gefolgt von etwaigen Zwischenzertifikaten und endend mit dem Root-Zertifikat. Jedes Zertifikat muss in einer neuen Zeile mit der folgenden Struktur beginnen:

-----BEGIN CERTIFICATE----- <certificate contents> -----END CERTIFICATE-----

Secrets Manager unterstützt Secrets von bis zu 65 536 Bytes, was genügend Platz für lange Zertifikatsketten bietet.

Der private Schlüssel muss im Format PKCS #8 mit folgender Struktur vorliegen:

-----BEGIN PRIVATE KEY----- <private key contents> -----END PRIVATE KEY-----

Verwenden Sie für einen verschlüsselten privaten Schlüssel die folgende Struktur:

-----BEGIN ENCRYPTED PRIVATE KEY----- <private key contents> -----END ENCRYPTED PRIVATE KEY-----

Im folgenden Beispiel sehen Sie den Inhalt eines Secrets für mTLS-Authentifizierung mit einem verschlüsselten privaten Schlüssel. Fügen Sie für einen verschlüsselten privaten Schlüssel das Passwort für den privaten Schlüssel in das Secret ein.

{ "privateKeyPassword": "testpassword", "certificate": "-----BEGIN CERTIFICATE----- MIIE5DCCAsygAwIBAgIRAPJdwaFaNRrytHBto0j5BA0wDQYJKoZIhvcNAQELBQAw ... j0Lh4/+1HfgyE2KlmII36dg4IMzNjAFEBZiCRoPimO40s1cRqtFHXoal0QQbIlxk cmUuiAii9R0= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIFgjCCA2qgAwIBAgIQdjNZd6uFf9hbNC5RdfmHrzANBgkqhkiG9w0BAQsFADBb ... rQoiowbbk5wXCheYSANQIfTZ6weQTgiCHCCbuuMKNVS95FkXm0vqVD/YpXKwA/no c8PH3PSoAaRwMMgOSA2ALJvbRz8mpg== -----END CERTIFICATE-----", "privateKey": "-----BEGIN ENCRYPTED PRIVATE KEY----- MIIFKzBVBgkqhkiG9w0BBQ0wSDAnBgkqhkiG9w0BBQwwGgQUiAFcK5hT/X7Kjmgp ... QrSekqF+kWzmB6nAfSzgO9IaoAaytLvNgGTckWeUkWn/V0Ck+LdGUXzAC4RxZnoQ zp2mwJn2NYB7AZ7+imp0azDZb+8YG2aUCiyqb6PnnA== -----END ENCRYPTED PRIVATE KEY-----" }

Weitere Informationen zu mTLS für Amazon MSK und Anweisungen zum Generieren eines Client-Zertifikats finden Sie unter Gegenseitige TLS-Client-Authentifizierung für Amazon MSK im Amazon Managed Streaming for Apache Kafka Developer Guide.

IAM-Authentifizierung

Sie können AWS Identity and Access Management (IAM) verwenden, um die Identität von Clients zu authentifizieren, die eine Verbindung zum MSK-Cluster herstellen. Bei der IAM-Authentifizierung stützt sich Lambda auf die Berechtigungen in der Ausführungsrolle Ihrer Funktion, um eine Verbindung zum Cluster herzustellen, Datensätze abzurufen und andere erforderliche Aktionen auszuführen. Eine Beispielrichtlinie, die die erforderlichen Berechtigungen enthält, finden Sie unter Autorisierungsrichtlinien für die IAM-Rolle erstellen im Amazon Managed Streaming for Apache Kafka Developer Guide.

Wenn die IAM-Authentifizierung auf Ihrem MSK-Cluster aktiv ist und Sie kein Geheimnis angeben, verwendet Lambda standardmäßig automatisch die IAM-Authentifizierung.

Weitere Informationen zur IAM-Authentifizierung in Amazon MSK finden Sie unter IAM-Zugriffskontrolle.

So wählt Lambda einen Bootstrap-Broker

Lambda wählt einen Bootstrap-Broker basierend auf den auf Ihrem Cluster verfügbaren Authentifizierungsmethoden aus und ob Sie ein Geheimnis für die Authentifizierung angeben.. Wenn Sie ein Geheimnis für MTLs oder SASL/SCRAM angeben, wählt Lambda automatisch diese Authentifizierungsmethode. Wenn Sie kein Geheimnis angeben, wählt Lambda die stärkste Authentifizierungsmethode aus, die in Ihrem Cluster aktiv ist. Im Folgenden ist die Reihenfolge der Priorität aufgeführt, in der Lambda einen Broker auswählt, von der stärksten zur schwächsten Authentifizierung:

  • mTLS (Geheimnis für mTLS bereitgestellt)

  • SASL/SCRAM (secret provided for SASL/SCRAM)

  • SASL IAM (kein Geheimnis angegeben und IAM-Authentifizierung aktiv)

  • Nicht authentifiziertes TLS (kein Geheimnis bereitgestellt und IAM-Authentifizierung nicht aktiv)

  • Klartext (kein Geheimnis angegeben und sowohl IAM-Authentifizierung als auch nicht authentifiziertes TLS sind nicht aktiv)

Anmerkung

Wenn Lambda keine Verbindung zum sichersten Brokertyp herstellen kann, versucht Lambda nicht, eine Verbindung zu einem anderen (schwächeren) Brokertyp herzustellen. Wenn Sie möchten, dass Lambda einen schwächeren Brokertyp wählt, deaktivieren Sie alle stärkeren Authentifizierungsmethoden in Ihrem Cluster.