En esta página, se proporciona una descripción general de la autenticación de origen privado y las instrucciones para usarla con Cloud CDN.
La autenticación de origen privado le da a Cloud CDN acceso a los recursos a largo plazo a buckets privados de Amazon S3 o a otros almacenes de objetos compatibles. Usando de origen privado evita que los clientes omitan Cloud CDN y el acceso directo al origen.
Esta función es compatible con Cloud CDN con un externo global o un balanceador de cargas de aplicaciones clásico.
La autenticación de origen privado está orientada al origen, mientras que URL firmadas y las cookies firmadas son para el cliente. Tú puede habilitar ambos para el mismo contenido. Límites de autenticación de origen privado sin CDN a tus orígenes y contenido. Control de URLs firmadas y cookies qué usuarios pueden acceder a Cloud CDN.
Antes de comenzar
Crea una clave de código de autenticación de mensajes basada en hash (HMAC) para la autenticación de servicio y asociarlos con una cuenta de servicio. Anota el acceso. clave y secreto.
Consulta Accede a AWS con tus credenciales de AWS: acceso programático en la documentación de AWS.
Configura un balanceador de cargas con el backend externo.
Si tu almacén de objetos espera un valor particular para el
Host
de la solicitud HTTP asegúrate de que esté configurado en el servicio de backend. Si no configura un encabezado de solicitud personalizado, el servicio de backend conserva elHost
que el cliente usó para conectarse al balanceador de cargas de aplicaciones externo.Para conocer los pasos de configuración, consulta Trabaja con encabezados de solicitud personalizados. Para ver un ejemplo específico, consulta Configura un balanceador de cargas con un backend externo.
Si es necesario, actualiza a la última versión de Google Cloud CLI:
gcloud components update
Configura la autenticación para orígenes privados
Para configurar la autenticación de origen privado, sigue las siguientes instrucciones:
gcloud
Exporta la configuración de backend de tu origen privado a un YAML con
gcloud compute backend-services export
:gcloud compute backend-services export BACKEND_SERVICE_NAME \ [--destination=DESTINATION]
Reemplaza
DESTINATION
por el nombre del YAML. comomy-private-origin.yaml
.Para autenticar tus solicitudes de backend con la clave HMAC, especificar estas opciones de configuración adicionales en el Sección
securitySettings
debackendServices
:securitySettings: awsV4Authentication: accessKeyId: ACCESS_KEY_ID accessKey: ACCESS_KEY [accessKeyVersion: ACCESS_KEY_VERSION] originRegion: REGION …]
Reemplaza lo siguiente:
ACCESS_KEY_ID
: El ID de clave de acceso de HMACACCESS_KEY
: La clave de acceso HMACACCESS_KEY_VERSION
(opcional): Un nombre único que puedes configurar para representar la versión de claveREGION
: Es una región válida para tu almacenamiento. proveedor. Para Amazon S3, el valor no es Google Cloud región.
En el siguiente fragmento, se muestra el contenido de una muestra Archivo
my-private-origin.yaml
: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
Para actualizar tu origen privado, importa la configuración a tu servicio de backend con el Comando
gcloud compute backend-services import
:gcloud compute backend-services import BACKEND_SERVICE_NAME \ [--source=SOURCE]
Reemplaza
SOURCE
por el nombre del archivo YAML.
API
Para autenticar tus solicitudes de backend con la clave HMAC, especifica estas
opciones de configuración adicionales en la sección securitySettings
de
backendServices
Usa el
Method: backendServices.insert
o
Method: backendServices.update
llamada a la API.
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
Agrega el siguiente fragmento al cuerpo de solicitud JSON:
securitySettings: { awsV4Authentication: { accessKeyId: ACCESS_KEY_ID, accessKey: ACCESS_KEY, [accessKeyVersion: ACCESS_KEY_VERSION], originRegion: REGION } }
Reemplaza lo siguiente:
ACCESS_KEY_ID
: El ID de clave de acceso de HMACACCESS_KEY
: La clave de acceso HMACACCESS_KEY_VERSION
(opcional): Es un nombre único que puedes configurar para representar la versión de claveREGION
: Es una región válida para tu almacenamiento. proveedor. Para Amazon S3, el valor no es Google Cloud región.
En el siguiente fragmento, se muestra el contenido de una muestra Cuerpo de la solicitud JSON:
securitySettings: { awsV4Authentication: { accessKeyId: "AKIDEXAMPLE", accessKey: "c4afb1cc5771d871763a393e44b703571b55cc28424d1a5e86da6ed3c154a4b9", accessKeyVersion: "prod-access-key-v1.2", originRegion: "us-east-2" } }
El nombre del servicio se establece automáticamente en s3
para crear la firma.
Luego de aplicar estos parámetros de configuración, Cloud CDN genera un
Encabezado de autorización HTTP para todas las solicitudes a tu origen.
Almacena en caché las respuestas autenticadas de forma privada
Asegúrate de que el contenido autenticado de forma privada se almacene en caché Cloud CDN
Para ello, configura el modo de almacenamiento en caché para Forzar el almacenamiento en caché de todo el contenido y especificar un TTL, de modo que todo el contenido que se entregue desde el origen se almacena en caché.
Como alternativa, si no quieres forzar el almacenamiento en caché de todo el contenido de la misma manera,
Cambiar el modo de caché a Usar configuración de origen en función de los encabezados de control de caché
o Almacena en caché el contenido estático, y asegúrate de que el encabezado Cache-Control
esté configurada correctamente en el contenido que se entrega desde tu origen.