Specifica di un oggetto root predefinito
Puoi configurare CloudFront per restituire un oggetto specifico (l’oggetto root predefinito) quando un utente (visualizzatore) richiede l’URL root per la distribuzione anziché richiedere un oggetto presente nella distribuzione. Puoi utilizzare un oggetto root predefinito per evitare l’esposizione dei contenuti della distribuzione.
Indice
Come specificare un oggetto root predefinito
Per evitare di esporre i contenuti della distribuzione o di ricevere un errore, specifica un oggetto root predefinito per la distribuzione. Puoi specificare il nome esatto del file o il percorso del file. Ad esempio, se l’oggetto root è un file index.html, puoi specificare tale nome file. Se il file index.html si trova in un’altra cartella, specifica invece il percorso, ad esempio . Se si imposta un percorso per l’oggetto root predefinito, le richieste del visualizzatore all’URL root della distribuzione restituiranno il file specificato da tale percorso. Puoi utilizzare un percorso di file per avere maggiore flessibilità nell’organizzazione dei contenuti all’origine, poiché l’oggetto root predefinito può trovarsi in una cartella anziché a livello root. exampleFolderName/index.html
Per specificare un oggetto root predefinito per la tua distribuzione
-
Carica l'oggetto root predefinito sul server di origine a cui punta la tua distribuzione.
Il file può essere di qualsiasi tipo supportato da CloudFront. Per un elenco dei vincoli relativi al nome file, consulta l’elemento
DefaultRootObjectin DistributionConfig della Documentazione di riferimento delle API di Amazon CloudFront.Nota
Se il nome del file dell'oggetto root predefinito è troppo lungo o contiene un carattere non valido, CloudFront restituisce l'errore
HTTP 400 Bad Request - InvalidDefaultRootObject. Inoltre, CloudFront memorizza nella cache il codice per 10 secondi (per impostazione predefinita) e scrive i risultati nei registri di accesso. -
Conferma che le autorizzazioni per l’oggetto concedono a CloudFront almeno l’accesso in lettura.
Per ulteriori informazioni sulle autorizzazioni di Amazon S3, consulta Identity and Access Management in Amazon S3 nella Guida per gli sviluppatori di Amazon Simple Storage Service.
-
Aggiorna la distribuzione in modo che faccia riferimento all’oggetto root predefinito utilizzando la console CloudFront o l’API CloudFront.
Come specificare un oggetto root predefinito utilizzando la console CloudFront:
Accedi alla Console di gestione AWS e apri la console CloudFront all'indirizzo https://console.aws.amazon.com/cloudfront/v4/home
. -
Nell'elenco delle distribuzioni nel riquadro superiore, seleziona la distribuzione da aggiornare.
-
Nel riquadro Settings (Impostazioni), sulla scheda General (Generale), scegliere Edit (Modifica).
-
Nella finestra di dialogo Modifica impostazioni, nel campo Oggetto root predefinito, inserisci il nome file o il percorso dell’oggetto root predefinito.
Suggerimento
La stringa non può iniziare con una barra obliqua (
/). Specifica solo il nome dell’oggetto o il percorso dell’oggetto. Ad esempio, utilizzaindex.htmlo. La specifica di unexampleFolderName/index.html/oexampleFolderName/index.html/index.htmlpuò generare un errore 403 Access Denied. -
Scegli Save changes (Salva modifiche).
Per aggiornare la configurazione utilizzando l’API CloudFront, specifica un valore per l’elemento
DefaultRootObjectnella distribuzione. Per informazioni sull'utilizzo dell'API CloudFront per specificare un oggetto radice predefinito, vedere UpdateDistribution nella Guida di riferimento API Amazon CloudFront. -
Conferma di aver abilitato l'oggetto root predefinito richiedendo l'URL root. Se il tuo browser non visualizza l'oggetto root predefinito, esegui i seguenti passaggi:
-
Conferma che la tua distribuzione è completamente distribuita visualizzando lo stato della tua distribuzione nella console CloudFront.
-
Ripeti le fasi 2 e 3 per verificare di aver ricevuto le autorizzazioni corrette e aver aggiornato la configurazione della distribuzione come richiesto per specificare l'oggetto root predefinito.
-
Come funziona un oggetto root predefinito
Supponiamo che la seguente richiesta faccia riferimento all'oggetto image.jpg:
https://d111111abcdef8.cloudfront.net/image.jpg
Al contrario, la seguente richiesta fa riferimento all'URL root della stessa distribuzione anziché a un oggetto specifico, come nel primo esempio:
https://d111111abcdef8.cloudfront.net/
Quando definisci un oggetto root predefinito, la richiesta di un utente finale che chiama il root della distribuzione restituisce l'oggetto root predefinito. Ad esempio, se imposti il file index.html come oggetto root predefinito, una richiesta per:
https://d111111abcdef8.cloudfront.net/
Valori restituiti:
https://d111111abcdef8.cloudfront.net/index.html
Nota
CloudFront non determina se un URL con più barre finali (https://d111111abcdef8.cloudfront.net///) è equivalente a https://d111111abcdef8.cloudfront.net/. Il server di origine effettua questo confronto.
Se definisci un oggetto root predefinito, la richiesta di un utente finale per una sottodirectory della distribuzione non restituisce l'oggetto root predefinito. Ad esempio, supponiamo che index.html sia il tuo oggetto root predefinito e che CloudFront riceva una richiesta dell'utente finale per la directory install nella tua distribuzione CloudFront:
https://d111111abcdef8.cloudfront.net/install/
CloudFront non restituisce l'oggetto root predefinito anche se una copia di index.html viene visualizzata nella directory install. Tuttavia, se hai specificato un percorso per l’oggetto root predefinito, (install/index.html) CloudFront restituirà l’oggetto root predefinito per le richieste dell’utente finale per la directory install
Se configuri la tua distribuzione per consentire tutti i metodi HTTP che CloudFront supporta, l'oggetto root predefinito si applica a tutti i metodi. Ad esempio, se l'oggetto root predefinito è index.php e scrivi la tua applicazione per inviare una richiesta POST alla root del tuo dominio (https://example.com), CloudFront invierà la richiesta a https://example.com/index.php.
Il comportamento degli oggetti root predefiniti di CloudFront è diverso da quello dei documenti di indice di Amazon S3. Quando configuri un bucket Amazon S3 come sito Web e specifichi il documento di indice, Amazon S3 restituisce il documento di indice anche se un utente richiede una sottodirectory nel bucket. (Una copia del documento di indice deve essere inclusa in ogni sottodirectory). Per ulteriori informazioni sulla configurazione dei bucket Amazon S3 come siti Web e sui documenti indicizzati, consulta il capitolo Hosting Siti Web su Amazon S3 nella Guida per l'utente di Amazon Simple Storage Service.
Importante
Ricorda che un oggetto root predefinito si applica solo alla tua distribuzione CloudFront. È comunque necessario gestire la sicurezza per il tuo server di origine. Ad esempio, se stai utilizzando un server di origine Amazon S3, devi comunque impostare le autorizzazioni ACL per il bucket Amazon S3; in modo appropriato per garantire il livello di accesso che desideri avere per il tuo bucket.
Come funziona CloudFront se non si definisce un oggetto root
Se non definisci un oggetto root predefinito, le richieste per il percorso root della distribuzione passa al tuo server di origine. Se stai usando un server di origine Amazon S3, potresti ricevere una delle seguenti risposte:
-
Un elenco dei contenuti del tuo bucket Amazon S3 - In una delle condizioni seguenti, i contenuti del tuo server di origine sono visibili da chiunque utilizzi CloudFront per accedere alla tua distribuzione:
-
Il tuo bucket non è configurato correttamente.
-
Le autorizzazioni Amazon S3 per il bucket associato alla distribuzione e per gli oggetti nel bucket concedono l'accesso a tutti gli utenti.
-
Un utente finale accede al server di origine utilizzando l'URL root di origine.
-
-
Un elenco dei contenuti privati del tuo server di origine - Se configuri il server di origine come distribuzione privata (solo tu e &CF; avete accesso), i contenuti del bucket Amazon S3 associati alla tua distribuzione sono visibili a chiunque abbia le credenziali per accedere alla tua distribuzione tramite CloudFront. In questo caso, gli utenti non sono in grado di accedere ai tuoi contenuti tramite l'URL root di origine. Per ulteriori informazioni su come distribuire contenuti privati, consulta Gestione di contenuti privati con URL e cookie firmati.
-
Error 403 Forbidden- CloudFront restituisce questo errore se le autorizzazioni nel bucket Amazon S3 associato alla distribuzione o le autorizzazioni per gli oggetti nel bucket negano l'accesso a CloudFront e a tutti gli utenti.