Inizia con un sito Web statico sicuro - 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à.

Inizia con un sito Web statico sicuro

Puoi iniziare a usare Amazon CloudFront utilizzando la soluzione descritta in questo argomento per creare un sito Web statico sicuro per il tuo nome di dominio. Un sito Web statico utilizza solo file staticiHTML, come immagini e video CSS JavaScript, e non necessita di server o elaborazione lato server. Con questa soluzione, il tuo sito web ottiene i seguenti vantaggi:

  • Utilizza lo storage durevole di Amazon Simple Storage Service (Amazon S3): questa soluzione crea un bucket Amazon S3 per ospitare i contenuti del tuo sito Web statico. Per aggiornare il tuo sito web, basta caricare i nuovi file nel bucket S3.

  • È velocizzato dalla rete di distribuzione CloudFront dei contenuti di Amazon: questa soluzione crea una CloudFront distribuzione per servire il tuo sito Web agli spettatori con bassa latenza. La distribuzione è configurata con Origin Access Control (OAC) per garantire che il sito Web sia accessibile solo tramite CloudFront, non direttamente da S3.

  • È protetto da HTTPS intestazioni di sicurezza: questa soluzione crea un TLS certificatoSSL/in AWS Certificate Manager (ACM) e lo allega alla distribuzione. CloudFront Questo certificato consente alla distribuzione di servire in modo sicuro il sito Web del tuo dominio. HTTPS

  • È configurato e distribuito con AWS CloudFormation: Questa soluzione utilizza un AWS CloudFormation modello per configurare tutti i componenti, in modo da poterti concentrare maggiormente sui contenuti del tuo sito Web e meno sulla configurazione dei componenti.

Questa soluzione è open source su. GitHub Per visualizzare il codice, inviare una richiesta pull o aprire un problema, andare su https://github.com/aws-samples/amazon-cloudfront-secure-static-site.

Panoramica della soluzione

Il diagramma seguente mostra una panoramica del funzionamento di questa soluzione per siti Web statici:

Diagramma generale di un sito Web statico sicuro con CloudFront
  1. Il visualizzatore richiede il sito web all'indirizzo www.example.com.

  2. Se l'oggetto richiesto è memorizzato nella cache, CloudFront restituisce l'oggetto dalla sua cache al visualizzatore.

  3. Se l'oggetto non è nella CloudFront cache, lo CloudFront richiede dall'origine (un bucket S3).

  4. S3 restituisce l'oggetto a. CloudFront

  5. CloudFront memorizza l'oggetto nella cache.

  6. Gli oggetti vengono restituiti al visualizzatore. Le richieste successive per l'oggetto che arrivano alla stessa CloudFront edge location vengono servite dalla CloudFront cache.

Implementa la soluzione

Per distribuire questa soluzione per siti Web statici protetti, è possibile scegliere una delle seguenti opzioni:

  • Utilizza la AWS CloudFormation console per distribuire la soluzione con contenuti predefiniti, quindi carica i contenuti del tuo sito Web su Amazon S3.

  • Clona la soluzione sul tuo computer per aggiungere il contenuto del tuo sito web. Quindi, distribuire la soluzione con AWS Command Line Interface (AWS CLI).

Nota

È necessario utilizzare la regione Stati Uniti orientali (Virginia settentrionale) per distribuire il modello. CloudFormation

Prerequisiti

Per utilizzare questa soluzione, è necessario disporre dei seguenti prerequisiti:

  • Nome di dominio registrato, ad esempio example.com, che punta a una zona Amazon Route 53 ospitata. La zona ospitata deve trovarsi nella stessa zona in Account AWS cui viene distribuita questa soluzione. Se non si dispone di un nome di dominio registrato, è possibile registrarne uno con Route 53. Se hai un nome di dominio registrato ma non è indirizzato a una zona ospitata su Route 53, configura Route 53 come DNS servizio.

  • AWS Identity and Access Management (IAM) autorizzazioni per avviare CloudFormation modelli che creano IAM ruoli e autorizzazioni per creare tutte le AWS risorse della soluzione. Per ulteriori informazioni, consulta Controllare l'accesso con AWS Identity and Access Management nella Guida per l'AWS CloudFormation utente.

