Saltar al contenido

AWS Lambda: el rol de ejecución proporcionado no tiene permisos para llamar a DescribeNetworkInterfaces en EC2

Solución:

Este error es común si intenta implementar un Lambda en una VPC sin otorgarle los permisos necesarios relacionados con la interfaz de red. ec2:DescribeNetworkInterfaces, ec2:CreateNetworkInterface, y ec2:DeleteNetworkInterface (consulte el Foro de AWS).

Por ejemplo, esta es una política que permite implementar un Lambda en una VPC:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeNetworkInterfaces",
        "ec2:CreateNetworkInterface",
        "ec2:DeleteNetworkInterface",
        "ec2:DescribeInstances",
        "ec2:AttachNetworkInterface"
      ],
      "Resource": "*"
    }
  ]
}

Si está utilizando terraform, simplemente agregue:

resource "aws_iam_role_policy_attachment" "AWSLambdaVPCAccessExecutionRole" {
    role       = aws_iam_role.lambda.name
    policy_arn = "arn:aws:iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"
}

a través de AWS CLI utilizando una política administrada

  • Para otorgar a mi Lambda los permisos necesarios para excavar en una VPC donde vive una base de datos RDS de producción.
  • Como mencionó @portatlas anteriormente, el AWSLambdaVPCAccessExecutionRole la política administrada encaja como un guante (y todos sabemos que las políticas administradas de IAM son una práctica recomendada recomendada por AWS).
  • Esto es para Lambda con un rol de servicio ya adjunto.

1. Obtenga el rol de servicio Lambda

  • Tubería aws lambda get-function-configuration salida en un grep para Papel (probablemente una forma más limpia / magra / mala de hacer esto)

    aws lambda get-function-configuration 
        --function-name <<your function name or ARN here>> 
        | grep "Role"
    
  • regreso

    "Role": "arn:aws:iam::000000000000:role/service-role/your-service-role-name",
    
  • Toma el valor después de la última barra inclinada del ARN del rol your-service-role-name a 2

2. Adjunte la política administrada AWSLambdaVPCAccessExecutionRole al rol de servicio

aws iam attach-role-policy 
    --role-name your-service-role-name 
    --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags :

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *