Configuration des autorisations de rôle d’exécution Lambda - AWS Lambda

Configuration des autorisations de rôle d’exécution Lambda

Pour accéder au cluster Amazon MSK, votre fonction et votre mappage des sources d’événements ont besoin d’autorisations pour effectuer diverses actions de l’API Amazon MSK. Ajoutez ces autorisations au rôle d’exécution de votre fonction. Si vos utilisateurs ont besoin de l’accès, ajoutez les autorisations requises à la stratégie d’identité de l’utilisateur ou du rôle correspondant.

Pour couvrir toutes les autorisations requises, vous pouvez associer la politique gérée AWSLambdaMSKExecutionRole à votre rôle d’exécution. Vous pouvez également ajouter chaque autorisation manuellement.

Autorisations de base

Votre rôle d’exécution de la 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 :

Vous n’avez besoin d’ajouter que kafka:DescribeCluster ou kafka:DescribeClusterV2, au choix. Pour les clusters Amazon MSK alloués, l’une ou l’autre des autorisations fonctionne. Pour les clusters Amazon MSK sans serveur, vous devez utiliser kafka:DescribeClusterV2.

Note

Lambda prévoit à terme de supprimer l’autorisation kafka:DescribeCluster de la politique gérée AWSLambdaMSKExecutionRole. Si vous utilisez cette politique, migrez toutes les applications utilisant kafka:DescribeCluster pour utiliser kafka:DescribeClusterV2 à 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. Ces ressources incluent les sous-réseaux, groupes de sécurité et interfaces réseau de votre VPC. Le rôle d’exécution de votre fonction doit avoir les autorisations suivantes :

Autorisations facultatives

Votre fonction Lambda peut également nécessiter ces autorisations pour :

  • Accédez à votre 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 votre secret Secrets Manager, si vous utilisez l’authentification mTLS ou SASL/SCRAM. 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é gérée par le client AWS KMS si vous souhaitez chiffrer vos critères de filtrage. Cela permet à vos règles de filtrage des messages de rester secrètes.

  • Accédez aux secrets de votre registre de schémas, si vous utilisez un registre de schémas avec authentification :

    • Pour le registre de schémas AWS Glue : votre fonction a besoin des autorisations glue:GetRegistry et glue:GetSchemaVersion. Elles permettent à votre fonction de rechercher et d’utiliser les règles de format de message stockées dans AWS Glue.

    • Pour le registre de schémas Confluent avec BASIC_AUTH ou CLIENT_CERTIFICATE_TLS_AUTH : votre fonction a besoin de l’autorisation secretsmanager:GetSecretValue pour accéder au secret contenant les informations d’authentification. Cela permet à votre fonction de récupérer le nom d’utilisateur/mot de passe ou les certificats nécessaires pour accéder au registre de schémas Confluent.

    • Pour les certificats CA privés : votre fonction a besoin de l’autorisation secretsmanager:GetSecretValue 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.

Cela correspond aux autorisations requises suivantes :

En outre, si vous souhaitez envoyer des enregistrements d’invocations ayant échoué vers une destination en cas d’échec, vous devez disposer 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 de compartiment Amazon S3 : s3:PutObject et s3:ListBucket pour permettre d’écrire et de répertorier des objets dans un compartiment Amazon S3

Pour résoudre les erreurs d’authentification et d’autorisation, consultez Résolution des erreurs de mappage des sources d’événements Kafka.