Ho una distribuzione di Amazon CloudFront e devo rispettare i requisiti normativi della mia organizzazione per utilizzare DNSSEC (Estensioni di sicurezza del sistema dei nomi di dominio).
Breve descrizione
Il dominio di CloudFront predefinito cloudfront.net non consente l'uso di DNSSEC. Per attivare DNSSEC per il dominio, devi prima creare un set di record di risorse DNSKEY. Tuttavia, poiché AWS gestisce i record DNS per i domini di CloudFront, non puoi configurare un record DNSKEY. Ciò significa che non puoi attivare direttamente DNSSEC per un dominio di CloudFront. Devi invece attivarlo tramite un dominio alternativo.
Se l'organizzazione richiede l'uso di DNSSEC, blocca prima di tutto l'accesso alla distribuzione dal dominio di CloudFront. Quindi attiva DNSSEC su un nome di dominio o su un nome canonico (CNAME) alternativo collegato alla distribuzione di CloudFront.
Risoluzione
Blocca l'accesso da CloudFront
Per bloccare qualsiasi richiesta con il dominio cloudfront.net nell'intestazione host, utilizza AWS WAF o una funzione.
Utilizza AWS WAF
Utilizza una regola AWS WAF che blocchi uno dei seguenti tipi di richiesta:
- Un'intestazione host che termina con cloudfront.net.
- Tutte le richieste che hanno il dominio della distribuzione (come d123abc.cloudfront.net) all'interno di un'unica intestazione.
Utilizza una funzione
Utilizza una funzione CloudFront o una funzione AWS Lambda@Edge per bloccare qualsiasi richiesta con un valore nell'intestazione host che termina con cloudfront.net. È consigliabile utilizzare una funzione CloudFront per i costi inferiori e le prestazioni più veloci.
Il seguente esempio di funzione CloudFront blocca le richieste con il dominio di CloudFront cloudfront.net nell'intestazione 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;
}
Attiva DNSSEC su un nome di dominio alternativo
Dopo aver bloccato l'accesso dal dominio di CloudFront, puoi attivare DNSSEC su un nome di dominio alternativo (CNAME). A tale scopo, segui i passaggi descritti in Abilitazione della firma DNSSEC e creazione di una catena di attendibilità.
Esegui un test del dominio
Per verificare che il DNSSEC funzioni correttamente con il dominio, utilizza l'analizzatore di DNSSEC sul sito web Verisign.