Políticas y permisos en Amazon S3 - Amazon Simple Storage Service

Políticas y permisos en Amazon S3

Esta página proporciona una descripción general de las políticas de bucket y usuario en Amazon S3 y describe los elementos básicos de una política de AWS Identity and Access Management (IAM). Los elementos que aparecen se vinculan a más detalles sobre ese elemento y ejemplos de cómo usarlo.

Para obtener una lista completa de las acciones, recursos y condiciones de Amazon S3, consulte Actions, resources, and condition keys for Amazon S3 en la Referencia de autorización de servicios.

Una política contiene los siguientes elementos básicos:

  • Resource: el bucket, el objeto, el punto de acceso o el trabajo de Amazon S3 al que se aplica la política. Utilice el nombre de recurso de Amazon (ARN) del bucket, objeto, punto de acceso o trabajo para identificar el recurso.

    Un ejemplo de operaciones de nivel de bucket:

    "Resource": "arn:aws:s3:::bucket_name"

    Ejemplos de operaciones de nivel de objeto:

    • "Resource": "arn:aws:s3:::bucket_name/*" para todos los objetos del bucket.

    • "Resource": "arn:aws:s3:::bucket_name/prefix/*" para objetos con un determinado prefijo en el bucket.

    Para obtener más información, consulte Recursos de políticas para Amazon S3.

  • Actions: Amazon S3 admite un conjunto de operaciones para cada recurso. Con las palabras clave de acción puede identificar las operaciones del recurso que desea permitir o denegar.

    Por ejemplo, el permiso s3:ListBucket autoriza al usuario a utilizar la operación ListObjectsV2 de Amazon S3. (El permiso s3:ListBucket es un caso en el que el nombre de la acción no se corresponde directamente con el nombre de la operación). Para obtener más información acerca del uso de acciones de Simple Storage Service (Amazon S3), consulte Acciones de políticas para Amazon S3. Para obtener una lista completa de las acciones de Amazon S3, consulte Acciones en la Referencia de la API de Amazon Simple Storage Service.

  • Effect: el efecto obtenido cuando el usuario solicita la acción específica, que puede ser Allowo Deny.

    Si no concede acceso de forma explícita (permitir) a un recurso, el acceso se deniega implícitamente. También puede denegar explícitamente el acceso a un recurso. Es posible que haga esto para asegurarse de que un usuario no puede acceder al recurso, aunque una política diferente le conceda acceso. Para obtener más información, consulte Elemento de la política de JSON de IAM: Efecto en la Guía del usuario IAM.

  • Principal: la cuenta o el usuario con permiso de acceso a las acciones y los recursos en la instrucción. En una política de bucket, el principal es el usuario, cuenta, servicio u otra entidad que reciba este permiso. Para obtener más información, consulte Entidades principales de las políticas de bucket.

  • Condition: condiciones para cuando se aplica una política. Puede utilizar claves generales de AWS y claves específicas de Amazon S3 para especificar condiciones en una política de acceso de Amazon S3. Para obtener más información, consulte Ejemplos de políticas de bucket que utilizan claves de condición.

En el siguiente ejemplo de política de bucket se muestran los elementos Effect, Principal, Action y Resource. Esta política permite que Akua, un usuario de la cuenta 123456789012, tenga permisos s3:GetObject, s3:GetBucketLocation y s3:ListBucket de Amazon S3 en el bucket de amzn-s3-demo-bucket1.

{ "Version": "2012-10-17", "Id": "ExamplePolicy01", "Statement": [ { "Sid": "ExampleStatement01", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/Akua" }, "Action": [ "s3:GetObject", "s3:GetBucketLocation", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1/*", "arn:aws:s3:::amzn-s3-demo-bucket1" ] } ] }

Para obtener información completa acerca del lenguaje de las políticas, consulte Políticas y permisos en IAM y Referencia de políticas de JSON de IAM en la guía de usuario de IAM.

Delegación de permisos

Si una Cuenta de AWS es propietaria de un recurso, puede conceder esos permisos a otra Cuenta de AWS. Esa cuenta, a continuación, puede delegar esos permisos, o un subconjunto de ellos, a usuarios de la cuenta. Esto se conoce como delegación de permisos. Sin embargo, una cuenta que recibe permisos de otra cuenta no puede delegarlos a otra Cuenta de AWS con la modalidad entre cuentas.

