Quando tento conectar o Amazon RDS Proxy a uma função do AWS Lambda, recebo a seguinte mensagem de erro: "O Lambda não conseguiu atualizar a função de execução de funções". Como faço para resolver o erro?
Breve descrição
O Lambda pode retornar o erro O Lambda não conseguiu atualizar a função de execução de funções pelos seguintes motivos:
- A função de execução do Lambda tem mais de uma entidade confiável associada a ela.
- A função de execução de função do Lambda tem 10 políticas associadas a ela.
- O usuário conectado ao AWS Identity and Access Management (IAM) não tem as permissões “CreatePolicy” e “AttachRolePolicy”.
Resolução
Verificar se a função de execução de função do Lambda tem somente uma entidade confiável associada a ela
Analise a função de execução da sua função e verifique se somente o serviço do Lambda (lambda.amazonaws.com) pode assumir a função.
Observação: para ter a mesma função assumida por outros serviços, crie uma nova função e configure esses serviços como suas entidades confiáveis.
Verifique se a função de execução de função do Lambda não tem 10 políticas associadas a ela
Analise a função de execução da sua função para determinar se há 10 políticas associadas a ela. Se a função tiver 10 políticas associadas a ela, então
crie uma política única e personalizada para substituir as existentes.
Observação: se a função de execução tiver 10 políticas anexadas, a função do Lambda não poderá criar e anexar a política de RDS Proxy necessária à função.
Exemplo de política de proxy do RDS
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "rds-db:connect",
"Resource": "Proxy ARN"
}
]
}
Verificar se o usuário do IAM conectado tem as permissões “CreatePolicy” e “AttachRolePolicy”
Analise a política do IAM do usuário do IAM conectado e verifique se a política inclui as permissões “CreatePolicy” e “AttachRolePolicy”. Se a política do usuário não incluir as permissões necessárias, conceda ao usuário as permissões “CreatePolicy” e “AttachRolePolicy”.
Observação: se o usuário do IAM conectado não tiver as permissões necessárias, o console do Lambda exibirá um ou ambos os seguintes erros:
- "Usuário <user-arn> não autorizado a realizar: iam:CreatePolicy no recurso: policy <policy-name>"
- "Usuário <user-arn> não autorizado a realizar: iam:AttachRolePolicy no recurso: role <role-name>"