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

Configura la autenticación para orígenes privados

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

gcloud

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

  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: El ID de clave de acceso de HMAC
    • ACCESS_KEY: La clave de acceso HMAC
    • ACCESS_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
    
  3. 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 HMAC
  • ACCESS_KEY: La clave de acceso HMAC
  • ACCESS_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.

¿Qué sigue?