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 brinda a Cloud CDN acceso a recursos a largo plazo a un bucket privado de Amazon S3 o a un objeto compatible. El uso de orígenes privados evita que los clientes omitan Cloud CDN y accedan a tu origen directamente.

Esta función es compatible con Cloud CDN con un balanceador de cargas de HTTP(S) externo global o un balanceador de cargas de HTTP(S) externo global.

La autenticación de origen privado se orienta a los orígenes, mientras que las URL firmadas y las cookies firmadas se orientan al cliente. Puedes habilitar ambas para el mismo contenido. La autenticación de origen privado limita el acceso de tus orígenes y contenido a la CDN. Las URL y cookies firmadas controlan qué usuarios pueden acceder a Cloud CDN.

Antes de comenzar

Antes de usar la autenticación de origen privado, haz lo siguiente:

  • Obtén la clave de acceso y el ID de la clave de acceso para tu bucket de Amazon S3 o, también, otro bucket de objetos compatible. Si quieres ver los pasos detallados para Amazon S3, consulta Accede a AWS mediante tus credenciales de AWS: Acceso programático.

  • Si tu almacén de objetos espera un valor particular 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 encabezado Host que el cliente usó para conectarse al balanceador de cargas de HTTP(S) externo. Para conocer los pasos de configuración, consulta Trabaja con encabezados de solicitud personalizados. Para ver un ejemplo específico, consulta Configura un balanceador de cargas con un backend externo.

  • Si es necesario, actualiza a la última versión de Google Cloud CLI:

    gcloud components update
    

Para obtener más información, consulta Cómo autenticar contenido.

Configura la autenticación de origen privado

A fin de configurar la autenticación de origen privado para los buckets de Amazon S3 o los almacenes de objetos compatibles, usa las siguientes instrucciones:

gcloud

  1. Exporta la configuración de backend para tu origen privado a un archivo .yaml con el comando gcloud beta compute backend-services export:

    gcloud beta compute backend-services export BACKEND_SERVICE_NAME \
       [--destination=DESTINATION]
    

    Reemplaza DESTINATION por el nombre del archivo .yaml, por ejemplo, my-private-origin.yaml.

  2. Autentica tus solicitudes de backend con la versión 4 de AWS Signature mediante la especificación de 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 único de la clave de acceso
    • ACCESS_KEY: Es la clave de acceso que se usa para la autenticación.
    • 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. 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/beta/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 al servicio de backend con el comando gcloud beta compute backend-services import:

    gcloud beta 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 versión 4 de AWS Signature, especifica estas opciones de configuración adicionales en la sección securitySettings de backendServices.

Para los servicios de backend, usa la llamada a la API Method: backendServices.insert o Method: backendServices.update.

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/global/backendServices
PUT https://compute.googleapis.com/compute/beta/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 único de la clave de acceso
  • ACCESS_KEY: Es la clave de acceso que se usa para la autenticación.
  • 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. 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 configuraciones, Cloud CDN genera un encabezado de autorización HTTP para todas las solicitudes a tu origen.

¿Qué sigue?