Usa un bucket privado compatible con Amazon S3 como origen

En esta página, se describe cómo conectar Media CDN a redes privadas Buckets compatibles con Amazon S3 con Amazon Simple Storage Service (Amazon S3) y Firma de AWS versión 4. La CDN de Media no admite la Firma versión 4a de AWS.

Media CDN admite la Firma versión 4 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 brindar 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 nombres

  • Una cuenta de usuario dedicada de AWS IAM para acceder al bucket privado de Amazon S3 anterior. Asegúrate de que el bucket otorgue s3:getObject. permiso a la cuenta de usuario de IAM de AWS. Para obtener más información configurar el acceso a tu bucket de Amazon S3, consulta Administración de identidades y accesos 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 Administra claves de acceso para usuarios de IAM.

  • Si es la primera vez que usas Secret Manager, configura Secret Manager.

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 activar la creación del agente de servicio.

Almacena claves de acceso en Secret Manager

Sigue estos pasos para crear un secreto en Secret Manager.

Console

  1. En la consola de Google Cloud, ve a la página Secret Manager.

    Ir a Secret Manager

  2. En la página Secret Manager, haz clic en Crear secreto.

  3. En la sección Detalles del Secret, completa lo siguiente:

    1. En el campo Nombre, ingresa el nombre de la Secret, por ejemplo, aws-access-key-id.

    2. En la sección Valor del secreto, omite el campo Subir archivo.

    3. En el campo Valor del secreto, ingresa la clave de acceso secreta de AWS.

  4. Omite las secciones restantes.

  5. Haz clic en Crear secreto.

gcloud

Asegúrate de usar la versión 402.0.0 o una posterior de Google Cloud CLI. En Compute Engine o Google Kubernetes Engine (GKE), debes autenticarse con el alcance cloud-platform.

gcloud secrets create SECRET_NAME \
    --replication-policy="automatic" \
    --data-file="PATH_TO_AWS_SECRET_ACCESS_KEY"

Reemplaza lo siguiente:

  • SECRET_NAME: Es el nombre de tu secreto, como aws-access-key-id.
  • PATH_TO_AWS_SECRET_ACCESS_KEY: Es la ruta. al valor de tu clave de acceso secreta de AWS

Para obtener información sobre cómo agregar versiones del Secret, consulta Agrega una versión del Secret.

Otorga el rol de acceso de Secret Manager

Sigue estos pasos para otorgar el rol de descriptor de acceso a secretos de Secret Manager (roles/secretmanager.secretAccessor) a la cuenta de servicio de Media CDN.

Console

  1. En la consola de Google Cloud, ve a la página Secret Manager.

    Ir a Secret Manager

  2. Selecciona el secreto.
  3. Selecciona Permisos y, luego, Otorgar acceso. El Aparecerá el diálogo Otorgar acceso.
  4. En la sección Agregar principales, ingresa el la cuenta de servicio de Media CDN de Principales nuevas como se indica a continuación:
    service-PROJECT_NUMBER@gcp-sa-mediaedgefill.iam.gserviceaccount.com

    Reemplaza PROJECT_NUMBER por tu el número del proyecto.

  5. En la sección Asignar roles, en Selecciona un rol, elige Secret Manager y, luego, selecciona Administrador y descriptor de acceso a secretos.
  6. 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: Es el nombre de tu Secret.

Cómo configurar Media CDN para autenticarte en tu bucket de origen externo

Console

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

    Ir a Media CDN

  2. Haz clic en la pestaña Orígenes.

  3. Haz clic en el nombre del origen que deseas configurar.

    Se abrirá la página Detalles del origen del almacenamiento en caché perimetral.

  4. Haz clic en el botón Editar.

  5. En Dirección de origen, selecciona Especificar un FQDN o una dirección IP y, luego, ingresa el FQDN o la dirección IP.

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

  7. Especifica la siguiente información:

    • ID de clave: Es el ID de clave de acceso de AWS con permisos de lectura para tu origen.
    • Hacer referencia a un secreto: El ID de tu clave de acceso en Secret Manager y su versión. Puedes seleccionar un ID existente, ingresar uno manualmente o crear uno nuevo y seleccionarlo.
    • Región: La región de tu bucket de Amazon S3 ubicados, por ejemplo, us-east-1
  8. En Protocolo, selecciona HTTPS.

  9. Haz clic en Actualizar origen.

gcloud

  1. 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
    

    Reemplaza lo siguiente:

    • SERVICE_NAME: Es el nombre del servicio de Media CDN.
    • FILENAME: Es el nombre del archivo YAML.
  2. En Cloud Shell, usa un editor de texto para editar el archivo YAML.

  3. 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: Es el nombre de tu Bucket de Amazon S3
    • S3_REGION: Es la región en la que se encuentra tu bucket de Amazon S3, como us-east-1.
    • AWS_ACCESS_KEY_ID: El ID de tu clave de acceso de AWS con permisos de lectura para tu origen
    • PROJECT_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á.
  4. Configura las reescrituras 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 una hostRewrite que corresponda a la originAddress que aparece en el YAML de tu EdgeCacheService. En la siguiente muestra de código, se indica cómo usar hostRewrite:

    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
    

    Reemplaza SERVICE_NAME por el nombre del EdgeCacheService.

    Para obtener más información, consulta Usa backends de almacenamiento de terceros.

  5. Guarda el archivo YAML.

  6. Para actualizar tu configuración, importa el archivo YAML.

    gcloud edge-cache origins import ORIGIN_NAME \
        --source=FILENAME.yaml
    

Después de configurar Media CDN para autenticarte en tu de bucket, Media CDN genera un encabezado de autorización HTTP 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.

Tu origen podría agregar encabezados adicionales a tus respuestas. Para quitar los encabezados de respuesta antes de entregarlos a los clientes, consulta Cómo configurar encabezados personalizados. Para obtener más información sobre la configuración de orígenes, consulta Conectividad y protección de origen.