buckets S3 de origen: Amazon CloudFront

buckets s3

Amazon CloudFront con varios buckets S3 de origen

Obtenga información sobre cómo configurar una distribución de Amazon CloudFront con varios buckets S3 de origen.


buckets S3
Amazon CloudFront con varios buckets S3 de origen

Supuestos

  • Se crearon la distribución de CloudFront y los depósitos de S3.
  • Los depósitos de S3 son privados.
  • CloudFront OAI configurado para permitir el acceso al depósito solo a través de CloudFront.

A continuación, se muestra un ejemplo de política de depósito con OAI configurado y que aplica estrictamente la comunicación SSL.

Nota: cambie el nombre del depósito según el nombre del recurso del depósito.

{
"Version": "2012-10-17",
"Statement": [{
"Sid": "Enable Encrypted communications",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": "arn:aws:s3:::bucket1/*",
"Condition": {
"Bool": {
"aws:SecureTransport": "false"
}
}
},
{
"Sid": "AllowAccessFromCloudFront",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity XXXXXXXX"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::bucket1/*"
}
]
}

¿Qué queremos hacer?

Configure CloudFront para que la URL de Cloudfront se resuelva en S3 Bucket 1 llamado bucket1.

La URL / ruta de Cloudfront se resolverá en S3 Bucket 2 llamado bucket2.

Tomemos un archivo de ejemplo index.html presente en ambos depósitos. Queremos acceder a este index.html utilizando la misma distribución de Cloudfront en diferentes rutas que apuntan a diferentes depósitos de origen.

xxxx.cloudfront.net/index.html (obtenido de S3 Bucket1)

xxxx.cloudfront.net/path/index.html (obtenido de S3 Bucket2)

 

El archivo index.html en S3 Bucket 2 debe estar en el directorio llamado “path” dentro del contenedor. La clave S3 se verá como s3://bucket2/path/index.html.

 


¡Hagámoslo!

Sección 1: Configurar el depósito 1 de S3 como origen con el comportamiento del patrón de ruta predeterminado (*)

Nota: Si ya se configuró durante la creación de Cloudfront Distribution, omita esta sección.

1. Asegúrese de que index.html esté presente en la raíz de bucket1 para que su clave sea s3://bucket1/index.html

2. Seleccione la distribución de CloudFront en la consola de AWS.

3. Si “Origin” y “Behaviors” no se crearon durante la creación de la Distribución de CloudFront, cree un Origen en “Origin y Origin Groups” con OAI para el bucket1 y cree un Comportamiento en “Behaviors” para el origen del bucket1.

4. Asegúrese de que el comportamiento de bucket1 esté asociado con el patrón de ruta predeterminado (*). Este es el patrón de ruta predeterminado asociado automáticamente con el primer comportamiento creado en Cloudfront Distribution.

5. Pruebe la URL de CloudFront xxxx.cloudfront.net/index.html (obtenida del S3 Bucket1 de origen)

Sección 2: Configurar S3 Bucket 2 como Origen con path/* Comportamiento del patrón de ruta

1. Asegúrese de que index.html esté presente en el directorio “ruta” dentro de bucket2 para que su clave sea s3://bucket2/path/index.html

2. Seleccione la distribución de CloudFront en la consola de AWS.

3. Cree otro origen en “Origins and Origin Groups” con un OAI diferente para bucket2.

4. Cree un comportamiento en “Behaviors” para el origen de bucket2 con el patrón de ruta como path/*

5. Asegúrese de que el comportamiento de bucket2 esté asociado con la path/* como patrón de ruta.

6. Pruebe la URL de CloudFront xxxx.cloudfront.net/path/index.html (obtenida del S3 Bucket2 de origen)


¡Voila!

Así es como puede tener una única distribución de CloudFront para varios depósitos S3 de origen diferente (privados) con diferentes OAI resueltas en diferentes rutas.

Esta configuración es muy útil por las siguientes razones:

  • Si desea reutilizar la misma distribución de CloudFront con diferentes depósitos de origen por razones económicas.
  • Si desea tener datos diversos en sus propios depósitos de S3 separados, pero le gustaría aprovechar una única distribución de CloudFront.

¡Gracias por leer!

Recent Post