Información general y flujo de trabajo
Las funciones de conexión de CloudFront son un tipo especializado de CloudFront Functions que se ejecutan durante el establecimiento de comunicación de TLS cuando un cliente intenta establecer una conexión de mTLS. La función de conexión puede acceder a la información de los certificados del cliente, a los parámetros de configuración de mTLS, a los resultados de las comprobaciones de revocación de certificados y a la dirección IP del cliente.
Las funciones de conexión se invocan después de que CloudFront lleve a cabo la validación estándar del certificado (cadena de confianza, caducidad, verificación de firma), pero pueden ejecutarse incluso si las comprobaciones de revocación de certificados producen un error. Esto permite implementar una lógica personalizada para gestionar los certificados revocados o agregar criterios de validación adicionales.
Cuando crea y publica una función de conexión, asegúrese de agregar una asociación para el tipo de evento solicitud de conexión con una distribución con mTLS. Esto hace que la función se ejecute cada vez que un cliente intenta establecer una conexión de mTLS con CloudFront.
Las funciones de conexión de CloudFront siguen un ciclo de vida de dos etapas que permite desarrollar y probar funciones antes de implementarlas en producción. Este flujo de trabajo garantiza que las funciones de conexión funcionen correctamente antes de que afecten al tráfico en directo.
Etapas de la función
Las funciones de conexión existen en una de estas dos etapas:
-
DESARROLLO: las funciones de esta etapa se pueden modificar, probar y actualizar. Utilice esta etapa para escribir y depurar el código de la función.
-
ACTIVA: las funciones de esta etapa son de solo lectura y gestionan el tráfico de producción. No se pueden modificar las funciones directamente en la etapa ACTIVA.
Cuando se crea una nueva función de conexión, esta comienza en la etapa de DESARROLLO. Tras la prueba y la validación, se publica la función para pasarla a la etapa ACTIVA.
Flujo de trabajo de desarrollo
Siga este flujo de trabajo para desarrollar e implementar las funciones de conexión:
-
Crear: cree una nueva función de conexión en la etapa de DESARROLLO con el código y la configuración iniciales.
-
Probar: utilice la funcionalidad de prueba para validar la función con ejemplos de eventos de conexión antes de la implementación.
-
Actualizar: modifique el código y la configuración de la función según sea necesario en función de los resultados de las pruebas.
-
Publicar: cuando esté lista para la producción, publique la función para pasarla de la etapa de DESARROLLO a la etapa ACTIVA.
-
Asociar: asocie la función publicada a la distribución compatible con mTLS para gestionar las conexiones en directo.
Para realizar cambios en una función ACTIVA, debe actualizar la versión de DESARROLLO y volver a publicarla. Así se creará una versión nueva en la etapa ACTIVA.
Diferencias con otros tipos de funciones
Las funciones de conexión se diferencian de las funciones de solicitud y respuesta del espectador en varios aspectos importantes:
-
Las funciones de conexión se ejecutan después del establecimiento de comunicación de mTLS, antes de que se produzca cualquier procesamiento HTTP.
-
Las funciones de conexión tienen acceso a la información del certificado TLS en lugar de a los datos de solicitud/respuesta HTTP.
-
Las funciones de conexión solo pueden permitir o denegar las conexiones, no modificar los datos HTTP.
-
Las funciones de conexión solo se invocan para las nuevas conexiones TLS, no para su reutilización.
-
mTLS no admite la reanudación de la sesión TLS para garantizar que la validación del certificado se realice en todas las conexiones.
-
Las funciones de conexión se ejecutan de forma adicional a las funciones de solicitud del espectador y respuesta del espectador.
-
Las funciones de conexión se asocian por distribución, en lugar de por comportamiento de la caché.
-
Las funciones de conexión solo admiten tiempo de ejecución 2.0 de JavaScript.