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 encabezadoHost
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
Exporta la configuración de backend para tu origen privado a un archivo
.yaml
con el comandogcloud 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
.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
debackendServices
: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 accesoACCESS_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
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 accesoACCESS_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.