Questa pagina fornisce una panoramica sull'autenticazione dell'origine privata e le istruzioni per utilizzarla con Cloud CDN.
L'autenticazione dell'origine privata consente a Cloud CDN l'accesso alle risorse a lungo termine a bucket Amazon S3 privati o ad altri archivi di oggetti compatibili. L'utilizzo di origini private impedisce ai client di bypassare Cloud CDN e accedere direttamente all'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 rivolti al client. Puoi attivare entrambi per gli stessi contenuti. L'autenticazione dell'origine privata limita l'accesso non CDN alle tue origini e ai tuoi contenuti. URL e cookie firmati controllano quali utenti possono accedere a Cloud CDN.
Prima di iniziare
Crea una chiave HMAC (Hash-based Message Authentication Code) per autenticare le richieste e associala a un service account. Prendi nota della chiave di accesso e del secret.
Consulta la sezione sull'accesso programmatico ad AWS tramite le credenziali AWS nella documentazione di AWS.
Configura un bilanciatore del carico con un backend esterno.
Se l'archivio di oggetti prevede un valore specifico per l'intestazione
Hostdella richiesta HTTP, assicurati che sia configurato nel servizio di backend. Se non configuri un'intestazione della richiesta personalizzata, un servizio di backend conserva l'intestazioneHostche il client ha utilizzato per connettersi al bilanciatore del carico delle applicazioni esterno.Per i passaggi di configurazione, consulta Utilizzo delle intestazioni della richiesta personalizzate. Per un esempio specifico, consulta Configurazione di un bilanciatore del carico con un backend esterno.
Se necessario, esegui l'aggiornamento all'ultima versione di Google Cloud CLI:
gcloud components update
Configura l'autenticazione per le origini private
Per configurare l'autenticazione per le origini private, utilizza le seguenti istruzioni:
Console
Nella console Google Cloud , vai alla pagina Cloud CDN.
Fai clic sul nome dell'origine che vuoi configurare. L'origine deve essere di tipo Origine personalizzata.
Nella pagina Dettagli origine, fai clic sul pulsante Modifica.
Per andare alla sezione Regole host e percorso, fai clic su Avanti.
Per andare alla sezione Prestazioni della cache, fai clic su Avanti.
Nella sezione Autenticazione dell'origine privata, seleziona Autentica le richieste a questa origine con la versione 4 della firma di AWS. Quindi, specifica le seguenti informazioni:
- ID chiave: chiave di accesso per il tuo bucket Amazon S3 o un altro archivio di oggetti compatibile.
- Chiave: la chiave del secret utilizzata per l'autenticazione nell'archivio di oggetti. Se utilizzi un bucket Cloud Storage privato, specifica la chiave HMAC.
- Versione della chiave: un nome univoco per rappresentare la versione della chiave.
- Regione: la regione in cui si trova l'archivio di oggetti, ad esempio
us-east-1.
Fai clic su Fine.
gcloud
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
DESTINATIONcon il nome del file YAML, ad esempiomy-private-origin.yaml.Per autenticare le richieste di backend utilizzando la chiave HMAC, specifica queste opzioni di configurazione aggiuntive nella sezione
securitySettingsdibackendServices:securitySettings: awsV4Authentication: accessKeyId: ACCESS_KEY_ID accessKey: ACCESS_KEY [accessKeyVersion: ACCESS_KEY_VERSION] originRegion: REGION …]Sostituisci quanto segue:
ACCESS_KEY_ID: l'ID chiave di accesso HMACACCESS_KEY: la chiave di accesso HMACACCESS_KEY_VERSION(Facoltativo) Un nome univoco che puoi impostare per rappresentare la versione della chiaveREGION: una regione valida per il tuo fornitore di spazio di archiviazione. Per Amazon S3, il valore non è una regione Google Cloud.
Il seguente snippet mostra i contenuti di un file
my-private-origin.yamldi 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-2Per 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
SOURCEcon 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 chiave di accesso HMACACCESS_KEY: la chiave di accesso HMACACCESS_KEY_VERSION(Facoltativo) Un nome univoco che puoi impostare per rappresentare la versione della chiaveREGION: una regione valida per il tuo fornitore di spazio di archiviazione. Per Amazon S3, il valore non è una regione Google Cloud.
Il seguente snippet mostra i contenuti di un corpo della 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 la creazione della firma.
Una volta implementate queste configurazioni, Cloud CDN genera un'intestazione di autorizzazione HTTP per tutte le richieste all'origine.
Memorizza nella cache le risposte autenticate privatamente
Potresti voler assicurarti che i contenuti autenticati privatamente vengano memorizzati nella cache da Cloud CDN.
Per farlo, imposta la modalità cache su Forza memorizzazione nella cache di tutto il contenuto e specifica un TTL, in modo che tutti i contenuti pubblicati dall'origine vengano memorizzati nella cache.
In alternativa, se non vuoi forzare la memorizzazione nella cache di tutti i contenuti nello stesso modo, imposta la modalità cache su Usa le impostazioni dell'origine in base alle intestazioni Cache-Control o Memorizza contenuto statico nella cache e assicurati che l'intestazione Cache-Control sia impostata correttamente sui contenuti pubblicati dall'origine.