Gerenciamento de armazenamentos confiáveis e certificados - Amazon CloudFront

Gerenciamento de armazenamentos confiáveis e certificados

Criar e configurar um armazenamento confiável é uma condição obrigatória para implementar a autenticação TLS mútua com o CloudFront. Os armazenamento confiáveis contêm os certificados da autoridade de certificação (CA) que o CloudFront usa para validar certificados de cliente durante o processo de autenticação.

O que é armazenamento confiável?

Um armazenamento confiável é um repositório de certificados CA que o CloudFront usa para validar certificados de cliente durante a autenticação TLS mútua. Os armazenamentos confiáveis contêm os certificados CA raiz e intermediários que formam a cadeia de confiança para autenticar certificados de cliente.

Quando você implementa a TLS mútua com o CloudFront, o armazenamento confiável define em quais autoridades de certificação você confia para emitir certificados de cliente válidos. O CloudFront valida cada certificado de cliente em relação ao seu armazenamento confiável durante o handshake do TLS. Somente clientes que apresentarem certificados vinculados a uma das CAs em seu armazenamento confiável serão autenticados com êxito.

No CloudFront, os armazenamentos confiáveis são recursos em nível de conta que podem ser associados a várias distribuições. Isso permite manter políticas consistentes de validação de certificados em toda a implantação do CloudFront e, ao mesmo tempo, simplificar o gerenciamento de certificados CA.

Autoridades de certificação aceitas

O CloudFront aceita certificados emitidos pela Autoridade de Certificação Privada da AWS e por autoridades de certificação privadas de terceiros. Essa flexibilidade permite que você use sua infraestrutura de certificados atual ou utilize os serviços de certificados gerenciados da AWS com base em seus requisitos organizacionais.

  • Autoridade de Certificação Privada da AWS: é possível usar certificados emitidos pela CA Privada da AWS, que fornece um serviço gerenciado de autoridade de certificação privada. Essa integração simplifica o gerenciamento do ciclo de vida do certificado e permite uma integração perfeita com outros serviços da AWS.

  • Autoridades de certificação privadas de terceiros: também é possível usar certificados de sua infraestrutura de autoridade de certificação privada atual, inclusive CAs empresariais ou outros provedores de certificados externos. Isso permite que você mantenha seus processos atuais de gerenciamento de certificados e, ao mesmo tempo, adicione os recursos de mTLS do CloudFront.

Requisitos e especificações do certificado

Os armazenamentos confiáveis impõem requisitos específicos aos certificados CA que eles contêm:

Requisitos de formato do certificado CA

  • Formato: PEM (Privacy Enhanced Mail).

  • Limites de conteúdo: os certificados devem estar dentro dos limites -----BEGIN CERTIFICATE----- e -----END CERTIFICATE-----.

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

  • Quebras de linha: não são permitidas linhas em branco entre certificados.

Especificações de certificado permitidas

  • Tipo de certificado: X.509v3.

  • Tipos de chave pública:

    • RSA 2048, RSA 4096

    • ECDSA: secp256r1, secp384r1

  • Algoritmos de assinatura:

    • SHA256, SHA384, SHA512 com RSA

    • SHA256, SHA384, SHA512 com EC

    • SHA256, SHA384, SHA512 com RSASSA-PSS com MGF1

Exemplo de formato de pacote de certificados

Vários certificados (codificados por PEM):

# Root CA Certificate -----BEGIN CERTIFICATE----- MIIDXTCCAkWgAwIBAgIJAKoK/OvD/XqiMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX aWRnaXRzIFB0eSBMdGQwHhcNMTcwNzEyMTU0NzQ4WhcNMjcwNzEwMTU0NzQ4WjBF MQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50 ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB CgKCAQEAuuExKvY1xzHFylsHiuowqpmzs7rEcuuylOuEszpFp+BtXh0ZuEtts9LP -----END CERTIFICATE----- # Intermediate CA Certificate -----BEGIN CERTIFICATE----- MIIDXTCCAkWgAwIBAgIJAKoK/OvD/XqjMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX aWRnaXRzIFB0eSBMdGQwHhcNMTcwNzEyMTU0NzQ4WhcNMjcwNzEwMTU0NzQ4WjBF MQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50 ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB CgKCAQEAuuExKvY1xzHFylsHiuowqpmzs7rEcuuylOuEszpFp+BtXh0ZuEtts9LP -----END CERTIFICATE-----

