En esta página, se describe cómo conectar Media CDN a buckets privados compatibles con Amazon S3 a través de Amazon Simple Storage Service (Amazon S3) y la Firma versión 4 de AWS. La CDN de Media no admite la Firma versión 4a de AWS.
Media CDN admite la versión 4 de la firma de AWS para autenticar las solicitudes de origen. Puedes usar esta función para conectar Media CDN a tus buckets privados compatibles con Amazon S3 y asegurarte de que el contenido solo se comparta con Media CDN. También puedes habilitar la autenticación de clientes para obtener una mayor defensa en profundidad. Para obtener más información, consulta Usa solicitudes firmadas.
Antes de comenzar
Verifica que tengas los siguientes recursos:
Un bucket privado de Amazon S3 que siga las reglas de nomenclatura
Una cuenta de usuario de IAM de AWS dedicada para acceder al bucket privado de Amazon S3 anterior. Asegúrate de que el bucket otorgue el permiso
s3:getObjecta la cuenta de usuario de IAM de AWS. Para obtener más información sobre cómo configurar el acceso a tu bucket de Amazon S3, consulta Administración de identidades y acceso en Amazon S3.El ID de la clave de acceso de AWS y la clave de acceso secreta de AWS para la cuenta de usuario dedicada de IAM de AWS. Para obtener más información, consulta Cómo administrar claves de acceso para usuarios de IAM.
Crea un agente de servicio para Media CDN
Para crear un agente de servicio para Media CDN, usa el comando gcloud beta services identity create.
gcloud
gcloud beta services identity create \
--project PROJECT_ID \
--service=networkservices.googleapis.com
Reemplaza PROJECT_ID con el ID del proyecto.
Para obtener más información, consulta Cómo agente de servicio de servicio.
Almacena claves de acceso en Secret Manager
Sigue estos pasos para crear un secreto en Secret Manager.
Console
En la consola de Google Cloud , ve a la página Secret Manager.
En la página de Secret Manager, haz clic en Crear secreto.
En la sección Detalles del secreto, completa lo siguiente:
En el campo Nombre, ingresa un nombre para el secreto, por ejemplo,
aws-access-key-id.En la sección Valor del secreto, omite el campo Subir archivo.
En el campo Valor del secreto, ingresa la clave de acceso secreta de AWS.
Omite las secciones restantes.
Haz clic en Crear secreto.
gcloud
Asegúrate de usar la versión 402.0.0 o posterior de Google Cloud CLI. En Compute Engine o Google Kubernetes Engine (GKE), debes autenticarte con el permiso cloud-platform.
gcloud secrets create SECRET_NAME \
--replication-policy="automatic" \
--data-file="PATH_TO_AWS_SECRET_ACCESS_KEY"
Reemplaza lo siguiente:
SECRET_NAME: El nombre de tu secreto, comoaws-access-key-idPATH_TO_AWS_SECRET_ACCESS_KEY: Es la ruta de acceso al valor de la clave de acceso secreta de AWS.
Para obtener información sobre cómo agregar versiones de secretos, consulta Agrega una versión de un secreto.
Otorga el rol de Secret Manager Access
Sigue estos pasos para otorgar el rol de Secret Manager Secret Accessor (roles/secretmanager.secretAccessor) a la cuenta de servicio de Media CDN.
Console
En la consola de Google Cloud , ve a la página Secret Manager.
- Selecciona el secreto.
- Selecciona Permisos y, luego, Otorgar acceso. Aparecerá el diálogo Otorgar acceso.
En la sección Agregar principales, ingresa la cuenta de servicio de Media CDN en el campo Principales nuevas de la siguiente manera:
service-PROJECT_NUMBER@gcp-sa-mediaedgefill.iam.gserviceaccount.comReemplaza
PROJECT_NUMBERpor el número de tu proyecto.- En la sección Asignar roles, en Selecciona un rol, selecciona Secret Manager y, luego, selecciona Secret Manager Secret Accessor.
- Haz clic en Guardar.
gcloud
gcloud secrets add-iam-policy-binding \
projects/PROJECT_NUMBER/secrets/SECRET_NAME \
--member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-mediaedgefill.iam.gserviceaccount.com" \
--role="roles/secretmanager.secretAccessor"
Reemplaza lo siguiente:
PROJECT_NUMBER: Es el número de tu proyecto.SECRET_NAME: El nombre del secreto
Configura Media CDN para que se autentique en tu bucket de origen externo
Console
En la consola de Google Cloud , ve a la página Media CDN.
Haz clic en la pestaña Orígenes.
Haz clic en el nombre del origen que deseas configurar.
Se abrirá la página Detalles del origen de almacenamiento en caché perimetral.
Haz clic en el botón Editar.
En Dirección de origen, elige Especificar un FQDN o una dirección IP y, luego, ingresa el FQDN o la dirección IP.
En la sección Autenticación de origen privado, selecciona Autentica la solicitud de Media CDN para este origen con la versión 4 de la firma de AWS.
Especifica la siguiente información:
- ID de clave: Es tu ID de clave de acceso de AWS con permisos de lectura para tu origen.
- Referencia a un secreto: Es el ID de tu clave de acceso en Secret Manager y su versión. Puedes seleccionar un ID existente, ingresarlo de forma manual o crear uno nuevo y seleccionarlo.
- Región: Es la región en la que se encuentra tu bucket de Amazon S3, como
us-east-1.
En Protocolo, selecciona HTTPS.
Haz clic en Actualizar origen.
gcloud
Para exportar la configuración actual de tu servicio a un archivo YAML, ejecuta el comando
gcloud edge-cache services export:gcloud edge-cache services export SERVICE_NAME \ --destination=FILENAME.yamlReemplaza lo siguiente:
SERVICE_NAME: Es el nombre del servicio de Media CDN.FILENAME: el nombre del archivo YAML
En Cloud Shell, usa un editor de texto para editar el archivo YAML.
Actualiza el archivo YAML para que tenga las siguientes líneas:
name: ORIGIN_NAME originAddress: "S3_BUCKET_NAME.s3.S3_REGION.amazonaws.com" protocol: HTTPS awsV4Authentication: accessKeyId: "AWS_ACCESS_KEY_ID" secretAccessKeyVersion: "projects/PROJECT_NUMBER/secrets/SECRET_NAME/versions/SECRET_VERSION" originRegion: "S3_REGION"Reemplaza lo siguiente:
ORIGIN_NAME: Es el nombre que establezcas para este origen.S3_BUCKET_NAME: El nombre de tu bucket de Amazon S3S3_REGION: La región en la que se encuentra tu bucket de Amazon S3, comous-east-1AWS_ACCESS_KEY_ID: Tu ID de clave de acceso de AWS con permisos de lectura para tu origenPROJECT_NUMBER: Es el número de tu proyecto.SECRET_NAME: Es el ID de tu clave de acceso en Secret Manager.SECRET_VERSION: Es la versión del secreto que se usará.
Configura la reescritura de host y ruta de acceso para las solicitudes a tu origen. Por ejemplo, para asignar todas las solicitudes con un prefijo de ruta de acceso
/vod/, configura unahostRewriteque corresponda a laoriginAddressque aparece en el YAML de tuEdgeCacheService. En la siguiente muestra de código, se muestra cómo usarhostRewrite:name: SERVICE_NAME routeRules: - priority: 1 - description: ROUTE_DESCRIPTION origin: ORIGIN_NAME matchRules: - prefixMatch: "/vod/" routeAction: urlRewrite: hostRewrite: "S3_BUCKET_NAME.s3.S3_REGION.amazonaws.com" pathPrefixRewrite: "/" cdnPolicy: cacheMode: CACHE_ALL_STATIC defaultTtl: 3600sReemplaza
SERVICE_NAMEpor el nombre delEdgeCacheService.Para obtener más información, consulta Usa back-ends de almacenamiento de terceros.
Guarda el archivo YAML.
Para actualizar la configuración, importa el archivo YAML.
gcloud edge-cache origins import ORIGIN_NAME \ --source=FILENAME.yaml
Después de configurar Media CDN para que se autentique en tu bucket externo, Media CDN genera un encabezado de autorización HTTP para todas las solicitudes a tu encabezado. Todos los parámetros de consulta se quitan del cálculo de la firma y de la solicitud a tu origen.
Es posible que tu origen agregue encabezados adicionales a tus respuestas. Para quitar los encabezados de respuesta antes de publicarlos para los clientes, consulta Cómo establecer encabezados personalizados. Para obtener más información sobre la configuración de orígenes, consulta Conectividad y protección de orígenes.