Utilizza un bucket privato compatibile con Amazon S3 come origine

Questa pagina descrive come connettere Media CDN ai bucket privati compatibili con Amazon S3 utilizzando Amazon Simple Storage Service (Amazon S3) e AWS Signature versione 4. Media CDN non supporta la firma AWS versione 4a.

Media CDN supporta la firma AWS versione 4 per autenticare le richieste di origine. Puoi utilizzare questa funzionalità per connettere Media CDN ai tuoi bucket privati compatibili con Amazon S3 e assicurarti che i tuoi contenuti vengano condivisi solo con Media CDN. Puoi anche abilitare l'autenticazione client per una maggiore difesa in profondità. Per maggiori informazioni, vedi Utilizzare le richieste firmate.

Prima di iniziare

Verifica di disporre delle seguenti risorse:

  • Un bucket Amazon S3 privato.

  • Un account utente AWS IAM dedicato per accedere al precedente bucket Amazon S3 privato. Assicurati che il bucket conceda l'autorizzazione s3:getObject all'account utente AWS IAM. Per ulteriori informazioni sulla configurazione dell'accesso al bucket Amazon S3, consulta Gestione di identità e accessi in Amazon S3.

  • L'ID della chiave di accesso AWS e la chiave di accesso del secret AWS per l'account utente AWS IAM dedicato. Per ulteriori informazioni, consulta Gestione delle chiavi di accesso per gli utenti IAM.

  • Se non hai mai utilizzato Secret Manager, configura Secret Manager.

Crea un agente di servizio per Media CDN

Per creare un agente di servizio per Media CDN, utilizza il comando gcloud beta services identity create.

gcloud

gcloud beta services identity create \
    --project PROJECT_ID \
    --service=networkservices.googleapis.com

Sostituisci PROJECT_ID con l'ID progetto.

Per saperne di più, consulta Attivare la creazione dell'agente di servizio.

Archivia le chiavi di accesso in Secret Manager

Segui questi passaggi per creare un secret in Secret Manager.

Console

  1. Nella console Google Cloud, vai alla pagina Secret Manager.

    Vai a Secret Manager

  2. Nella pagina Secret Manager, fai clic su Crea secret.

  3. Nella sezione Dettagli secret, completa quanto segue:

    1. Nel campo Nome, inserisci un nome per il secret, ad esempio aws-access-key-id.

    2. Nella sezione Valore secret, ignora il campo Carica file.

    3. Nel campo Valore secret, inserisci la chiave di accesso al secret AWS.

  4. Ignora le sezioni rimanenti.

  5. Fai clic su Crea secret.

gcloud

Assicurati di utilizzare la versione 402.0.0 o successiva di Google Cloud CLI. In Compute Engine o Google Kubernetes Engine (GKE), devi eseguire l'autenticazione con l'ambito cloud-platform.

gcloud secrets create SECRET_NAME \
    --replication-policy="automatic" \
    --data-file="PATH_TO_AWS_SECRET_ACCESS_KEY"

Sostituisci quanto segue:

  • SECRET_NAME: il nome del tuo segreto, ad esempio aws-access-key-id
  • PATH_TO_AWS_SECRET_ACCESS_KEY: il percorso del valore della chiave di accesso al secret AWS

Per informazioni sull'aggiunta di versioni del secret, consulta Aggiungere una versione del secret.

Concedi il ruolo di accesso a Secret Manager

Segui questi passaggi per concedere il ruolo Funzione di accesso ai secret di Secret Manager (roles/secretmanager.secretAccessor) all'account di servizio Media CDN.

Console

  1. Nella console Google Cloud, vai alla pagina Secret Manager.

    Vai a Secret Manager

  2. Seleziona il secret.
  3. Seleziona Autorizzazioni, quindi Concedi l'accesso. Viene visualizzata la finestra di dialogo Concedi l'accesso.
  4. Nella sezione Aggiungi entità, inserisci l'account di servizio Media CDN nel campo Nuove entità come segue:
    service-PROJECT_NUMBER@gcp-sa-mediaedgefill.iam.gserviceaccount.com

    Sostituisci PROJECT_NUMBER con il numero del tuo progetto.

  5. Nella sezione Assegna ruoli, per Seleziona un ruolo, seleziona Secret Manager e quindi Funzione di accesso ai secret di Secret Manager.
  6. Fai clic su Salva.

gcloud

gcloud secrets add-iam-policy-binding \
projects/PROJECT_NUMBER/secrets/SECRET_NAME \
    --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-mediaedgefill.iam.gserviceaccount.com" \
    --role="roles/secretmanager.secretAccessor"

Sostituisci quanto segue:

  • PROJECT_NUMBER: il numero del tuo progetto
  • SECRET_NAME: il nome del tuo secret

