Autenticación mutua con TLS Application Load Balancer - Elastic Load Balancing

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Autenticación mutua con TLS Application Load Balancer

La TLS autenticación mutua es una variante de la seguridad de la capa de transporte (TLS). TLSLa tradicional establece comunicaciones seguras entre un servidor y un cliente, donde el servidor debe proporcionar su identidad a sus clientes. En el caso de MutualTLS, un balanceador de cargas negocia la autenticación mutua entre el cliente y el servidor mientras negocia. TLS Al utilizar el modo mutuo TLS con Application Load Balancer, se simplifica la administración de la autenticación y se reduce la carga de las aplicaciones.

Al utilizar el balanceador de cargas de forma simultánea TLS con Application Load Balancer, el balanceador de cargas puede administrar la autenticación de los clientes para garantizar que solo los clientes de confianza se comuniquen con sus aplicaciones de backend. Al utilizar esta función, Application Load Balancer autentica a los clientes con certificados de una entidad emisora de certificados (CA) externa o mediante AWS Private Certificate Authority (), de forma opcional, con PCA comprobaciones de revocación. Application Load Balancer transmite la información del certificado del cliente al backend, que las aplicaciones pueden utilizar para la autorización. Al usar mutual TLS en Application Load Balancer, puede obtener una autenticación integrada, escalable y administrada para entidades basadas en certificados, que utiliza bibliotecas establecidas.

Mutual TLS for Application Load Balancers ofrece las dos opciones siguientes para validar los certificados de cliente X.509v3:

Nota: No se admiten los certificados de cliente X.509v1.

  • Transferencia mutuaTLS: cuando se utiliza el modo de transferencia mutuaTLS, Application Load Balancer envía toda la cadena de certificados del cliente al destino mediante encabezados. HTTP Luego, al usar la cadena de certificados del cliente, puedes implementar la correspondiente lógica de autenticación y autorización de destino del balanceador de cargas en tu aplicación.

  • TLSVerificación mutua: cuando se usa el modo de TLS verificación mutua, Application Load Balancer realiza la autenticación del certificado de cliente X.509 para los clientes cuando un balanceador de carga negocia las conexiones. TLS

Para empezar a utilizar el modo mutuo TLS en Application Load Balancer mediante el uso de transferencia directa, solo tiene que configurar el listener para que acepte los certificados de los clientes. Para utilizar la verificación mutuaTLS, debe hacer lo siguiente:

  • Cree un nuevo recurso de almacén de confianza.

  • Cargue su paquete de entidades de certificación (CA) y, si lo desea, las listas de revocación.

  • Adjunte el almacén de confianza al agente de escucha que está configurado para verificar los certificados de los clientes.

Para conocer step-by-step los procedimientos para configurar el modo de TLS verificación mutua con su Application Load Balancer, consulte. Configuración mutua TLS en un Application Load Balancer

Antes de empezar a configurar Mutual TLS en su Application Load Balancer

Antes de empezar a configurar Mutual TLS en su Application Load Balancer, tenga en cuenta lo siguiente:

Cuotas

Los balanceadores de carga de aplicaciones incluyen ciertos límites relacionados con la cantidad de almacenes de confianza, certificados de CA y listas de revocación de certificados que se utilizan en su cuenta. AWS

Para obtener más información, consulte Cuotas para sus balanceadores de carga de aplicaciones.

Requisitos de los certificados

Los balanceadores de carga de aplicaciones admiten lo siguiente para los certificados que se utilizan con la TLS autenticación mutua:

  • Certificado compatible: X.509v3

  • Claves públicas compatibles: RSA 2K — 8K o ECDSA secp256r1, secp384r1, secp521r1

  • Algoritmos de firma compatibles: 384, 512 con/SHA256, 384, 512 con EC/ ,384,512 hash con - con RSA SHA256 SHA256 RSASSA PSS MGF1

Paquetes de certificados de CA

Lo siguiente se aplica a los paquetes de entidades de certificación (CA):

  • Los balanceadores de carga de aplicaciones cargan cada paquete de certificados de la autoridad de certificación (CA) en un lote. Los balanceadores de carga de aplicaciones no admiten la carga de certificados individuales. Si necesita añadir nuevos certificados, debe cargar el archivo del paquete de certificados.

  • Para reemplazar un paquete de certificados de CA, utilice el ModifyTrustStoreAPI.

Pedido de certificado para la transferencia

Cuando se utiliza la transferencia mutuaTLS, Application Load Balancer inserta encabezados para presentar la cadena de certificados del cliente a los destinos del backend. El orden de presentación comienza con los certificados de hoja y termina con el certificado raíz.

Reanudación de la sesión

No se admite la reanudación de la sesión cuando se utilizan los modos de TLS transferencia mutua o verificación con un Application Load Balancer.

HTTPencabezados

Los balanceadores de carga de aplicaciones utilizan X-Amzn-Mtls encabezados para enviar la información del certificado cuando negocian las conexiones de los clientes mediante el uso mutuo. TLS Para obtener más información y ejemplos de encabezados, consulte. HTTPencabezados y mutuos TLS

Archivos de certificados de CA

Los archivos de certificados de CA deben cumplir los siguientes requisitos:

  • El archivo de certificado debe usar el formato PEM (Privacy Enhanced Mail).

  • El contenido del certificado debe estar dentro de los -----END CERTIFICATE----- límites -----BEGIN CERTIFICATE----- y.

  • Los comentarios deben ir precedidos de un # carácter y no deben contener ningún - carácter.

  • No puede haber líneas en blanco.

