Comment résoudre l'erreur « Lambda could not update the function's execution role » (Lambda n'a pas pu mettre à jour le rôle d'exécution de la fonction) lors de l'attachement du proxy Amazon RDS à une fonction Lambda ?

Dernière mise à jour : 08/12/2021

Lorsque j'essaie d'attacher un proxy Amazon RDS à une fonction AWS Lambda, le message d'erreur suivant s'affiche : « Lambda could not update the function's execution role » (Lambda n'a pas pu mettre à jour le rôle d'exécution de la fonction). Comment puis-je corriger ce problème ?

Brève description

Lambda peut renvoyer l'erreur Lambda could not update the function's execution role (Lambda n'a pas pu mettre à jour le rôle d'exécution de la fonction) pour les raisons suivantes :

  • Le rôle d'exécution Lambda a plus d'une entité de confiance qui lui est associée.
  • Le rôle d'exécution de la fonction Lambda est associé à 10 stratégies.
  • L'utilisateur AWS Identity and Access Management (IAM) connecté n'a pas les autorisations CreatePolicy et AttachRolePolicy.

Solution

Vérifiez que le rôle d'exécution de la fonction Lambda est associé à une seule entité de confiance

Examinez le rôle d'exécution de votre fonction et vérifiez que seul le service Lambda (lambda.amazonaws.com) peut assumer ce rôle.

Remarque : Pour que le même rôle soit assumé par d'autres services, créez un nouveau rôle et configurez ces services en tant qu'entités de confiance.

Vérifiez que le rôle d'exécution de la fonction Lambda n'est pas associé à 10 stratégies

Examinez le rôle d'exécution de votre fonction pour savoir si 10 stratégies y sont associées. Si le rôle est associé à 10 stratégies, créez une seule stratégie personnalisée pour remplacer les stratégies existantes.

Remarque : Si 10 stratégies sont attachées au rôle d'exécution, la fonction Lambda ne peut pas créer ni attacher la stratégie de proxy RDS requise pour le rôle.

Exemple de stratégie de proxy RDS

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "rds-db:connect",
            "Resource": "Proxy ARN"
        }
    ]
}

Vérifier que l'utilisateur IAM connecté a les autorisations « CreatePolicy » et « AttachRolePolicy »

Examinez la stratégie IAM de l'utilisateur IAM connecté et vérifiez qu'elle inclut les autorisations « CreatePolicy » et « AttachRolePolicy ». Si la stratégie de l'utilisateur n'inclut pas les autorisations requises, accordez à l'utilisateur les autorisations « CreatePolicy » et « AttachRolePolicy ».

Remarque : Si l'utilisateur IAM connecté ne dispose pas des autorisations requises, la console Lambda affiche l'une des erreurs suivantes ou les deux :

  • « User <user-arn> is not authorized to perform: iam:CreatePolicy on resource: policy <policy-name> » (L'utilisateur <user-arn> n'est pas autorisé à effectuer iam:CreatePolicy sur la stratégie ressource <policy-name>)
  • « User <user-arn> is not authorized to perform: iam:AttachRolePolicy on resource: role <role-name> » (L'utilisateur <user-arn> n'est pas autorisé à effectuer iam:AttachRolePolicy sur le rôle ressource <role-name>)

 


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?