Configuration des méthodes d'authentification du cluster dans Lambda - AWS Lambda

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Configuration des méthodes d'authentification du cluster dans Lambda

Lambda a besoin d'une autorisation pour accéder à votre cluster Amazon MSK, récupérer des enregistrements et effectuer d'autres tâches. Amazon MSK propose plusieurs méthodes d'authentification auprès de votre cluster MSK.

Accès non authentifié

Si aucun client n’accède au cluster via Internet, vous pouvez utiliser un accès non authentifié.

Authentification SASL/SCRAM

Lambda prend en charge l'authentification simple et l'authentification SASL/SCRAM (Security Layer/Salted Challenge Response Authentication Mechanism), avec la fonction de hachage SHA-512 et le chiffrement TLS (Transport Layer Security). Pour que Lambda puisse se connecter au cluster, stockez les informations d'authentification (nom d'utilisateur et mot de passe) dans un secret Secrets Manager, et référencez ce secret lors de la configuration du mappage de votre source d'événements.

Pour plus d'informations sur l'utilisation de Secrets Manager, consultez la section Authentification des identifiants de connexion avec Secrets Manager dans le guide du développeur Amazon Managed Streaming for Apache Kafka.

Note

Amazon MSK ne prend pas en charge SASL/PLAIN l'authentification.

Authentification TLS mutuelle

Le protocole TLS mutuel (mTLS) fournit une authentification bidirectionnelle entre le client et le serveur. Le client envoie un certificat au serveur pour que celui-ci vérifie le client. Le serveur envoie également un certificat au client pour que celui-ci vérifie le serveur.

Pour les intégrations Amazon MSK avec Lambda, votre cluster MSK agit en tant que serveur et Lambda en tant que client.

  • Pour que Lambda puisse vérifier votre cluster MSK, vous devez configurer un certificat client en tant que secret dans Secrets Manager et référencer ce certificat dans votre configuration de mappage des sources d'événements. Le certificat client doit être signé par une autorité de certification (CA) dans le trust store du serveur.

  • Le cluster MSK envoie également un certificat de serveur à Lambda. Le certificat du serveur doit être signé par une autorité de certification (CA) dans le AWS trust store.

Amazon MSK ne prend pas en charge les certificats de serveur auto-signés. Tous les courtiers d'Amazon MSK utilisent des certificats publics signés par Amazon Trust Services CAs, auxquels Lambda fait confiance par défaut.

Le secret CLIENT_CERTIFICATE_TLS_AUTH nécessite un champ de certificat et un champ de clé privée. Pour une clé privée chiffrée, le secret nécessite un mot de passe de clé privée. Le certificat et la clé privée doivent être au format PEM.

Note

Lambda prend en charge les algorithmes de chiffrement par clé privée PBES1(mais pas PBES2).

Le champ de certificat doit contenir une liste de certificats, commençant par le certificat client, suivi de tous les certificats intermédiaires et se terminant par le certificat racine. Chaque certificat doit commencer sur une nouvelle ligne avec la structure suivante :

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

Secrets Manager prend en charge les secrets jusqu’à 65 536 octets, ce qui offre suffisamment d’espace pour de longues chaînes de certificats.

La clé privée doit être au format PKCS #8, avec la structure suivante :

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

Pour une clé privée chiffrée, utilisez la structure suivante :

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

L’exemple suivant affiche le contenu d’un secret pour l’authentification mTLS à l’aide d’une clé privée chiffrée. Pour une clé privée chiffrée, vous devez inclure le mot de passe de clé privée dans le secret.

{ "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-----" }

Pour plus d'informations sur les mTLS pour Amazon MSK et pour savoir comment générer un certificat client, consultez la section Authentification mutuelle des clients TLS pour Amazon MSK dans le guide du développeur Amazon Managed Streaming for Apache Kafka.

Authentification IAM

Vous pouvez utiliser AWS Identity and Access Management (IAM) pour authentifier l'identité des clients qui se connectent au cluster MSK. Avec l'authentification IAM, Lambda s'appuie sur les autorisations associées au rôle d'exécution de votre fonction pour se connecter au cluster, récupérer des enregistrements et effectuer d'autres actions requises. Pour un exemple de politique contenant les autorisations nécessaires, consultez la section Créer des politiques d'autorisation pour le rôle IAM dans le manuel Amazon Managed Streaming for Apache Kafka Developer Guide.

Si l'authentification IAM est active sur votre cluster MSK et que vous ne fournissez aucun secret, Lambda utilise automatiquement par défaut l'authentification IAM.

Pour plus d'informations sur l'authentification IAM dans Amazon MSK, consultez la section Contrôle d'accès IAM.

Comment Lambda choisit un courtier bootstrap

Lambda choisit un courtier d’amorçage en fonction des méthodes d’authentification disponibles sur votre cluster, et si vous fournissez un secret pour l’authentification. Si vous fournissez un secret pour les mTLS ou SASL/SCRAM, Lambda choisit automatiquement cette méthode d’authentification. Si vous ne e faites pas, Lambda sélectionne la méthode d’authentification la plus puissante active sur votre cluster. Voici l’ordre de priorité dans lequel Lambda sélectionne un courtier, de l’autorisation la plus forte à la plus faible :

  • MTLs (secret fourni pour les mTLS)

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

  • SASL IAM (aucun secret fourni et authentification IAM active)

  • TLS non authentifié (aucun secret fourni et authentification IAM non active)

  • Texte brut (aucun secret n’est fourni, et l’authentification IAM et le TLS non authentifié ne sont pas actifs)

Note

Si Lambda ne parvient pas à se connecter au type de courtier le plus sécurisé, Lambda n’essaie pas de se connecter à un type de courtier différent (plus faible). Si vous souhaitez que Lambda choisisse un type de courtier plus faible, désactivez toutes les méthodes d’authentification plus puissantes sur votre cluster.