Trasferimento da S3 tramite CloudFront

I trasferimenti da Amazon S3 possono utilizzare una distribuzione Amazon CloudFront come percorso di uscita.

I trasferimenti di dati tramite CloudFront possono trarre vantaggio da costi del traffico AWS in uscita inferiori rispetto al trasferimento diretto da S3. Per i dettagli, consulta i prezzi di CloudFront e gli addebiti per il traffico in uscita S3.

L'utilizzo di CloudFront come percorso in uscita non espone gli oggetti S3 al pubblico. Vedi L'utilizzo di CloudFront espone i miei oggetti al pubblico?

Panoramica

Per trasferire i dati S3 tramite CloudFront, devi seguire questi passaggi:

Configura le autorizzazioni IAM

Segui le istruzioni in Autorizzazioni di trasferimento senza agente per concedere le autorizzazioni Google Cloud necessarie.

Configura l'accesso al tuo bucket S3

Segui le istruzioni in Configurare l'accesso a un'origine: Amazon S3 per configurare l'accesso ai dati in Amazon S3.

Crea una distribuzione CloudFront per il tuo bucket S3

  1. Nel tuo account AWS, vai a CloudFront.
  2. Fai clic su Crea una distribuzione CloudFront.
  3. In Dominio di origine, seleziona il bucket S3.
  4. Il percorso origine deve essere lasciato vuoto.
  5. Accetta il campo Nome origine compilato automaticamente o specifica un valore personalizzato.
  6. Nella sezione Accesso origine, seleziona Pubblico. Questo non rende pubblico il bucket, ma indica a CloudFront che non deve essere configurato alcun meccanismo di accesso.
  7. Nella sezione Chiavi cache e richieste di origine:
    1. In Criterio cache seleziona CachingDisabled. Ciò impedisce a CloudFront di memorizzare le richieste di memorizzazione nella cache e di inviarle a visualizzatori non autenticati.
    2. Per Criterio richiesta origine, seleziona AllViewerExceptHostHeader. In questo modo CloudFront può inoltrare le intestazioni di autenticazione a S3, in modo che Storage Transfer Service possa accedere al tuo bucket con le tue credenziali sicure.
  8. Nella sezione Web Application Firewall (WAF), seleziona Non abilitare.
  9. (Facoltativo) Scegli una classe di prezzo. Storage Transfer Service seleziona i pool di worker in base alla regione del bucket di origine, pertanto i prezzi di CloudFront vengono addebitati in quella regione. Per ottenere i prezzi più bassi, assicurati che il bucket di origine sia negli Stati Uniti o in Europa oppure seleziona Utilizza solo Nord America ed Europa come Classe di prezzo in CloudFront.
  10. Fai clic su Crea distribuzione CloudFront.

    Una volta creata, viene visualizzata la pagina dei dettagli della distribuzione CloudFront.

  11. Prendi nota del nome di dominio di distribuzione. Ad esempio: https://dy1h2n3l4ob56.cloudfront.net. Se la pagina dei dettagli non include il protocollo https:// davanti al nome del dominio di distribuzione, dovrai aggiungerlo manualmente durante la creazione del job di trasferimento.

Creare un job di trasferimento

Il trasferimento tramite una distribuzione CloudFront è supportato nella console Google Cloud e nell'API REST.

Non includere informazioni sensibili come informazioni che consentono l'identificazione personale o dati di sicurezza nel nome del job di trasferimento. I nomi delle risorse possono essere propagati ai nomi di altre risorse Google Cloud ed essere esposti ai sistemi interni di Google al di fuori del tuo progetto.

Console Google Cloud

Per creare un trasferimento utilizzando la console Google Cloud, segui le istruzioni per creare un trasferimento.

Quando ti viene richiesto di inserire il dominio CloudFront, inserisci il nome del dominio di distribuzione annotato nella sezione precedente. Puoi trovare questo valore anche nella sezione CloudFront della console Amazon Web Services. Ha il formato https://dy1h2n3l4ob56.cloudfront.net.

API REST

Per creare un trasferimento utilizzando l'API REST, segui l'esempio nella pagina Crea trasferimenti.

Specifica il nome del dominio di distribuzione come valore del campo transferSpec.awsS3DataSource.cloudfrontDomain:

"transferSpec": {
  "awsS3DataSource": {
    "bucketName": "AWS_SOURCE_NAME",
    "cloudfrontDomain": "https://dy1h2n3l4ob56.cloudfront.net",
    "awsAccessKey": {
      "accessKeyId": "AWS_ACCESS_KEY_ID",
      "secretAccessKey": "AWS_SECRET_ACCESS_KEY"
    }
  },
  ...
}

Domande frequenti

L'utilizzo di CloudFront espone i miei oggetti al pubblico?

No. Se hai seguito i passaggi di configurazione descritti in questa pagina, i tuoi oggetti non sono esposti al pubblico.

  • CloudFront non ha accesso diretto agli oggetti S3.
  • Gli utenti ricevono un errore permission denied se tentano di accedere agli oggetti direttamente o tramite CloudFront (se il bucket è privato).
  • Storage Transfer Service firma le richieste a CloudFront utilizzando le credenziali che hai fornito nel job di trasferimento, in modo da consentirci di scaricare i tuoi oggetti in modo sicuro come se stessi eseguendo il download direttamente da S3. Questo funziona a causa dell'impostazione di inoltro dell'intestazione AllViewerExceptHostHeader.