En esta página se ofrece una descripción general de la autenticación de origen privado y se explica cómo usarla con Cloud CDN.
La autenticación de origen privado proporciona a Cloud CDN acceso a largo plazo a los recursos de los segmentos de Amazon S3 privados u otros almacenes de objetos compatibles. Si usas orígenes privados, los clientes no podrán saltarse Cloud CDN y acceder directamente a tu origen.
Esta función se admite en Cloud CDN con un balanceador de carga de aplicación externo global o un balanceador de carga de aplicación 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 opciones para el mismo contenido. La autenticación de origen privado limita el acceso a tus orígenes y contenido que no se realiza a través de una CDN. Las URLs y las cookies firmadas controlan qué usuarios pueden acceder a Cloud CDN.
Antes de empezar
Crea una clave de código de autenticación de mensajes basado en hash (HMAC) para autenticar solicitudes y asóciala a una cuenta de servicio. Anota la clave de acceso y el secreto.
Consulta Acceder a AWS con tus credenciales de AWS: acceso programático en la documentación de AWS.
Configura un balanceador de carga con el backend externo.
Si tu almacén de objetos espera un valor concreto 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 ha usado para conectarse al balanceador de carga de aplicaciones externo.Para ver los pasos de configuración, consulta Trabajar con encabezados de solicitud personalizados. Para ver un ejemplo específico, consulta Configurar un balanceador de carga con un backend externo.
Si es necesario, actualiza a la versión más reciente de la CLI de Google Cloud:
gcloud components update
Configurar la autenticación para orígenes privados
Para configurar la autenticación de origen privado, sigue estas instrucciones:
Consola
En la Google Cloud consola, ve a la página Cloud CDN.
Haga clic en el nombre del origen que quiera configurar. El origen debe ser de tipo Origen personalizado.
En la página Detalles del origen, haga clic en el botón Editar.
Para ir a la sección Reglas de host y ruta, haga clic en Siguiente.
Para ir a la sección Rendimiento de la caché, haz clic en Siguiente.
En la sección Autenticación de origen privado, seleccione Autenticar solicitudes a este origen con la versión 4 de la firma de AWS. A continuación, especifica la siguiente información:
- ID de clave: clave de acceso de tu segmento de Amazon S3 u otro almacén de objetos compatible.
- Clave: la clave secreta que se usa para autenticarse en el almacén de objetos. Si usas un segmento de Cloud Storage privado, especifica la clave HMAC.
- Versión de la clave: nombre único que representa la versión de la clave.
- Región: 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]
Sustituye
DESTINATION
por el nombre del archivo YAML (por ejemplo,my-private-origin.yaml
).Para autenticar las solicitudes de backend mediante 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 …]
Haz los cambios siguientes:
ACCESS_KEY_ID
: el ID de clave de acceso HMACACCESS_KEY
: la clave de acceso HMACACCESS_KEY_VERSION
(opcional): un nombre único que puedes definir para representar la versión de la clave.REGION
: una región válida para tu proveedor de almacenamiento. En el caso de Amazon S3, el valor no es una Google Cloud región.
En el siguiente fragmento se muestra el contenido de un archivo
my-private-origin.yaml
de ejemplo: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 backend mediante el comando
gcloud compute backend-services import
:gcloud compute backend-services import BACKEND_SERVICE_NAME \ [--source=SOURCE]
Sustituye
SOURCE
por el nombre del archivo YAML.
API
Para autenticar las solicitudes de backend mediante 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
Añade el siguiente fragmento al cuerpo de la solicitud JSON:
securitySettings: { awsV4Authentication: { accessKeyId: ACCESS_KEY_ID, accessKey: ACCESS_KEY, [accessKeyVersion: ACCESS_KEY_VERSION], originRegion: REGION } }
Haz los cambios siguientes:
ACCESS_KEY_ID
: el ID de clave de acceso HMACACCESS_KEY
: la clave de acceso HMACACCESS_KEY_VERSION
(opcional): nombre único que puedes asignar para representar la versión de la clave.REGION
: una región válida para tu proveedor de almacenamiento. En el caso de Amazon S3, el valor no es una Google Cloud región.
El siguiente fragmento muestra el contenido de un cuerpo de solicitud JSON de ejemplo:
securitySettings: { awsV4Authentication: { accessKeyId: "AKIDEXAMPLE", accessKey: "c4afb1cc5771d871763a393e44b703571b55cc28424d1a5e86da6ed3c154a4b9", accessKeyVersion: "prod-access-key-v1.2", originRegion: "us-east-2" } }
El nombre del servicio se define automáticamente como s3
para crear la firma.
Una vez que se hayan aplicado estas configuraciones, Cloud CDN generará un encabezado de autorización HTTP para todas las solicitudes a su origen.
Almacenar en caché las respuestas autenticadas de forma privada
Puede que quieras asegurarte de que Cloud CDN almacena en caché el contenido autenticado de forma privada.
Para ello, define el modo de caché como Forzar el almacenamiento en caché de todo el contenido y especifica un TTL para que se almacene en caché todo el contenido que se sirva desde el origen.
Si no quieres que todo el contenido se almacene en caché de la misma forma, puedes cambiar el modo de caché a Usar configuración del origen en función de los encabezados Cache-Control o Almacenar en caché contenido estático y asegurarte de que el encabezado Cache-Control
esté configurado correctamente en el contenido que se sirve desde tu origen.