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. Usar orígenes privados evita que los clientes omitan Cloud CDN y accedan directamente a tu origen.
Esta función es compatible con Cloud CDN con un balanceador de cargas de aplicaciones externo global o uno clásico.
La autenticación de origen privado se orienta al origen, mientras que las URL firmadas y las cookies firmadas se orientan al cliente. Puedes habilitar ambos para el mismo contenido. La autenticación de origen privado limita el acceso que no pertenece a una CDN a tus orígenes y contenido. Las URLs firmadas y las cookies controlan 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 autenticar solicitudes y asociarlas con una cuenta de servicio. Toma nota de la clave de acceso y el 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 encabezado
Host
de la solicitud HTTP, asegúrate de que esté configurado en el servicio de backend. Si no configuras un encabezado de solicitud personalizado, el servicio de backend conserva el encabezadoHost
que el cliente usó para conectarse al balanceador de cargas de aplicaciones externo.Para ver 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 del backend para tu origen privado a un archivo YAML con el comando
gcloud compute backend-services export
:gcloud compute backend-services export BACKEND_SERVICE_NAME \ [--destination=DESTINATION]
Reemplaza
DESTINATION
por el nombre del archivo YAML, por ejemplo,my-private-origin.yaml
.Para autenticar tus solicitudes de backend con la clave HMAC, especifica estas opciones de configuración adicionales en la 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): Es un nombre único que puedes configurar para representar la versión de clave.REGION
: Es una región válida para tu proveedor de almacenamiento. En Amazon S3, el valor no es una región de Google Cloud.
En el siguiente fragmento, se muestra el contenido de un archivo
my-private-origin.yaml
de muestra: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 el origen privado, importa la configuración al servicio de backend mediante 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 la llamada a la 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
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 clave.REGION
: Es una región válida para tu proveedor de almacenamiento. En Amazon S3, el valor no es una región de Google Cloud.
En el siguiente fragmento, se muestra el contenido de un cuerpo de solicitud JSON de muestra:
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.
Después de implementar estas opciones 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
Es posible que desees asegurarte de que Cloud CDN almacene en caché el contenido autenticado de forma privada.
Para ello, configura el modo de almacenamiento en caché en Forzar el almacenamiento en caché de todo el contenido y especifica un TTL, de modo que todo el contenido que se entrega desde el origen se almacene en caché.
Como alternativa, si no quieres forzar todo el contenido para que se almacene en caché de la misma manera, cambia el modo de caché a Usar la configuración de origen según los encabezados de control de caché o Almacenar en caché el contenido estático y asegúrate de que el encabezado Cache-Control
esté configurado de forma correcta en el contenido entregado desde tu origen.