L'utente è responsabile dei costi sostenuti durante l'utilizzo di questa soluzione. Per ulteriori informazioni sui costi, consulta le relative pagine dei prezzi Servizio AWS.

Utilizzo della console AWS CloudFormation

Per eseguire la distribuzione utilizzando la console CloudFormation
  1. Avvia questa soluzione nella AWS CloudFormation console. Se necessario, accedi al tuo Account AWS.

  2. La procedura guidata Create stack si apre nella CloudFormation console, con campi precompilati che specificano il modello di questa soluzione. CloudFormation

    Nella parte inferiore della pagina scegli Next (Avanti).

  3. Nella pagina Specificare i dettagli dello stack immettere i valori per i campi riportati di seguito.

    • SubDomain— Inserisci il sottodominio da utilizzare per il tuo sito web. Ad esempio, se il sottodominio è www, il tuo sito web è disponibile all'indirizzo www.example.com. Sostituire example.com con il nome di dominio, come spiegato nel punto seguente.

    • DomainName— Inserisci il tuo nome di dominio, ad esempio example.com. Questo dominio deve essere indirizzato a una zona ospitata sulla Route 53.

    • HostedZoneId— L'ID della zona ospitata sulla Route 53 del nome di dominio.

    • CreateApex— (Facoltativo) Crea un alias per l'apex del dominio (example.com) nella tua configurazione. CloudFront

  4. Al termine, scegli Apply (Applica).

  5. (Facoltativo) Nella pagina Configura opzioni stack, aggiungere tag e altre opzioni di stack.

  6. Al termine, scegli Apply (Applica).

  7. Nella pagina Revisione scorrere fino alla fine della pagina, quindi selezionare le due caselle nella sezione Funzionalità. Queste funzionalità consentono di CloudFormation creare un IAM ruolo che consente l'accesso alle risorse dello stack e di denominare le risorse in modo dinamico.

  8. Scegli Crea stack.

  9. Attendi che lo stack termini la creazione. Lo stack crea alcuni stack nidificati e il completamento di questa operazione può richiedere alcuni minuti. Al termine, lo stato cambia in _. CREATE COMPLETE

    Quando lo stato è CREATE_ COMPLETE, vai su https://www.example.com per visualizzare il tuo sito Web (sostituisci www.example.com con il sottodominio e il nome di dominio specificati nel passaggio 3). Dovresti vedere il contenuto predefinito del sito Web:

    Contenuto predefinito del sito Web statico di questa soluzione. Dice: “Sono un sito web statico!”
Per sostituire il contenuto predefinito del sito Web con il proprio
  1. Apri la console Amazon S3 all'indirizzo. https://console.aws.amazon.com/s3/

  2. Scegli il bucket il cui nome inizia con amazon-cloudfront-secure-static-site-s3bucketroot-.

    Nota

    Assicurati di scegliere il bucket con s3bucketroot nel suo nome, non s3bucketlogs. Il bucket con s3bucketroot nel suo nome contiene il contenuto del sito web. Quello con s3bucketlogs contiene solo file di log.

  3. Elimina il contenuto predefinito del sito Web, quindi carica il tuo.

    Nota

    Se hai visualizzato il tuo sito Web con il contenuto predefinito di questa soluzione, è probabile che parte del contenuto predefinito sia memorizzato nella cache in una posizione periferica. CloudFront Per assicurarti che gli spettatori vedano i contenuti aggiornati del tuo sito web, invalida i file per rimuovere le copie memorizzate nella cache dalle edge location. CloudFront Per ulteriori informazioni, consulta Invalida i file per rimuovere il contenuto.

Clonare la soluzione localmente

Prerequisiti

Per aggiungere il contenuto del sito Web prima di distribuire questa soluzione, è necessario creare un pacchetto locale degli artefatti della soluzione, che richiede Node.js e npm. Per ulteriori informazioni, consulta https://www.npmjs.com/get-npm.