Configura Media CDN per l'autenticazione nel bucket di origine esterna

Console

  1. Nella console Google Cloud, vai alla pagina Media CDN.

    Vai a Media CDN

  2. Fai clic sulla scheda Origini.

  3. Fai clic sul nome dell'origine che vuoi configurare.

    Viene visualizzata la pagina Dettagli origine cache Edge.

  4. Fai clic sul pulsante Edit (Modifica).

  5. Per Indirizzo di origine, scegli Specifica un FQDN o un indirizzo IP, quindi inserisci il nome di dominio completo o l'indirizzo IP.

  6. Nella sezione Autenticazione origine privata, seleziona Autentica la richiesta di Media CDN in questa origine con la versione 4 della firma di AWS.

  7. Specifica le seguenti informazioni:

    • ID chiave: l'ID della chiave di accesso AWS con autorizzazioni di lettura per la tua origine.
    • Fai riferimento a un secret: l'ID della tua chiave di accesso in Secret Manager e la relativa versione. Puoi selezionare un ID esistente, inserirne uno manualmente o creare un nuovo ID e selezionarlo.
    • Regione: la regione in cui si trova il bucket Amazon S3, ad esempio us-east-1
  8. Per Protocollo, seleziona HTTPS.

  9. Fai clic su Aggiorna origine.

gcloud

  1. Per esportare la configurazione corrente del tuo servizio in un file YAML, esegui il comando gcloud edge-cache services export:

    gcloud edge-cache services export SERVICE_NAME \
        --destination=FILENAME.yaml
    

    Sostituisci quanto segue:

    • SERVICE_NAME: il nome del servizio Media CDN
    • FILENAME: il nome del file YAML
  2. In Cloud Shell, utilizza un editor di testo per modificare il file YAML.

  3. Aggiorna il file YAML in modo che abbia le seguenti righe:

    name: ORIGIN_NAME
    originAddress: "S3_BUCKET_NAME.s3.S3_REGION.amazonaws.com"
    protocol: HTTPS
    awsV4Authentication:
      accessKeyId: "AWS_ACCESS_KEY_ID"
      secretAccessKeyVersion: "projects/PROJECT_NUMBER/secrets/SECRET_NAME/versions/SECRET_VERSION"
      originRegion: "S3_REGION"
    

    Sostituisci quanto segue:

    • ORIGIN_NAME: un nome da te impostato per questa origine
    • S3_BUCKET_NAME: il nome del tuo bucket Amazon S3
    • S3_REGION: la regione in cui si trova il bucket Amazon S3, ad esempio us-east-1
    • AWS_ACCESS_KEY_ID: il tuo ID chiave di accesso AWS con autorizzazioni di lettura per la tua origine
    • PROJECT_NUMBER: il numero del tuo progetto
    • SECRET_NAME: l'ID della tua chiave di accesso in Secret Manager
    • SECRET_VERSION: la versione del secret da utilizzare
  4. Configura le riscritture di host e percorsi per le richieste alla tua origine. Ad esempio, per mappare tutte le richieste con il prefisso del percorso /vod/, configura un hostRewrite che corrisponda a originAddress elencato nel file YAML di EdgeCacheService. Il seguente esempio di codice mostra come utilizzare hostRewrite:

    name: SERVICE_NAME
    routeRules:
      - priority: 1
      - description: ROUTE_DESCRIPTION
        origin: ORIGIN_NAME
        matchRules:
        - prefixMatch: "/vod/"
        routeAction:
          urlRewrite:
            hostRewrite: "S3_BUCKET_NAME.s3.S3_REGION.amazonaws.com"
            pathPrefixRewrite: "/"
          cdnPolicy:
            cacheMode: CACHE_ALL_STATIC
            defaultTtl: 3600s
    

    Sostituisci SERVICE_NAME con il nome del tuo EdgeCacheService.

    Per maggiori informazioni, consulta Utilizzare i backend di archiviazione di terze parti.

  5. Salva il file YAML.

  6. Per aggiornare la configurazione, importa il file YAML.

    gcloud edge-cache origins import ORIGIN_NAME \
        --source=FILENAME.yaml
    

Dopo aver configurato Media CDN per l'autenticazione nel bucket esterno, Media CDN genera un'intestazione di autorizzazione HTTP per tutte le richieste inviate alla tua intestazione. Tutti parametri di ricerca vengono rimossi dal calcolo della firma e dalla richiesta all'origine.

La tua origine potrebbe aggiungere intestazioni aggiuntive alle tue risposte. Per rimuovere le intestazioni della risposta prima della pubblicazione per i client, consulta Impostare le intestazioni personalizzate. Per ulteriori informazioni sulla configurazione delle origini, consulta Connettività e schermatura dell'origine.