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 autorisations du rôle d'exécution Lambda
Pour accéder au cluster Amazon MSK, le mappage de vos sources de fonctions et d'événements nécessite des autorisations pour effectuer diverses actions d'API Amazon MSK. Ajoutez ces autorisations au rôle d'exécution de la fonction. Si vos utilisateurs ont besoin d'un accès, ajoutez les autorisations requises à la politique d'identité de l'utilisateur ou du rôle.
Pour couvrir toutes les autorisations requises, vous pouvez associer la politique de gestion des AWSLambdaMSKExecutionrôles à votre rôle d'exécution. Vous pouvez également ajouter chaque autorisation manuellement.
Rubriques
Autorisations de base
Votre rôle d'exécution de fonction Lambda doit disposer des autorisations requises suivantes pour créer et stocker des journaux dans CloudWatch Logs.
Autorisations d'accès au cluster
Pour que Lambda puisse accéder à votre cluster Amazon MSK en votre nom, votre fonction Lambda doit disposer des autorisations suivantes dans son rôle d’exécution :
-
kafka : DescribeVpcConnection : Nécessaire uniquement pour les mappages de sources d'événements entre comptes.
-
kafka : ListVpcConnections : Non obligatoire dans le rôle d'exécution, mais obligatoire pour un principal IAM qui crée un mappage de source d'événements entre comptes.
Il vous suffit d'ajouter l'un des deux options Kafka : DescribeCluster ou Kafka : DescribeCluster V2. Pour les clusters Amazon MSK provisionnés, l'une ou l'autre des autorisations fonctionne. Pour les clusters Amazon MSK sans serveur, vous devez utiliser kafka : V2. DescribeCluster
Note
Lambda prévoit à terme de supprimer l'DescribeClusterautorisation Kafka : de la politique de gestion des AWSLambdaMSKExecutionrôles. Si vous utilisez cette politique, migrez toutes les applications utilisant kafka : DescribeCluster pour utiliser kafka : DescribeCluster V2 à la place.
Autorisations VPC
Si votre cluster Amazon MSK se trouve dans un sous-réseau privé de votre VPC, votre fonction Lambda doit disposer d'autorisations supplémentaires pour accéder à vos ressources Amazon VPC. Il s'agit notamment de votre VPC, de vos sous-réseaux, de vos groupes de sécurité et de vos interfaces réseau. Le rôle d'exécution de votre fonction doit disposer des autorisations suivantes :
Autorisations facultatives
Votre fonction Lambda peut également nécessiter ces autorisations pour :
-
Accédez à votre code secret SCRAM si vous utilisez l'authentification SASL/SCRAM. Cela permet à votre fonction d'utiliser un nom d'utilisateur et un mot de passe pour se connecter à Kafka.
-
Décrivez le secret de votre Secrets Manager, si vous utilisez l' SASL/SCRAM authentification mTLS. Cela permet à votre fonction de récupérer les informations d'identification ou les certificats nécessaires pour des connexions sécurisées.
-
Accédez à votre clé AWS KMS gérée par le client si vous souhaitez chiffrer vos critères de filtrage. Cela permet de garder secrètes vos règles de filtrage des messages.
-
Accédez aux secrets de votre registre de schéma, si vous utilisez un registre de schéma avec authentification :
-
Pour le registre des AWS Glue schémas : les besoins
glue:GetRegistry
etglue:GetSchemaVersion
les autorisations de votre fonction. Ils permettent à votre fonction de rechercher et d'utiliser les règles de format des messages qui y sont stockées AWS Glue. -
Pour le registre de schéma Confluent
avec BASIC_AUTH
ouCLIENT_CERTIFICATE_TLS_AUTH
: votre fonction a besoin d'unesecretsmanager:GetSecretValue
autorisation pour accéder au secret contenant les informations d'authentification. Cela permet à votre fonction de récupérer les username/password certificats nécessaires pour accéder au registre des schémas Confluent. -
Pour les certificats CA privés : votre fonction a besoin de l'GetSecretValue autorisation secretsmanager : pour le secret contenant le certificat. Cela permet à votre fonction de vérifier l'identité des registres de schémas qui utilisent des certificats personnalisés.
-
Elles correspondent aux autorisations requises suivantes :
-
kafka : ListScramSecrets - Permet de répertorier les secrets SCRAM pour l'authentification Kafka
-
secretsmanager : GetSecretValue - Permet de récupérer des secrets depuis Secrets Manager
-
KMS:Decrypt - Permet le déchiffrement de données cryptées en utilisant AWS KMS
-
glue : GetRegistry - Autorise l'accès au registre des AWS Glue schémas
-
glue : GetSchemaVersion - Permet de récupérer des versions de schéma spécifiques à partir du registre des AWS Glue schémas
En outre, si vous souhaitez envoyer des enregistrements d'appels ayant échoué vers une destination en cas d'échec, vous aurez besoin des autorisations suivantes en fonction du type de destination :
-
Pour les destinations Amazon SQS : sqs : SendMessage - Permet d'envoyer des messages à une file d'attente Amazon SQS
-
Pour les destinations Amazon SNS : SNS:Publish - Permet de publier des messages sur une rubrique Amazon SNS
-
Pour les destinations du compartiment Amazon S3 : s3 : PutObject et s3 : ListBucket - Permet d'écrire et de répertorier des objets dans un compartiment Amazon S3
Résolution des erreurs d'authentification et d'autorisation courantes
Si l'une des autorisations requises pour utiliser les données du cluster Amazon MSK est manquante, Lambda affiche l'un des messages d'erreur suivants dans le mappage des sources d'événements ci-dessous. LastProcessingResult Pour plus d'informations sur chaque méthode d'authentification prise en charge, consultezConfiguration des méthodes d'authentification du cluster dans Lambda.
Messages d’erreur
Le cluster n’a pas pu autoriser Lambda
Pour SASL/SCRAM ou mTLS, cette erreur indique que l'utilisateur fourni ne possède pas toutes les autorisations requises de la liste de contrôle d'accès (ACL) Kafka suivantes :
DescribeConfigs Cluster
Décrire un groupe
Lire le groupe
Décrire la rubrique
Lire la rubrique
Pour le contrôle d’accès IAM, le rôle d’exécution de fonction ne dispose pas d’une ou de plusieurs autorisations requises pour accéder au groupe ou à la rubrique. Consultez la liste des autorisations requises sur cette page.
Lorsque vous créez une politique Kafka ACLs ou IAM avec les autorisations de cluster Kafka requises, spécifiez le sujet et le groupe en tant que ressources. Le nom de la rubrique doit correspondre à la rubrique dans le mappage des sources d’événements. Le nom du groupe doit correspondre à l’UUID du mappage des sources d’événements.
Une fois que vous avez ajouté les autorisations requises au rôle d’exécution, il peut y avoir un délai de plusieurs minutes avant que les modifications ne prennent effet.
Échec de l’authentification SASL
Pour SASL/SCRAM, cet échec indique que le nom d’utilisateur et le mot de passe fournis ne sont pas valides.
Pour le contrôle d’accès IAM, le rôle d’exécution est manquant kafka-cluster:Connect
autorisations pour le cluster. Ajoutez cette autorisation au rôle et spécifiez l’Amazon Resource Name (ARN) du cluster en tant que ressource.
Cette erreur peut se produire de façon intermittente. Le cluster rejette les connexions une fois que le nombre de connexions TCP dépasse le Quota de service Amazon MSK. Lambda fait marche arrière et tente de nouveau jusqu’à ce qu’une connexion soit réussie. Une fois que Lambda se connecte au cluster et interroge les enregistrements, le dernier résultat de traitement passe à OK
.
Le serveur n’a pas réussi à authentifier Lambda
Cette erreur indique que les courtiers Amazon MSK Kafka n’ont pas réussi à s’authentifier auprès de Lambda. Cette erreur se produit dans les conditions suivantes :
Vous n’avez pas fourni de certificat client pour l’authentification mTLS.
Vous avez fourni un certificat client, mais les courtiers ne sont pas configurés pour utiliser les mTLS.
Les courtiers ne font pas confiance à un certificat client.
Le certificat ou la clé privée fournis n’est pas valide
Cette erreur indique que le consommateur Amazon MSK n’a pas pu utiliser le certificat ou la clé privée fournis. Assurez-vous que le certificat et la clé utilisent le format PEM et que le chiffrement par clé privée utilise un PBES1 algorithme. Pour plus d'informations, consultez Configuration du secret mTLS.