View a markdown version of this page

Modos de validación adicionales - Amazon CloudFront

Modos de validación adicionales

El modo obligatorio es el predeterminado para la TLS mutua de CloudFront: CloudFront valida todos los certificados de cliente y deniega las conexiones que producen error. Sin embargo, para admitir casos de uso adicionales, como aplicaciones que sirven a una combinación de clientes autenticados con mTLS y no autenticados, o entornos en los que el servidor de origen realiza su propia validación de mTLS, CloudFront admite dos modos adicionales.

El modo opcional está diseñado para aplicaciones con poblaciones de clientes mixtas. Por ejemplo, un portal que proporciona contenido público a navegadores no autenticados y que, al mismo tiempo, restringe los puntos de conexión de la API a los clientes que presenten certificados válidos. O un escenario de migración en el que se van incorporando clientes a mTLS de forma gradual y es necesario permitir tanto las conexiones autenticadas como las no autenticadas durante la transición.

El modo de acceso directo está diseñado para clientes cuyos servidores de origen ya realizan la validación de mTLS. Por ejemplo, los servicios que migran desde proxies inversos en las instalaciones, otras CDN o equilibradores de carga de aplicaciones que ya gestionan la verificación de los certificados. El modo acceso directo permite a estos clientes colocar CloudFront delante de sus aplicaciones sin tener que volver a implementar la lógica de validación en la periferia.

Modo opcional

Modo opcional de validación de certificados de cliente

CloudFront ofrece un modo de validación de certificados de cliente opcional alternativo que valida los certificados de cliente que se presentan, pero permite el acceso a los clientes que no presentan certificados.

Comportamiento del modo opcional

  • Otorga la conexión a los clientes con certificados válidos (se deniegan los certificados no válidos).

  • Permite la conexión a clientes sin certificados.

  • Permite escenarios de autenticación de clientes mixtos a través de una única distribución.

El modo opcional es ideal para la migración gradual a la autenticación mTLS, para dar soporte a clientes con certificados y clientes sin certificados, o para mantener la compatibilidad con versiones anteriores de clientes antiguos.

nota

En el modo opcional, las funciones de conexión se siguen invocando incluso cuando los clientes no presentan certificados. Esto permite implementar una lógica personalizada, como registrar las direcciones IP de los clientes o aplicar diferentes políticas en función de si se presentan los certificados.

Configuración del modo opcional (consola)

  1. En la configuración de distribución, vaya a la pestaña General y elija Editar.

  2. Desplácese hasta la sección Autenticación mutua (mTLS) del espectador en el contenedor Conectividad.

  3. Para Modo de validación de certificado de cliente, seleccione Opcional.

  4. Guarde los cambios.

Configuración del modo opcional (CLI de AWS)

En el siguiente ejemplo, se muestra cómo configurar el modo opcional:

"ViewerMtlsConfig": { "Mode": "optional", ...other settings }

Personalización de los encabezados de los certificados

Utilice las funciones auxiliares de mTLS en CloudFront Functions de solicitud del espectador para cambiar el nombre, reformatear o combinar los encabezados de los certificados antes de que alcancen el origen. Esto resulta útil cuando se migra desde otros servicios que utilizan nombres de encabezado o formatos de codificación de certificados diferentes.

Modo de acceso directo

El modo de acceso directo permite a los clientes con implementaciones de mTLS existentes en sus orígenes utilizar CloudFront. CloudFront finaliza la conexión de TLS y reenvía el certificado de cliente a su origen como encabezados HTTP. Su origen realiza todas las validaciones de los certificados, incluidas la verificación en cadena, la comprobación de la revocación y la aplicación de políticas personalizadas.

Cómo funciona el modo de acceso directo

  1. El cliente se conecta a CloudFront y presenta un certificado de cliente durante el establecimiento de comunicación de TLS.

  2. CloudFront completa el establecimiento de comunicación de TLS sin validar el certificado en un almacén de confianza.

  3. CloudFront agrega el certificado de cliente y la cadena de certificados como encabezados HTTP en la solicitud.

  4. La solicitud se reenvía al origen. No hay contenido en caché.

  5. El origen valida el certificado y procesa la solicitud.

Los clientes también pueden conectarse sin presentar un certificado. La función de origen o conexión gestiona los escenarios de certificados vacíos.

nota

En el modo de acceso directo, las funciones de conexión se siguen invocando incluso cuando los clientes no presentan certificados. Esto permite implementar una lógica personalizada, como registrar las direcciones IP de los clientes o aplicar diferentes políticas en función de si se presentan los certificados.

Requisitos de configuración

  • Almacén sin confianza: la distribución no debe tener ninguna asociación de almacenes de confianza.

  • Almacenamiento en caché desactivado: todos los comportamientos de caché deben usar la política de caché CachingDisabled administrada.

  • Origin Shield prohibido: Origin Shield no se puede habilitar.

  • Lambda@Edge prohibido: no se permiten las asociaciones de funciones de Lambda@Edge.

  • Se requiere una política de solicitudes de origen: debe permitir incluir los encabezados Client-Cert y Client-Cert-Chain en la política de solicitudes de origen para que el origen los reciba.

  • Profundidad de la cadena de certificados: CloudFront permite una profundidad máxima de 4 para que la cadena de certificados del cliente se reenvíe a los orígenes.

Habilitación del modo de acceso directo

Consola

  1. Actualice todos los comportamientos de la memoria caché para usar la política de memoria caché CachingDisabled administrada.

  2. Abra la consola de CloudFront y elija la distribución.

  3. Elija la pestaña General y, luego, elija Editar en Configuración.

  4. En Ver autenticación mutua (mTLS), seleccione Acceso directo.

  5. Seleccione Save changes (Guardar cambios).

AWS CLI

Asegúrese de que todos los comportamientos de la caché hagan referencia a la política CachingDisabled administrada y, a continuación, actualice la configuración de distribución:

{ "ViewerMtlsConfig": { "Mode": "passthrough" } }

Los encabezados se reenvían al origen

CloudFront agrega los siguientes encabezados a la solicitud enviada al origen:

  • Client-Cert: el certificado de autoridad final (hoja) presentado por el cliente, codificado en base64.

  • Client-Cert-Chain: la cadena de certificados (excluida la hoja), como una lista de campos estructurada. Cada certificado está codificado en base64 Client-Cert-Chain es un encabezado de tipo de lista. Puede aparecer varias veces en una solicitud. La concatenación de todos los valores preserva el orden de la cadena original. Client-Cert-Chain se omite cuando el cliente presenta solo un certificado.

CloudFront elimina todos los encabezados Client-Cert o Client-Cert-Chain entrantes de la solicitud del cliente antes de agregar los datos reales del certificado. Esto evita la suplantación de encabezados.

Personalización de los encabezados de los certificados

Utilice las funciones auxiliares de mTLS en CloudFront Functions de solicitud del espectador para cambiar el nombre, reformatear o combinar los encabezados de los certificados antes de que alcancen el origen. Esto resulta útil cuando se migra desde otros servicios que utilizan nombres de encabezado o formatos de codificación de certificados diferentes.