Autenticação mútua com TLS no Application Load Balancer - Elastic Load Balancing

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Autenticação mútua com TLS no Application Load Balancer

A autenticação TLS mútua é uma variação da segurança da camada de transporte (TLS). O TLS tradicional estabelece comunicações seguras entre um servidor e um cliente, onde o servidor precisa fornecer sua identidade aos clientes. Com o TLS mútuo, um balanceador de carga negocia a autenticação mútua entre o cliente e o servidor enquanto negocia o TLS. Ao usar o TLS mútuo com o Application Load Balancer, você simplifica o gerenciamento da autenticação e reduz a carga em seus aplicativos.

Ao usar o TLS mútuo com o Application Load Balancer, seu balanceador de carga pode gerenciar a autenticação do cliente para ajudar a garantir que somente clientes confiáveis se comuniquem com seus aplicativos de back-end. Quando você usa esse recurso, o Application Load Balancer autentica clientes com certificados de uma autoridade de certificação (CA) terceirizada ou usando o AWS Private Certificate Authority (PCA), opcionalmente, com verificações de revogação. O Application Load Balancer passa as informações do certificado do cliente para o back-end, que seus aplicativos podem usar para autorização. Ao usar o TLS mútuo no Application Load Balancer, você pode obter autenticação integrada, escalável e gerenciada para entidades baseadas em certificados, que usam bibliotecas estabelecidas.

O TLS mútuo para balanceadores de carga de aplicativos fornece as duas opções a seguir para validar seus certificados de cliente X.509v3:

Nota: Não há suporte para certificados de cliente X.509v1.

  • Passagem mútua de TLS: quando você usa o modo de passagem mútua de TLS, o Application Load Balancer envia toda a cadeia de certificados do cliente para o destino usando cabeçalhos HTTP. Em seguida, usando a cadeia de certificados do cliente, você pode implementar a lógica correspondente de autenticação e autorização em seu aplicativo.

  • Verificação mútua de TLS: quando você usa o modo de verificação mútua de TLS, o Application Load Balancer executa a autenticação de certificado de cliente X.509 para clientes quando um balanceador de carga negocia conexões TLS.

Para começar a usar o TLS mútuo no Application Load Balancer usando o passthrough, você só precisa configurar o ouvinte para aceitar quaisquer certificados dos clientes. Para usar o TLS mútuo com verificação, você deve fazer o seguinte:

  • Crie um novo recurso de armazenamento confiável.

  • Faça upload do seu pacote de autoridade de certificação (CA) e, opcionalmente, das listas de revogação.

  • Anexe o armazenamento confiável ao ouvinte que está configurado para verificar os certificados do cliente.

Para obter step-by-step os procedimentos para configurar o modo de verificação mútua de TLS com seu Application Load Balancer, consulte. Configurando o TLS mútuo em um Application Load Balancer

Antes de começar a configurar o TLS mútuo em seu Application Load Balancer

Antes de começar a configurar o TLS mútuo em seu Application Load Balancer, esteja ciente do seguinte:

Cotas

Os Application Load Balancers incluem certos limites relacionados à quantidade de armazenamentos confiáveis, certificados de CA e listas de revogação de certificados em uso em sua conta. AWS

Para obter mais informações, consulte Cotas para seus balanceadores de carga de aplicativos.

Requisitos para certificados

Os Application Load Balancers oferecem suporte ao seguinte para certificados usados com autenticação TLS mútua:

  • Certificado suportado: X.509v3

  • Chaves públicas suportadas: RSA 2K — 8K ou ECDSA secp256r1, secp384r1, secp521r1

  • Algoritmos de assinatura suportados: SHA256, 384, 512 com RSA/SHA256, 384, 512 com hash EC/SHA256.384.512 com RSASSA-PSS com MGF1

Pacotes de certificados CA

O seguinte se aplica aos pacotes de autoridade de certificação (CA):

  • Os Application Load Balancers carregam cada pacote de certificados de autoridade de certificação (CA) como um lote. Os Application Load Balancers não oferecem suporte ao upload de certificados individuais. Se precisar adicionar novos certificados, você deverá carregar o arquivo do pacote de certificados.

  • Para substituir um pacote de certificados CA, use a ModifyTrustStoreAPI.

Pedido de certificado para passagem