Criar um armazenamento confiável

Antes de criar um armazenamento confiável, é necessário fazer upload do pacote de certificados CA no formato PEM em um bucket do Amazon S3. O pacote de certificados deve conter todos os certificados CA raiz e intermediários confiáveis necessários para validar certificados de cliente.

O pacote de certificados CA é lido somente uma vez no S3 quando se cria um armazenamento confiável. Se futuras alterações forem feitas no pacote de certificados CA, será necessário atualizar o armazenamento confiável manualmente. Nenhuma sincronização é mantida entre o armazenamento confiável e o pacote de certificados CA do S3.

Pré-requisitos

  • Um pacote de certificados da autoridade de certificação (CA) carregado em um bucket do Amazon S3.

  • As permissões necessárias para criar recursos do CloudFront.

Como criar um armazenamento confiável (console)

  1. Faça login no AWS Management Console e abra o console do CloudFront em https://console.aws.amazon.com/cloudfront/v4/home.

  2. No painel de navegação, escolha Armazenamentos confiáveis.

  3. Escolha Criar armazenamento confiável.

  4. Em Nome do armazenamento confiável, insira um nome para o armazenamento confiável.

  5. Em Pacote da autoridade de certificação (CA), insira o caminho do Amazon S3 para o pacote de certificados CA no formato PEM.

  6. Escolha Criar armazenamento confiável.

Como criar um armazenamento confiável (AWS CLI)

aws cloudfront create-trust-store \ --name MyTrustStore \ --certificate-authority-bundle-s3-location Bucket=my-bucket,Key=ca-bundle.pem \ --tags Items=[{Key=Environment,Value=Production}]

Associar o armazenamento confiável a distribuições

Após a criação de um armazenamento confiável, é necessário associá-lo a uma distribuição do CloudFront para habilitar a autenticação TLS mútua.

Pré-requisitos

  • Uma distribuição existente do CloudFront com a política de protocolo de visualizador somente HTTPS habilitada e o suporte a HTTP3 desabilitado.

Como associar um armazenamento confiável usando (console)

Há duas formas de associar um armazenamento confiável no console do CloudFront: por meio da página de detalhes do armazenamento confiável ou por meio da página de configurações de distribuição.

Associar um armazenamento confiável por meio da página de detalhes do armazenamento confiável:

  1. Faça login no AWS Management Console e abra o console do CloudFront em https://console.aws.amazon.com/cloudfront/v4/home.

  2. No painel de navegação, escolha Armazenamentos confiáveis.

  3. Escolha o nome do armazenamento confiável que você deseja associar.

  4. Escolha Associar a distribuições.

  5. Configure as opções disponíveis de mTLS de visualizador:

    • Modo de validação de certificados de cliente: escolha entre o modo obrigatório e o opcional. No modo obrigatório, todos os clientes devem apresentar certificados. No modo opcional, os clientes que apresentam certificados são validados, enquanto os clientes que não apresentam certificados têm acesso permitido.

    • Anunciar nomes de CA do armazenamento confiável: escolha se deseja anunciar os nomes de CA em seu armazenamento confiável para clientes durante o handshake do TLS.

    • Ignorar a data de expiração do certificado: escolha se deseja permitir conexões com certificados expirados (outros critérios de validação ainda se aplicam).

    • Função de conexão: uma função de conexão opcional pode ser associada para permitir/negar conexões com base em outros critérios personalizados.

  6. Selecione uma ou mais distribuições para associar ao armazenamento confiável. Apenas distribuições com HTTP3 desabilitado e com comportamentos de cache somente HTTPS permitem mTLS de visualizador.

  7. Selecione Associar.