Propiedad de los buckets y objetos de Amazon S3

Los buckets y los objetos son recursos de Amazon S3. De forma predeterminada, solo el propietario de los recursos puede obtener acceso a ellos. El propietario del recurso es la Cuenta de AWS que lo crea. Por ejemplo:

  • La Cuenta de AWS que se usa para crear buckets y cargar objetos es la propietaria de dichos recursos.

  • Si carga un objeto utilizando credenciales de usuario o rol de AWS Identity and Access Management (IAM), la Cuenta de AWS a la que pertenece el usuario o el rol es el propietario del objeto.

  • Un propietario del bucket puede conceder permisos de una cuenta a otra Cuenta de AWS (o a usuarios de otra cuenta) para cargar objetos. En este caso, la Cuenta de AWS que carga los objetos es la propietaria. El propietario del bucket no tiene permisos sobre los objetos que son propiedad de otras cuentas, con las siguientes excepciones:

    • El propietario del bucket es quien paga las facturas. El propietario del bucket puede denegar el acceso a cualquier objeto, o eliminar cualquier objeto del bucket, independientemente de quién sea el propietario.

    • El propietario del bucket puede archivar los objetos o restaurar los objetos archivados, independientemente de quién sea el propietario. El archivado se refiere a la clase de almacenamiento empleada para almacenar los objetos. Para obtener más información, consulte Administración del ciclo de vida del almacenamiento.

Autenticación de la propiedad y las solicitudes

Todas las solicitudes a un bucket son autenticadas o no autenticadas. Las solicitudes autenticadas deben incluir un valor de firma que autentique al remitente de la solicitud y no es necesario en el caso de las solicitudes no autenticadas. Para obtener más información acerca de la autenticación de solicitudes, consulte Realizar solicitudes.

El propietario del bucket puede permitir solicitudes no autenticadas. Por ejemplo, se permiten solicitudes PutObject no autenticadas cuando un bucket tiene una política de bucket pública o cuando una ACL de bucket concede acceso WRITE o FULL_CONTROL específicamente al grupo de All Users o al usuario anónimo. Para obtener más información acerca de las políticas de bucket públicas y las listas de control de acceso (ACL) públicas, consulte Qué significa "pública".

Todas las solicitudes no autenticadas las realiza el usuario anónimo. En las ACL, este usuario se representa mediante el ID de usuario canónico específico65a011a29cdf8ec533ec3d1ccaae921c. Si se carga un objeto en un bucket mediante una solicitud no autenticada, el usuario anónimo es el propietario del objeto. La ACL del objeto predeterminado concede acceso FULL_CONTROL al usuario anónimo como propietario del objeto. Por lo tanto, Amazon S3 permite solicitudes no autenticadas para recuperar el objeto o modificar su ACL.

Para impedir que el usuario anónimo modifique objetos, le recomendamos que no implemente políticas de bucket que permitan escrituras públicas anónimas en su bucket o que utilicen ACL que permitan al usuario anónimo acceso de escritura a su bucket. Para imponer este comportamiento recomendado, utilice Block Public Access de Amazon S3.

Para obtener más información acerca del bloqueo del acceso público, consulte Bloquear el acceso público a su almacenamiento de Amazon S3. Para obtener más información acerca de las ACL, consulte Información general de las Listas de control de acceso (ACL).

importante

Recomendamos que no utilice las credenciales del usuario raíz de la Cuenta de AWS para realizar solicitudes autenticadas. En su lugar, cree un rol de IAM y concédale derechos de acceso completos. Los usuarios con este rol se denominan usuarios administradores. Puede utilizar las credenciales asignadas al rol de administrador, en lugar de las credenciales de usuario raíz de la Cuenta de AWS, para interactuar con AWS y realizar tareas, como crear un bucket, crear usuarios y conceder permisos. Para obtener más información, consulte Credenciales de seguridad de AWS y Prácticas recomendadas de IAM en la Guía del usuario de IAM.