Usar o CloudFront Functions com a TLS mútua de origem
O CloudFront Functions oferece computação leve e sem servidor na borda para personalizar a entrega de conteúdo. Ao usar a TLS mútua de origem com o CloudFront Functions, é necessário conhecer limitações e comportamentos específicos em relação à seleção e manipulação da origem.
Operações compatíveis do CloudFront Functions
O CloudFront Functions pode interagir com origens com a mTLS de origem habilitada das seguintes formas:
updateRequestOrigin()
A função updateRequestOrigin() permite poucas modificações ao trabalhar com origens com a mTLS de origem habilitada:
-
Alternar entre origens de mTLS de origem: é possível atualizar a solicitação para rotear para uma origem diferente que use a mTLS de origem, desde que ambas as origens usem o mesmo certificado de cliente. Isso permite implementar uma lógica de roteamento personalizada e, ao mesmo tempo, manter a autenticação TLS mútua. A alternância entre origens que usam certificados diferentes é suportada por meio das APIs
selectRequestOriginById()ecreateRequestOriginGroup(). -
Desabilitar a mTLS de origem: é possível alternar de uma origem habilitada para mTLS para uma origem não mTLS definindo
mTLSConfig: 'off'na função. Isso oferece flexibilidade para desabilitar condicionalmente a autenticação TLS mútua com base nas características da solicitação.
Exemplo: alternar entre origens de mTLS de origem com o mesmo certificado
import cf from 'cloudfront'; function handler(event) { var request = event.request; // Route to different origin based on request path if (request.uri.startsWith('/api/v2')) { cf.updateRequestOrigin({ "domainName": "api-v2.example.com", "mTLSConfig": "inherit", // If no value is provided for mTLSConfig, it defaults to inherit // Both origins must use the same certificate }); } return request; }
Exemplo: desativação condicional da mTLS de origem
import cf from 'cloudfront'; function handler(event) { var request = event.request; // Disable mTLS for specific paths if (request.uri.startsWith('/public')) { cf.updateRequestOrigin({ "domainName": "public-origin.example.com", "mTLSConfig": "off" }); } return request; }
selectRequestOriginById()
A função selectRequestOriginById() permite selecionar origens que tenham TLS mútuo (origem) ativado. Você pode usar essa função para rotear dinamicamente solicitações para origens habilitadas para mTLS configuradas em sua distribuição. Ao selecionar uma origem mútua habilitada para TLS (origem) por ID, o CloudFront usa o certificado de cliente configurado para essa origem nas configurações de distribuição.
Exemplo: alternar entre origens de TLS mútuo (origem)
import cf from 'cloudfront'; function handler(event) { var request = event.request; // Select mTLS-enabled origin based on request characteristics if (request.uri.startsWith('/secure-api')) { cf.selectRequestOriginById("mtls-origin-1"); } return request; }
createRequestOriginGroup()
A função createRequestOriginGroup() permite a criação de grupos de origem que incluem origens com TLS mútuo habilitado (origem). Você pode criar dinamicamente grupos de origem com origens habilitadas para mTLS para cenários de failover no CloudFront Functions.
Exemplo: Criar um grupo de origens com TLS mútuo habilitado (origem)
import cf from 'cloudfront'; function handler(event) { // Create origin group with mTLS-enabled primary and failover origins cf.createRequestOriginGroup({ "originIds": ["mtls-origin-primary", "mtls-origin-failover"], "failoverCriteria": { "statusCodes": [500, 502, 503, 504] } }); return event.request; }