Per aggiungere il contenuto del sito Web e distribuire la soluzione
  1. Clona o scarica la soluzione da https://github.com/aws-samples/amazon-cloudfront-secure-static-site. Dopo averlo clonato o scaricato, aprire un prompt dei comandi o un terminale e passare alla cartella amazon-cloudfront-secure-static-site.

  2. Eseguire il comando seguente per installare e creare il pacchetto degli artefatti della soluzione:

    make package-static
  3. Copiare il contenuto del sito Web nella cartella www, sovrascrivendo il contenuto predefinito del sito Web.

  4. Esegui il AWS CLI comando seguente per creare un bucket Amazon S3 per archiviare gli artefatti della soluzione. Replace (Sostituisci) amzn-s3-demo-bucket-for-artifacts con il tuo nome di bucket.

    aws s3 mb s3://amzn-s3-demo-bucket-for-artifacts --region us-east-1
  5. Esegui il AWS CLI comando seguente per impacchettare gli artefatti della soluzione come modello. CloudFormation Replace (Sostituisci) amzn-s3-demo-bucket-for-artifacts con il nome del bucket creato nel passaggio precedente.

    aws cloudformation package \ --region us-east-1 \ --template-file templates/main.yaml \ --s3-bucket amzn-s3-demo-bucket-for-artifacts \ --output-template-file packaged.template
  6. Esegui il comando seguente per distribuire la soluzione con CloudFormation, sostituendo i seguenti valori:

    • your-CloudFormation-stack-name — Sostituisci con un nome per lo CloudFormation stack.

    • example.com — Sostituiscilo con il tuo nome di dominio. Questo dominio deve essere indirizzato a una zona ospitata sulla Route 53 all'interno della stessa Account AWS.

    • www — Sostituiscilo con il sottodominio da utilizzare per il tuo sito web. Ad esempio, se il sottodominio è www, il tuo sito web è disponibile all'indirizzo www.example.com.

    • hosted-zone-ID — Sostituisci con l'ID della zona ospitata Route 53 del tuo nome di dominio.

    aws cloudformation deploy \ --region us-east-1 \ --stack-name your-CloudFormation-stack-name \ --template-file packaged.template \ --capabilities CAPABILITY_NAMED_IAM CAPABILITY_AUTO_EXPAND \ --parameter-overrides DomainName=example.com SubDomain=www HostedZoneId=hosted-zone-ID
    1. (Facoltativo) Per distribuire lo stack con un apex di dominio, esegui invece il comando seguente.

      aws --region us-east-1 cloudformation deploy \ --stack-name your-CloudFormation-stack-name \ --template-file packaged.template \ --capabilities CAPABILITY_NAMED_IAM CAPABILITY_AUTO_EXPAND \ --parameter-overrides DomainName=example.com SubDomain=www HostedZoneId=hosted-zone-ID CreateApex=yes
  7. Attendi che lo CloudFormation stack finisca di creare. Lo stack crea alcuni stack nidificati e il completamento di questa operazione può richiedere alcuni minuti. Al termine, lo stato diventa CREATE_ COMPLETE.

    Quando lo stato diventa CREATE_ COMPLETE, vai https://www.example.com a visualizzare il tuo sito web (sostituisci www.example.com con il sottodominio e il nome di dominio che hai specificato nel passaggio precedente). Dovresti vedere il contenuto del tuo sito web.

Ricerca dei log di accesso

Questa soluzione abilita i log di accesso per la distribuzione. CloudFront Per individuare i registri di accesso della distribuzione, completare la procedura seguente.

Per individuare i registri di accesso della distribuzione
  1. Apri la console Amazon S3 all'indirizzo. https://console.aws.amazon.com/s3/

  2. Scegli il bucket il cui nome inizia con amazon-cloudfront-secure-static-site-s3bucketlogs-.

    Nota

    Assicurarsi di scegliere il bucket con s3bucketlogs nel suo nome, non s3bucketroot. Il bucket con s3bucketlogs nel suo nome contiene file di registro. Quello con s3bucketroot contiene il contenuto del sito web.

  3. La cartella denominata cdn contiene i log di accesso. CloudFront