En esta página, se proporciona una descripción general de la autenticación de origen privado, además de instrucciones para usarla con Cloud CDN.
La autenticación de origen privado le brinda a Cloud CDN acceso a recursos a largo plazo a buckets privados de Amazon S3 o a otros almacenes de objetos compatibles. El uso de orígenes privados evita que los clientes omitan Cloud CDN y accedan a tu origen directamente.
Esta función es compatible con Cloud CDN con un balanceador de cargas de aplicaciones externo global o un balanceador de cargas de aplicaciones clásico.
La autenticación de origen privado está orientada al origen, mientras que las URLs firmadas y las cookies firmadas están orientadas al cliente. Puedes habilitar ambas para el mismo contenido. La autenticación de origen privado limita el acceso no de CDN a tus orígenes y contenido. Las URLs y cookies firmadas 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 asociarla con una cuenta de servicio. Anota la clave de acceso y el secreto.
Consulta Cómo acceder 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 estas instrucciones:
Console
En la consola de Google Cloud, ve a la página Cloud CDN.
Haz clic en el nombre del origen que deseas configurar. El origen debe ser del tipo Origen personalizado.
En la página Detalles del origen, haz clic en el botón Editar.
Para navegar a la sección Reglas de host y ruta de acceso, haz clic en Siguiente.
Para navegar a la sección Rendimiento de caché, haz clic en Siguiente.
En la sección Autenticación de origen privado, selecciona Autentica solicitudes a este origen con la versión 4 de la firma de AWS. Luego, especifica la siguiente información:
- ID de clave: Es la clave de acceso para tu bucket de Amazon S3 o cualquier otro almacén de objetos compatible.
- Clave: Es la clave secreta que se usa para autenticar el almacenamiento de objetos. Si usas un bucket privado de Cloud Storage, especifica la clave HMAC.
- Versión de clave: Es un nombre único para representar la versión de clave.
- Región: Es la región en la que se encuentra tu almacén de objetos, por ejemplo,
us-east-1
.
Haz clic en Listo.
gcloud
Exporta la configuración de backend de 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 la clave de acceso 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 el caso de 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 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 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 la clave de acceso 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 el caso de 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.
Una vez que se implementen estas configuraciones, Cloud CDN generará un
encabezado de autorización HTTP para todas las solicitudes a tu origen.
Almacena en caché las respuestas autenticadas de forma privada
Te recomendamos que te asegures de que Cloud CDN almacenen en caché el contenido autenticado de forma privada.
Para ello, establece el modo de caché en Forzar el almacenamiento en caché de todo el contenido y especifica un TTL para que todo el contenido que se entrega desde el origen se almacene en caché.
Como alternativa, si no quieres forzar que todo el contenido se almacene en caché de la misma manera, cambia el modo de caché a Usar configuración de origen en función de los encabezados de control de caché o Almacenar en caché contenido estático y asegúrate de que el encabezado Cache-Control
esté configurado correctamente en el contenido que se entrega desde tu origen.