Acciones de políticas de Amazon S3 - Amazon Simple Storage Service

Acciones de políticas de Amazon S3

nota

En esta página, se describen las acciones de las políticas de Amazon S3 para buckets de uso general. Para obtener más información acerca de las acciones de las políticas de Amazon S3 para buckets de directorios, consulte Acciones para S3 Express One Zone.

Amazon S3 define un conjunto de permisos que se pueden especificar en una política. Para conceder permisos para realizar una operación de la API de S3, debe crear una política válida (por ejemplo, una política de bucket de S3 o una política basada en identidad de IAM) y especificar las acciones correspondientes en el elemento Action de la política. Estas acciones se denominan acciones de políticas. A continuación, se muestran los diferentes tipos de relaciones de mapeo entre las operaciones de la API de S3 y las acciones de políticas requeridas.

  • Mapeo uno a uno con el mismo nombre. Por ejemplo, para utilizar la operación de la API PutBucketPolicy, se necesita la acción de política s3:PutBucketPolicy.

  • Mapeo uno a uno con diferentes nombres. Por ejemplo, para utilizar la operación de la API ListObjectsV2, se necesita la acción de política s3:ListBucket.

  • Mapeo uno a varios. Por ejemplo, para utilizar la operación de la API HeadObject, se necesita s3:GetObject. Además, si utiliza el bloqueo de objetos de S3 y desea obtener el estado de retención legal o la configuración de retención de un objeto, también son necesarias las acciones de políticas s3:GetObjectLegalHold y s3:GetObjectRetention correspondientes para poder utilizar la operación de API HeadObject.

  • Mapeo uno a varios. Por ejemplo, para utilizar las operaciones de la API ListObjectsV2 o HeadBucket, se necesita la acción de política s3:ListBucket.

Para crear una política de bucket de S3 válida, además del elemento Action, también debe especificar los elementos Effect, Principal y Resource. Además, para tener un control más detallado de las operaciones de la API de S3, puede especificar el elemento Condition.

Para crear una política basada en identidades de IAM válidas, además del elemento Action, debe especificar también los elementos Effect y Resource. Una política basada en identidades de IAM válida no incluye el elemento Principal.

Para obtener una lista completa de las acciones, recursos y claves de condición de las políticas de Amazon S3 que se pueden utilizar en las políticas, consulte Actions, resources, and condition keys for Amazon S3 en la Referencia de autorización de servicios.

Al crear las políticas, debe especificar el elemento Resource en función del tipo de recurso correcto que necesitan las acciones de políticas de Amazon S3 correspondientes. En esta página, se clasifican los permisos para las operaciones de la API de S3 por tipos de recursos. Para obtener más información sobre los tipos de recursos, consulte Resource types defined by Amazon S3 en la Referencia de autorizaciones de servicio. Para obtener una lista de operaciones de la API de Amazon S3, consulte Amazon S3 API Actions en la Referencia de la API de Amazon Simple Storage Service.

Las operaciones de buckets son operaciones de la API de S3 que funcionan en el tipo de recurso de bucket. Por ejemplo, CreateBucket, ListObjectsV2 y PutBucketPolicy. Las acciones de las políticas de S3 para operaciones de buckets requieren que el elemento Resource de las políticas de buckets o de las políticas basadas en identidades de IAM sea el identificador de Nombre de recurso de Amazon (ARN) del tipo de bucket de S3 en el siguiente formato de ejemplo.

"Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET"

La siguiente política de buckets otorga al usuario Akua con la cuenta 12345678901 el permiso s3:ListBucket para realizar la operación de la API ListObjectsV2 y enumerar los objetos de un bucket de S3.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow Akua to list objects in the bucket", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::12345678901:user/Akua" }, "Action": [ "s3:ListBucket" ], "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET" } ] }
Operaciones de buckets en políticas de puntos de acceso

