View a markdown version of this page

Visão geral e fluxo de trabalho - Amazon CloudFront

Visão geral e fluxo de trabalho

As funções de conexão do CloudFront são um tipo especializado de CloudFront Functions executadas durante o handshake do TLS quando um cliente tenta estabelecer uma conexão mTLS. A função de conexão pode acessar informações sobre certificados de cliente, os parâmetros de configuração da mTLS, os resultados da verificação de revogação de certificados e o endereço IP do cliente.

As funções de conexão são invocadas depois que o CloudFront realiza a validação padrão do certificado (cadeia de confiança, expiração e verificação de assinatura), mas podem ser executadas mesmo se as verificações de revogação de certificados falharem. Com isso, é possível implementar uma lógica personalizada para lidar com certificados revogados ou adicionar critérios de validação adicionais.

Quando você criar e publicar uma função de conexão, adicione uma associação para o tipo de evento de solicitação de conexão com uma distribuição habilitada para mTLS. Isso faz com que a função seja executada sempre que um cliente tenta estabelecer uma conexão mTLS com o CloudFront.

As funções de conexão do CloudFront seguem um ciclo de vida em duas etapas que você pode usar para desenvolver e testar funções antes de implantá-las em produção. Esse fluxo de trabalho garante que as funções de conexão funcionem corretamente antes de afetarem o tráfego ativo.

Estágios da função

As funções de conexão podem estar em um de dois estágios:

  • DESENVOLVIMENTO: as funções neste estágio podem ser modificadas, testadas e atualizadas. Use esse estágio para escrever e depurar o código da função.

  • ATIVO: as funções neste estágio são somente leitura e lidam com o tráfego de produção. Não é possível modificar as funções diretamente no estágio ATIVO.

Quando você cria uma função de conexão, ela começa no estágio DESENVOLVIMENTO. Depois de testar e validar, você deve publicá-la para movê-la para o estágio ATIVO.

Fluxo de trabalho de desenvolvimento

Siga este fluxo de trabalho para desenvolver e implantar funções de conexão:

  1. Criar: crie uma função de conexão no estágio DESENVOLVIMENTO com seu código e configuração iniciais.

  2. Testar: antes da implantação, use a funcionalidade de teste para validar a função com exemplos de eventos de conexão.

  3. Atualizar: modifique o código e a configuração da função conforme necessário com base nos resultados do teste.

  4. Publicar: quando a função estiver pronta para produção, publique-a para movê-la do estágio DESENVOLVIMENTO para o ATIVO.

  5. Associar: associe a função publicada à sua distribuição habilitada para mTLS para lidar com conexões em tempo real.

Para fazer alterações em uma função ATIVA, é necessário atualizar a versão de DESENVOLVIMENTO e publicá-la novamente. Isso cria uma versão no estágio ATIVO.

Diferenças em relação a outros tipos de função

As funções de conexão diferem das funções de solicitação de visualizador e resposta ao visualizador de várias maneiras importantes:

  • As funções de conexão são executadas após o handshake do mTLS, antes que qualquer processamento HTTP ocorra.

  • As funções de conexão têm acesso às informações do certificado TLS, e não aos dados de solicitação/resposta HTTP.

  • As funções de conexão só podem permitir ou negar conexões, não modificar dados HTTP.

  • As funções de conexão são invocadas somente para novas conexões TLS, não para reutilização de conexão.

  • A retomada de sessão TLS não é compatível com mTLS para garantir que a validação do certificado ocorra em todas as conexões.

  • As funções de conexão são executadas complementarmente às funções padrão de solicitação de visualizador e resposta ao visualizador.

  • As funções de conexão são associadas em nível de distribuição, em vez de em nível de comportamento de cache.

  • É possível usar funções de conexão somente com o Runtime 2.0 do JavaScript.