¿Cómo puedo solucionar problemas al conceder acceso público de lectura a un objeto de Amazon S3 mediante una política de buckets o una ACL de objetos?

5 minutos de lectura
0

Estoy intentando conceder acceso público de lectura a los objetos de mi bucket de Amazon Simple Storage Service (Amazon S3) mediante una política de buckets o una lista de control de acceso (ACL) de objetos. Sin embargo, recibo errores de permisos insuficientes o de acceso denegado.

Descripción corta

Supongamos que utiliza la siguiente política de buckets para conceder acceso público de lectura a los objetos de su bucket:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicReadGetObject",
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::example-bucket/*"
            ]
        }
    ]
}

Es posible que aparezcan errores de permisos insuficientes o acceso denegado por los siguientes motivos:

  • No tiene el permiso s3:PutBucketPolicy para actualizar o crear una política de buckets para su bucket de Amazon S3.
  • No tiene el permiso s3:PutObjectAcl para modificar la ACL del objeto.
  • La política de buckets de S3 o la ACL del objeto entran en conflicto con la configuración del bloqueo del acceso público de S3.

Resolución

Otorgar los permisos necesarios

Asegúrese de que el usuario o rol de AWS Identity and Access Management (IAM) que utilice tenga los siguientes permisos:

  • s3:PutBucketPolicy para crear o actualizar la política de buckets para su bucket de S3.
  • s3:PutObjectAcl para actualizar la ACL de un objeto para conceder el acceso público de lectura.

Actualizar la configuración del bloqueo del acceso público

De forma predeterminada, todos los recursos de Amazon S3, como los buckets, objetos y subrecursos relacionados, son privados y no permiten el acceso público. Puede usar la configuración del bloqueo del acceso público de puntos de acceso, buckets y cuentas para gestionar el acceso público a los recursos de Amazon S3. Esta configuración anula las políticas de bucket de S3 y las ACL de objetos para poder limitar el acceso público a estos recursos. Si la política de buckets o la ACL de objetos que haya configurado entra en conflicto con la configuración del bloqueo del acceso público, no puede crear una política de bucket para conceder el acceso público de lectura. S3 también deniega los permisos para modificar la política de buckets o las ACL de objetos a fin de conceder el acceso público de lectura.

El Bloqueo del acceso público de Amazon S3 proporciona cuatro configuraciones para bloquear el acceso público a buckets y objetos. Estas configuraciones son independientes y se pueden utilizar en cualquier combinación.

  • BlockPublicAcls bloquea el acceso público que se concede mediante nuevas ACL: Amazon S3 bloquea los permisos de acceso público que usted aplica a los buckets u objetos recién añadidos. S3 también deniega la creación de nuevas ACL de acceso público para buckets y objetos existentes. Esta configuración no cambia ningún permiso existente que permita el acceso público a los recursos de S3 que utilicen ACL.
  • IgnorePublicAcls bloquea el acceso público que se concede mediante cualquier ACL: Amazon S3 ignora todas las ACL que otorgan acceso público a buckets y objetos.
  • BlockPublicPolicy bloquea el acceso público que se concede mediante un nuevo bucket público o políticas de puntos de acceso: Amazon S3 bloquea el uso de nuevos buckets y políticas de puntos de acceso que otorgan acceso público a buckets y objetos. Esta configuración no cambia ninguna política existente que permita el acceso público a los recursos de S3.
  • RestrictPublicBuckets bloquea el acceso público y entre cuentas que se concede mediante cualquier política pública de buckets o puntos de acceso: Amazon S3 ignora el acceso público y entre cuentas a los buckets o puntos de acceso con políticas que otorgan el acceso público a buckets y objetos.

Para obtener más información, consulte Bloqueo del acceso público de Amazon S3: Otra capa de protección para sus cuentas y buckets.

Asegúrese de actualizar la configuración del bloqueo del acceso público de S3 en función de su caso de uso.

Nota:

  • Si concede acceso público de lectura a objetos mediante ACL, desactive la siguiente configuración del bloqueo del acceso público:
  • Si concede acceso público de lectura a los objetos mediante una política de buckets de S3, desactive la siguiente configuración del bloqueo del acceso público:
    • BlockPublicPolicy tanto para el bucket como para la cuenta
    • RestrictPublicBuckets tanto para el bucket como para la cuenta
  • No puede usar las ACL de buckets ni las ACL de objetos para conceder acceso público de lectura a los buckets que tengan la propiedad de objetos de S3 establecida en Bucket Owner Enforced. En este caso, debe usar políticas para conceder acceso a su bucket y a los objetos del bucket. Las solicitudes para configurar o actualizar las ACL fallan y aparece el mensaje de error AccessControlListNotSupported. La solicitud de lectura de ACL sigue siendo compatible.

Si ha activado la configuración del bloqueo del acceso público para todos los buckets de S3 de su cuenta, aparecerá el mensaje Bucket y objetos no públicos. Para obtener más información, consulte Configurar el bloqueo del acceso público en tu cuenta.

Importante: Al conceder acceso público de lectura a los objetos, cualquier persona que navegue en Internet puede acceder a ellos. Si esto no es lo que quiere, asegúrese de que su bucket de S3 no sea de acceso público. Para obtener más información, consulte Prácticas recomendadas de seguridad de Amazon S3.

Información relacionada

¿Cómo puedo conceder acceso de lectura público a algunos de los objetos de mi bucket de Amazon S3?

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año