Quando você usa a passagem mútua de TLS, o Application Load Balancer insere cabeçalhos para apresentar a cadeia de certificados do cliente aos destinos de back-end. A ordem de apresentação começa com os certificados da folha e termina com o certificado raiz.

Reinício da sessão

A retomada da sessão não é suportada ao usar os modos mútuos de passagem ou verificação de TLS com um Application Load Balancer.

Cabeçalhos HTTP

Os Application Load Balancers usam X-Amzn-Mtls cabeçalhos para enviar informações do certificado quando negociam conexões de clientes usando TLS mútuo. Para obter mais informações e exemplos de cabeçalhos, consulteCabeçalhos HTTP e TLS mútuo.

Arquivos de certificado CA

Os arquivos de certificado CA devem atender aos seguintes requisitos:

  • O arquivo do certificado deve usar o formato PEM (Privacy Enhanced Mail).

  • O conteúdo do certificado deve estar dentro dos -----END CERTIFICATE----- limites -----BEGIN CERTIFICATE----- e.

  • Os comentários devem ser precedidos por um # caractere e não devem conter nenhum - caractere.

  • Não pode haver nenhuma linha em branco.

Exemplo de certificado que não é aceito (invá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-----

Exemplos de certificados aceitos (válidos):

  1. Certificado único (codificado por PEM):

    # comments -----BEGIN CERTIFICATE----- Base64–encoded certificate -----END CERTIFICATE-----
  2. Vários certificados (codificados por PEM):

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

Cabeçalhos HTTP e TLS mútuo

Esta seção descreve os cabeçalhos HTTP que os Application Load Balancers usam para enviar informações de certificado ao negociar conexões com clientes usando TLS mútuo. X-Amzn-MtlsOs cabeçalhos específicos que o Application Load Balancer usa dependem do modo TLS mútuo que você especificou: modo de passagem ou modo de verificação.

Para obter informações sobre outros cabeçalhos HTTP compatíveis com Application Load Balancers, consulte. Cabeçalhos HTTP e Application Load Balancers

Cabeçalho HTTP para o modo de passagem

Para TLS mútuo no modo de passagem, os Application Load Balancers usam o cabeçalho a seguir.

Esse cabeçalho contém o formato PEM codificado por URL de toda a cadeia de certificados do cliente apresentada na conexão, com +=/ caracteres seguros.

Exemplo de conteúdo de cabeçalho:

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

Cabeçalhos HTTP para o modo de verificação

Para TLS mútuo no modo de verificação, os Application Load Balancers usam os cabeçalhos a seguir.

Esse cabeçalho contém uma representação hexadecimal do número de série do certificado folha.

Exemplo de conteúdo de cabeçalho:

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

Esse cabeçalho contém uma representação em cadeia de caracteres RFC2253 do nome distinto (DN) do emissor.

Exemplo de conteúdo de cabeçalho:

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

Esse cabeçalho contém uma representação de string RFC2253 do nome distinto (DN) do assunto.

Exemplo de conteúdo de cabeçalho:

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

Esse cabeçalho contém um formato ISO8601 da data e. notBefore notAfter

Exemplo de conteúdo de cabeçalho:

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

Esse cabeçalho contém um formato PEM codificado por URL do certificado folha, com +=/ caracteres seguros.

Exemplo de conteúdo de cabeçalho:

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

Configurando o TLS mútuo em um Application Load Balancer

Esta seção inclui os procedimentos para configurar o modo de verificação mútua de TLS para autenticação em Application Load Balancers.

Para usar o modo de passagem mútua de TLS, você só precisa configurar o ouvinte para aceitar quaisquer certificados dos clientes. Quando você usa a passagem mútua de TLS, o Application Load Balancer envia toda a cadeia de certificados do cliente para o destino usando cabeçalhos HTTP, o que permite implementar a lógica correspondente de autenticação e autorização em seu aplicativo. Para obter mais informações, consulte Criar um receptor HTTPS para seu Application Load Balancer.

Quando você usa o TLS mútuo no modo de verificação, o Application Load Balancer executa a autenticação de certificado de cliente X.509 para clientes quando um balanceador de carga negocia conexões TLS.

Para utilizar o modo de verificação mútua de TLS, faça o seguinte:

  • Crie um novo recurso de armazenamento confiável.

  • Faça upload do seu pacote de autoridade de certificação (CA) e, opcionalmente, das listas de revogação.

  • Anexe o armazenamento confiável ao ouvinte que está configurado para verificar os certificados do cliente.

Siga os procedimentos desta seção para configurar o modo de verificação mútua de TLS em seu Application Load Balancer no. AWS Management Console Para configurar o TLS mútuo usando operações de API em vez do console, consulte o Guia de referência da API Application Load Balancer.

Crie uma loja confiável

Há três maneiras de criar um armazenamento confiável: ao criar um Application Load Balancer, ao criar um ouvinte seguro e ao usar o console do Trust Store. Quando você adiciona um armazenamento confiável ao criar um balanceador de carga ou ouvinte, o armazenamento confiável é automaticamente associado ao novo ouvinte. Ao criar um repositório confiável usando o console do Trust Store, você mesmo deve associá-lo a um ouvinte.

Esta seção aborda a criação de um repositório confiável usando o console do Trust Store, mas as etapas usadas ao criar um Application Load Balancer ou ouvinte são as mesmas. Para obter mais informações, consulte Configurar um balanceador de carga e um ouvinte e Adicionar um ouvinte HTTPS.

Pré-requisitos:
  • Para criar um repositório confiável, você deve ter um pacote de certificados da sua Autoridade de Certificação (CA).

Para criar um armazenamento confiável usando o console
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, escolha Trust Stores.

  3. Selecione Criar repositório confiável.

  4. Configuração do Trust Store

    1. Em Nome da loja confiável, insira um nome para sua loja confiável.

    2. Para o pacote de autoridade de certificação, insira o caminho do Amazon S3 para o pacote de certificados CA que você deseja que seu repositório confiável use.

      Opcional: Use a versão do objeto para selecionar uma versão anterior do pacote de certificados ca. Caso contrário, a versão atual será usada.

  5. Para revogações, você pode, opcionalmente, adicionar uma lista de revogação de certificados ao seu armazenamento confiável.

    1. Em Lista de revogação de certificados, insira o caminho do Amazon S3 para a lista de revogação de certificados que você deseja que seu repositório confiável use.

      Opcional: Use a versão do objeto para selecionar uma versão anterior da lista de revogação de certificados. Caso contrário, a versão atual será usada.

  6. Para as tags da Trust Store, você pode, opcionalmente, inserir até 50 tags para aplicar à sua Trust Store.

  7. Selecione Criar repositório confiável.

Associar uma loja fiduciária

Depois de criar um armazenamento confiável, você deve associá-lo a um ouvinte antes que seu Application Load Balancer possa começar a usar o armazenamento confiável. Você pode ter somente um repositório confiável associado a cada um dos seus ouvintes seguros, mas um armazenamento confiável pode ser associado a vários ouvintes.

Esta seção aborda a associação de um repositório confiável a um ouvinte existente. Como alternativa, você pode associar um armazenamento confiável ao criar um Application Load Balancer ou ouvinte. Para obter mais informações, consulte Configurar um balanceador de carga e um ouvinte e Adicionar um ouvinte HTTPS.

Para associar um repositório confiável usando o console
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, selecione Balanceador de carga.

  3. Selecione o balanceador de carga para ver sua página de detalhes.

  4. Na guia Ouvintes e regras, escolha o link na coluna Protocol:Porta para abrir a página de detalhes do ouvinte seguro.

  5. Na guia Segurança, escolha Editar configurações de ouvinte seguro.

  6. (Opcional) Se o TLS mútuo não estiver ativado, selecione Autenticação mútua (mTLS) em Tratamento de certificados do cliente e escolha Verificar com armazenamento confiável.

  7. Em Armazenamento confiável, escolha o repositório confiável que você criou.

  8. Escolha Salvar alterações.

Exibir detalhes da Trust Store

Pacotes de certificados CA

O pacote de certificados CA é um componente obrigatório do armazenamento confiável. É uma coleção de certificados raiz e intermediários confiáveis que foram validados por uma autoridade de certificação. Esses certificados validados garantem que o cliente possa confiar que o certificado apresentado é de propriedade do balanceador de carga.

Você pode visualizar o conteúdo do pacote de certificados CA atual em seu repositório confiável a qualquer momento.

Exibir um pacote de certificados CA
Para visualizar um pacote de certificados CA usando o console
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, escolha Trust Stores.

  3. Selecione o repositório fiduciário para ver a página de detalhes.

  4. Escolha Ações e, em seguida, Obter pacote CA.

  5. Escolha Compartilhar link ou Baixar.

Listas de revogação de certificados

Opcionalmente, você pode criar uma lista de revogação de certificados para um repositório confiável. As listas de revogação são divulgadas pelas autoridades de certificação e contêm dados de certificados que foram revogados. Os Application Load Balancers só oferecem suporte a listas de revogação de certificados no formato PEM.

Quando uma lista de revogação de certificados é adicionada a um repositório confiável, ela recebe uma ID de revogação. As IDs de revogação aumentam a cada lista de revogação adicionada ao armazenamento confiável e não podem ser alteradas. Se uma lista de revogação de certificados for excluída de um repositório confiável, sua ID de revogação também será excluída e não será reutilizada durante toda a vida útil do armazenamento confiável.

nota

Os Application Load Balancers não podem revogar certificados que tenham um número de série negativo em uma lista de revogação de certificados.

Exibir uma lista de revogação de certificados
Para ver uma lista de revogação usando o console
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, escolha Trust Stores.

  3. Selecione o repositório fiduciário para ver a página de detalhes.

  4. Na guia Listas de revogação de certificados, selecione Ações e, em seguida, Obter lista de revogação.

  5. Escolha Compartilhar link ou Baixar.

Modificar um repositório confiável

Um repositório confiável só pode conter um pacote de certificados de CA por vez, mas você pode substituir o pacote de certificados de CA a qualquer momento após a criação do repositório confiável.

Substituir um pacote de certificados CA

Para substituir um pacote de certificados CA usando o console
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, escolha Trust Stores.

  3. Selecione o repositório fiduciário para ver a página de detalhes.

  4. Escolha Ações e, em seguida, Substituir pacote CA.

  5. Na página Substituir pacote de CA, em Pacote de autoridade de certificação, insira a localização do Amazon S3 do pacote de CA desejado.

  6. (Opcional) Use a versão do objeto para selecionar uma versão anterior da lista de revogação de certificados. Caso contrário, a versão atual será usada.

  7. Selecione Substituir pacote CA.

Adicionar uma lista de revogação de certificados

Para adicionar uma lista de revogação usando o console
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, escolha Trust Stores.

  3. Selecione a loja confiável para ver sua página de detalhes.

  4. Na guia Listas de revogação de certificados, selecione Ações e, em seguida, Adicionar lista de revogação.

  5. Na página Adicionar lista de revogação, em Lista de revogação de certificados, insira a localização do Amazon S3 da lista de revogação de certificados desejada.

  6. (Opcional) Use a versão do objeto para selecionar uma versão anterior da lista de revogação de certificados. Caso contrário, a versão atual será usada.

  7. Selecione Adicionar lista de revogação

Excluir uma lista de revogação de certificados

Para excluir uma lista de revogação usando o console
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, escolha Trust Stores.

  3. Selecione o repositório fiduciário para ver a página de detalhes.

  4. Na guia Listas de revogação de certificados, selecione Ações e, em seguida, Excluir lista de revogação.

  5. Confirme a exclusão confirm digitando.

  6. Selecione Excluir.

Excluir um repositório fiduciário

Quando você não precisar mais usar um repositório confiável, poderá excluí-lo.

Nota: Você não pode excluir um repositório confiável atualmente associado a um ouvinte.

Para excluir um repositório confiável usando o console
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, escolha Trust Stores.

  3. Selecione a loja confiável para ver sua página de detalhes.

  4. Escolha Ações e, em seguida, Excluir armazenamento confiável.

  5. Confirme a exclusão confirm digitando.

  6. Selecione Excluir

Registros de conexão para Application Load Balancers

O Elastic Load Balancing fornece registros de conexão que capturam atributos sobre as solicitações enviadas aos seus Application Load Balancers. Os registros de conexão contêm informações como o endereço IP e a porta do cliente, informações do certificado do cliente, resultados da conexão e cifras TLS que estão sendo usadas. Esses registros de conexão podem então ser usados para revisar padrões de solicitação e outras tendências.

Para saber mais sobre registros de conexão, consulte Registros de conexão para seu Application Load Balancer