Se o Cloudfront Origin pode ser um conjunto de registros do Route 53 criado para o Application Load Balancer DNS?

Se o Cloudfront Origin pode ser um conjunto de registros do Route 53 criado para o Application Load Balancer DNS?

Eu criei um conjunto de registros A Route53 para DNS do balanceador de carga de aplicativos AWS. Minha pergunta é se a origem do AWS Cloudfront pode conter esse URL do conjunto de registros ou não?

Por exemplo: Nome DNS do ALB: xxxx.us-east-1.elb.amazonaws.com. Entrada do conjunto de registros no Route53 para DNS do balanceador de carga do aplicativo: www.abc.com

Agora posso colocar www.abc.com como origem no cloudfront?

Responder1

Se você definir o protocolo de origem como Somente HTTPS, o tráfego entre o CloudFront e o ELB será protegido por TLS, e você poderá configurar o nome de domínio de origem real de qualquer maneira. O Cloudfront-Forwarded-Protocabeçalho indicará o protocolo utilizado entre o CloudFront e o visualizador (já que nesta configuração o balanceador de carga sempre será definido X-Forwarded-Proto: https).

O CloudFront insiste que a negociação TLS entre ele e o Origin seja confiável. Um fator comumente esquecido é que os certificados TLS (SSL) fazem duas coisas: fornecem criptografia da conexão (óbvio) e fornecem autenticação do servidor - atestação de que o servidor está autorizado a ser um servidor para o nome de host solicitado e é não é um impostor (menos óbvio). É por isso que você recebe avisos do navegador se o assunto do certificado do servidor e/ou o nome alternativo do assunto não corresponder ao nome do host na barra de endereço do navegador.

O CloudFront permite uma exceção limitada a esse requisito, permitindo que a validação do certificado seja bem-sucedida, desde que uma das duas condições seja atendida:

  • O ELB deverá apresentar um certificado correspondente ao Nome de Domínio de Origem,ou
  • O ELB deve apresentar um certificado correspondente ao Hostcabeçalho que o CloudFront está encaminhando do navegador para o ELB.

Caso contrário, o CloudFront retornará 502 Bad Gateway.

A primeira condição não será possível se você usar o nome do host ELB como o nome de domínio de origem, e é por isso que o console do CloudFront solicita que você coloque o Hostcabeçalho na lista de permissões para encaminhamento se perceber que seu destino é um ELB.

Mas contanto que seu ambiente fique assim ...

  • www.example.comaponta para o CloudFront e está configurado no nome de domínio alternativo da distribuição e
  • O Hostcabeçalho está configurado para lista de permissões e
  • O nome do host ELB é definido como o nome de domínio de origem e
  • O ELB possui um certificado válido parawww.example.com

...então funciona, com uma exceção: o dzczcexample.cloudfront.netdomínio não pode ser usado no navegador para acessar sua origem através do CloudFront. Em algumas configurações, isso é desejável, porque na verdade você não deseja que seu conteúdo seja acessível por meio desse segundo ponto de entrada.

Caso contrário, sua melhor aposta é fazer o que você sugeriu: mapear um nome de host em um domínio que você controla no ELB no DNS e configurar esse nome de host como o nome de domínio de origem no CloudFront.

O CloudFront pode usar qualquer nome de host acessível pela Internet como origem. A origem não precisa estar dentro da AWS. Você poderia, por exemplo aleatório, usar um bucket do Google Cloud Storage como origem no CloudFront. A integração entre o CloudFront e o Origin é frouxa - com isso quero dizer que o CloudFront não tem conhecimento especial do ELB. Ele apenas resolve o nome do host via DNS público e faz conexões.

Observe também que, se quiser garantir que apenas sua distribuição do CloudFront possa se comunicar com sua origem, você desejará configurar um cabeçalho de origem personalizado secreto no CloudFront, e a origem precisará rejeitar solicitações que não tenham esse valor. Embora seja possível usar o grupo de segurança ELB para permitir acesso apenas a partir do espaço de endereço do CloudFront, esse espaço cresce com bastante frequência e você precisa de uma maneira de manter seus grupos de segurança atualizados para permitir novos intervalos de endereços... mas é minha opinião que isso fornece uma falsa sensação de segurança, já que qualquer pessoa pode criar tecnicamente uma distribuição do CloudFront e apontá-la para qualquer lugar, incluindo seu ELB. Usar um cabeçalho personalizado evita isso.

informação relacionada