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 de salida de AWS más bajos en comparación con las transferencias directas 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
- Configura el acceso a tu bucket de S3
- Crea una distribución de CloudFront para tu bucket de S3
- Crea un trabajo de transferencia
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 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
- En tu cuenta de AWS, ve a CloudFront.
- Haz clic en Crear una distribución de CloudFront.
- En Dominio de origen, selecciona tu bucket de S3.
- La Ruta de acceso de origen debe dejarse vacía.
- Acepta el Nombre de origen completado automáticamente o especifica tu propio valor.
- En la sección Acceso al 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.
- En la sección Clave de caché y solicitudes de origen:
- En Política de almacenamiento en caché, selecciona CachingDisabled. Esto evita que CloudFront almacene en caché las solicitudes y las entregue a usuarios no autenticados.
- En Política de solicitudes de origen, selecciona AllViewerExceptHostHeader. Esto permite que CloudFront reenvíe encabezados de autenticación a S3, de modo que el Servicio de transferencia de almacenamiento pueda acceder a tu bucket con tus credenciales seguras.
- En la sección Firewall de aplicación web (WAF), selecciona No habilitar.
- 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.
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.
Anota el nombre de dominio de distribución. Por ejemplo:
https://dy1h2n3l4ob56.cloudfront.net
Si la página de detalles no incluye el protocolohttps://
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 es compatible con la consola de Google Cloud y la API de REST.
No incluyas información sensible, como información de identificación personal (PII) ni datos de seguridad en el nombre de la tarea 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 con la consola de Google Cloud, sigue las instrucciones para crear una transferencia.
Cuando se te solicite ingresar el dominio de CloudFront, ingresa el nombre de dominio de distribución 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 que se indican en esta página, tus objetos no están expuestos 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 proporcionaste en el trabajo de transferencia, lo que nos permite descargar tus objetos de forma segura, como si los descargaramos directamente desde S3. Esto funciona debido a la
configuración de reenvío de encabezados
AllViewerExceptHostHeader
.