Specificare un oggetto radice predefinito - Amazon CloudFront

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Specificare un oggetto radice predefinito

È possibile CloudFront configurare la restituzione di un oggetto specifico (l'oggetto radice predefinito) quando un utente richiede la radice URL per la distribuzione anziché richiedere un oggetto nella distribuzione. La specifica di un oggetto root predefinito consente di evitare l'esposizione dei contenuti della distribuzione.

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 completando le fasi seguenti.

Per specificare un oggetto root predefinito per la tua distribuzione
  1. 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 sul nome del file, vedete la descrizione dell'DefaultRootObjectelemento in. DistributionConfig

    Nota

    Se il nome di file dell'oggetto radice predefinito è troppo lungo o contiene un carattere non valido, CloudFront restituisce l'errore. HTTP 400 Bad Request - InvalidDefaultRootObject Inoltre, CloudFront memorizza il codice nella cache per 10 secondi (per impostazione predefinita) e scrive i risultati nei log di accesso.

  2. Verificate che le autorizzazioni per l'oggetto garantiscano CloudFront almeno l'accesso. read

    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.

  3. Aggiorna la tua distribuzione in modo che faccia riferimento all'oggetto root predefinito utilizzando la CloudFront console o il CloudFront API.

    Per specificare un oggetto root predefinito utilizzando la CloudFront console:

    1. Accedi a AWS Management Console e apri la CloudFront console all'indirizzohttps://console.aws.amazon.com/cloudfront/v4/home.

    2. Nell'elenco delle distribuzioni nel riquadro superiore, seleziona la distribuzione da aggiornare.

    3. Nel riquadro Settings (Impostazioni), sulla scheda General (Generale), scegliere Edit (Modifica).

    4. Nella finestra di dialogo Edit Distribution (Modifica distribuzione) nel campo Default Root Object (Oggetto root predefinito), inserire il nome file dell'oggetto root predefinito.

      Inserisci solo il nome dell'oggetto, ad esempio, index.html. Non aggiungere una / prima del nome dell'oggetto.

    5. Scegli Save changes (Salva modifiche).

    Per aggiornare la configurazione utilizzando il CloudFront API, è necessario specificare un valore per l'DefaultRootObjectelemento nella distribuzione. Per informazioni sull'utilizzo di CloudFront API per specificare un oggetto root predefinito, UpdateDistributionconsulta Amazon CloudFront API Reference.

  4. Conferma di aver abilitato l'oggetto root predefinito richiedendo la directory rootURL. Se il tuo browser non visualizza l'oggetto root predefinito, esegui i seguenti passaggi:

    1. Verifica che la distribuzione sia completamente distribuita visualizzando lo stato della distribuzione nella CloudFront console.

    2. 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 richiesta seguente punta alla radice URL 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///) sia 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 l'oggetto root predefinito e che CloudFront riceva una richiesta dall'utente finale per la directory inclusa nella install distribuzione: CloudFront

https://d111111abcdef8.cloudfront.net/install/

CloudFront non restituisce l'oggetto root predefinito anche se nella directory è presente una copia diindex.html. install

Se configurate la distribuzione per consentire tutti i HTTP metodi che CloudFront supporta, l'oggetto root predefinito si applica a tutti i metodi. Ad esempio, se l'oggetto root predefinito è index.php e si scrive l'applicazione per inviare una POST richiesta alla radice del dominio (https://example.com), CloudFront invia la richiesta a https://example.com /index.php.

Il comportamento degli oggetti root CloudFront predefiniti è diverso dal comportamento dei documenti 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 CloudFront distribuzione. È comunque necessario gestire la sicurezza per il tuo server di origine. Ad esempio, se utilizzi un'origine Amazon S3, devi comunque impostare il bucket Amazon S3 in modo appropriato per garantire il livello di accesso desiderato sul ACLs bucket.

Come CloudFront funziona 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 seguenti condizioni, i contenuti della tua origine sono visibili a chiunque acceda alla tua CloudFront 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 alla tua origine utilizzando la tua radice di origine. URL

  • Un elenco dei contenuti privati della tua origine: se configuri la tua origine come distribuzione privata (solo tu e CloudFront hai accesso), i contenuti del bucket Amazon S3 associato alla tua distribuzione sono visibili a chiunque disponga delle credenziali per accedere alla tua distribuzione. CloudFront In questo caso, gli utenti non sono in grado di accedere ai tuoi contenuti tramite la tua radice di origine. URL Per ulteriori informazioni su come distribuire contenuti privati, consulta Offri contenuti privati con cookie firmati URLs e firmati.

  • Error 403 Forbidden— CloudFront restituisce questo errore se le autorizzazioni sul bucket Amazon S3 associato alla distribuzione o le autorizzazioni sugli oggetti in quel bucket negano l'accesso a e a tutti. CloudFront