Tenho uma distribuição do Amazon CloudFront e preciso cumprir a exigência regulatória da minha organização de usar extensões de segurança do Sistema de nomes de domínio (DNSSEC).
Breve descrição
O domínio padrão do CloudFront cloudfront.net não permite DNSSEC. Para ativar o DNSSEC em seu domínio, primeiro você deve criar um conjunto de registros de recursos DNSKEY. No entanto, como a AWS gerencia os registros DNS nos domínios do CloudFront, não é possível configurar um registro DNSKEY. Isso significa que não é possível ativar diretamente o DNSSEC em um domínio do CloudFront. Em vez disso, você deve ativá-lo por meio de um domínio alternativo.
Se sua organização exigir o uso do DNSSEC, primeiro bloqueie o acesso à distribuição a partir do domínio do CloudFront. Em seguida, ative o DNSSEC em um nome de domínio alternativo ou registro de nome canônico (CNAME) anexado à distribuição do CloudFront.
Resolução
Bloqueie o acesso do CloudFront
Para bloquear qualquer solicitação que tenha o domínio cloudfront.net no cabeçalho do host, use o AWS WAF ou uma função.
Use o AWS WAF
Use uma regra do AWS WAF que bloqueie qualquer um dos seguintes tipos de solicitação:
- Um cabeçalho de host que termina com cloudfront.net.
- Todas as solicitações que têm o domínio da distribuição (como d123abc.cloudfront.net) dentro de um único cabeçalho.
Use uma função
Use uma função do CloudFront ou uma função do AWS Lambda@Edge para bloquear qualquer solicitação que tenha um valor no cabeçalho do host que termine com cloudfront.net. É uma prática recomendada usar uma função do CloudFront devido ao menor custo e ao desempenho mais rápido.
O exemplo de função do CloudFront a seguir bloqueia solicitações que têm o domínio do CloudFront cloudfront.net no cabeçalho do host:
function handler(event) {
var request = event.request;
// Extract the host header value
var host = request.headers.host.value;
// Check if the host header value ends with "cloudfront.net"
if (host.endsWith('cloudfront.net')) {
// Return a response to block the request
return {
statusCode: 403,
statusDescription: 'Forbidden',
headers: {
'content-type': {
value: 'text/plain'
}
},
body: 'Access to this resource is forbidden.'
};
}
// Allow the request to proceed
return request;
}
Ative o DNSSEC em um nome de domínio alternativo
Depois de bloquear o acesso do domínio do CloudFront, é possível ativar o DNSSEC em um nome de domínio alternativo (CNAME). Para fazer isso, siga as etapas em Como habilitar a assinatura de DNSSEC e estabelecer uma cadeia de confiança.
Teste seu domínio
Para confirmar se o DNSSEC funciona corretamente com seu domínio, use o analisador de DNSSEC no site da Verisign.