Uso de la firma de código para verificar la integridad del código con Lambda
La firma de código de AWS Lambda ayuda a garantizar que solo se ejecute código de confianza en sus funciones de Lambda. Cuando habilita la firma de código para una función, Lambda comprueba todas las implementaciones de código y comprueba que el paquete de código está firmado por una fuente de confianza.
nota
Las funciones definidas como imágenes de contenedor no admiten la firma de código.
Para verificar la integridad del código, utilice AWS Signer para crear paquetes de código firmados digitalmente para funciones y capas. Cuando un usuario intenta implementar un paquete de código, Lambda realiza comprobaciones de validación en el paquete de código antes de aceptar la implementación. Dado que las comprobaciones de validación de firma de código se ejecutan en tiempo de implementación, no hay impacto en el rendimiento en la ejecución de funciones.
También se utiliza AWS Signer para crear perfiles de firma. Utilice un perfil de firma para crear el paquete de código firmado. Utilice AWS Identity and Access Management (IAM) para controlar quién puede firmar paquetes de código y crear perfiles de firma. Para obtener más información, consulte Autenticación y control de acceso en la Guía del desarrollador de AWS Signer.
Lambda siguen el mismo formato de paquete de código firmado que los paquetes de código de función. Cuando agrega una capa a una función que tiene habilitada la firma de código, Lambda comprueba que la capa está firmada por un perfil de firma permitido. Cuando habilita la firma de código para una función, todas las capas que se agregan a la función también deben estar firmadas por uno de los perfiles de firma permitidos.
Puede configurar la firma de código para registrar los cambios en AWS CloudTrail. Las implementaciones exitosas y bloqueadas en funciones se registran en CloudTrail con información sobre las comprobaciones de firma y validación.
No hay ningún cargo adicional por usar AWS Signer o firma de código para AWS Lambda.
Validación de firmas
Lambda realiza las siguientes comprobaciones de validación cuando implementa un paquete de código firmado en su función:
-
Integridad: valida que el paquete de código no se ha modificado desde que se firmó. Lambda compara el hash del paquete con el hash de la firma.
-
Caducidad: valida que la firma del paquete de código no ha caducado.
-
No coincidencia: valida que el paquete de código está firmado con uno de los perfiles de firma permitidos para la función de Lambda. También se produce una falta de coincidencia si una firma no está presente.
-
Revocación: valida que la firma del paquete de código no se ha revocado.
La directiva de validación de firmas definida en la configuración de firma de código determina cuál de las siguientes acciones de Lambda se lleva a cabo si falla alguna de las comprobaciones de validación:
-
Advertencia: Lambda permite la implementación del paquete de código, pero emite una advertencia. Lambda emite una nueva métrica de Amazon CloudWatch y también almacena la advertencia en el registro de CloudTrail.
-
Forzar: Lambda emite una advertencia (lo mismo que para la acción Advertencia) y bloquea la implementación del paquete de código.
Puede configurar la directiva para las comprobaciones de validación de caducidad, discordancia y revocación. Tenga en cuenta que no puede configurar una directiva para la comprobación de integridad. Si falla la comprobación de integridad, Lambda bloquea la implementación.
Configuración de la firma de código con la API de Lambda
Para administrar configuraciones de firma de código con AWS CLI o AWS SDK, utilice las siguientes operaciones de API:
Para administrar la configuración de firma de código de una función, utilice las siguientes operaciones de API: