En esta página se describe cómo conectar Media CDN a segmentos privados compatibles con Amazon S3 mediante Amazon Simple Storage Service (Amazon S3) y AWS Signature Version 4. Media CDN no admite la versión 4a de la firma 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 segmentos privados compatibles con Amazon S3 y asegurarte de que tu contenido se comparte solo con Media CDN. También puedes habilitar la autenticación de cliente para reforzar la defensa en profundidad. Para obtener más información, consulta Usar solicitudes firmadas.
Antes de empezar
Comprueba que tienes los siguientes recursos:
Un segmento de Amazon S3 privado que cumpla las reglas de nomenclatura.
Una cuenta de usuario de AWS IAM específica para acceder al segmento de Amazon S3 privado anterior. Asegúrate de que el bucket conceda el permiso
s3:getObject
a la cuenta de usuario de AWS IAM. Para obtener más información sobre cómo configurar el acceso a tu segmento de Amazon S3, consulta Gestión de identidades y accesos en Amazon S3.El ID de clave de acceso de AWS y la clave de acceso secreta de AWS de la cuenta de usuario de IAM de AWS dedicada. Para obtener más información, consulta Gestionar claves de acceso de usuarios de IAM.
Si no has usado Secret Manager antes, configura Secret Manager.
Crear 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
Sustituye PROJECT_ID
por el ID del proyecto.
Para obtener más información, consulta Activar la creación de agentes de servicio.
Almacenar claves de acceso en Secret Manager
Sigue estos pasos para crear un secreto en Secret Manager.
Consola
En la Google Cloud consola, ve a la página Secret Manager.
En la página Secret Manager, haz clic en Crear secreto.
En la sección Detalles del secreto, haz lo siguiente:
En el campo Nombre, introduce 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 secreto, introduce la clave de acceso secreta de AWS.
Sáltate las secciones restantes.
Haz clic en Crear secreto.
gcloud
Asegúrate de que estás usando la versión 402.0.0 o una posterior de Google Cloud CLI. En Compute Engine o Google Kubernetes Engine (GKE), debes autenticarte con el ámbito cloud-platform.
gcloud secrets create SECRET_NAME \ --replication-policy="automatic" \ --data-file="PATH_TO_AWS_SECRET_ACCESS_KEY"
Haz los cambios siguientes:
SECRET_NAME
: el nombre de tu secreto, comoaws-access-key-id
PATH_TO_AWS_SECRET_ACCESS_KEY
: la ruta al valor de tu clave de acceso secreta de AWS
Para obtener información sobre cómo añadir versiones de secretos, consulta Añadir una versión de secreto.
Conceder el rol de acceso a Secret Manager
Sigue estos pasos para asignar el rol Permiso para acceder a los recursos de Secret Manager (roles/secretmanager.secretAccessor
) a la cuenta de servicio de Media CDN.
Consola
En la Google Cloud consola, ve a la página Secret Manager.
- Selecciona el secreto.
- Selecciona Permisos y, a continuación, Conceder acceso. Aparecerá el cuadro de diálogo Dar acceso.
En la sección Añadir principales, introduce la cuenta de servicio de Media CDN en el campo Principales nuevos de la siguiente manera:
service-PROJECT_NUMBER@gcp-sa-mediaedgefill.iam.gserviceaccount.com
Sustituye
PROJECT_NUMBER
por el número de tu proyecto.- En la sección Asignar roles, en Selecciona un rol, elige Secret Manager y, a continuación, selecciona Permiso para acceder a los recursos de Secret Manager.
- 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"
Haz los cambios siguientes:
PROJECT_NUMBER
: tu número de proyectoSECRET_NAME
: el nombre del secreto
Configurar Media CDN para autenticar el acceso a tu bucket de origen externo
Consola
En la Google Cloud consola, ve a la página Media CDN.
Haga clic en la pestaña Orígenes.
Haga clic en el nombre del origen que quiera configurar.
Se abrirá la página Detalles del origen de almacenamiento en caché perimetral.
Haz clic en el botón Edit (Editar).
En Dirección de origen, elija Especificar un FQDN o una dirección IP y, a continuación, introduzca el FQDN o la dirección IP.
En la sección Autenticación de origen privado, seleccione Autenticar la solicitud de Media CDN a este origen con la versión 4 de la firma de AWS.
Especifica la siguiente información:
- ID de clave: ID de clave de acceso de AWS con permisos de lectura en tu origen.
- Referencia a un secreto: el ID de tu clave de acceso en Secret Manager y su versión. Puede seleccionar un ID que ya tenga, introducirlo manualmente o crear uno y seleccionarlo.
- Región: la región en la que se encuentra tu segmento 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.yaml
Haz los cambios siguientes:
SERVICE_NAME
: el nombre del servicio de Media CDNFILENAME
: 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"
Haz los cambios siguientes:
ORIGIN_NAME
: un nombre que hayas asignado a este origenS3_BUCKET_NAME
: el nombre de tu segmento de Amazon S3S3_REGION
: la región en la que se encuentra tu segmento de Amazon S3, comous-east-1
AWS_ACCESS_KEY_ID
: el ID de tu clave de acceso de AWS con permisos de lectura en tu origenPROJECT_NUMBER
: tu número de proyectoSECRET_NAME
: el ID de tu clave de acceso en Secret ManagerSECRET_VERSION
: la versión del secreto que se va a usar
Configura la reescritura de host y ruta para las solicitudes a tu origen. Por ejemplo, para asignar todas las solicitudes con el prefijo de ruta
/vod/
, configura unhostRewrite
que corresponda aloriginAddress
que aparece en el archivo YAML de tuEdgeCacheService
. En el siguiente código de ejemplo 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: 3600s
Sustituye
SERVICE_NAME
por el nombre de tuEdgeCacheService
.Para obtener más información, consulta Usar 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
Una vez que haya configurado Media CDN para que se autentique en su contenedor externo, Media CDN generará un encabezado de autorización HTTP para todas las solicitudes a su encabezado. Todos los parámetros de consulta se eliminan del cálculo de la firma y de la solicitud a tu origen.
Es posible que tu origen añada encabezados adicionales a tus respuestas. Para quitar los encabezados de respuesta antes de enviarlos a los clientes, consulta Definir encabezados personalizados. Para obtener más información sobre cómo configurar orígenes, consulta Conectividad y protección del origen.