Configura la autenticación de origen privado

En esta página, se brinda una descripción general de la autenticación de origen privado y se incluyen instrucciones para usarla con Cloud CDN.

La autenticación de origen privado otorga a Cloud CDN acceso a largo plazo a los recursos de buckets privados de Amazon S3 o a otros almacenes de objetos compatibles. El uso de orígenes privados impide que los clientes omitan Cloud CDN y accedan directamente a tu origen.

Esta función es compatible con Cloud CDN, ya sea con un balanceador de cargas de aplicaciones externo global o con 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 opciones para el mismo contenido. La autenticación de origen privado limita el acceso que no es de CDN a tus orígenes y contenido. Las URLs y cookies firmadas 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 un origen privado, sigue estas instrucciones:

Consola

  1. En la consola de Google Cloud , ve a la página Cloud CDN.

    Ir a Cloud CDN

  2. Haz clic en el nombre del origen que deseas configurar. El origen debe ser del tipo Origen personalizado.

  3. En la página Detalles del origen, haz clic en el botón Editar.

  4. Para navegar a la sección Reglas del host y de la ruta de acceso, haz clic en Siguiente.

  5. Para navegar a la sección Rendimiento de la caché, haz clic en Siguiente.

  6. En la sección Autenticación de origen privado, selecciona Autenticar 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 almacén 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.
  7. Haz clic en Listo.

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: el ID de la clave de acceso HMAC
    • ACCESS_KEY: la clave de acceso HMAC
    • ACCESS_KEY_VERSION (opcional): un nombre único que puedes definir para representar la versión de clave
    • REGION: 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
    
  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 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 la 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 HMAC
  • ACCESS_KEY: la clave de acceso HMAC
  • ACCESS_KEY_VERSION (opcional): un nombre único que puedes definir para representar la versión de clave
  • REGION: 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

El siguiente fragmento muestra el contenido de un cuerpo de la 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 de forma automática en s3 para crear la firma. Una vez que se apliquen estos parámetros de configuración, 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

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 para que se almacene en caché todo el contenido que se entrega desde el origen.

Como alternativa, si no quieres forzar que todo el contenido se almacene en caché de la misma manera, cambia el modo a Usar configuración de origen en función de los encabezados de control de caché o Almacena en caché el contenido estático, y asegúrate de que el encabezado Cache-Control esté configurado correctamente en el contenido que se entrega desde tu origen.

¿Qué sigue?