Questa pagina fornisce una panoramica dell'autenticazione dell'origine privata e delle istruzioni per utilizzarla con Cloud CDN.
L'autenticazione dell'origine privata consente a Cloud CDN di accedere 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 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 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 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 associarla a un account di servizio. Prendi nota della chiave di accesso e del secret.
Consulta Accesso ad AWS con le credenziali AWS: accesso programmatico nella documentazione di AWS.
Configura un bilanciatore del carico con il backend esterno.
Se il tuo archivio di oggetti prevede un valore particolare per l'intestazione
Host
della richiesta HTTP, assicurati che sia configurato nel servizio di backend. Se non configuri un'intestazione della richiesta personalizzata, il servizio di backend conserva l'intestazioneHost
che il client ha utilizzato per connettersi all'Application Load Balancer esterno.Per la procedura di configurazione, consulta Utilizzo delle intestazioni delle richieste 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 dell'origine privata, segui queste istruzioni:
gcloud
Esporta la configurazione del backend per l'origine privata in un file
.yaml
utilizzando il comandogcloud compute backend-services export
:gcloud compute backend-services export BACKEND_SERVICE_NAME \ [--destination=DESTINATION]
Sostituisci
DESTINATION
con 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
securitySettings
dibackendServices
: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 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 fornitore di spazio di archiviazione. Per Amazon S3, il valore non è 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
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 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 fornitore di spazio di archiviazione. Per Amazon S3, il valore non è una regione Google Cloud.
Il seguente snippet mostra i contenuti di un corpo di 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 implementato queste configurazioni, Cloud CDN genera un'intestazione di autorizzazione HTTP per tutte le richieste alla tua origine.
Memorizzazione nella cache delle risposte autenticate privatamente
È consigliabile assicurarsi che i contenuti autenticati privatamente vengano memorizzati nella cache da Cloud CDN.
Per farlo, imposta la modalità cache su Forza la 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, modifica la modalità cache in Utilizza impostazione origine basata sulle intestazioni Cache-Control o Memorizza nella cache contenuti statici e assicurati che l'intestazione Cache-Control
sia impostata correttamente sui contenuti forniti dalla tua origine.