Configura l'autenticazione dell'origine privata

Questa pagina fornisce una panoramica dell'autenticazione dell'origine privata e le istruzioni per utilizzarla con Cloud CDN.

L'autenticazione dell'origine privata fornisce a Cloud CDN l'accesso alle risorse a lungo termine ai bucket Amazon S3 privati o ad altri archivi di oggetti compatibili. L'utilizzo di origini private impedisce ai client di bypassare Cloud CDN e di accedere direttamente alla tua origine.

Questa funzionalità è supportata per Cloud CDN con un bilanciatore del carico delle applicazioni esterno globale o un bilanciatore del carico delle applicazioni classico.

L'autenticazione dell'origine privata è rivolta all'origine, mentre gli URL firmati e i cookie firmati sono lato client. Puoi abilitarli entrambi per gli stessi contenuti. L'autenticazione dell'origine privata limita l'accesso non CDN alle tue origini e ai tuoi contenuti. Gli URL firmati e i cookie consentono di controllare quali utenti possono accedere a Cloud CDN.

Prima di iniziare

Configura l'autenticazione per le origini private

Per configurare l'autenticazione dell'origine privata, segui queste istruzioni:

gcloud

  1. Esporta la configurazione del backend per l'origine privata in un file YAML utilizzando il comando gcloud compute backend-services export:

    gcloud compute backend-services export BACKEND_SERVICE_NAME \
       [--destination=DESTINATION]
    

    Sostituisci DESTINATION con il nome del file YAML, ad esempio my-private-origin.yaml.

  2. Per autenticare le richieste di backend utilizzando la chiave HMAC, specifica queste opzioni di configurazione aggiuntive nella sezione securitySettings di backendServices:

    securitySettings:
      awsV4Authentication:
        accessKeyId: ACCESS_KEY_ID
        accessKey: ACCESS_KEY
        [accessKeyVersion: ACCESS_KEY_VERSION]
        originRegion: REGION
    …]
    

    Sostituisci quanto segue:

    • ACCESS_KEY_ID: l'ID della chiave di accesso HMAC
    • ACCESS_KEY: la chiave di accesso HMAC
    • ACCESS_KEY_VERSION (facoltativo): un nome univoco che puoi impostare per rappresentare la versione della chiave
    • REGION: una regione valida per il tuo provider di archiviazione. Per Amazon S3, il valore non corrisponde a una regione Google Cloud.

    Lo snippet seguente mostra i contenuti di un file my-private-origin.yaml di esempio:

     name: shopping-cart-services
     backends:
       - description: cart-backend-1
         group: 'https://www.googleapis.com/compute/v1/projects/my-project-id/global/networkEndpointGroups/my-network-origin-group'
     securitySettings:
       awsV4Authentication:
         accessKeyId: AKIDEXAMPLE
         accessKey: c4afb1cc5771d871763a393e44b703571b55cc28424d1a5e86da6ed3c154a4b9
         accessKeyVersion: prod-access-key-v1.2
         originRegion: us-east-2
    
  3. Per aggiornare l'origine privata, importa la configurazione nel servizio di backend utilizzando il comando gcloud compute backend-services import:

    gcloud compute backend-services import BACKEND_SERVICE_NAME \
       [--source=SOURCE]
    

    Sostituisci SOURCE con il nome del file YAML.

API

Per autenticare le richieste di backend utilizzando la chiave HMAC, specifica queste opzioni di configurazione aggiuntive nella sezione securitySettings di backendServices.

Utilizza la chiamata API Method: backendServices.insert o Method: backendServices.update.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices
PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE

Aggiungi il seguente snippet al corpo della richiesta JSON:

securitySettings: {
  awsV4Authentication: {
    accessKeyId: ACCESS_KEY_ID,
    accessKey: ACCESS_KEY,
    [accessKeyVersion: ACCESS_KEY_VERSION],
    originRegion: REGION
  }
}

Sostituisci quanto segue:

  • ACCESS_KEY_ID: l'ID della chiave di accesso HMAC
  • ACCESS_KEY: la chiave di accesso HMAC
  • ACCESS_KEY_VERSION (facoltativo): un nome univoco che puoi impostare per rappresentare la versione della chiave
  • REGION: una regione valida per il tuo provider di archiviazione. Per Amazon S3, il valore non corrisponde a una regione Google Cloud.

Il seguente snippet mostra i contenuti del corpo di una richiesta JSON di esempio:

securitySettings: {
  awsV4Authentication: {
    accessKeyId: "AKIDEXAMPLE",
    accessKey: "c4afb1cc5771d871763a393e44b703571b55cc28424d1a5e86da6ed3c154a4b9",
    accessKeyVersion: "prod-access-key-v1.2",
    originRegion: "us-east-2"
  }
}

Il nome del servizio viene impostato automaticamente su s3 per creare la firma. Dopo aver impostato queste configurazioni, Cloud CDN genera un'intestazione di autorizzazione HTTP per tutte le richieste alla tua origine.

Memorizza nella cache le risposte autenticate privatamente

È consigliabile che i contenuti autenticati privatamente vengano memorizzati nella cache da Cloud CDN.

Per farlo, imposta la modalità cache su Forza la memorizzazione nella cache di tutti i contenuti e specifica un TTL, in modo che tutti i contenuti forniti dall'origine vengano memorizzati nella cache.

In alternativa, se non vuoi forzare la memorizzazione nella cache di tutti i contenuti allo stesso modo, cambia la modalità cache selezionando Utilizza l'impostazione dell'origine basata sulle intestazioni Cache-Control o Memorizza nella cache i contenuti statici e assicurati che l'intestazione Cache-Control sia impostata correttamente per i contenuti forniti dalla tua origine.

Passaggi successivi