Configura la autenticación de origen privado

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 de recursos a largo plazo a los 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 al origen directamente.

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 es orientada al origen, mientras que las URL firmadas y las cookies firmadas lo son para los clientes. 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 URL firmadas y las cookies controlan qué usuarios pueden acceder a Cloud CDN.

Antes de comenzar

Configura la autenticación para orígenes privados

Para configurar la autenticación de origen privado, sigue estas instrucciones:

gcloud

  1. 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.

  2. Para autenticar tus solicitudes de backend con la clave HMAC, especifica estas opciones de configuración adicionales en la sección securitySettings de backendServices:

    securitySettings:
      awsV4Authentication:
        accessKeyId: ACCESS_KEY_ID
        accessKey: ACCESS_KEY
        [accessKeyVersion: ACCESS_KEY_VERSION]
        originRegion: REGION
    …]
    

    Reemplaza lo siguiente:

    • ACCESS_KEY_ID: Es el ID de la clave de acceso de HMAC.
    • ACCESS_KEY: Es la clave de acceso HMAC.
    • ACCESS_KEY_VERSION (opcional): Es un nombre único que puedes establecer para representar la versión de clave (opcional).
    • REGION: Es una región válida para el proveedor de almacenamiento. Para 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
    
  3. 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 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

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: Es el ID de la clave de acceso de HMAC.
  • ACCESS_KEY: Es la clave de acceso HMAC.
  • ACCESS_KEY_VERSION (opcional): Es un nombre único que puedes establecer para representar la versión de clave.
  • REGION: Es una región válida para el proveedor de almacenamiento. Para 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 implementadas estas opciones de configuración, Cloud CDN genera un encabezado de autorización HTTP para todas las solicitudes a tu origen.

Cómo almacenar en caché las respuestas autenticadas de forma privada

Recomendamos que te asegures 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 entregado 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 la configuración de origen en función de los encabezados de control de caché o Almacena el contenido estático en la caché y asegúrate de que el encabezado Cache-Control esté configurado correctamente en el contenido entregado desde tu origen.

¿Qué sigue?