Ejemplo de certificado que no se acepta (no válido):

# comments Certificate: Data: Version: 3 (0x2) Serial Number: 01 Signature Algorithm: ecdsa-with-SHA384 Issuer: C=US, O=EXAMPLE, OU=EXAMPLE, CN=EXAMPLE Validity Not Before: Jan 11 23:57:57 2024 GMT Not After : Jan 10 00:57:57 2029 GMT Subject: C=US, O=EXAMPLE, OU=EXAMPLE, CN=EXAMPLE Subject Public Key Info: Public Key Algorithm: id-ecPublicKey Public-Key: (384 bit) pub: 00:01:02:03:04:05:06:07:08 ASN1 OID: secp384r1 NIST CURVE: P-384 X509v3 extensions: X509v3 Key Usage: critical Digital Signature, Key Encipherment, Certificate Sign, CRL Sign X509v3 Basic Constraints: critical CA:TRUE X509v3 Subject Key Identifier: 00:01:02:03:04:05:06:07:08 X509v3 Subject Alternative Name: URI:EXAMPLE.COM Signature Algorithm: ecdsa-with-SHA384 00:01:02:03:04:05:06:07:08 -----BEGIN CERTIFICATE----- Base64–encoded certificate -----END CERTIFICATE-----

Ejemplos de certificados que se aceptan (válidos):

  1. Certificado único (PEMcodificado):

    # comments -----BEGIN CERTIFICATE----- Base64–encoded certificate -----END CERTIFICATE-----
  2. Varios certificados (PEMcodificados):

    # comments -----BEGIN CERTIFICATE----- Base64–encoded certificate -----END CERTIFICATE----- # comments -----BEGIN CERTIFICATE----- Base64–encoded certificate -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- Base64–encoded certificate -----END CERTIFICATE-----

HTTPencabezados y mutuos TLS

En esta sección, se describen HTTP los encabezados que utilizan los balanceadores de carga de aplicaciones para enviar la información de los certificados cuando negocian conexiones con clientes que utilizan Mutual. TLS X-Amzn-MtlsLos encabezados específicos que utiliza Application Load Balancer dependen del modo TLS mutuo que haya especificado: modo de acceso directo o modo de verificación.

Para obtener información sobre otros HTTP encabezados compatibles con los balanceadores de carga de aplicaciones, consulte. HTTPencabezados y balanceadores de carga de aplicaciones

HTTPencabezado para el modo de acceso directo

Para el modo TLS de transferencia mutua, los balanceadores de carga de aplicaciones utilizan el siguiente encabezado.

Este encabezado contiene el PEM formato URL codificado de toda la cadena de certificados de cliente presentada en la conexión, con caracteres seguros. +=/

Ejemplo de contenido del encabezado:

X-Amzn-Mtls-Clientcert: -----BEGIN%20CERTIFICATE-----%0AMIID<...reduced...>do0g%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIID1<...reduced...>3eZlyKA%3D%3D%0A-----END%20CERTIFICATE-----%0A

HTTPencabezados para el modo de verificación

Para el modo TLS de verificación mutua, los balanceadores de carga de aplicaciones utilizan los siguientes encabezados.

Este encabezado contiene una representación hexadecimal del número de serie del certificado de hoja.

Ejemplo de contenido del encabezado:

X-Amzn-Mtls-Clientcert-Serial-Number: 03A5B1

Este encabezado contiene una RFC2253 cadena que representa el nombre distintivo (DN) del emisor.

Ejemplo de contenido del encabezado:

X-Amzn-Mtls-Clientcert-Issuer: CN=rootcamtls.com,OU=rootCA,O=mTLS,L=Seattle,ST=Washington,C=US

Este encabezado contiene una RFC2253 cadena que representa el nombre distintivo (DN) del sujeto.

Ejemplo de contenido del encabezado:

X-Amzn-Mtls-Clientcert-Subject: CN=client_.com,OU=client-3,O=mTLS,ST=Washington,C=US

Este encabezado contiene un formato 01 para la fecha y. ISO86 notBefore notAfter

Ejemplo de contenido del encabezado:

X-Amzn-Mtls-Clientcert-Validity: NotBefore=2023-09-21T01:50:17Z;NotAfter=2024-09-20T01:50:17Z

Este encabezado contiene un formato URL codificado del certificado hoja, con PEM caracteres seguros. +=/

Ejemplo de contenido del encabezado:

X-Amzn-Mtls-Clientcert-Leaf: -----BEGIN%20CERTIFICATE-----%0AMIIG<...reduced...>NmrUlw%0A-----END%20CERTIFICATE-----%0A

Registros de conexión para balanceadores de carga de aplicaciones

Elastic Load Balancing proporciona registros de conexión que capturan los atributos de las solicitudes enviadas a los balanceadores de carga de aplicaciones. Los registros de conexión contienen información como la dirección IP y el puerto del cliente, la información del certificado del cliente, los resultados de la conexión y los TLS cifrados que se utilizan. Estos registros de conexión se pueden usar luego para revisar los patrones de solicitudes y otras tendencias.

Para obtener más información sobre los registros de conexión, consulte Registros de conexión para su Application Load Balancer