Usa un bucket privado compatible con S3 como origen

En esta página, se describe cómo conectar Media CDN a buckets privados compatibles con S3 mediante Simple Storage Service (S3) de Amazon Web Service (AWS) y la Firma versión 4 de S3.

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 con tus buckets privados compatibles con 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 lo siguiente:

  • Un bucket privado de S3.

  • Una cuenta de usuario dedicada de AWS Identity and Access Management (IAM) para acceder al bucket privado de S3 anterior. Asegúrate de que el bucket otorgue el permiso s3:getObject a la cuenta de usuario de IAM de AWS. Para obtener más información sobre cómo configurar el acceso a tu bucket de S3, consulta Administración de identidades y accesos en Amazon S3.

  • El ID de clave de acceso y el ID de la clave de acceso secreta para la cuenta de usuario de IAM de AWS dedicada. Si deseas obtener más información, consulta Cómo administrar claves de acceso para usuarios de IAM.

  • Si no usaste Secret Manager antes, configura Secret Manager.

Almacena claves de acceso en Secret Manager

  1. Agrega la versión del secreto para la cuenta de usuario de AWS dedicada a Secret Manager.

  2. Otorga el rol de acceso a Secret Manager (roles/secretmanager.secretAccessor) a la cuenta de servicio de Media CDN:

    gcloud secrets add-iam-policy-binding \
    projects/PROJECT_NUMBER/secrets/ACCESS_KEY_ID \
    --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.
    • ACCESS_KEY_ID: es el ID de la clave de acceso que se compartirá

Configura Media CDN para autenticarte en el bucket de origen externo

  1. Crea un archivo YAML nuevo para configurar tu origen externo, FILENAME.yaml.

    Reemplaza FILENAME.yaml por el nombre de archivo que deseas.

  2. Ingresa el siguiente contenido en el archivo:

    name: ORIGIN_NAME
    originAddress: "S3_BUCKET_NAME.s3.S3_REGION.amazonaws.com/OBJECT_PATH"
    protocol: HTTPS
    awsV4Authentication:
      accessKeyId: "ACCESS_KEY_NAME"
      secretAccessKeyVersion: "projects/PROJECT_NUMBER/secrets/ACCESS_KEY_ID/versions/SECRET_ACCESS_KEY_VERSION"
      originRegion: "S3_REGION"
    

    Reemplaza lo siguiente:

    • ORIGIN_NAME: es el nombre que establezcas para este origen
    • S3_BUCKET_NAME: es el nombre del bucket de S3
    • S3_REGION: es la región en la que se encuentra el bucket de S3.
    • OBJECT_PATH: es la ruta de acceso a tus objetos
    • ACCESS_KEY_NAME: es el nombre de la clave de acceso en AWS Secrets Manager.
    • ACCESS_KEY_ID: es el ID de la clave de acceso en Secret Manager.
    • SECRET_ACCESS_KEY_VERSION: es la versión de la clave de acceso secreta que se usará
  3. Configura las reescrituras de host y ruta de acceso para las solicitudes al 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 el siguiente ejemplo de código, se muestra 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.

  4. Para crear o actualizar tu configuración, importa el archivo YAML que creaste:

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

Después de configurar Media CDN para autenticarte 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 la solicitud a tu origen.

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