Trasferimento da S3 tramite CloudFront

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

I trasferimenti di dati tramite CloudFront possono trarre vantaggio da costi di uscita AWS inferiori rispetto al trasferimento diretto da S3. Per i dettagli, consulta Prezzi di CloudFront e Addebiti per le uscite S3.

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

Panoramica

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

Configura le autorizzazioni IAM

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

Configura l'accesso al tuo bucket S3

Segui le istruzioni riportate in Configurare l'accesso a un'origine: Amazon S3 per configurare l'accesso ai tuoi 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 tuo bucket S3.
  4. Il percorso dell'origine deve essere lasciato vuoto.
  5. Accetta il nome dell'origine compilato automaticamente o specifica il tuo valore.
  6. Nella sezione Accesso all'origine, seleziona Pubblico. Il bucket non diventa pubblico, ma viene indicato a CloudFront che non deve essere configurato alcun meccanismo di accesso.
  7. Nella sezione Richieste di origini e chiavi di cache:
    1. Per Criterio cache, seleziona CachingDisabled. In questo modo, CloudFront impedisce di memorizzare nella cache le richieste e di pubblicarle per gli spettatori non autenticati.
    2. Per Criterio di richiesta di 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 attivare.
  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 si trovi 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 della distribuzione. Ad esempio: https://dy1h2n3l4ob56.cloudfront.net. Se la pagina dei dettagli non include il protocollo https:// davanti al nome di dominio di distribuzione, dovrai aggiungerlo autonomamente 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 nel nome del job di trasferimento informazioni sensibili come quelle che consentono l'identificazione personale (PII) o dati di sicurezza. I nomi delle risorse possono essere propagati ai nomi di altre risorse Google Cloud e possono essere esposti ai sistemi interni di Google al di fuori del progetto.

Console Google Cloud

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

Quando ti viene chiesto di inserire il dominio CloudFront, inserisci il nome di dominio della distribuzione che hai annotato nella sezione precedente. Puoi trovare questo valore anche elencato 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 di dominio della 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 in questa pagina, i tuoi oggetti non sono esposti al pubblico.

  • CloudFront non ha accesso diretto ai tuoi oggetti S3.
  • Gli utenti ricevono un errore permission denied se tentano di accedere ai tuoi 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, il che ci consente di scaricare i tuoi oggetti in modo sicuro come se li stessimo scaricando direttamente da S3. Questo funziona grazie all'impostazione di inoltro dell'intestazione AllViewerExceptHostHeader.