Konfiguration von Berechtigungen für Lambda-Ausführungsrollen - 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 Berechtigungen für Lambda-Ausführungsrollen

Um auf den Amazon MSK-Cluster zuzugreifen, benötigen Ihre Funktions- und Ereignisquellenzuordnung Berechtigungen zur Ausführung verschiedener Amazon MSK-API-Aktionen. Fügen Sie diese Berechtigungen der Ausführungsrolle der Funktion hinzu. Wenn Ihre Benutzer Zugriff benötigen, fügen Sie der Identitätsrichtlinie für den Benutzer oder die Rolle die erforderlichen Berechtigungen hinzu.

Um alle erforderlichen Berechtigungen abzudecken, können Sie die Richtlinie „AWSLambdaMSKExecutionRollenverwaltung“ an Ihre Ausführungsrolle anhängen. Alternativ können Sie jede Berechtigung manuell hinzufügen.

Grundlegende Berechtigungen

Ihre Lambda-Funktionsausführungsrolle muss über die folgenden erforderlichen Berechtigungen verfügen, um Protokolle zu erstellen und in CloudWatch Logs zu speichern.

Cluster-Zugriffsberechtigungen

Damit Lambda in Ihrem Namen auf Ihren Amazon-MSK-Cluster zugreifen kann, muss Ihre Lambda-Funktion über die folgenden Berechtigungen in ihrer Ausführungsrolle verfügen:

Sie müssen nur eine der Optionen kafka: DescribeCluster oder kafka: V2 hinzufügen. DescribeCluster Für bereitgestellte Amazon MSK-Cluster funktionieren beide Berechtigungen. Für serverlose Amazon MSK-Cluster müssen Sie kafka: V2 verwenden. DescribeCluster

Anmerkung

Lambda plant irgendwann, die Kafka: DescribeCluster -Berechtigung aus der Richtlinie „AWSLambdaMSKExecutionRollenverwaltete Rollen“ zu entfernen. Wenn Sie diese Richtlinie verwenden, migrieren Sie alle Anwendungen, die kafka: verwenden, um stattdessen kafka: V2 DescribeCluster zu verwenden. DescribeCluster

VPC-Berechtigungen

Wenn sich Ihr Amazon MSK-Cluster in einem privaten Subnetz Ihrer VPC befindet, muss Ihre Lambda-Funktion über zusätzliche Berechtigungen für den Zugriff auf Ihre Amazon VPC-Ressourcen verfügen. Dazu gehören Ihre VPC, Subnetze, Sicherheitsgruppen und Netzwerkschnittstellen. Die Ausführungsrolle Ihrer Funktion muss über die folgenden Berechtigungen verfügen:

Optionale Berechtigungen

Ihre Lambda-Funktion benötigt möglicherweise auch Berechtigungen für Folgendes:

  • Greifen Sie auf Ihr SCRAM-Geheimnis zu, wenn Sie die SASL/SCRAM-Authentifizierung verwenden. Dadurch kann Ihre Funktion einen Benutzernamen und ein Passwort verwenden, um eine Verbindung zu Kafka herzustellen.

  • Beschreiben Sie Ihr Secrets Manager-Geheimnis, falls Sie die SASL/SCRAM mTLS-Authentifizierung verwenden. Auf diese Weise kann Ihre Funktion die Anmeldeinformationen oder Zertifikate abrufen, die für sichere Verbindungen benötigt werden.

  • Greifen Sie AWS KMS auf Ihren vom Kunden verwalteten Schlüssel zu, wenn Sie Ihre Filterkriterien verschlüsseln möchten. Auf diese Weise können Sie Ihre Nachrichtenfilterregeln geheim halten.

  • Greifen Sie auf Ihre Schemaregistrierungsgeheimnisse zu, wenn Sie eine Schemaregistrierung mit Authentifizierung verwenden:

    • Für AWS Glue Schema Registry: Ihre Funktionsanforderungen glue:GetRegistry und glue:GetSchemaVersion Berechtigungen. Diese ermöglichen es Ihrer Funktion, die in gespeicherten Regeln für das Nachrichtenformat nachzuschlagen und zu verwenden AWS Glue.

    • Für Confluent Schema Registry mit BASIC_AUTH oderCLIENT_CERTIFICATE_TLS_AUTH: Ihre Funktion benötigt eine secretsmanager:GetSecretValue Genehmigung für das Geheimnis, das die Authentifizierungsdaten enthält. Dadurch kann Ihre Funktion die Oder-Zertifikate abrufen, die username/password für den Zugriff auf die Confluent Schema Registry erforderlich sind.

    • Für private CA-Zertifikate: Ihre Funktion benötigt die GetSecretValue Berechtigung secretsmanager: für das Secret, das das Zertifikat enthält. Auf diese Weise kann Ihre Funktion die Identität von Schemaregistern überprüfen, die benutzerdefinierte Zertifikate verwenden.

