es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

No se puede servir varios S3 buckets en una única distribución de CloudFront.

Caso:

Tengo varios cubos S3 que almacenan mis archivos multimedia. Quería asignar todos estos cubos S3 a una única distribución de CF (sus archivos deberían ser accedidos desde rutas diferentes).

He creado una distribución de CF y he agregado 2 cubos. Para el comportamiento, el primer cubo está en Default() y el segundo cubo está en la ruta nature/.

Problemas:

  1. Puedo acceder al cubo principal (el que tiene el comportamiento predeterminado), pero no puedo acceder al cubo secundario (con la ruta nature/*). El error al intentar acceder al cubo secundario es “Acceso denegado”.

Detalles adicionales:

  1. Ambos cubos no están disponibles para acceso global y CF los está accediendo desde OAI.

Referencias:

  1. https://aswinkumar4018.medium.com/amazon-cloudfront-with-multiple-origin-s3-buckets-71b9e6f8936
  2. https://vimalpaliwal.com/blog/2018/10/10f435c29f/serving-multiple-s3-buckets-via-single-aws-cloudfront-distribution.html
  3. https://youtu.be/5r9Q-tI7mMw

enter image description here

enter image description here

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para resolver el problema de no poder acceder al bucket secundario (con la ruta nature/*), asegúrese de que el OAI utilizado por CF tenga los permisos para acceder a ambos buckets de S3.

    Pasos para verificar y otorgar permisos:

    1. Vaya a la pestaña de Permisos del bucket que está dando el error de “Acceso denegado”.
    2. Desplácese hacia abajo hasta la “Política del bucket” y asegúrese de que permita al OAI utilizado por CF acceder al bucket.
    3. Si la política no está presente o está incompleta, agregue el siguiente JSON en la política:
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "Permitir-acceso-oai-CloudFront",
                "Effect": "Allow",
                "Principal": {
                    "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity <id oai="">"
                },
                "Action": [
                    "s3:GetObject",
                    "s3:ListBucket"
                ],
                "Resource": [
                    "arn:aws:s3:::<nombre-bucket>",
                    "arn:aws:s3:::<nombre-bucket>/*"
                ]
            }
        ]
    }
    
    1. Reemplace <id oai=""> con el ID OAI real utilizado por CF y <nombre-bucket> con el nombre del bucket.
    2. Guarde la política e intente acceder nuevamente al bucket.

    Esto debería resolver el error de “Acceso denegado” y permitir que CF acceda a ambos buckets de S3 mapeados a la distribución con diferentes rutas.

Comments are closed.