Exigir HTTPS para comunicação entre o CloudFront e sua origem do Amazon S3 - Amazon CloudFront

Exigir HTTPS para comunicação entre o CloudFront e sua origem do Amazon S3

Quando a origem é um bucket do Amazon S3, as opções para usar HTTPS para comunicação com o CloudFront dependem de como você está usando o bucket. Se o bucket do Amazon S3 estiver configurado como um endpoint de site, não será possível configurar o CloudFront para usar HTTPS para comunicação com a origem, pois o Amazon S3 não é compatível com conexões HTTPS nessa configuração.

Quando a origem é um bucket do Amazon S3 compatível com a comunicação HTTPS, o CloudFront sempre encaminha as solicitações para o S3 usando o protocolo que os visualizadores usaram para enviar as solicitações. A definição padrão da configuração Política de protocolo da origem é Match Viewer (Corresponder visualizador) e não pode ser alterada.

Para exigir HTTPS para comunicação entre o CloudFront e o Amazon S3, você deve alterar o valor de Viewer Protocol Policy (Política de protocolo do visualizador) para Redirect HTTP to HTTPS (Redirecionar HTTP para HTTPS) ou HTTPS Only (Somente HTTPS). O procedimento mais adiante nesta seção explica como usar o console do CloudFront para alterar a Viewer Protocol Policy (Política de protocolo do visualizador). Para informações sobre como usar a API do CloudFront para atualizar o elemento ViewerProtocolPolicy de uma distribuição, consulte UpdateDistribution na Referência da API do Amazon CloudFront.

Quando você usa HTTPS com um bucket do Amazon S3 compatível com a comunicação HTTPS, o Amazon S3 fornece o certificado SSL/TLS, portanto, você não precisa fazer isso.

Como configurar o CloudFront para exigir HTTPS para a origem do Amazon S3

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

  2. No painel superior do console do CloudFront, escolha o ID da distribuição que você deseja atualizar.

  3. Na guia Behaviors, escolha o comportamento de cache que você deseja atualizar e, em seguida, escolha Edit.

  4. Especifique um dos seguintes valores para Viewer Protocol Policy:

    Redirect HTTP to HTTPS

    Os visualizadores podem usar os dois protocolos, mas solicitações HTTP são automaticamente redirecionadas para HTTPS. O CloudFront retorna o código de status HTTP 301 (movido permanentemente) com o novo URL HTTPS. Depois, o visualizador reenvia a solicitação para o CloudFront usando o URL de HTTPS.

    Importante

    O CloudFront não redireciona solicitações DELETE, OPTIONS, PATCH, POST ou PUT de HTTP para HTTPS. Se você configurar o redirecionamento de um comportamento de cache para HTTPS, o CloudFront responderá às solicitações HTTP DELETE, OPTIONS, PATCH, POST ou PUT para esse comportamento de cache com o código de status HTTP 403 (proibido).

    Quando um visualizador faz uma solicitação HTTP que é redirecionada para uma solicitação HTTPS, o CloudFront cobra pelas duas solicitações. Para a solicitação HTTP, a cobrança é somente pela solicitação e cabeçalhos retornados pelo CloudFront para o visualizador. Para a solicitação HTTPS, a cobrança é pela solicitação e pelos cabeçalhos e objeto retornados por sua origem.

    HTTPS Only

    Os visualizadores só podem acessar seu conteúdo se estiverem usando HTTPS. Se um visualizador enviar uma solicitação HTTP, em vez de HTTPS, o CloudFront retornará o código de status HTTP 403 (proibido) e não retornará o objeto.

  5. Escolha Yes, Edit.

  6. Repita as etapas 3 a 5 para cada comportamento de cache adicional para o qual você deseja exigir HTTPS entre os visualizadores e o CloudFront, e entre o CloudFront e o S3.

  7. Antes de usar a configuração atualizada em um ambiente de produção, confirme:

    • Se o padrão de caminho de cada comportamento de cache se aplica apenas às solicitações nas quais os visualizadores devem usar HTTPS.

    • Se os comportamentos de cache estão listados na ordem em que você deseja que o CloudFront os avalie. Para obter mais informações, consulte Padrão de caminho.

    • Se os comportamentos de cache estão roteando as solicitações para as origens corretas.