Configurar la autenticación de origen privado

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

Configurar la autenticación para orígenes privados

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

Consola

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

    Ir a Cloud CDN

  2. Haga clic en el nombre del origen que quiera configurar. El origen debe ser de tipo Origen personalizado.

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

  4. Para ir a la sección Reglas de host y ruta, haga clic en Siguiente.

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

  6. 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.
  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]
    

    Sustituye DESTINATION por el nombre del archivo YAML (por ejemplo, my-private-origin.yaml).

  2. Para autenticar las solicitudes de backend mediante 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
    …]
    

    Haz los cambios siguientes:

    • ACCESS_KEY_ID: el ID de 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 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
    
  3. 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 HMAC
  • ACCESS_KEY: la clave de acceso HMAC
  • ACCESS_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.

Siguientes pasos