¿Cuáles son algunos casos de uso para utilizar una ACL de objetos en Amazon S3?

5 minutos de lectura
0

Quiero delegar el acceso a los objetos de Amazon Simple Storage Service (Amazon S3) mediante una lista de control de acceso (ACL). ¿Cuáles son los casos de uso de una ACL de objetos o buckets?

Resolución

Las listas de control de acceso (ACL) de Amazon S3 permiten administrar el acceso a los buckets y objetos de S3. Todos los buckets y objetos de S3 tienen una ACL asociada como subrecurso. Las ACL definen a qué cuentas o grupos de AWS se les concede acceso junto con el tipo de acceso. Cuando se envía una solicitud con respecto a un recurso, Amazon S3 comprueba la ACL correspondiente para confirmar que se dispone de los permisos de acceso necesarios.

La mayoría de los casos de uso en los que se concede acceso a objetos o buckets ya no requieren ACL. Sin embargo, en algunos casos, podría ser más apropiado utilizar una ACL. Por ejemplo, estos son algunos casos de uso en los que podría necesitar utilizar una ACL para administrar el acceso a buckets u objetos:

  • Una ACL de objetos es la única forma de conceder acceso a objetos que no son propiedad del propietario del bucket. De forma predeterminada, cuando otra cuenta de AWS carga un objeto en un bucket de S3, esa cuenta (el escritor del objeto) es la propietaria del objeto. Además, el escritor del objeto tiene acceso a este, así como puede conceder acceso a otros usuarios mediante ACL.
  • Las ACL de objetos se pueden utilizar cuando es necesario administrar los permisos a nivel de objeto. Por ejemplo, si necesita delegar acceso a una carpeta entera, puede utilizar una política de bucket. Sin embargo, si los permisos de acceso varían según el objeto, conceder permisos a objetos individuales mediante una política de buckets podría no ser práctico. Por lo tanto, una ACL de objetos podría resultar más apropiada para administrar el acceso a los objetos.
  • Si desea ser propietario de los nuevos objetos escritos en el bucket por otras cuentas de AWS (y la ACL no está desactivada), aplique la configuración preferida del propietario del bucket. Con esta configuración, los nuevos objetos que se escriben con la ACL bucket-owner-full-control son automáticamente propiedad del propietario del bucket (y no del escritor del objeto). Todos los demás comportamientos de la ACL se mantienen.
    Nota: Para desactivar una ACL, utilice la configuración aplicada por el propietario del bucket para la propiedad de objetos de S3. Cuando las ACL están desactivadas, se puede mantener fácilmente un bucket con objetos cargados (entre cuentas) por diferentes cuentas de AWS mediante políticas de bucket. Si el bucket utiliza la configuración aplicada por el propietario del bucket para la propiedad de los objetos de S3, las solicitudes para establecer o actualizar las ACL fallan y devuelven el código de error AccessControlListNotSupported. Sin embargo, las solicitudes de lectura de ACL seguirán admitiéndose.
  • Las ACL de los buckets se pueden utilizar para conceder permisos a los servicios de AWS, como Amazon CloudFront, para realizar determinadas acciones en el bucket. Por ejemplo, al crear o actualizar una distribución de CloudFront y habilitar el registro de CloudFront, CloudFront actualiza la ACL del bucket. Esta actualización otorga a la cuenta awslogsdelivery permisos FULL_CONTROL para escribir registros en el bucket. Para más información, consulte Permisos necesarios para configurar el registro estándar y para acceder a los archivos de registro.

Aplicar ACL a los objetos

Ejemplo 1

Si carga un objeto en un bucket de una cuenta de AWS diferente, utilice la ACL predefinida bucket-owner-full-control:

aws s3api put-object --bucket destination_bucket --key dir-1/myfile --body dir-1/myfile --acl bucket-owner-full-control

La ACL predefinida bucket-owner-full-control proporciona acceso a la cuenta del propietario del bucket.

Nota: Amazon S3 admite un conjunto de ACL prediseñadas conocidas como ACL predefinidas (como la ACL bucket-owner-full-control que se utiliza en este ejemplo).

Ejemplo 2

Quien carga el objeto también puede agregar una ACL para otorgar permisos de lectura a otras cuentas de AWS:

aws s3api put-object --bucket destination_mybucket --key dir/myfile --body dir/myfile --grant-read emailaddress=user1@amazon.com,id=canonical-id-of-account

Nota: Solo puede especificar un receptor con direcciones de correo electrónico en las siguientes regiones de AWS: Norte de Virginia, Norte de California, Oregón, Singapur, Sídney, Tokio, Irlanda y São Paulo.

Ejemplo 3

También puede actualizar la ACL de un objeto existente:

aws s3api put-object-acl --bucket destination_bucket --key dir/myfile --acl bucket-owner-full-control

Ejemplo 4

Amazon S3 dispone de un conjunto de grupos predefinidos. Puede utilizar las ACL de objetos para conceder permisos a los usuarios que forman parte de estos grupos predefinidos.

Por ejemplo, puede conceder acceso a objetos a cualquier usuario autenticado de AWS si concede acceso al grupo de usuarios autenticados:

aws s3api put-object --bucket destination_mybucket --key dir/myfile --body dir/myfile --grant-read uri=http://acs.amazonaws.com/groups/global/AuthenticatedUsers

Nota: Antes de conceder acceso al grupo de Usuarios Autenticados, desactive la configuración de Bloqueo de acceso público para las ACL tanto a nivel de cuenta como de bucket. De otro modo, obtendrá un error de acceso denegado. Para solucionar los errores de acceso denegado relacionados con la ACL, consulte Un usuario con permiso para agregar objetos al bucket de Amazon S3 recibe errores de acceso denegado. ¿Por qué?


Información relacionada

¿Cómo soluciono los errores 403 Acceso denegado de Amazon S3?

Administrar el acceso con las ACL

Cuándo utilizar una política de acceso basada en ACL (ACL de buckets y objetos)

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 años