Los permisos concedidos en una política de puntos de acceso solo se aplican si el bucket subyacente permite los mismos permisos. Cuando utilice puntos de acceso de S3, debe delegar el control de acceso del bucket al punto de acceso o añadir los mismos permisos en las políticas del punto de acceso a la política del bucket subyacente. Para obtener más información, consulte Configurar las políticas de IAM para el uso de puntos de acceso. En las políticas de puntos de acceso, en las acciones de la política de S3 para las operaciones de buckets es necesario utilizar el ARN de accesspoint para el elemento Resource en el siguiente formato.

"Resource": "arn:aws:s3:us-west-2:123456789012:accesspoint/DOC-EXAMPLE-ACCESS-POINT"

La siguiente política de puntos de acceso otorga al usuario Akua con la cuenta 12345678901 el permiso s3:ListBucket para realizar la operación de la API ListObjectSv2 a través del punto de acceso de S3 DOC-EXAMPLE-ACCESS-POINT para enumerar los objetos del bucket asociado al punto de acceso.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow Akua to list objects in the bucket through access point", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::12345678901:user/Akua" }, "Action": [ "s3:ListBucket" ], "Resource": "arn:aws:s3:us-west-2:123456789012:accesspoint/DOC-EXAMPLE-ACCESS-POINT" } ] }
nota

El punto de acceso de S3 no admite todas las operaciones de bucket. Para obtener más información, consulte Compatibilidad de los puntos de acceso con las operaciones de S3.

Las operaciones de objetos son operaciones de la API de S3 que actúan en función del tipo de recurso del objeto. Por ejemplo, GetObject, PutObject y DeleteObject. Las acciones de políticas de S3 para las operaciones de objetos necesitan que el elemento Resource de las políticas sea el ARN del objeto de S3 en los siguientes formatos de ejemplo.

"Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"
"Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/prefix/*"
nota

El ARN del objeto debe contener una barra inclinada después del nombre del bucket, como se ha visto en los ejemplos anteriores.

La siguiente política de buckets concede al usuario Akua con la cuenta 12345678901 el permiso s3:PutObject para realizar la operación de la API PutObject para subir objetos a un bucket de S3.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow Akua to upload objects", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::12345678901:user/Akua" }, "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" } ] }
Operaciones de objetos en políticas de puntos de acceso

Cuando utilice puntos de acceso de S3 para controlar el acceso a las operaciones de los objetos, puede utilizar políticas de puntos de acceso. Cuando utilice políticas de puntos de acceso, las acciones de la política de S3 para operaciones con objetos requieren que utilice el ARN accesspoint para el elemento Resource en el siguiente formato: arn:aws:s3:region:account-id:accesspoint/access-point-name/object/resource. Para las operaciones de objetos que utilizan el punto de acceso, debe incluir el valor /object/ después de todo el ARN del punto de acceso en el elemento Resource. Estos son algunos ejemplos.

"Resource": "arn:aws:s3:us-west-2:123456789012:accesspoint/DOC-EXAMPLE-ACCESS-POINT/object/*"
"Resource": "arn:aws:s3:us-west-2:123456789012:accesspoint/DOC-EXAMPLE-ACCESS-POINT/object/prefix/*"

La siguiente política de puntos de acceso otorga al usuario Akua con la cuenta 12345678901 el permiso s3:GetObject para realizar la operación de la API GetObject a través del punto de acceso DOC-EXAMPLE-ACCESS-POINT en todos los objetos del bucket asociado al punto de acceso.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow Akua to get objects through access point", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::12345678901:user/Akua" }, "Action": [ "s3:GetObject" ], "Resource": "arn:aws:s3:us-west-2:123456789012:accesspoint/DOC-EXAMPLE-ACCESS-POINT/object/*" } ] }
nota

El punto de acceso de S3 no admite todas las operaciones de objetos. Para obtener más información, consulte Compatibilidad de los puntos de acceso con las operaciones de S3.