Diese entsprechen den folgenden erforderlichen Berechtigungen:

Wenn Sie Aufzeichnungen über fehlgeschlagene Aufrufe an ein Ziel senden möchten, das bei einem Fehler auftritt, benötigen Sie außerdem je nach Zieltyp die folgenden Berechtigungen:

Behebung häufiger Authentifizierungs- und Autorisierungsfehler

Wenn eine der für die Nutzung von Daten aus dem Amazon MSK-Cluster erforderlichen Berechtigungen fehlt, zeigt Lambda in der Ereignisquellenzuordnung unter eine der folgenden Fehlermeldungen an. LastProcessingResult Weitere Informationen zu den einzelnen unterstützten Authentifizierungsmethoden finden Sie unter. Konfiguration von Cluster-Authentifizierungsmethoden in Lambda

Cluster konnte Lambda nicht autorisieren

Bei SASL/SCRAM oder mTLS weist dieser Fehler darauf hin, dass der angegebene Benutzer nicht über alle der folgenden erforderlichen Kafka-Zugriffssteuerungslisten (ACL) -Berechtigungen verfügt:

  • DescribeConfigs Cluster

  • Beschreiben von Gruppe

  • Gruppe lesen

  • Thema beschreiben

  • Thema lesen

Zur IAM-Zugriffskontrolle fehlen der Ausführungsrolle Ihrer Funktion eine oder mehrere der Berechtigungen, die für den Zugriff auf die Gruppe oder das Thema erforderlich sind. Sehen Sie sich die Liste der erforderlichen Berechtigungen auf dieser Seite an.

Wenn Sie entweder eine Kafka ACLs - oder eine IAM-Richtlinie mit den erforderlichen Kafka-Cluster-Berechtigungen erstellen, geben Sie das Thema und die Gruppe als Ressourcen an. Der Themenname muss mit dem Thema in der Ereignisquellenzuordnung übereinstimmen. Der Gruppenname muss mit der UUID der Ereignisquellenzuordnung übereinstimmen.

Nachdem Sie der Ausführungsrolle die erforderlichen Berechtigungen hinzugefügt haben, kann es einige Minuten dauern, bis die Änderungen wirksam werden.

SASL-Authentifizierung fehlgeschlagen

Bei SASL/SCRAM weist dieser Fehler darauf hin, dass der angegebene Benutzername und das Passwort ungültig sind.

Zur IAM-Zugriffskontrolle fehlt der Ausführungsrolle die Berechtigung kafka-cluster:Connect für den MSK-Cluster. Fügen Sie der Rolle diese Berechtigung hinzu und geben Sie den Amazon-Ressourcenname (ARN) des Clusters als Ressource an.

Dieser Fehler wird Ihnen möglicherweise in zeitlichen Abständen angezeigt. Der Cluster lehnt Verbindungen ab, wenn die Anzahl der TCP-Verbindungen das Amazon-MSK-Servicekontingent überschreitet. Lambda zieht sich zurück und versucht es erneut, bis eine Verbindung erfolgreich ist. Nachdem Lambda eine Verbindung zum Cluster hergestellt hat und nach Datensätzen abfragt, ändert sich das letzte Verarbeitungsergebnis zu OK.

Server konnte Lambda nicht authentifizieren

Dieser Fehler weist darauf hin, dass die Amazon-MSK-Kafka-Broker sich bei Lambda nicht authentifizieren konnten. Dieser Fehler kann aus folgenden Gründen auftreten:

  • Sie haben kein Client-Zertifikat für die mTLS-Authentifizierung bereitgestellt.

  • Sie haben ein Client-Zertifikat bereitgestellt, aber die Broker sind nicht für die Verwendung von mTLS konfiguriert.

  • Die Broker vertrauen einem Client-Zertifikat nicht.

Bereitgestelltes Zertifikat oder bereitgestellter privater Schlüssel ist ungültig

Dieser Fehler weist darauf hin, dass der Amazon-MSK-Konsument das bereitgestellte Zertifikat oder den bereitgestellten privaten Schlüssel nicht verwenden konnte. Stellen Sie sicher, dass das Zertifikat und der Schlüssel das PEM-Format verwenden und dass für die Verschlüsselung mit dem privaten Schlüssel ein Algorithmus verwendet wird. PBES1 Weitere Informationen finden Sie unter Konfigurieren des mTLS-Secrets.