Come posso consentire l'accesso ai miei bucket Amazon S3 ai clienti che non utilizzano TLS 1.2 o versioni successive?
I miei clienti non utilizzano le TLS versione 1.2 o successive, quindi non possono accedere ai contenuti archiviati nei miei bucket Amazon Simple Storage Service (Amazon S3). Come posso consentire a questi clienti di accedere ai contenuti nei miei bucket Amazon S3 utilizzando TLS 1.0 o 1.1?
Breve descrizione
AWS sta imponendo l'utilizzo di TLS 1.2 o versione successiva su tutti gli endpoint delle API AWS. Per continuare a connetterti ai servizi AWS, devi aggiornare tutto il software che utilizza TLS 1.0 o 1.1.
Risoluzione
Amazon CloudFront consente l'utilizzo di versioni precedenti di TLS astraendo i clienti dal protocollo TLS utilizzato tra la distribuzione CloudFront e Amazon S3.
Crea una distribuzione CloudFront con OAC
Con CloudFront, puoi supportare richieste anonime e pubbliche ai tuoi bucket S3. In alternativa, puoi rendere privati i tuoi bucket S3 e accessibili tramite CloudFront solo richiedendo richieste firmate per accedere ai bucket S3.
Supporta richieste anonime e pubbliche ai tuoi bucket S3
Nota: l'esempio seguente presuppone che tu abbia già un bucket S3 in uso. Se non disponi di un bucket S3, creane uno.
Per creare la distribuzione CloudFront, segui questi passaggi:
- Apri la console CloudFront.
- Scegli Crea distribuzione.
- In Origine, per Dominio di origine, scegli l'endpoint REST API del tuo bucket S3 dall'elenco a discesa.
- Per Policy protocollo visualizzatore, seleziona Reindirizza da HTTP a HTTPS.
- Per Endpoint HTTP consentiti, seleziona GET, HEAD, OPTIONS per supportare le richieste di lettura**.**
- Nella sezione Accesso origine, seleziona Impostazioni di controllo dell'accesso origine (consigliata).
- Seleziona Crea impostazione di controllo e usa il nome predefinito. Per il comportamento di firma, seleziona Richieste di firma (consigliata) e seleziona Crea. Le impostazioni consigliate OAC autenticano automaticamente la richiesta del visualizzatore.
- Seleziona l'identità nell'elenco a discesa**.** Dopo aver creato la distribuzione**,** aggiorna la policy del bucket per limitare l'accesso a OAC.
- In Comportamento cache predefinito, Visualizzatore, seleziona Reindirizza HTTP a HTTPS per Policy protocollo visualizzatore e lascia le altre impostazioni come predefinite.
- In Chiave di cache e richieste di origine, scegli Policy di cache e policy di richiesta origine (consigliata). Quindi, usa CachingOptimized per la policy della cache e Cors-S3Origin per la Policy di richiesta origine.
- Seleziona Crea distribuzione, quindi attendi che il suo stato venga aggiornato su Abilitata.
Richiedi richieste firmate per accedere ai tuoi bucket S3
Aggiungi sicurezza ai tuoi bucket S3 supportando solo le richieste firmate. Con le richieste firmate, OAC segue i parametri di autenticazione e li inoltra all'origine S3, che quindi nega le richieste anonime.
Per creare una distribuzione CloudFront che richieda richieste firmate per accedere ai bucket S3, segui questi passaggi:
- Apri la console CloudFront.
- Scegli Crea distribuzione.
- In Origine, per Dominio di origine, scegli l'endpoint REST API del tuo bucket S3 dall'elenco a discesa.
- Per Policy protocollo visualizzatore, seleziona Reindirizza da HTTP a HTTPS.
- Per Endpoint HTTP consentiti, seleziona GET, HEAD, OPTIONS per supportare le richieste di lettura**.**
- Nella sezione Accesso origine, seleziona Impostazioni di controllo dell'accesso origine (consigliata).
- Blocca tutte le richieste non firmate selezionando l'opzione Non firmare le richieste.
Nota: il blocco delle richieste non firmate richiede che ogni cliente firmi le proprie richieste in modo che l'origine S3 possa valutare le autorizzazioni. - Crea una policy di cache personalizzata per inoltrare l'intestazione di autorizzazione del cliente all'origine.
- In Chiave di cache e richieste di origine, scegli Policy di cache e policy di richiesta origine (consigliata).
- Seleziona Crea policy.
- Inserisci un nome per la policy della cache nella sezione Nome.
- In Impostazioni della chiave di cache, vai a Intestazioni e seleziona Includi le seguenti intestazioni.
- In Aggiungi intestazione seleziona Autorizzazione.
- Seleziona Crea.
Controlla la policy di sicurezza del cliente
Per controllare una policy di sicurezza in CloudFront, devi disporre di un dominio personalizzato. È consigliabile specificare un nome di dominio alternativo per la distribuzione. È inoltre consigliabile utilizzare un certificato SSL personalizzato configurato nella Gestione certificati AWS (ACM). In questo modo si ottiene un maggiore controllo sulla policy di sicurezza e si consente ai clienti di continuare a utilizzare TLS 1.0. Per ulteriori informazioni, consulta Protocolli e crittografie supportati tra visualizzatori e CloudFront.
Se utilizzi il nome di dominio predefinito *.cloudfront.net, CloudFront fornisce automaticamente un certificato e imposta la policy di sicurezza per consentire TLS 1.0 e 1.1. Per ulteriori informazioni, consulta Impostazioni di distribuzione.
Per configurare un nome di dominio alternativo per la tua distribuzione CloudFront, segui questi passaggi:
- Accedi alla Console di gestione AWS e apri la console di CloudFront.
- Scegli l’ID della distribuzione che desideri aggiornare.
- Nella scheda Generale, scegli Modifica.
- Per Nomi di dominio alternativi (CNAME), scegli Aggiungi elemento e inserisci il tuo nome di dominio.
Nota: è consigliabile utilizzare un nome canonico (CNAME) personalizzato per accedere alle risorse. L'utilizzo di un CNAME ti offre un maggiore controllo sull’instradamento e consente una migliore transizione per i tuoi clienti. - Per Certificato SSL personalizzato, scegli il certificato SSL personalizzato dall'elenco a discesa che copre il tuo CNAME per assegnarlo alla distribuzione.
Nota: Per ulteriori informazioni sull'installazione di un certificato, consulta Come posso configurare la mia distribuzione CloudFront per utilizzare un certificato SSL/TLS? - Scegli Crea distribuzione e attendi che il suo stato venga aggiornato su Abilitata.
Dopo aver creato la distribuzione, devi consentire a OAC di accedere al tuo bucket. Completa i seguenti passaggi:
- Vai alla pagina della console CloudFront e apri la tua distribuzione CloudFront.
- Seleziona la scheda Origini, seleziona la tua origine, quindi fai clic su Modifica.
- Scegli Copia policy, apri l'autorizzazione del bucket e aggiorna la tua policy del bucket.
- Apri la pagina Vai alle autorizzazioni del bucket S3.
- In Policy del bucket, seleziona Modifica. Incolla la policy che hai copiato in precedenza, quindi scegli Salva. Se la tua policy del bucket richiede qualcosa di più della semplice lettura da S3, puoi aggiungere le API richieste.
Se utilizzi un nome di dominio personalizzato, modifica le voci DNS per utilizzare il nuovo URL di distribuzione CloudFront. Se non utilizzi un nome di dominio personalizzato, devi fornire il nuovo URL di distribuzione CloudFront agli utenti. Inoltre, devi aggiornare qualsiasi software del client o del dispositivo che utilizza il vecchio URL.
Se utilizzi un SDK AWS per accedere agli oggetti Amazon S3, devi modificare il codice per utilizzare i normali endpoint HTTPS. Inoltre, assicurati di utilizzare il nuovo URL di CloudFront. Se gli oggetti non sono pubblici e richiedono un controllo migliore, puoi pubblicare contenuti privati con URL firmati e cookie firmati.
Usa URL prefirmati S3 per accedere agli oggetti
Se il tuo flusso di lavoro si basa su URL prefirmati S3, utilizza una distribuzione CloudFront per inoltrare la query all'origine S3. Innanzitutto, genera un URL prefirmato per l'oggetto che desideri. Quindi, sostituisci l'host nell'URL con l'endpoint CloudFront per inviare la chiamata tramite CloudFront e aggiornare automaticamente il protocollo di crittografia. Per testare e generare un URL prefirmato, esegui il seguente comando CLI:
aws s3 presign s3://BUCKET_NAME/test.jpg
Output di esempio:
https://bucket_name.s3.us-east-1.amazonaws.com/test.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=%5b...%5d%2F20220901%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=%5b...%5d&X-Amz-SignedHeaders=host&X-Amz-Expires=3600&X-Amz-Signature">https://BUCKET_NAME.s3.us-east-1.amazonaws.com/test.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=[...]%2F20220901%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=[...]&X-Amz-SignedHeaders=host&X-Amz-Expires=3600&X-Amz-Signature =[...]
Ora cambia l'URL S3 nel nuovo endpoint CloudFront. Ad esempio, sostituisci questo URL S3:
BUCKET_NAME.s3.eu-west-1.amazonaws.com
con questo endpoint:
https://DISTRIBUTION_ID.cloudfront.net.
Output di esempio:
https://<DISTRIBUTION_ID>.cloudfront.net /test.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=[...]%2F20220901%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=[...]&X-Amz-SignedHeaders=host&X-Amz-Expires=3600&X-Amz-Signature=[...]
Per utilizzare gli URL prefirmati, applica le seguenti impostazioni di CloudFront:
- Imposta il comportamento di firma OAC su Non firmare le richieste.
- Imposta la policy della richiesta di origine della distribuzione di CloudFront su Impostazioni della richiesta di origine: Intestazioni – Nessuna; Cookie – Nessuno; Stringhe di query – Tutte.
- Imposta la policy della cache su Instestazioni – Nessuna; Cookie – Nessuno; Stringhe di query – Nessuna.
In AWS CloudTrail, la richiesta GET di download da un URL prefirmato S3 viene visualizzata come identità che ha generato l'URL prefirmato.
Se utilizzi un SDK AWS per accedere agli oggetti S3, devi modificare il codice per utilizzare l'URL prefirmato. Utilizza invece una normale richiesta HTTPS e utilizza il nuovo URL di CloudFront.
Conferma di utilizzare protocolli di crittografia moderni per Amazon S3
Per testare la tua nuova policy, usa il seguente comando curl di esempio per effettuare richieste HTTPS utilizzando uno specifico protocollo legacy:
curl https://${CloudFront_Domain}/image.png -v --tlsv1.0 --tls-max 1.0
Il comando curl di esempio invia una richiesta a CloudFront utilizzando TLS 1.0. Questo si connette all'origine S3 tramite TLS 1.2 e scarica correttamente il file.
È consigliabile utilizzare Data Lake AWS CloudTrail per identificare le connessioni TLS più vecchie agli endpoint dei servizi AWS. Puoi configurare l'archivio dati degli eventi di Lake CloudTrail per acquisire eventi di gestione o eventi relativi ai dati. L'evento CloudTrail corrispondente in Lake CloudTrail mostra la versione 1.2 di TLS, a conferma che i tuoi clienti utilizzano policy di sicurezza moderne per connettersi ad Amazon S3.

Contenuto pertinente
- AWS UFFICIALEAggiornata 5 mesi fa
- AWS UFFICIALEAggiornata 8 mesi fa
- AWS UFFICIALEAggiornata 2 anni fa