Las operaciones de puntos de acceso son operaciones de la API de S3 que funcionan en el tipo de recurso accesspoint. Por ejemplo, CreateAccessPoint, DeleteAccessPoint y GetAccessPointPolicy. Las acciones de políticas de S3 para las operaciones de punto de acceso solo pueden utilizarse en las políticas de IAM basadas en identidades, no en las políticas de buckets ni en las de puntos de acceso. Las operaciones de puntos de acceso requieren que el elemento Resource sea el ARN de accesspoint en el siguiente formato de ejemplo.

"Resource": "arn:aws:s3:us-west-2:123456789012:accesspoint/DOC-EXAMPLE-ACCESS-POINT"

La siguiente política de IAM basada en identidades concede el permiso s3:GetAccessPointPolicy para realizar la operación de la API GetAccessPointPolicy en el punto de acceso de S3 DOC-EXAMPLE-ACCESS-POINT.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Grant permission to retrieve the access point policy of access point DOC-EXAMPLE-ACCESS-POINT", "Effect": "Allow", "Action": [ "s3:GetAccessPointPolicy" ], "Resource": "arn:aws:s3:*:123456789012:access point/DOC-EXAMPLE-ACCESS-POINT" } ] }

Cuando utilice puntos de acceso, para controlar el acceso a las operaciones de buckets, consulte Operaciones de buckets en políticas de puntos de acceso; para controlar el acceso a las operaciones de objetos, consulte Operaciones de objetos en políticas de puntos de acceso. Para obtener más información acerca de cómo configurar políticas de punto de acceso, consulte Configurar las políticas de IAM para el uso de puntos de acceso.

Para obtener más información sobre cómo configurar políticas para operaciones de puntos de acceso de Object Lambda, consulte Configuración de las políticas de IAM para puntos de acceso de Object Lambda.

Para obtener más información sobre cómo configurar políticas para operaciones de puntos de acceso multiregionales, consulte Ejemplos de política de punto de acceso multirregional.

Las operaciones de trabajos (operaciones por lotes) son operaciones de la API de S3 que funcionan en el tipo de recurso de trabajo. Por ejemplo, DescribeJob y CreateJob. Las acciones de políticas de S3 para operaciones de trabajo solo pueden utilizarse en políticas basadas en identidades de IAM, no en políticas de buckets. Además, las operaciones de trabajos requieren que el elemento Resource de las políticas basadas en identidades de IAM sean el ARN de job en el siguiente formato de ejemplo.

"Resource": "arn:aws:s3:*:123456789012:job/*"

La siguiente política de IAM basada en identidades concede el permiso s3:DescribeJob para realizar la operación de la API DescribeJob en el trabajo de operaciones por lotes DOC-EXAMPLE-JOB de S3.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow describing the Batch operation job DOC-EXAMPLE-JOB", "Effect": "Allow", "Action": [ "s3:DescribeJob" ], "Resource": "arn:aws:s3:*:123456789012:job/DOC-EXAMPLE-JOB" } ] }

Para obtener más información acerca de cómo configurar las operaciones de configuración de S3 Storage Lens, consulte Permisos de Amazon S3 Storage Lens.

Las operaciones de cuentas son operaciones de la API de S3 que funcionan en el nivel de la cuenta. Por ejemplo, GetPublicAccessBlock (para una cuenta). La cuenta no es un tipo de recurso definido por Amazon S3. Las acciones de políticas de S3 para operaciones de cuentas solo pueden utilizarse en políticas basadas en identidades de IAM, no en políticas de buckets. Además, las operaciones de cuentas requieren que el elemento Resource de las políticas basadas en identidades de IAM sean "*".

La siguiente política de IAM basada en identidades concede el permiso s3:GetAccountPublicAccessBlock para realizar la operación de la API GetPublicAccessBlock en el nivel de la cuenta y recuperar la configuración del bloque de acceso público en el nivel de la cuenta.

{ "Version":"2012-10-17", "Statement":[ { "Sid":"Allow retrieving the account-level Public Access Block settings", "Effect":"Allow", "Action":[ "s3:GetAccountPublicAccessBlock" ], "Resource":[ "*" ] } ] }