Associar um armazenamento confiável por meio da página de configurações de distribuição:

  1. Faça login no AWS Management Console e abra o console do CloudFront em https://console.aws.amazon.com/cloudfront/v4/home.

  2. Selecione a distribuição que você deseja associar.

  3. Na guia Geral, no contêiner Configurações, escolha Editar no canto superior direito.

  4. Role até a parte inferior da página, no contêiner Conectividade, ative a opção mTLS de visualizador.

  5. Configure as opções disponíveis de mTLS de visualizador:

    • Modo de validação de certificados de cliente: escolha entre o modo obrigatório e o opcional. No modo obrigatório, todos os clientes devem apresentar certificados. No modo opcional, os clientes que apresentam certificados são validados, enquanto os clientes que não apresentam certificados têm acesso permitido.

    • Anunciar nomes de CA do armazenamento confiável: escolha se deseja anunciar os nomes de CA em seu armazenamento confiável para clientes durante o handshake do TLS.

    • Ignorar a data de expiração do certificado: escolha se deseja permitir conexões com certificados expirados (outros critérios de validação ainda se aplicam).

    • Função de conexão: uma função de conexão opcional pode ser associada para permitir/negar conexões com base em outros critérios personalizados.

  6. Escolha Salvar alterações no canto inferior direito.

Como associar um armazenamento confiável (AWS CLI)

Os armazenamentos confiáveis podem ser associados a distribuições por meio da propriedade DistributionConfig.ViewerMtlsConfig. Isso significa que primeiro precisamos buscar a configuração de distribuição e, em seguida, fornecer a ViewerMtlsConfig em uma solicitação UpdateDistribution subsequente.

// First fetch the distribution aws cloudfront get-distribution {DISTRIBUTION_ID} // Update the distribution config, for example: Distribution config, file://distConf.json: { ...other fields, ViewerMtlsConfig: { Mode: 'required', TrustStoreConfig: { AdvertiseTrustStoreCaNames: false, IgnoreCertificateExpiry: true, TrustStoreId: {TRUST_STORE_ID} } } } aws cloudfront update-distribution \ --id {DISTRIBUTION_ID} \ --if-match {ETAG} \ --distribution-config file://distConf.json

Gerenciar armazenamentos confiáveis

Exibir detalhes do armazenamento confiável

  1. Faça login no AWS Management Console e abra o console do CloudFront em https://console.aws.amazon.com/cloudfront/v4/home.

  2. No painel de navegação, escolha Armazenamentos confiáveis.

  3. Escolha o nome do armazenamento confiável para visualizar a página de detalhes.

A página de detalhes mostra:

  • nome e ID do armazenamento confiável;

  • número de certificados CA;

  • data de criação e data da última modificação;

  • distribuições associadas.

  • Tags

Modificar um armazenamento confiável

Para substituir um pacote de certificados CA:

  1. Faça login no AWS Management Console e abra o console do CloudFront em https://console.aws.amazon.com/cloudfront/v4/home.

  2. No painel de navegação, escolha Armazenamentos confiáveis.

  3. Escolha o nome do armazenamento confiável.

  4. Escolha Ações e Editar.

  5. Em Pacote de autoridade de certificação (CA), insira o local do Amazon S3 do arquivo PEM do pacote de CA atualizado.

  6. Escolha Atualizar armazenamento confiável.

Excluir um armazenamento confiável

Pré-requisitos: primeiro, você deve desassociar o armazenamento confiável de todas as distribuições do CloudFront.

  1. Faça login no AWS Management Console e abra o console do CloudFront em https://console.aws.amazon.com/cloudfront/v4/home.

  2. No painel de navegação, escolha Armazenamentos confiáveis.

  3. Escolha o nome do armazenamento confiável.

  4. Escolha Excluir armazenamento confiável.

  5. Escolha Delete para confirmar.

Próximas etapas

Depois de criar e associar o armazenamento confiável a uma distribuição do CloudFront, você pode continuar habilitando a autenticação TLS mútua em sua distribuição e definir configurações adicionais, como encaminhar cabeçalhos de certificados às suas origens. Para ver instruções detalhadas sobre como habilitar a mTLS em suas distribuições, consulte Habilitar a TLS mútua para distribuições do CloudFront.