Transferencia desde S3 a través de CloudFront

Las transferencias desde Amazon S3 pueden usar un Distribución de Amazon CloudFront como un de salida.

Las transferencias de datos a través de CloudFront pueden beneficiarse de costos más bajos de salida de AWS en comparación con la transferencia directa desde S3. Consulta Precios de CloudFront y Consulta los cargos de salida de S3 para obtener más detalles.

El uso de CloudFront como ruta de salida no expone tus objetos de S3 al público. Consulta ¿El uso de CloudFront expone mis objetos al público?

Descripción general

Para transferir datos de S3 a través de CloudFront, debes seguir estos pasos:

Configura los permisos de IAM

Sigue las instrucciones que se indican en Permisos de transferencia sin agente para otorgar los permisos necesarios de Google Cloud.

Configura el acceso a tu bucket de S3

Sigue las instrucciones que se indican en Configura el acceso a una fuente: Amazon S3 para configurar el acceso a tus datos en Amazon S3.

Crea una distribución de CloudFront para tu bucket de S3

  1. En tu cuenta de AWS, ve a CloudFront.
  2. Haz clic en Crear una distribución de CloudFront.
  3. En Dominio de origen, selecciona tu bucket de S3.
  4. La Ruta de acceso de origen debe dejarse vacía.
  5. Acepta el Nombre de origen completado automáticamente o especifica tu propio valor.
  6. En la sección Acceso de origen, selecciona Público. Esto no hace que tu bucket público; sino que le indica a CloudFront que ningún mecanismo de acceso se debe configurar.
  7. En la sección Clave de caché y solicitudes de origen:
    1. En Política de caché, selecciona CachingDisabled. Esto evita que CloudFront desde almacenar solicitudes en caché y entregarlas a visualizadores no autenticados.
    2. En Política de solicitud de origen, selecciona AllViewerExceptHostHeader. Esta permite que CloudFront reenvíe los encabezados de autenticación a S3 para que El Servicio de transferencia de almacenamiento puede acceder a tu bucket con tus credenciales seguras.
  8. En la sección Firewall de aplicación web (WAF), selecciona No habilitar.
  9. De forma opcional, elige una Clase de precio. El Servicio de transferencia de almacenamiento selecciona grupos de trabajadores. según la región del bucket de origen, por lo que se cobra el precio de CloudFront en esa región. Para obtener el precio más bajo, asegúrate de que la fuente se encuentra en EE.UU. o Europa, o selecciona Usar solo Norteamérica y Europa. como Price class en CloudFront.
  10. Haz clic en Crear distribución de CloudFront.

    Una vez creada correctamente, la página de detalles de la distribución de CloudFront que se muestra.

  11. Toma nota del nombre de dominio de distribución. Por ejemplo: https://dy1h2n3l4ob56.cloudfront.net Si la página de detalles no incluye el protocolo https:// delante del nombre de dominio de distribución, deberás para agregarlo cuando crees el trabajo de transferencia.

Crear un trabajo de transferencia

La transferencia a través de una distribución de CloudFront se admite en la consola de Google Cloud y la API de REST.

No incluyas información sensible, como información de identificación personal (PII) o datos de seguridad en el nombre del trabajo de transferencia. Los nombres de recursos pueden ser se propagan a los nombres de otros recursos de Google Cloud y pueden exponerse a los sistemas internos de Google fuera de tu proyecto.

Consola de Google Cloud

Para crear una transferencia usando la consola de Google Cloud, sigue las instrucciones para Crea una transferencia.

Cuando se te solicite ingresar el dominio de CloudFront, ingresa la distribución. el nombre de dominio que anotaste en la sección anterior. También puedes encontrar este valor que aparece en la sección CloudFront de la consola de Amazon Web Services. Tiene el formato https://dy1h2n3l4ob56.cloudfront.net.

API de REST

Para crear una transferencia usando la API de REST, sigue el ejemplo en la Crea transferencias .

Especifica el nombre de dominio de distribución como el valor del Campo transferSpec.awsS3DataSource.cloudfrontDomain:

"transferSpec": {
  "awsS3DataSource": {
    "bucketName": "AWS_SOURCE_NAME",
    "cloudfrontDomain": "https://dy1h2n3l4ob56.cloudfront.net",
    "awsAccessKey": {
      "accessKeyId": "AWS_ACCESS_KEY_ID",
      "secretAccessKey": "AWS_SECRET_ACCESS_KEY"
    }
  },
  ...
}

Preguntas frecuentes

¿El uso de CloudFront expone mis objetos al público?

No. Si seguiste los pasos de configuración de esta página, tus objetos se que no estén expuestas al público.

  • CloudFront no tiene acceso directo a tus objetos de S3.
  • Los usuarios reciben un error permission denied si intentan acceder a tus objetos. de forma directa o a través de CloudFront (si tu bucket es privado).
  • El Servicio de transferencia de almacenamiento firma las solicitudes a CloudFront con las credenciales que que se proporcionan en el trabajo de transferencia, que nos permite descargar tus objetos de forma segura, como si la descargáramos directamente de S3. Esto funciona debido a la configuración de reenvío de encabezados AllViewerExceptHostHeader.