

# Administración de identidades y accesos para Amazon S3
<a name="security-iam"></a>

AWS Identity and Access Management (IAM) es un Servicio de AWS que ayuda a los administradores a controlar de forma segura el acceso a los recursos de AWS. Los administradores de IAM controlan a qué personas se puede *autenticar* (pueden iniciar sesión) y *autorizar* (tienen permisos) para utilizar recursos de Amazon S3. IAM es un Servicio de AWS que se puede utilizar sin cargo adicional.

Para obtener más información sobre los permisos para las operaciones de la API de S3 por tipos de recursos de S3, consulte [Permisos necesarios para las operaciones de la API de Amazon S3](using-with-s3-policy-actions.md).

**nota**  
Para obtener más información sobre el uso de la clase de almacenamiento Amazon S3 Express One Zone con buckets de directorio, consulte [S3 Express One Zone](directory-bucket-high-performance.md#s3-express-one-zone) y [Trabajar con buckets de de directorio](directory-buckets-overview.md).

**Topics**
+ [Público](#security_iam_audience)
+ [Autenticación con identidades](#security_iam_authentication)
+ [Administración del acceso con políticas](#security_iam_access-manage)
+ [Cómo funciona Amazon S3 con IAM](security_iam_service-with-iam.md)
+ [Cómo autoriza Amazon S3 una solicitud](how-s3-evaluates-access-control.md)
+ [Permisos necesarios para las operaciones de la API de Amazon S3](using-with-s3-policy-actions.md)
+ [Políticas y permisos en Amazon S3](access-policy-language-overview.md)
+ [Políticas de buckets para Amazon S3](bucket-policies.md)
+ [Políticas basadas en identidad para Amazon S3](security_iam_id-based-policy-examples.md)
+ [Explicaciones que utilizan políticas para administrar el acceso a los recursos de Amazon S3](example-walkthroughs-managing-access.md)
+ [Uso de roles vinculados a servicios para Amazon S3 Storage Lens](using-service-linked-roles.md)
+ [Solución de problemas de identidad y acceso de Amazon S3](security_iam_troubleshoot.md)
+ [AWSPolíticas administradas por para Amazon S3](security-iam-awsmanpol.md)

## Público
<a name="security_iam_audience"></a>

La forma de utilizar AWS Identity and Access Management (IAM) varía en función del rol:
+ **Usuario del servicio:** solicite permisos al administrador si no puede acceder a las características (consulte [Solución de problemas de identidad y acceso de Amazon S3](security_iam_troubleshoot.md)).
+ **Administrador del servicio:** determine el acceso de los usuarios y envíe las solicitudes de permiso (consulte [Cómo funciona Amazon S3 con IAM](security_iam_service-with-iam.md)).
+ **Administrador de IAM**: escribe las políticas para administrar el acceso (consulte [Políticas basadas en identidad para Amazon S3](security_iam_id-based-policy-examples.md)).

## Autenticación con identidades
<a name="security_iam_authentication"></a>

La autenticación es la manera de iniciar sesión en AWS mediante credenciales de identidad. Debe autenticarse como el Usuario raíz de la cuenta de AWS, como un usuario de IAM o asumiendo un rol de IAM.

Se puede iniciar sesión como una identidad federada con las credenciales de un origen de identidad, como AWS IAM Identity Center (IAM Identity Center), la autenticación de inicio de sesión único o las credenciales de Google/Facebook. Para obtener más información sobre el inicio de sesión, consulte [Cómo iniciar sesión en la Cuenta de AWS](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) en la *Guía del usuario de AWS Sign-In*.

Para el acceso mediante programación, AWS proporciona un SDK y una CLI para firmar criptográficamente las solicitudes. Para obtener más información, consulte [AWS Signature Version 4 para solicitudes de API](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) en la *Guía del usuario de IAM*.

### Usuario raíz de la Cuenta de AWS
<a name="security_iam_authentication-rootuser"></a>

 Cuando se crea una Cuenta de AWS, se comienza con una identidad de inicio de sesión denominada *usuario raíz* de la Cuenta de AWS que tiene acceso completo a todos los Servicios de AWS y recursos. Se recomiendaencarecidamente que no utilice el usuario raíz para las tareas diarias. Para ver las tareas que requieren credenciales de usuario raíz, consulte [Tareas que requieren credenciales de usuario raíz](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks) en la *Guía del usuario de IAM*. 

### Identidad federada
<a name="security_iam_authentication-federated"></a>

Como práctica recomendada, exija a los usuarios humanos que utilicen la federación con un proveedor de identidades para acceder a Servicios de AWS con credenciales temporales.

Una *identidad federada* es un usuario del directorio empresarial, proveedor de identidad web o Directory Service que accede a los Servicios de AWS mediante credenciales de un origen de identidad. Las identidades federadas asumen roles que proporcionan credenciales temporales.

Para una administración de acceso centralizada, se recomienda AWS IAM Identity Center. Para obtener más información, consulte [¿Qué es el Centro de identidades de IAM?](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html) en la *Guía del usuario de AWS IAM Identity Center*.

### Usuarios y grupos de IAM
<a name="security_iam_authentication-iamuser"></a>

Un *[usuario de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)* es una identidad con permisos específicos para una sola persona o aplicación. Recomendamos el uso de credenciales temporales en lugar de usuarios de IAM con credenciales de larga duración. Para obtener más información, consulte [Exigir que los usuarios humanos utilicen la federación con un proveedor de identidades para acceder a AWS con credenciales temporales](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp) en la *Guía del usuario de IAM*.

Un [https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) especifica un conjunto de usuarios de IAM y facilita la administración de los permisos para grupos grandes de usuarios. Para obtener más información, consulte [Casos de uso para usuarios de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/gs-identities-iam-users.html) en la *Guía del usuario de IAM*.

### Roles de IAM
<a name="security_iam_authentication-iamrole"></a>

Un *[Rol de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)* es una identidad con permisos específicos que proporciona credenciales temporales. Se puede asumir un rol [cambiando de un usuario a un rol de IAM (consola)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html) o llamando a una operación de la API de la AWS CLI o AWS. Para obtener más información, consulte [Métodos para asumir un rol](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html) en la *Guía del usuario de IAM*.

Los roles de IAM son útiles para el acceso de usuario federado, los permisos de usuario de IAM temporales, el acceso entre cuentas, el acceso entre servicios y las aplicaciones que se ejecutan en Amazon EC2. Para obtener más información, consulte [Acceso a recursos entre cuentas en IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) en la *Guía del usuario de IAM*.

## Administración del acceso con políticas
<a name="security_iam_access-manage"></a>

Para controlar el acceso en AWS, se crean políticas y se adjuntan a identidades o recursos de AWS. Una política define los permisos cuando se asocia a una identidad o un recurso. AWS evalúa estas políticas cuando una entidad principal realiza una solicitud. La mayoría de las políticas se almacenan en AWS como documentos JSON. Para obtener más información sobre los documentos de políticas de JSON, consulte [Información general de políticas de JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json) en la *Guía del usuario de IAM*.

Mediante las políticas, los administradores especifican quién tiene acceso a qué, definiendo qué **entidad principal** puede realizar **acciones** sobre qué **recursos** y en qué **condiciones**.

De forma predeterminada, los usuarios y los roles no tienen permisos. Un administrador de IAM crea políticas de IAM y las agrega a roles, que los usuarios pueden asumir posteriormente. Las políticas de IAM definen permisos independientemente del método que se utilice para realizar la operación.

### Políticas basadas en identidades
<a name="security_iam_access-manage-id-based-policies"></a>

Las políticas basadas en identidad son documentos de política de permisos JSON que asocia a una identidad (usuario, grupo o rol). Estas políticas controlan qué acciones pueden realizar las identidades, en qué recursos y en qué condiciones. Para obtener más información sobre cómo crear una política basada en la identidad, consulte [Definición de permisos de IAM personalizados con políticas administradas por el cliente](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) en la *Guía del usuario de IAM*.

Las políticas basadas en identidad pueden ser *políticas insertadas* (incrustadas directamente en una sola identidad) o *políticas administradas* (políticas independientes asociadas a varias identidades). Para obtener información sobre cómo elegir entre políticas administradas e insertadas, consulte [Selección entre políticas administradas y políticas insertadas](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-choosing-managed-or-inline.html) en la *Guía del usuario de IAM*.

### Políticas basadas en recursos
<a name="security_iam_access-manage-resource-based-policies"></a>

Las políticas basadas en recursos son documentos de políticas JSON que se asocian a un recurso. Los ejemplos incluyen las *Políticas de confianza de roles* de IAM y las *Políticas de bucket* de Amazon S3. En los servicios que admiten políticas basadas en recursos, los administradores de servicios pueden utilizarlos para controlar el acceso a un recurso específico. Debe [especificar una entidad principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) en una política basada en recursos.

Las políticas basadas en recursos son políticas insertadas que se encuentran en ese servicio. No se pueden utilizar políticas de IAM administradas por AWS en una política basada en recursos.

### Otros tipos de políticas
<a name="security_iam_access-manage-other-policies"></a>

AWS admite tipos de políticas adicionales que pueden establecer el máximo de permisos concedidos por los tipos de políticas más frecuentes:
+ **Límites de permisos:** establecen los permisos máximos que una política basada en identidad puede conceder a una entidad de IAM. Para obtener más información, consulte [Límites de permisos para las entidades de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) en la *Guía del usuario de IAM*.
+ **Políticas de control de servicios (SCP):** especifican los permisos máximos para una organización o unidad organizativa en AWS Organizations. Para obtener más información, consulte [Políticas de control de servicios](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) en la *Guía del usuario de AWS Organizations*.
+ **Políticas de control de recursos (RCP):** definen los permisos máximos disponibles para los recursos de las cuentas. Para obtener más información, consulte [Políticas de control de recursos (RCP)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html) en la *Guía del usuario de AWS Organizations*.
+ **Políticas de sesión:** políticas avanzadas que se pasan como parámetro cuando se crea una sesión temporal para un rol o un usuario federado. Para obtener más información, consulte [Políticas de sesión](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) en la *Guía del usuario de IAM*.

### Varios tipos de políticas
<a name="security_iam_access-manage-multiple-policies"></a>

Cuando se aplican varios tipos de políticas a una solicitud, los permisos resultantes son más complicados de entender. Para obtener información acerca de cómo AWS decide si permitir o no una solicitud cuando hay varios tipos de políticas implicados, consulte [Lógica de evaluación de políticas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html) en la *Guía del usuario de IAM*.

# Cómo funciona Amazon S3 con IAM
<a name="security_iam_service-with-iam"></a>

Antes de utilizar IAM para administrar el acceso a Amazon S3, obtenga información sobre qué características de IAM se encuentran disponibles para su uso con Amazon S3.






**Características de IAM que puede utilizar con Amazon S3**  

| Característica de IAM | Compatibilidad con Amazon S3 | 
| --- | --- | 
|  [Políticas basadas en identidades](#security_iam_service-with-iam-id-based-policies)  |   Sí  | 
|  [Políticas basadas en recursos](#security_iam_service-with-iam-resource-based-policies)  |   Sí  | 
|  [Acciones de políticas](#security_iam_service-with-iam-id-based-policies-actions)  |   Sí  | 
|  [Recursos de políticas](#security_iam_service-with-iam-id-based-policies-resources)  |   Sí  | 
|  [Claves de condición de política (específicas del servicio)](#security_iam_service-with-iam-id-based-policies-conditionkeys)  |   Sí  | 
|  [ACL](#security_iam_service-with-iam-acls)  |   Sí  | 
|  [ABAC (etiquetas en políticas)](#security_iam_service-with-iam-tags)  |   Parcial  | 
|  [Credenciales temporales](#security_iam_service-with-iam-roles-tempcreds)  |   Sí  | 
|  [Sesiones de acceso directo (FAS)](#security_iam_service-with-iam-principal-permissions)  |   Sí  | 
|  [Roles de servicio](#security_iam_service-with-iam-roles-service)  |   Sí  | 
|  [Roles vinculados a servicios](#security_iam_service-with-iam-roles-service-linked)  |   Parcial  | 

Para obtener una perspectiva general sobre cómo funcionan Amazon S3 y otros servicios de AWS con la mayoría de las características de IAM, consulte [Servicios de AWS que funcionan con IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) en la *Guía del usuario de IAM*.

Para obtener más información sobre los permisos para las operaciones de la API de S3 por tipos de recursos de S3, consulte [Permisos necesarios para las operaciones de la API de Amazon S3](using-with-s3-policy-actions.md).

## Políticas basadas en identidad para Amazon S3
<a name="security_iam_service-with-iam-id-based-policies"></a>

**Compatibilidad con las políticas basadas en identidad:** sí

Las políticas basadas en identidad son documentos de políticas de permisos JSON que puede asociar a una identidad, como un usuario de IAM, un grupo de usuarios o un rol. Estas políticas controlan qué acciones pueden realizar los usuarios y los roles, en qué recursos y en qué condiciones. Para obtener más información sobre cómo crear una política basada en la identidad, consulte [Definición de permisos de IAM personalizados con políticas administradas por el cliente](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) en la *Guía del usuario de IAM*.

Con las políticas basadas en identidades de IAM, puede especificar las acciones y los recursos permitidos o denegados, así como las condiciones en las que se permiten o deniegan las acciones. Para obtener más información sobre los elementos que puede utilizar en una política de JSON, consulte [Referencia de los elementos de la política de JSON de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) en la *Guía del usuario de IAM*.

### Ejemplos de políticas basadas en identidad para Amazon S3
<a name="security_iam_service-with-iam-id-based-policies-examples"></a>

Para ver ejemplos de políticas basadas en identidad de Amazon S3, consulte [Políticas basadas en identidad para Amazon S3](security_iam_id-based-policy-examples.md).

## Políticas basadas en recursos dentro de Amazon S3
<a name="security_iam_service-with-iam-resource-based-policies"></a>

**Compatibilidad con las políticas basadas en recursos:** sí

Las políticas basadas en recursos son documentos de política JSON que se asocian a un recurso. Los ejemplos de políticas basadas en recursos son las *políticas de confianza de roles* de IAM y las *políticas de bucket* de Amazon S3. En los servicios que admiten políticas basadas en recursos, los administradores de servicios pueden utilizarlos para controlar el acceso a un recurso específico. Para el recurso al que se asocia la política, la política define qué acciones puede realizar una entidad principal especificada en ese recurso y en qué condiciones. Debe [especificar una entidad principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) en una política basada en recursos. Las entidades principales pueden incluir cuentas, usuarios, roles, usuarios federados o Servicios de AWS.

Para habilitar el acceso entre cuentas, puede especificar toda una cuenta o entidades de IAM de otra cuenta como la entidad principal de una política en función de recursos. Para obtener más información, consulte [Acceso a recursos entre cuentas en IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) en la *Guía del usuario de IAM*.

El servicio de Amazon S3 admite *políticas de bucket*, *políticas de puntos de acceso* y *concesiones de acceso*:
+ Las políticas de bucket son políticas basadas en recursos adjuntas a un bucket de Amazon S3. Una política de bucket define qué entidades principales pueden realizar acciones en el bucket.
+ Las políticas de puntos de acceso son políticas basadas en recursos que se evalúan junto con la política de bucket subyacente.
+ Las concesiones de acceso son un modelo simplificado para definir los permisos de acceso a los datos en Amazon S3 por prefijo, bucket u objeto. Para obtener información sobre las concesiones de acceso de S3, consulte [Administración del acceso con S3 Access Grants](access-grants.md).

### Entidades principales de las políticas de bucket
<a name="s3-bucket-user-policy-specifying-principal-intro"></a>

El elemento `Principal` especifica el usuario, la cuenta, el servicio u otra entidad con acceso permitido o denegado para un recurso. A continuación se proporcionan ejemplos de la especificación del elemento `Principal`. Para obtener más información, consulte [Principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) en la *guía del usuario de IAM*.

#### Concesión de permisos a una Cuenta de AWS
<a name="s3-aws-account-permissions"></a>

Para conceder permisos a una Cuenta de AWS, use el siguiente formato para identificar la cuenta.

```
"AWS":"account-ARN"
```

A continuación se muestran algunos ejemplos.

```
"Principal":{"AWS":"arn:aws:iam::AccountIDWithoutHyphens:root"}
```

```
"Principal":{"AWS":["arn:aws:iam::AccountID1WithoutHyphens:root","arn:aws:iam::AccountID2WithoutHyphens:root"]}
```

**nota**  
Los ejemplos anteriores otorgan permisos al usuario raíz, que delega los permisos en el nivel de cuenta. Sin embargo, las políticas de IAM siguen siendo necesarias para los roles y usuarios específicos de la cuenta.

#### Conceder permisos a un usuario de IAM
<a name="s3-aws-user-permissions"></a>

Para conceder permisos a un usuario de IAM dentro de la cuenta, debe proporcionar el par nombre-valor `"AWS":"user-ARN"`.

```
"Principal":{"AWS":"arn:aws:iam::account-number-without-hyphens:user/username"}
```

Para obtener ejemplos detallados que proporcionan instrucciones paso a paso, consulte [Ejemplo 1: propietario del bucket que concede permisos de bucket a sus usuarios](example-walkthroughs-managing-access-example1.md) y [Ejemplo 3: propietario del bucket que concede a sus usuarios permisos para objetos que no posee](example-walkthroughs-managing-access-example3.md).

**nota**  
Si se elimina una identidad de IAM después de actualizar la política de bucket, la política de bucket mostrará un identificador único en el elemento de la entidad principal en lugar de un ARN. Estos ID únicos nunca se reutilizan, por lo que puede eliminar de forma segura las entidades principales con identificadores únicos de todas las instrucciones de política. Para obtener más información acerca de los identificadores únicos, consulte [Identificadores de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-unique-ids) en la *Guía del usuario de IAM*.

#### Conceder permisos anónimos
<a name="s3-anonymous-permissions"></a>

**aviso**  
Extreme las precauciones a la hora de otorgar acceso anónimo a su bucket de Amazon S3. Al otorgar acceso anónimo, cualquier persona puede acceder a su bucket. Se recomienda encarecidamente que no otorgue nunca ningún tipo de acceso de escritura anónimo en su bucket de S3.

Para conceder permisos a todos los usuarios, lo que también se denomina acceso anónimo, puede establecer el carácter comodín (`"*"`) como valor de `Principal`. Por ejemplo, si configura el bucket como sitio web, es porque desea que todos los objetos en el bucket tengan acceso público.

```
"Principal":"*"
```

```
"Principal":{"AWS":"*"}
```

Utilizar `"Principal": "*"` con un efecto de `Allow` en una política basada en recursos permite que cualquier persona, incluso si no ha iniciado sesión en AWS, acceda a su recurso. 

Utilizar `"Principal" : { "AWS" : "*" }` con un efecto de `Allow` en una política basada en recursos permite que cualquier usuario raíz, usuario de IAM, sesión de rol asumido o usuario federado en cualquier cuenta de la misma partición acceda a su recurso.

Para los usuarios anónimos, estos dos métodos son equivalentes. Para obtener más información, consulte [Todas las entidades principales](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-anonymous) en la *Guía del usuario de IAM*.

No puede utilizar un carácter comodín para buscar coincidencias con parte de un nombre de entidad principal o ARN.

**importante**  
En las políticas de control de acceso de AWS, las entidades principales “\$1” y \$1“AWS”: “\$1”\$1 se comportan de forma idéntica.

#### Restringir los permisos de recursos
<a name="s3-restrict-permissions"></a>

También puede utilizar la política de recursos para restringir el acceso a los recursos que, de otro modo, estarían disponibles para las entidades principales de IAM. Utilice una instrucción `Deny` para impedir el acceso.

El siguiente ejemplo bloquea el acceso si no se utiliza un protocolo de transporte seguro:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyBucketAccessIfSTPNotUsed",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:*",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
      "Condition": {
        "Bool": {
          "aws:SecureTransport": "false"
        }
      }
    }
  ]
}
```

------

Una práctica recomendada para esta política es usar `"Principal": "*"` para que esta restricción se aplique a todo el mundo, en lugar de intentar denegar el acceso solo a cuentas o entidades principales específicas mediante este método. 

#### Requerir acceso a través de URL de CloudFront
<a name="require-cloudfront-urls"></a>

Puede exigir a los usuarios que obtengan acceso al contenido de Amazon S3 solo mediante direcciones URL de CloudFront en lugar de direcciones URL de Amazon S3. Para ello, cree un control de acceso de origen (OAC) de CloudFront. A continuación, cambie los permisos de los datos de S3. En la política de bucket, puede configurar CloudFront como entidad principal de la siguiente manera:

```
"Principal":{"Service":"cloudfront.amazonaws.com"}
```

Utilice un elemento `Condition` en la política para permitir que CloudFront acceda al bucket solo cuando la solicitud sea en nombre de la distribución de CloudFront que contiene el origen de S3.

```
        "Condition": {
           "StringEquals": {
              "AWS:SourceArn": "arn:aws:cloudfront::111122223333:distribution/CloudFront-distribution-ID"
           }
        }
```

Para obtener más información acerca de cómo solicitar acceso de S3 a través de las URL de CloudFront, consulte [Restricción del acceso a un origen de Amazon Simple Storage Service](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html) en la *Guía para desarrolladores de Amazon CloudFront*. Para obtener más información sobre los beneficios de seguridad y privacidad de usar Amazon CloudFront, consulte [Configuración de acceso seguro y acceso restringido al contenido](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/SecurityAndPrivateContent.html). 

### Ejemplos de políticas basadas en recursos para Amazon S3
<a name="security_iam_service-with-iam-resource-based-policies-examples"></a>
+ Para ver ejemplos de políticas de buckets de Amazon S3, consulte [Políticas de buckets para Amazon S3](bucket-policies.md).
+ Para ver ejemplos de políticas de puntos de acceso, consulte [Configurar las políticas de IAM para el uso de puntos de acceso](access-points-policies.md).

## Acciones de políticas para Amazon S3
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

**Compatibilidad con las acciones de políticas:** sí

Los administradores pueden utilizar las políticas JSON de AWS para especificar quién tiene acceso a qué. Es decir, qué **entidad principal** puede realizar **acciones** en qué **recursos** y en qué **condiciones**.

El elemento `Action` de una política JSON describe las acciones que puede utilizar para conceder o denegar el acceso en una política. Incluya acciones en una política para conceder permisos y así llevar a cabo la operación asociada.

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 ver una lista de las acciones de Amazon S3 para usar en políticas, consulte [Acciones definidas por Amazon S3](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html#amazons3-actions-as-permissions) en la *Referencia de autorizaciones de servicio*. Para obtener una lista de operaciones de la API de Amazon S3, consulte [Amazon S3 API Actions](https://docs.aws.amazon.com//AmazonS3/latest/API/API_Operations.html) en la *Referencia de la API de Amazon Simple Storage Service*.

Para obtener más información sobre los permisos para las operaciones de la API de S3 por tipos de recursos de S3, consulte [Permisos necesarios para las operaciones de la API de Amazon S3](using-with-s3-policy-actions.md).

Las acciones de políticas de Amazon S3 utilizan el siguiente prefijo antes de la acción:

```
s3
```

Para especificar varias acciones en una única instrucción, sepárelas con comas.

```
"Action": [
      "s3:action1",
      "s3:action2"
         ]
```





### Operaciones con buckets
<a name="using-with-s3-actions-related-to-buckets"></a>

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:::amzn-s3-demo-bucket"
```

La siguiente política de buckets otorga al usuario `Akua` la cuenta `12345678901` con el permiso `s3:ListBucket` para realizar la operación de la API [https://docs.aws.amazon.com//AmazonS3/latest/API/API_PutObject.html](https://docs.aws.amazon.com//AmazonS3/latest/API/API_PutObject.html) y mostrar los objetos de un bucket de S3.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Allow Akua to list objects in the bucket",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:user/Akua"
            },
            "Action": [
            "s3:ListBucket"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket"
        }
    ]
}
```

------
<a name="bucket-operations-ap"></a>
**Operaciones de bucket en políticas para puntos de acceso para buckets de propósito general**  
Los permisos concedidos en una política de puntos de acceso para buckets de propósito general son efectivos solo 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](access-points-policies.md). En las políticas de puntos de acceso, las acciones de la política de S3 para las operaciones de buckets requieren que utilice el ARN de punto de acceso para el elemento `Resource` en el siguiente formato. 

```
"Resource": "arn:aws:s3:us-west-2:123456789012:accesspoint/example-access-point"
```

La siguiente política de punto de acceso otorga al usuario `Akua` la cuenta `12345678901` el permiso `s3:ListBucket` para realizar la operación de la API [https://docs.aws.amazon.com//AmazonS3/latest/API/API_ListObjectsV2.html](https://docs.aws.amazon.com//AmazonS3/latest/API/API_ListObjectsV2.html) a través del punto de acceso de S3 denominado `example-access-point`. Este permiso permite a `Akua` mostrar los objetos del bucket al que está asociado `example-access-point`. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowAkuaToListObjectsInBucketThroughAccessPoint",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:user/Akua"
            },
            "Action": [
            "s3:ListBucket"
            ],
            "Resource": "arn:aws:s3:us-west-2:111122223333:accesspoint/example-access-point"
        }
    ]
}
```

------

**nota**  
No todas las operaciones de bucket son compatibles con los puntos de acceso para buckets de propósito general. Para obtener más información, consulte [Compatibilidad de los puntos de acceso con las operaciones de S3](access-points-service-api-support.md#access-points-operations-support).
<a name="bucket-operations-ap-directory-buckets"></a>
**Operaciones con buckets en políticas de puntos de acceso para buckets de directorio**  
Los permisos concedidos en una política de puntos de acceso para buckets de directorio son efectivos solo 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 [Configuración de las políticas de IAM para utilizar puntos de acceso para buckets de directorio](access-points-directory-buckets-policies.md). En las políticas de puntos de acceso, las acciones de la política de S3 para las operaciones de buckets requieren que utilice el ARN de punto de acceso para el elemento `Resource` en el siguiente formato. 

```
"Resource": "arn:aws:s3:us-west-2:123456789012:accesspoint/example-access-point--usw2-az1--xa-s3"
```

La siguiente política de punto de acceso otorga al usuario `Akua` la cuenta `12345678901` el permiso `s3:ListBucket` para realizar la operación de la API [https://docs.aws.amazon.com//AmazonS3/latest/API/API_ListObjectsV2.html](https://docs.aws.amazon.com//AmazonS3/latest/API/API_ListObjectsV2.html) a través del punto de acceso denominado `example-access-point--usw2-az1--xa-s3`. Este permiso permite a `Akua` mostrar los objetos del bucket al que está asociado `example-access-point--usw2-az1--xa-s3`. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowAkuaToListObjectsInTheBucketThroughAccessPoint",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:user/Akua"
            },
            "Action": [
            "s3:ListBucket"
            ],
            "Resource": "arn:aws:s3express:us-east-1:111122223333:accesspoint/example-access-point-usw2-az1-xa-s3"
        }
    ]
}
```

------

**nota**  
No todas las operaciones de bucket son compatibles con los puntos de acceso para buckets de directorio. Para obtener más información, consulte [Operaciones de objeto de punto de acceso para los buckets de directorio](access-points-directory-buckets-service-api-support.md).

### Operaciones con objetos
<a name="using-with-s3-actions-related-to-objects"></a>

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:::amzn-s3-demo-bucket/*"
```

```
"Resource": "arn:aws:s3:::amzn-s3-demo-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 bucket concede al usuario `Akua` la cuenta `12345678901` el permiso `s3:PutObject`. Este permiso permite a `Akua` utilizar la operación de la API [https://docs.aws.amazon.com//AmazonS3/latest/API/API_PutObject.html](https://docs.aws.amazon.com//AmazonS3/latest/API/API_PutObject.html) para cargar objetos en el bucket de S3 denominado `amzn-s3-demo-bucket`.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Allow Akua to upload objects",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:user/Akua"
            },
            "Action": [
            "s3:PutObject"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
        }
    ]
}
```

------
<a name="object-operations-ap"></a>
**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 de punto de acceso 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 puntos 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/example-access-point/object/*"
```

```
"Resource": "arn:aws:s3:us-west-2:123456789012:accesspoint/example-access-point/object/prefix/*"
```

La siguiente política de punto de acceso concede al usuario `Akua` la cuenta `12345678901` el permiso `s3:GetObject`. Este permiso permite a `Akua` realizar la operación de la API [https://docs.aws.amazon.com//AmazonS3/latest/API/API_GetObject.html](https://docs.aws.amazon.com//AmazonS3/latest/API/API_GetObject.html) a través del punto de acceso denominado `example-access-point` en todos los objetos del bucket asociado al punto de acceso. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Allow Akua to get objects through access point",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:user/Akua"
            },
            "Action": [
            "s3:GetObject"
            ],
            "Resource": "arn:aws:s3:us-east-1:111122223333:accesspoint/example-access-point/object/*"
        }
    ]
}
```

------

**nota**  
Los puntos de acceso no admiten todas las operaciones de objetos. Para obtener más información, consulte [Compatibilidad de los puntos de acceso con las operaciones de S3](access-points-service-api-support.md#access-points-operations-support).
<a name="object-operations-ap-directory-buckets"></a>
**Operaciones con objetos en políticas de puntos de acceso para buckets de directorio**  
Cuando utilice puntos de acceso para buckets de directorio 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 de punto de acceso 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 puntos 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:s3express:us-west-2:123456789012:accesspoint/example-access-point--usw2-az1--xa-s3/object/*"
```

```
"Resource": "arn:aws:s3express:us-west-2:123456789012:accesspoint/example-access-point--usw2-az1--xa-s3/object/prefix/*"
```

La siguiente política de punto de acceso concede al usuario `Akua` la cuenta `12345678901` el permiso `s3:GetObject`. Este permiso permite a `Akua` realizar la operación de la API [https://docs.aws.amazon.com//AmazonS3/latest/API/API_GetObject.html](https://docs.aws.amazon.com//AmazonS3/latest/API/API_GetObject.html) a través del punto de acceso denominado `example-access-point--usw2-az1--xa-s3` 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": "s3express:CreateSession","s3:GetObject"
            "Resource": "arn:aws:s3:us-west-2:123456789012:accesspoint/example-access-point--usw2-az1--xa-s3/object/*"
        }
    ]
}
```

**nota**  
No todas las operaciones de objeto son compatibles con los puntos de acceso para buckets de directorio. Para obtener más información, consulte [Operaciones de objeto de punto de acceso para los buckets de directorio](access-points-directory-buckets-service-api-support.md).

### Operaciones de punto de acceso para buckets de propósito general
<a name="using-with-s3-actions-related-to-accesspoint"></a>

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 punto de acceso en el siguiente formato de ejemplo. 

```
"Resource": "arn:aws:s3:us-west-2:123456789012:accesspoint/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 [https://docs.aws.amazon.com//AmazonS3/latest/API/API_control_GetAccessPointPolicy.html](https://docs.aws.amazon.com//AmazonS3/latest/API/API_control_GetAccessPointPolicy.html) en el punto de acceso de S3 denominado `example-access-point`.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "GrantPermissionToRetrieveTheAccessPointPolicyOfAccessPointExampleAccessPoint",
            "Effect": "Allow",
            "Action": [
            "s3:GetAccessPointPolicy"
            ],
            "Resource": "arn:aws:s3:*:123456789012:accesspoint/example-access-point"
        }
    ]
}
```

------

Cuando utilice puntos de acceso, para controlar el acceso a las operaciones de buckets, consulte [Operaciones de bucket en políticas para puntos de acceso para buckets de propósito general](#bucket-operations-ap); para controlar el acceso a las operaciones de objetos, consulte [Operaciones de objetos en políticas de puntos de acceso](#object-operations-ap). 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](access-points-policies.md).

### Operaciones de punto de acceso para buckets de directorio
<a name="using-with-s3-actions-related-to-accesspoint-directory-buckets"></a>

Las operaciones de punto de acceso para buckets de directorio son operaciones de la API de S3 que operan sobre 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 para buckets de directorio requieren que el elemento `Resource` sea el ARN de punto de acceso en el siguiente formato de ejemplo. 

```
"Resource": "arn:aws:s3:us-west-2:123456789012:accesspoint/example-access-point--usw2-az1--xa-s3"
```

La siguiente política de IAM basada en identidades concede el permiso `s3express:GetAccessPointPolicy` para realizar la operación de la API [https://docs.aws.amazon.com//AmazonS3/latest/API/API_control_GetAccessPointPolicy.html](https://docs.aws.amazon.com//AmazonS3/latest/API/API_control_GetAccessPointPolicy.html) en el punto de acceso denominado `example-access-point--usw2-az1--xa-s3`.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "GrantPermissionToRetrieveTheAccessPointPolicyOfAccessPointExampleAccessPointUsw2Az1XaS3",
            "Effect": "Allow",
            "Action": [
            "s3express:CreateSession","s3express:GetAccessPointPolicy"
            ],
            "Resource": "arn:aws:s3:*:111122223333:accesspoint/example-access-point"
        }
    ]
}
```

------

La siguiente política de IAM basada en identidades concede el permiso `s3express:CreateAccessPoint` para crear un punto de acceso para buckets de directorio.

```
{
    "Version": "2012-10-17", 		 	 	 
    "Statement": [
        {
            "Sid": "Grant CreateAccessPoint.",
            "Principal": "*",
            "Action": "s3express:CreateSession",
            "s3express:CreateAccessPoint""Effect": "Allow",
            "Resource": "*"
        }
    ]
}
```

La siguiente política de IAM basada en identidades concede el permiso `s3express:PutAccessPointScope` para crear un alcance de punto de acceso para puntos de acceso para buckets de directorio.

```
{
    "Version": "2012-10-17", 		 	 	 
    "Statement": [
        {
            "Sid": "Grant PutAccessPointScope",
            "Principal": "*",
            "Action": "s3express:CreateSession",
            "s3express:CreateAccessPoint",
            "S3Express:PutAccessPointScope""Effect": "Allow",
            "Resource": "*",
        }
    ]
}
```

Cuando utilice puntos de acceso para buckets de directorio para controlar el acceso a operaciones de bucket, consulte [Operaciones con buckets en políticas de puntos de acceso para buckets de directorio](#bucket-operations-ap-directory-buckets); para controlar el acceso a operaciones con objetos, consulte [Operaciones con objetos en políticas de puntos de acceso para buckets de directorio](#object-operations-ap-directory-buckets). Para obtener más información sobre cómo configurar las políticas de los puntos de acceso para buckets de directorio, consulte [Configuración de las políticas de IAM para utilizar puntos de acceso para buckets de directorio](access-points-directory-buckets-policies.md).

### Operaciones de punto de acceso de Object Lambda
<a name="using-with-s3-actions-related-to-olap"></a>

Con Amazon S3 Object Lambda, puede agregar su propio código a las solicitudes `GET`, `LIST` y `HEAD` de Amazon S3 para modificar y procesar los datos a medida que vuelven a una aplicación. Puede realizar solicitudes a través de un punto de acceso de Object Lambda, que funciona como realizar solicitudes a través de otros puntos de acceso. Para obtener más información, consulte [Transformación de objetos con Lambda para objetos S3](transforming-objects.md).

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](olap-policies.md).

### Operaciones de puntos de acceso multirregionales
<a name="using-with-s3-actions-related-to-mrap"></a>

Un punto de acceso multirregional proporciona un punto de conexión global que las aplicaciones pueden utilizar para satisfacer las solicitudes de los buckets de S3 ubicados en varias Región de AWS. Puede utilizar un punto de acceso multirregional para crear aplicaciones multirregionales con la misma arquitectura que se utiliza en una sola región y, a continuación, ejecutar esas aplicaciones en cualquier parte del mundo. Para obtener más información, consulte [Administración del tráfico de varias regiones con puntos de acceso de varias regiones](MultiRegionAccessPoints.md).

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](MultiRegionAccessPointPermissions.md#MultiRegionAccessPointPolicyExamples).

### Operaciones de trabajos por lotes
<a name="using-with-s3-actions-related-to-batchops"></a>

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](https://docs.aws.amazon.com//AmazonS3/latest/API/API_DescribeJob.html) en el trabajo de operaciones por lotes de S3 denominado `example-job`.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowDescribingBatchOperationJob",
            "Effect": "Allow",
            "Action": [
            "s3:DescribeJob"
            ],
            "Resource": "arn:aws:s3:*:111122223333:job/example-job"
        }
    ]
}
```

------

### Operaciones de configuración de S3 Storage Lens
<a name="using-with-s3-actions-related-to-lens"></a>

Para obtener más información acerca de cómo configurar las operaciones de configuración de S3 Storage Lens, consulte [Configuración de permisos de Lente de almacenamiento de Amazon S3](storage_lens_iam_permissions.md).

### Operaciones de cuentas
<a name="using-with-s3-actions-related-to-accounts"></a>

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 [https://docs.aws.amazon.com//AmazonS3/latest/API/API_control_GetPublicAccessBlock.html](https://docs.aws.amazon.com//AmazonS3/latest/API/API_control_GetPublicAccessBlock.html) en el nivel de la cuenta y recuperar la configuración del bloque de acceso público en el nivel de la cuenta.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"AllowRetrievingTheAccountLevelPublicAccessBlockSettings",
         "Effect":"Allow",
         "Action":[
            "s3:GetAccountPublicAccessBlock" 
         ],
         "Resource":[
            "*"
         ]
       }
    ]
}
```

------

### Ejemplos de políticas para Amazon S3
<a name="security_iam_service-with-policies-examples-actions"></a>
+ Para ver ejemplos de políticas basadas en identidad de Amazon S3, consulte [Políticas basadas en identidad para Amazon S3](security_iam_id-based-policy-examples.md).
+ Para ver ejemplos de políticas basadas en recursos de Amazon S3, consulte [Políticas de buckets para Amazon S3](bucket-policies.md) y [Configurar las políticas de IAM para el uso de puntos de acceso](access-points-policies.md).

## Recursos de políticas para Amazon S3
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

**Compatibilidad con los recursos de políticas:** sí

Los administradores pueden utilizar las políticas JSON de AWS para especificar quién tiene acceso a qué. Es decir, qué **entidad principal** puede realizar **acciones** en qué **recursos** y en qué **condiciones**.

El elemento `Resource` de la política JSON especifica el objeto u objetos a los que se aplica la acción. Como práctica recomendada, especifique un recurso utilizando el [Nombre de recurso de Amazon (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html). En el caso de las acciones que no admiten permisos por recurso, utilice un carácter comodín (\$1) para indicar que la instrucción se aplica a todos los recursos.

```
"Resource": "*"
```

Algunas acciones de la API de Amazon S3 admiten varios recursos. Por ejemplo, `s3:GetObject` accede a `example-resource-1` y `example-resource-2`, por lo que una entidad principal debe tener permisos para acceder a ambos recursos. Para especificar varios recursos en una única instrucción, separe los ARN con comas, como se muestra en el siguiente ejemplo. 

```
"Resource": [
      "example-resource-1",
      "example-resource-2"
```

Los recursos de Amazon S3 son buckets, objetos, puntos de acceso o trabajos. En una política, utilice el nombre de recurso de Amazon (ARN) del bucket, objeto, punto de acceso o trabajo para identificar el recurso.

Para ver una lista completa de los tipos de recursos de Amazon S3 y los ARN, consulte [Recursos definidos por Amazon S3](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html#amazons3-resources-for-iam-policies) en la *Referencia de autorizaciones de servicio*. Para obtener información acerca de las acciones con las que puede especificar el ARN de cada recurso, consulte [Acciones definidas por Amazon S3](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html#amazons3-actions-as-permissions).

Para obtener más información sobre los permisos para las operaciones de la API de S3 por tipos de recursos de S3, consulte [Permisos necesarios para las operaciones de la API de Amazon S3](using-with-s3-policy-actions.md).

### Comodines en ARN de recursos
<a name="s3-arn-wildcards"></a>

Puede utilizar caracteres comodín como parte del ARN del recurso. Puede utilizar caracteres comodín (`*` y `?`) en cualquier segmento del ARN (las partes se separan mediante signos de dos puntos). Un asterisco (`*`) representa cualquier combinación de cero o más caracteres y un signo de interrogación (`?`) representa un único carácter. Puede utilizar varios caracteres `*` o `?` de cada segmento. Sin embargo, un carácter comodín no puede abarcar segmentos. 
+ El ARN siguiente utiliza el carácter comodín `*` en la parte `relative-ID` del ARN para identificar todos los objetos del bucket de `amzn-s3-demo-bucket`.

  ```
  1. arn:aws:s3:::amzn-s3-demo-bucket/*
  ```
+ El siguiente ARN utiliza `*` para indicar todos los buckets de S3 y objetos.

  ```
  arn:aws:s3:::*
  ```
+ El siguiente ARN utiliza ambos caracteres comodines, `*` y `?`, en la parte `relative-ID`. Este ARN Identifica todos los objetos en los buckets como *`amzn-s3-demo-example1bucket`*, `amzn-s3-demo-example2bucket`, `amzn-s3-demo-example3bucket`, etc.

  ```
  1. arn:aws:s3:::amzn-s3-demo-example?bucket/*
  ```

### Variables de política para ARN de recursos
<a name="s3-policy-variables"></a>

Puede utilizar variables de política en los ARN de Amazon S3. Cuando se evalúa una política, estas variables predefinidas se sustituyen por los valores correspondientes. Supongamos que organiza el bucket como una recopilación de carpetas, con una carpeta para cada uno de los usuarios. El nombre de la carpeta será igual al nombre del usuario. Para conceder a los usuarios permisos para sus carpetas, puede especificar una variable de política en el ARN del recurso:

```
arn:aws:s3:::bucket_name/developers/${aws:username}/
```

En tiempo de ejecución, cuando se evalúa la política, la variable `${aws:username}` en el ARN del recurso se sustituye por el nombre de usuario de la persona que realiza la solicitud. 





### Ejemplos de políticas para Amazon S3
<a name="security_iam_service-with-policies-examples-resources"></a>
+ Para ver ejemplos de políticas basadas en identidad de Amazon S3, consulte [Políticas basadas en identidad para Amazon S3](security_iam_id-based-policy-examples.md).
+ Para ver ejemplos de políticas basadas en recursos de Amazon S3, consulte [Políticas de buckets para Amazon S3](bucket-policies.md) y [Configurar las políticas de IAM para el uso de puntos de acceso](access-points-policies.md).

## Claves de condición de políticas para Amazon S3
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

**Compatibilidad con claves de condición de políticas específicas del servicio:** sí

Los administradores pueden utilizar las políticas JSON de AWS para especificar quién tiene acceso a qué. Es decir, qué **entidad principal** puede realizar **acciones** en qué **recursos** y en qué **condiciones**.

El elemento `Condition` especifica cuándo se ejecutan las instrucciones en función de criterios definidos. Puede crear expresiones condicionales que utilizan [operadores de condición](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html), tales como igual o menor que, para que la condición de la política coincida con los valores de la solicitud. Para ver todas las claves de condición globales de AWS, consulte [Claves de contexto de condición globales de AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) en la *Guía del usuario de IAM*.

Cada clave de condición de Amazon S3 se asigna al encabezado de solicitud con el mismo nombre permitido por la API en la que se puede establecer la condición. Las claves de condición específicas de Amazon S3 dictan el comportamiento de los encabezados de solicitudes del mismo nombre. Por ejemplo, la clave de condición `s3:VersionId` utilizada para conceder permisos condicionales para el permiso `s3:GetObjectVersion` define el comportamiento del parámetro de consulta `versionId` que establece en una solicitud GET Object.

Para ver una lista de las claves de condición de Amazon S3, consulte [Claves de condición para Amazon S3](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html#amazons3-policy-keys) en la *Referencia de autorizaciones de servicio*. Para obtener más información acerca de las acciones y los recursos con los que puede utilizar una clave de condición, consulte [Acciones definidas por Amazon S3](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html#amazons3-actions-as-permissions).

### Ejemplo: restricción de cargas de objetos a objetos con una clase de almacenamiento específica
<a name="example-storage-class-condition-key"></a>

Supongamos que la cuenta A, representada por el ID de cuenta `123456789012`, posee un bucket. El administrador de la cuenta A desea restringir a *`Dave`*, un usuario en la cuenta A, para que *`Dave`* pueda cargar objetos en el bucket solo si se almacena el objeto en la clase de almacenamiento `STANDARD_IA`. Para restringir las cargas de objetos a una clase de almacenamiento específica, el administrador de cuenta A puede utilizar la clave de condición `s3:x-amz-storage-class`, como se muestra en la siguiente política de bucket de ejemplo. 

------
#### [ JSON ]

****  

```
{
                 "Version":"2012-10-17",		 	 	 
                 "Statement": [
                   {
                     "Sid": "statement1",
                     "Effect": "Allow",
                     "Principal": {
                       "AWS": "arn:aws:iam::123456789012:user/Dave"
                     },
                     "Action": "s3:PutObject",
                     "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/*",
                     "Condition": {
                       "StringEquals": {
                         "s3:x-amz-storage-class": [
                           "STANDARD_IA"
                         ]
                       }
                     }
                   }
                 ]
            }
```

------

En el ejemplo, el bloque `Condition` especifica la condición `StringEquals` que se aplica al par clave-valor especificado, `"s3:x-amz-acl":["public-read"]`. Existe un conjunto de claves predefinidas que puede usar para expresar una condición. En el ejemplo se utiliza la clave de condición `s3:x-amz-acl`. Esta condición requiere que el usuario incluya el encabezado `x-amz-acl` con el valor `public-read` en cada solicitud de `PutObject`.

### Ejemplos de políticas para Amazon S3
<a name="security_iam_service-with-policies-examples-conditions"></a>
+ Para ver ejemplos de políticas basadas en identidad de Amazon S3, consulte [Políticas basadas en identidad para Amazon S3](security_iam_id-based-policy-examples.md).
+ Para ver ejemplos de políticas basadas en recursos de Amazon S3, consulte [Políticas de buckets para Amazon S3](bucket-policies.md) y [Configurar las políticas de IAM para el uso de puntos de acceso](access-points-policies.md).

## ACL en Amazon S3
<a name="security_iam_service-with-iam-acls"></a>

**Compatibilidad con ACL**: sí

En Amazon S3, las listas de control de acceso (ACL) controlan qué Cuentas de AWS tienen permisos para acceder a un recurso. Las ACL son similares a las políticas basadas en recursos, aunque no utilizan el formato de documento de políticas JSON.

**importante**  
La mayoría de los casos de uso modernos de Amazon S3 ya no requieren el uso de ACL. 

Para obtener información acerca de cómo usar ACL para controlar el acceso en Amazon S3, consulte [Administración de acceso con ACL](acls.md).

## ABAC con Amazon S3
<a name="security_iam_service-with-iam-tags"></a>

**Compatibilidad con ABAC (etiquetas en las políticas):** parcial

El control de acceso basado en atributos (ABAC) es una estrategia de autorización que define permisos en función de atributos denominados etiquetas. Puede asociar etiquetas a entidades de IAM y recursos de AWS y, a continuación, diseñar políticas de ABAC para permitir operaciones cuando la etiqueta de la entidad principal coincida con la etiqueta del recurso.

Para controlar el acceso en función de etiquetas, debe proporcionar información de las etiquetas en el [elemento de condición](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) de una política utilizando las claves de condición `aws:ResourceTag/key-name`, `aws:RequestTag/key-name` o `aws:TagKeys`.

Si un servicio admite las tres claves de condición para cada tipo de recurso, el valor es **Sí** para el servicio. Si un servicio admite las tres claves de condición solo para algunos tipos de recursos, el valor es **Parcial**.

*Para obtener más información sobre ABAC, consulte [Definición de permisos con la autorización de ABAC](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html) en la Guía del usuario de IAM*. Para ver un tutorial con los pasos para configurar ABAC, consulte [Uso del control de acceso basado en atributos (ABAC)](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html) en la *Guía del usuario de IAM*.

Para obtener información sobre los recursos que admiten ABAC en Amazon S3, consulte [Uso de etiquetas para el control de acceso basado en atributos (ABAC)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/tagging.html#using-tags-for-abac).

Para ver ejemplos de políticas basadas en identidades para limitar el acceso a trabajos de operaciones por lotes de S3 en función de etiquetas, consulte [Control de permisos para Operaciones por lotes mediante etiquetas de trabajo](batch-ops-job-tags-examples.md).

### ABAC y etiquetas de objetos
<a name="s3-object-tags"></a>

En las políticas de ABAC, los objetos utilizan etiquetas de `s3:` en lugar de etiquetas de `aws:`. Para controlar el acceso a objetos en función de etiquetas de objetos, debe proporcionar información de las etiquetas en el [elemento de Condition](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) de una política con las siguientes etiquetas:
+ `s3:ExistingObjectTag/tag-key`
+ `s3:RequestObjectTagKeys`
+ `s3:RequestObjectTag/tag-key`

Para obtener información sobre el uso de etiquetas de objetos para controlar el acceso, incluidos ejemplos de políticas de permisos, consulte [Etiquetado y políticas de control de acceso](tagging-and-policies.md).

## Uso de credenciales temporales con Amazon S3
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

**Compatibilidad con credenciales temporales:** sí

Las credenciales temporales proporcionan acceso a corto plazo a los recursos de AWS y se crean automáticamente cuando se utiliza la federación o se cambia de rol. AWS recomienda generar credenciales temporales de forma dinámica en lugar de usar claves de acceso a largo plazo. Para obtener más información, consulte [Credenciales de seguridad temporales en IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) y [Servicios de AWS que funcionan con IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) en la *Guía del usuario de IAM*.

## Sesiones de acceso directo para Amazon S3
<a name="security_iam_service-with-iam-principal-permissions"></a>

**Admite sesiones de acceso directo (FAS):** sí

 Las sesiones de acceso directo (FAS) utilizan los permisos de la entidad principal para llamar a un Servicio de AWS, combinados con el Servicio de AWS solicitante, para realizar solicitudes a servicios posteriores. Para obtener información sobre las políticas a la hora de realizar solicitudes de FAS, consulte [Sesiones de acceso directo](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html). 
+ Amazon S3 utiliza FAS para realizar llamadas a AWS KMS para descifrar un objeto cuando se ha utilizado SSE-KMS para cifrarlo. Para obtener más información, consulte [Uso del cifrado del servidor con claves de AWS KMS (SSE-KMS)](UsingKMSEncryption.md). 
+ Las concesiones de acceso de S3 también utilizan FAS. Tras crear una concesión de acceso a los datos de S3 para una identidad concreta, el concesionario solicita una credencial temporal de concesiones de acceso de S3. Las concesiones de acceso de S3 obtienen una credencial temporal para el solicitante de AWS STS y venden la credencial al solicitante. Para obtener más información, consulte [Solicitar acceso a los datos de Amazon S3 a través de S3 Access Grants](access-grants-credentials.md).

## Roles de servicio para Amazon S3
<a name="security_iam_service-with-iam-roles-service"></a>

**Compatible con roles de servicio:** sí

 Un rol de servicio es un [rol de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) que asume un servicio para realizar acciones en su nombre. Un administrador de IAM puede crear, modificar y eliminar un rol de servicio desde IAM. Para obtener más información, consulte [Crear un rol para delegar permisos a un Servicio de AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) en la *Guía del usuario de IAM*. 

**aviso**  
Es posible que cambiar los permisos de un rol de servicio interrumpa la funcionalidad de Amazon S3. Edite los roles de servicio solo cuando Amazon S3 proporcione orientación para hacerlo.

## Roles vinculados a servicios para Amazon S3
<a name="security_iam_service-with-iam-roles-service-linked"></a>

**Compatibilidad con roles vinculados al servicio:** parcial

 Un rol vinculado a servicios es un tipo de rol de servicio que está vinculado a un Servicio de AWS. El servicio puede asumir el rol para realizar una acción en su nombre. Los roles vinculados a servicios aparecen en la Cuenta de AWS y son propiedad del servicio. Un administrador de IAM puede ver, pero no editar, los permisos de los roles vinculados a servicios. 

Amazon S3 admite roles vinculados a servicios para Amazon S3 Storage Lens. Para obtener más información sobre cómo crear o administrar roles vinculados a servicios de Amazon S3, consulte [Uso de roles vinculados a servicios para Amazon S3 Storage Lens](using-service-linked-roles.md).

**Servicio de Amazon S3 como entidad principal**


| Nombre del servicio en la política | Característica de S3 | Más información | 
| --- | --- | --- | 
|  `s3.amazonaws.com`  |  Replicación de S3  |  [Descripción general de la configuración de la replicación en directo](replication-how-setup.md)  | 
|  `s3.amazonaws.com`  |  Notificaciones de eventos de S3  |  [Notificaciones de eventos de Amazon S3](EventNotifications.md)  | 
|  `s3.amazonaws.com`  |  Inventario de S3  |  [Catálogo y análisis de sus datos con Inventario de S3](storage-inventory.md)  | 
|  `access-grants.s3.amazonaws.com`  |  Permisos de acceso de S3  |  [Registrar una ubicación](access-grants-location-register.md)  | 
|  `batchoperations.s3.amazonaws.com`  |  Operaciones por lotes de S3  |  [Concesión de permisos para Operaciones por lotes](batch-ops-iam-role-policies.md)  | 
|  `logging.s3.amazonaws.com`  |  Registro de acceso al servidor de S3  |  [Habilitación del registro de acceso al servidor de Amazon S3](enable-server-access-logging.md)  | 
|  `storage-lens.s3.amazonaws.com`  |  S3 Storage Lens  |  [Visualización de las métricas de Amazon S3 Storage Lens mediante una exportación de datos](storage_lens_view_metrics_export.md)  | 

# Cómo autoriza Amazon S3 una solicitud
<a name="how-s3-evaluates-access-control"></a>

Cuando Amazon S3 recibe una solicitud, por ejemplo, una operación de bucket o de objeto, primero verifica que el solicitante tenga los permisos necesarios. Para decidir si autoriza la solicitud o no, Amazon S3 evalúa todas las políticas de acceso, las políticas de usuario y las políticas basadas en recursos (política de bucket, lista de control de acceso (ACL) de bucket y ACL de objeto) relevantes. 

**nota**  
Si la comprobación de permisos de Amazon S3 no encuentra permisos válidos, se devuelve un error de permiso denegado de acceso denegado (403 Prohibido). Para obtener más información, consulte [Solución de errores de acceso denegado (403 Prohibido) en Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/troubleshoot-403-errors.html).

Para determinar si el solicitante tiene permiso para realizar la operación específica, Amazon S3 hace lo siguiente, por orden, cuando recibe una solicitud:

1. Convierte todas las políticas de acceso relevantes (política de usuario, política de bucket y ACL) en tiempo de ejecución en un conjunto de políticas para evaluación.

1. Evalúa el conjunto de políticas resultante en los siguiente pasos. En cada paso, Amazon S3 evalúa un subconjunto de políticas en un contexto específico, en función de la autoridad del contexto. 

   1. **Contexto de usuario**: en el contexto de usuario, la cuenta principal a la que pertenece el usuario es la autoridad del contexto.

      Amazon S3 evalúa un subconjunto de políticas perteneciente a la cuenta principal. Este subconjunto incluye la política de usuario que la cuenta principal asocia al usuario. Si la cuenta principal también es propietaria del recurso en la solicitud (bucket u objeto), Amazon S3 también evalúa las políticas de recursos correspondientes (política de bucket, ACL de bucket y ACL de objeto) al mismo tiempo. 

      El usuario debe tener permiso de la cuenta principal para realizar la operación.

      Este paso se aplica solo si la solicitud la realiza un usuario en una Cuenta de AWS. Si la solicitud se realiza con las credenciales de usuario raíz de una Cuenta de AWS, Amazon S3 omite este paso.

   1. **Contexto de bucket**: en el contexto de bucket, Amazon S3 evalúa las políticas que pertenecen a la Cuenta de AWS que posee el bucket. 

      Si la solicitud es para una operación de bucket, el solicitante debe tener permiso del propietario del bucket. Si la solicitud es para un objeto, Amazon S3 evalúa todas las políticas pertenecientes al propietario del bucket para verificar si el propietario del bucket no denegó explícitamente el acceso al objeto. Si se estableció una denegación explícita, Amazon S3 no autoriza la solicitud. 

   1. **Contexto de objeto**: si la solicitud es para un objeto, Amazon S3 evalúa el subconjunto de políticas perteneciente al propietario del objeto. 

A continuación, se presentan algunos escenarios de ejemplo que ilustran cómo Amazon S3 autoriza una solicitud.

**Example - El solicitante es una entidad principal de IAM**  
Si el solicitante es una entidad principal de IAM, Amazon S3 debe determinar si la Cuenta de AWS principal a la que pertenece esa entidad principal le concedió a esta el permiso necesario para realizar la operación. Además, si la solicitud es para una operación de bucket, como una solicitud para mostrar el contenido del bucket, Amazon S3 debe verificar que el propietario del bucket le haya otorgado permiso al solicitante para realizar la operación. Para realizar una operación específica en un recurso, la entidad principal de IAM necesita permiso tanto de la Cuenta de AWS principal a la que pertenece como de la Cuenta de AWS a la que pertenece el recurso.

 

**Example - El solicitante es una entidad principal de IAM: en caso de que sea una solicitud para una operación en un objeto que el propietario del bucket no posee**  
Si la solicitud es para una operación en un objeto que no pertenece al propietario del bucket, además de asegurarse de que el solicitante tenga permisos del propietario del objeto, Amazon S3 también debe revisar la política de bucket para asegurarse de que el propietario del bucket no haya establecido la denegación explícita en el objeto. El propietario del bucket (que paga la factura) puede denegar explícitamente el acceso a los objetos del bucket independientemente de quién sea el propietario. El propietario del bucket también puede eliminar cualquier objeto del bucket.  
De forma predeterminada, cuando otra Cuenta de AWS carga un objeto en el bucket de uso general de S3, esa cuenta (el escritor del objeto) es propietario del objeto, tiene acceso a él y puede conceder acceso a él a otros usuarios a través de listas de control de acceso (ACL). Puede utilizar la propiedad de objetos para cambiar este comportamiento predeterminado de modo que las ACL estén desactivadas y, como propietario del bucket, tenga automáticamente la propiedad de todos los objetos del bucket de uso general. Como resultado, el control de acceso de los datos se basa en políticas, tales como las políticas de usuario de IAM, las políticas de bucket de S3, las políticas de puntos de conexión de nube privada virtual (VPC) y las políticas de control de servicios (SCP) de AWS Organizations. Para obtener más información, consulte [Control de la propiedad de los objetos y desactivación de las ACL del bucket](about-object-ownership.md).

Para obtener más información acerca de cómo Amazon S3 evalúa las políticas de acceso para autorizar o denegar solicitudes de operaciones de buckets y operaciones con objetos, consulte los siguientes temas:

**Topics**
+ [Cómo hace Amazon S3 para autorizar una solicitud para una operación de bucket](access-control-auth-workflow-bucket-operation.md)
+ [Cómo hace Amazon S3 para autorizar una solicitud para una operación con objetos](access-control-auth-workflow-object-operation.md)

# Cómo hace Amazon S3 para autorizar una solicitud para una operación de bucket
<a name="access-control-auth-workflow-bucket-operation"></a>

Cuando Amazon S3 recibe una solicitud para una operación de bucket, Amazon S3 convierte todos los permisos pertinentes en un conjunto de políticas para evaluar en el tiempo de ejecución. Los permisos pertinentes incluyen permisos basados en recursos (por ejemplo: políticas de bucket y listas de control de acceso a bucket) y políticas de usuario si la solicitud procede de una entidad principal de IAM. A continuación, Amazon S3 evalúa el conjunto de políticas resultante en una serie de pasos de acuerdo con un contexto específico: contexto de usuario o contexto de bucket: 

1. **Contexto de usuario**: si el solicitante es una entidad principal de IAM, esta debe tener permiso de la Cuenta de AWS principal a la que pertenece. En este paso, Amazon S3 evalúa un subconjunto de políticas perteneciente a la cuenta principal (también denominada autoridad del contexto). Este subconjunto de políticas incluye la política de usuario que la cuenta principal asocia al principal. Si la cuenta principal también es propietaria del recurso en la solicitud (en este caso, el bucket), Amazon S3 también evalúa las políticas de recursos correspondientes (política de bucket y ACL de bucket) al mismo tiempo. Siempre que se realiza una solicitud de operación de bucket, los registros de acceso al servidor registran el ID canónico del solicitante. Para obtener más información, consulte [Registro de solicitudes con registro de acceso al servidor](ServerLogs.md).

1. **Contexto de bucket**: el solicitante debe tener permisos del propietario del bucket para realizar una operación de bucket específica. En este paso, Amazon S3 evalúa un subconjunto de políticas que pertenecen a la Cuenta de AWS que es propietaria del bucket. 

   El propietario del bucket puede conceder permisos mediante una política de bucket o una ACL de bucket. Si la Cuenta de AWS que es propietaria del bucket también es la cuenta principal de una entidad principal de IAM, esta puede configurar los permisos del bucket en una política de usuario. 

 A continuación se muestra una ilustración gráfica de la evaluación de una operación de bucket basada en el contexto. 

![\[Ilustración que muestra la evaluación de una operación de bucket basada en el contexto.\]](http://docs.aws.amazon.com/es_es/AmazonS3/latest/userguide/images/AccessControlAuthorizationFlowBucketResource.png)


Los siguientes ejemplos ilustran la lógica de evaluación. 

## Ejemplo 1: operación de bucket solicitada por el propietario del bucket
<a name="example1-policy-eval-logic"></a>

 En este ejemplo, el propietario del bucket envía una solicitud para una operación de bucket mediante el uso de credenciales raíz de la Cuenta de AWS. 

![\[Ilustración que muestra una operación de bucket solicitada por el propietario del bucket.\]](http://docs.aws.amazon.com/es_es/AmazonS3/latest/userguide/images/example10-policy-eval-logic.png)


 Amazon S3 realiza la evaluación de contexto de la siguiente manera:

1.  Dado que la solicitud se realiza con las credenciales de usuario raíz de una Cuenta de AWS, el contexto de usuario no se evalúa.

1.  En el contexto de bucket, Amazon S3 revisa la política de bucket para determinar si el solicitante tiene permiso para realizar la operación. Amazon S3 autoriza la solicitud. 

## Ejemplo 2: operación de bucket solicitada por una Cuenta de AWS que no es propietaria del bucket
<a name="example2-policy-eval-logic"></a>

En este ejemplo, se realiza una solicitud con credenciales de usuario raíz de la Cuenta de AWS 1111-1111-1111 para una operación de bucket perteneciente a la Cuenta de AWS 2222-2222-2222. No hay ningún usuario de IAM involucrado en esta solicitud.

![\[Ilustración que muestra una operación de bucket solicitada por una Cuenta de AWS que no es propietaria del bucket.\]](http://docs.aws.amazon.com/es_es/AmazonS3/latest/userguide/images/example20-policy-eval-logic.png)


En este ejemplo, Amazon S3 evalúa el contexto de la siguiente manera:

1. Dado que la solicitud se realiza con las credenciales de usuario raíz de una Cuenta de AWS, el contexto de usuario no se evalúa.

1. En el contexto de bucket, Amazon S3 examina la política de bucket. Si el propietario del bucket (Cuenta de AWS 2222-2222-2222) no autorizó a la Cuenta de AWS 1111-1111-1111 a realizar la operación solicitada, Amazon S3 deniega la solicitud. De lo contrario, Amazon S3 acepta la solicitud y realiza la operación.

## Ejemplo 3: operación de bucket solicitada por una entidad principal de IAM cuya Cuenta de AWS principal también es propietaria del bucket
<a name="example3-policy-eval-logic"></a>

 En el ejemplo, la solicitud la envía Jill, una usuaria de IAM en la Cuenta de AWS 1111-1111-1111, que también es propietaria del bucket. 

![\[Ilustración que muestra una operación de bucket solicitada por una entidad principal de IAM y el propietario del bucket.\]](http://docs.aws.amazon.com/es_es/AmazonS3/latest/userguide/images/example30-policy-eval-logic.png)


 Amazon S3 realiza la siguiente evaluación de contexto:

1.  Dado que la solicitud surge de una entidad principal de IAM, en el contexto de usuario, Amazon S3 evalúa todas las políticas que pertenecen a la Cuenta de AWS principal para determinar si Jill cuenta con el permiso necesario para realizar la operación. 

    En este ejemplo, la Cuenta de AWS principal 1111-1111-1111 a la que pertenece la entidad principal también es propietaria del bucket. Como consecuencia, además de la política de usuario, Amazon S3 también evalúa la política de bucket y la ACL de bucket en el mismo contexto porque pertenecen a la misma cuenta.

1. Dado que Amazon S3 evaluó la política de bucket y la ACL de bucket como parte del contexto de usuario, no evalúa el contexto de bucket.

## Ejemplo 4: operación de bucket solicitada por una entidad principal de IAM cuya Cuenta de AWS principal no es propietaria del bucket
<a name="example4-policy-eval-logic"></a>

En este ejemplo, la solicitud la envía Jill, una usuaria de IAM cuya Cuenta de AWS principal es 1111-1111-1111, pero el bucket es propiedad de otra Cuenta de AWS, 2222-2222-2222. 

![\[Ilustración que muestra una operación de bucket solicitada por una entidad principal de IAM que no es propietaria del bucket.\]](http://docs.aws.amazon.com/es_es/AmazonS3/latest/userguide/images/example40-policy-eval-logic.png)


Jill necesitará contar con los permisos correspondientes de la Cuenta de AWS principal y el propietario del bucket. Amazon S3 evalúa el contexto de la siguiente manera:

1. Dado que la solicitud es de un principal de IAM, Amazon S3 evalúa el contexto de usuario mediante la revisión de las políticas estipuladas por la cuenta para verificar que Jill tenga los permisos necesarios. Si Jill tiene permiso, Amazon S3 continúa con la evaluación del contexto de bucket. Si Jill no tiene el permiso, deniega la solicitud.

1.  En el contexto de bucket, Amazon S3 verifica que el propietario del bucket 2222-2222-2222 haya otorgado permiso a Jill (o a su Cuenta de AWS principal) para realizar la operación solicitada. Si Jill tiene ese permiso, Amazon S3 acepta la solicitud y realiza la operación. De lo contrario, Amazon S3 deniega la solicitud. 

# Cómo hace Amazon S3 para autorizar una solicitud para una operación con objetos
<a name="access-control-auth-workflow-object-operation"></a>

Cuando Amazon S3 recibe una solicitud para una operación de bucket, convierte todos los permisos relevantes —permisos basados en recursos (lista de control de acceso [ACL] de objeto, política de bucket, ACL de bucket) y las políticas de usuario de IAM— en un conjunto de políticas para evaluar en tiempo de ejecución. Luego, evalúa el conjunto de políticas resultante en una serie de pasos. En cada paso, evalúa un subconjunto de políticas en tres contextos específicos: contexto de usuario, contexto de bucket y contexto de objeto:

1. **Contexto de usuario**: si el solicitante es una entidad principal de IAM, esta debe tener permiso de la Cuenta de AWS principal a la que pertenece. En este paso, Amazon S3 evalúa un subconjunto de políticas perteneciente a la cuenta principal (también denominada autoridad del contexto). Este subconjunto de políticas incluye la política de usuario que la cuenta principal asocia al principal. Si la cuenta principal también es propietaria del recurso en la solicitud (bucket u objeto), Amazon S3 evalúa las políticas de recursos correspondientes (política de bucket, ACL de bucket y ACL de objeto) al mismo tiempo. 
**nota**  
Si la Cuenta de AWS principal es propietaria del recurso (bucket u objeto), puede conceder permisos de recursos a su entidad principal de IAM mediante la política de usuario o la política de recursos. 

1. **Contexto de bucket**: en este contexto, Amazon S3 evalúa las políticas pertenecientes a la Cuenta de AWS que es propietaria del bucket.

   Si la Cuenta de AWS que es propietaria del objeto en la solicitud no es la misma que la propietaria del bucket, Amazon S3 verifica las políticas para determinar si el propietario del bucket denegó explícitamente el acceso al objeto. Si se estableció una denegación explícita en el objeto, Amazon S3 no autoriza la solicitud. 

1. **Contexto de objeto**: el solicitante debe tener permisos del propietario del objeto para realizar una operación de objeto específica. En este paso, Amazon S3 evalúa la ACL de objeto. 
**nota**  
Si los propietarios del bucket y del objeto son los mismos, el acceso al objeto se puede conceder en la política de bucket, que se evalúa en el contexto de bucket. Si los propietarios son diferentes, los propietarios del objeto deben utilizar una ACL de objeto para conceder permisos. Si la Cuenta de AWS que es propietaria del objeto es también la cuenta principal a la que pertenece la entidad principal de IAM, esta puede configurar los permisos del objeto en una política de usuario, que se evalúa en el contexto de usuario. Para obtener más información acera del uso de estas alternativas de políticas de acceso, consulte [Explicaciones que utilizan políticas para administrar el acceso a los recursos de Amazon S3](example-walkthroughs-managing-access.md).  
Si, como propietario del bucket, desea tener la propiedad de todos los objetos del bucket y utilizar políticas de bucket o políticas basadas en IAM para administrar el acceso a estos objetos, puede aplicar la configuración de propietario del bucket obligatorio de Object Ownership. Con esta configuración, como propietario del bucket, tiene automáticamente la propiedad y el control total sobre cada objeto del bucket. Las ACL de bucket y objeto no se pueden editar y ya no se consideran para el acceso. Para obtener más información, consulte [Control de la propiedad de los objetos y desactivación de las ACL del bucket](about-object-ownership.md).

 A continuación se muestra una ilustración de la evaluación de una operación de objeto basada en el contexto.

![\[Ilustración que muestra la evaluación de una operación de objeto basada en el contexto.\]](http://docs.aws.amazon.com/es_es/AmazonS3/latest/userguide/images/AccessControlAuthorizationFlowObjectResource.png)


## Ejemplo de una solicitud de operación de objeto
<a name="access-control-auth-workflow-object-operation-example1"></a>

En este ejemplo, Jill, la usuaria de IAM cuya Cuenta de AWS principal es 1111-1111-1111, envía una solicitud de operación de objeto (por ejemplo: `GetObject`) para un objeto que pertenece a la Cuenta de AWS 3333-3333-3333 en un bucket propiedad de la Cuenta de AWS 2222-2222-2222. 

![\[Ilustración que muestra una solicitud de operación de objeto.\]](http://docs.aws.amazon.com/es_es/AmazonS3/latest/userguide/images/example50-policy-eval-logic.png)


Jill necesitará contar con los permisos correspondientes de la Cuenta de AWS principal, el propietario del bucket y el propietario del objeto. Amazon S3 evalúa el contexto de la siguiente manera:

1. Dado que la solicitud es de una entidad principal de IAM, Amazon S3 evalúa el contexto de usuario para verificar que la Cuenta de AWS principal 1111-1111-1111 haya otorgado a Jill el permiso necesario para realizar la operación solicitada. Si Jill tiene permiso, Amazon S3 evalúa el contexto de bucket. De lo contrario, Amazon S3 deniega la solicitud.

1. En el contexto del bucket, el propietario del bucket, la Cuenta de AWS 2222-2222-2222, es la autoridad del contexto. Amazon S3 evalúa la política de bucket para determinar si el propietario del bucket le denegó explícitamente el acceso al objeto a Jill. 

1. En el contexto de objeto, la autoridad del contexto es la Cuenta de AWS 3333-3333-3333, propietaria del objeto. Amazon S3 evalúa la ACL de objeto para determinar si Jill tiene permiso para acceder al objeto. Si lo tiene, Amazon S3 autoriza la solicitud. 

# Permisos necesarios para las operaciones de la API de Amazon S3
<a name="using-with-s3-policy-actions"></a>

**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 buckets de directorio](s3-express-security-iam.md#s3-express-security-iam-actions).

Para realizar una operación de la API de S3, debe tener los permisos correctos. Esta página asigna las operaciones de la API de S3 a los permisos necesarios. 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. No todas las operaciones de la API de S3 están representadas por un solo permiso (una sola acción de política), y algunos permisos (algunas acciones de política) son necesarios para muchas operaciones de API diferentes. 

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](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html#amazons3-resources-for-iam-policies) en la *Referencia de autorizaciones de servicio*. 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](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html) en la *Referencia de autorización de servicios*. Para obtener una lista de operaciones de la API de Amazon S3, consulte [Amazon S3 API Actions](https://docs.aws.amazon.com//AmazonS3/latest/API/API_Operations.html) en la *Referencia de la API de Amazon Simple Storage Service*.

Para obtener más información sobre cómo solucionar los errores `403 Forbidden` de HTTP en S3, consulte [Solución de problemas de errores de acceso rechazado (403 Forbidden) en Amazon S3](troubleshoot-403-errors.md). Para obtener más información sobre las características de IAM que se utilizan con S3, consulte [Cómo funciona Amazon S3 con IAM](security_iam_service-with-iam.md). Para obtener más información sobre las prácticas recomendadas de seguridad de S3, consulte [Prácticas recomendadas de seguridad para Amazon S3](security-best-practices.md). 

**Topics**
+ [Permisos y operaciones de bucket](#using-with-s3-policy-actions-related-to-buckets)
+ [Permisos y operaciones de objetos](#using-with-s3-policy-actions-related-to-objects)
+ [Punto de acceso para operaciones y permisos de buckets de propósito general](#using-with-s3-policy-actions-related-to-accesspoint)
+ [Operaciones y permisos de punto de acceso del objeto Lambda](#using-with-s3-policy-actions-related-to-olap)
+ [Operaciones y permisos de punto de acceso multirregionales](#using-with-s3-policy-actions-related-to-mrap)
+ [Operaciones y permisos de trabajos por lotes](#using-with-s3-policy-actions-related-to-batchops)
+ [Operaciones y permisos de configuración de lente de almacenamiento de S3](#using-with-s3-policy-actions-related-to-lens)
+ [Operaciones y permisos de grupos de lentes de almacenamiento de S3](#using-with-s3-policy-actions-related-to-lens-groups)
+ [Operaciones y permisos de instancias de Concesiones de acceso a S3](#using-with-s3-policy-actions-related-to-s3ag-instances)
+ [Operaciones y permisos de ubicación de Concesiones de acceso a S3](#using-with-s3-policy-actions-related-to-s3ag-locations)
+ [Operaciones y permisos de concesión de Concesiones de acceso a S3](#using-with-s3-policy-actions-related-to-s3ag-grants)
+ [Permisos y operaciones de la cuenta](#using-with-s3-policy-actions-related-to-accounts)

## Permisos y operaciones de bucket
<a name="using-with-s3-policy-actions-related-to-buckets"></a>

Las operaciones de buckets son operaciones de la API de S3 que funcionan en el tipo de recurso de bucket. Debe especificar las acciones de políticas de S3 para las operaciones de bucket en políticas de bucket o políticas de IAM basadas en identidades de IAM.

En las políticas, el elemento `Resource` debe ser el nombre de recurso de Amazon (ARN) del bucket. Para obtener más información sobre el formato del elemento `Resource` y las políticas de ejemplo, consulte [Operaciones con buckets](security_iam_service-with-iam.md#using-with-s3-actions-related-to-buckets).

**nota**  
Para conceder permisos a las operaciones de bucket en las políticas de puntos de acceso, tenga en cuenta lo siguiente:  
Los permisos concedidos para operaciones de bucket en una política de puntos de acceso solo se aplican si el bucket subyacente permite los mismos permisos. Cuando utilice un punto de acceso, debe delegar el control de acceso del bucket al punto de acceso o agregar los mismos permisos en la política del punto de acceso a la política del bucket subyacente.
En las políticas de puntos de acceso que conceden permisos a las operaciones del bucket, el elemento `Resource` debe ser el ARN de `accesspoint`. Para obtener más información sobre el formato del elemento `Resource` y las políticas de ejemplo, consulte [Operaciones de bucket en políticas para puntos de acceso para buckets de propósito general](security_iam_service-with-iam.md#bucket-operations-ap). Para obtener más información sobre las políticas de punto de acceso, consulte [Configurar las políticas de IAM para el uso de puntos de acceso](access-points-policies.md). 
Los puntos de acceso no admiten todas las operaciones de bucket. Para obtener más información, consulte [Compatibilidad de los puntos de acceso con las operaciones de S3](access-points-service-api-support.md#access-points-operations-support).

A continuación, se muestra la asignación de las operaciones de los buckets y las acciones de política requeridas. 


| Operaciones de la API | Acciones de políticas | Descripción de las acciones de política | 
| --- | --- | --- | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html)  |  (Obligatorio) `s3:CreateBucket`  |  Obligatorio para crear un nuevo bucket de S3.  | 
|    |  (Obligatorio condicionalmente) `s3:PutBucketAcl`  |  Es obligatorio si desea utilizar la lista de control de acceso (ACL) para especificar los permisos en un bucket al realizar una solicitud de `CreateBucket`.  | 
|    |  (Obligatorio condicionalmente) `s3:PutBucketObjectLockConfiguration`, `s3:PutBucketVersioning`  |  Obligatorio si desea habilitar el bloqueo de objetos al crear un bucket.  | 
|    |  (Obligatorio condicionalmente) `s3:PutBucketOwnershipControls`  |  Obligatorio si desea especificar la propiedad de objetos de S3 al crear un bucket.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html) (operación de la API V2. El nombre de la acción de la política de IAM es el mismo para las operaciones de la API V1 y V2).  |  (Obligatorio) `s3:CreateBucketMetadataTableConfiguration`, `s3tables:CreateTableBucket`, `s3tables:CreateNamespace`, `s3tables:CreateTable`, `s3tables:GetTable`, `s3tables:PutTablePolicy`, `s3tables:PutTableEncryption` y `kms:DescribeKey`  |  Obligatorio para crear una configuración de tabla de metadatos en un bucket de uso general.  Para crear el bucket de tablas administradas de AWS y las tablas de metadatos especificadas en la configuración de la tabla de metadatos, debe disponer de los permisos `s3tables` especificados. Si desea cifrar las tablas de metadatos con cifrado del servidor con claves de AWS Key Management Service (AWS KMS) (SSE-KMS), necesita permisos adicionales en la política de claves de KMS. Para obtener más información, consulte [Configuración de permisos para configurar tablas de metadatos](metadata-tables-permissions.md). Si también desea integrar el bucket de tablas administradas de AWS con servicios de análisis de AWS para poder consultar la tabla de metadatos, necesita permisos adicionales. Para obtener más información, consulte [Integración de Tablas de Amazon S3 con servicios de análisis de AWS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-aws.html).  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataTableConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataTableConfiguration.html) (operación de la API V1)  |  (Obligatorio) `s3:CreateBucketMetadataTableConfiguration`, `s3tables:CreateNamespace`, `s3tables:CreateTable`, `s3tables:GetTable`, `s3tables:PutTablePolicy`  |  Obligatorio para crear una configuración de tabla de metadatos en un bucket de uso general.  Para crear la tabla de metadatos en el bucket de tablas especificado en la configuración de la tabla de metadatos, debe tener los permisos `s3tables` especificados. Si desea cifrar las tablas de metadatos con cifrado del servidor con claves de AWS Key Management Service (AWS KMS) (SSE-KMS), necesita permisos adicionales. Para obtener más información, consulte [Configuración de permisos para configurar tablas de metadatos](metadata-tables-permissions.md). Si también desea integrar el bucket de tablas con servicios de análisis de AWS para poder consultar la tabla de metadatos, necesita permisos adicionales. Para obtener más información, consulte [Integración de Tablas de Amazon S3 con servicios de análisis de AWS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-aws.html).  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html)  |  (Obligatorio) `s3:DeleteBucket`  |  Obligatorio para eliminar un bucket de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html)  |  (Obligatorio) `s3:PutAnalyticsConfiguration`  |  Obligatorio para eliminar una configuración de análisis de S3 de un bucket de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketCors.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketCors.html)  |  (Obligatorio) `s3:PutBucketCORS`  |  Obligatorio para eliminar la configuración de uso compartido de recursos entre orígenes (CORS) para un bucket.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html)  |  (Obligatorio) `s3:PutEncryptionConfiguration`  |  Obligatorio para restablecer la configuración de cifrado predeterminada para un bucket de S3 como cifrado del servidor con claves administradas por Amazon S3 (SSE-S3).  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html)  |  (Obligatorio) `s3:PutIntelligentTieringConfiguration`  |  Obligatorio para eliminar la configuración de capas avanzadas de S3 existente de un bucket de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html)  |  (Obligatorio) `s3:PutInventoryConfiguration`  |  Obligatorio para eliminar una configuración de inventario de S3 de un bucket de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html)  |  (Obligatorio) `s3:PutLifecycleConfiguration`  |  Obligatorio para eliminar la configuración del S3 Lifecycle de un bucket de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetadataTableConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetadataTableConfiguration.html) (operación de la API V2. El nombre de la acción de la política de IAM es el mismo para las operaciones de la API V1 y V2).  |  (Obligatorio) `s3:DeleteBucketMetadataTableConfiguration`  |  Obligatorio para eliminar una configuración de tabla de metadatos de un bucket de uso general.   | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetadataTableConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetadataTableConfiguration.html) (operación de la API V1)  |  (Obligatorio) `s3:DeleteBucketMetadataTableConfiguration`  |  Obligatorio para eliminar una configuración de tabla de metadatos de un bucket de uso general.   | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html)  |  (Obligatorio) `s3:PutMetricsConfiguration`  |  Obligatorio para eliminar una configuración de métricas para las métricas para las métricas de solicitudes de Amazon CloudWatch desde un bucket de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketOwnershipControls.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketOwnershipControls.html)   |  (Obligatorio) `s3:PutBucketOwnershipControls`  |  Obligatorio para eliminar la configuración de propiedad de objetos de un bucket de S3. Tras la eliminación, la configuración de propiedad del objeto pasa a ser `Object writer`.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketPolicy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketPolicy.html)  |  (Obligatorio) `s3:DeleteBucketPolicy`  |  Obligatorio para eliminar la política de un bucket de S3.   | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketReplication.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketReplication.html)  |  (Obligatorio) `s3:PutReplicationConfiguration`  |  Obligatorio para eliminar la configuración de replicación de un bucket de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html)  |  (Obligatorio) `s3:PutBucketTagging`  |  Obligatorio para eliminar etiquetas de un bucket de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketWebsite.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketWebsite.html)  |  (Obligatorio) `s3:DeleteBucketWebsite`  |  Obligatorio para eliminar la configuración del sitio web de un bucket de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html) (nivel de bucket)  |  (Obligatorio) `s3:PutBucketPublicAccessBlock`  |  Obligatorio para eliminar la configuración de bloqueo de acceso público para un bucket de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAccelerateConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAccelerateConfiguration.html)  |  (Obligatorio) `s3:GetAccelerateConfiguration`  |  Obligatorio para usar el subrecurso de aceleración para volver al estado de Aceleración de transferencias de Amazon S3 de un bucket, que puede estar habilitado o suspendido.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAcl.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAcl.html)  |  (Obligatorio) `s3:GetBucketAcl`  |  Obligatorio para devolver la lista de control de acceso (ACL) de un bucket de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html)  |  (Obligatorio) `s3:GetAnalyticsConfiguration`  |  Obligatorio para devolver una configuración de análisis identificada por el ID de configuración de análisis de un bucket de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketCors.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketCors.html)  |  (Obligatorio) `s3:GetBucketCORS`  |  Obligatorio para devolver la configuración de uso compartido de recursos entre orígenes (CORS) para un bucket de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html)  |  (Obligatorio) `s3:GetEncryptionConfiguration`  |  Obligatorio para devolver la configuración de cifrado predeterminada para un bucket de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html)  |  (Obligatorio) `s3:GetIntelligentTieringConfiguration`  |  Obligatorio para obtener la configuración de capas avanzadas de S3 de un bucket de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html)  |  (Obligatorio) `s3:GetInventoryConfiguration`  |  Obligatorio para devolver una configuración de inventario identificada por el ID de configuración de inventario del bucket.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycle.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycle.html)  |  (Obligatorio) `s3:GetLifecycleConfiguration`  |  Obligatorio para devolver la configuración del S3 Lifecycle del bucket.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLocation.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLocation.html)  |  (Obligatorio) `s3:GetBucketLocation`  |  Obligatorio para devolver la Región de AWS en la que reside un bucket de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLogging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLogging.html)  |  (Obligatorio) `s3:GetBucketLogging`  |  Obligatorio para devolver el estado de registro de un bucket de S3 y los permisos que los usuarios tienen para ver y modificar dicho estado.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetadataTableConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetadataTableConfiguration.html) (operación de la API V2. El nombre de la acción de la política de IAM es el mismo para las operaciones de la API V1 y V2).  |  (Obligatorio) `s3:GetBucketMetadataTableConfiguration`  |  Obligatorio para recuperar una configuración de tabla de metadatos de un bucket de uso general.   | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetadataTableConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetadataTableConfiguration.html) (operación de la API V1)  |  (Obligatorio) `s3:GetBucketMetadataTableConfiguration`  |  Obligatorio para recuperar una configuración de tabla de metadatos de un bucket de uso general.   | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetricsConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetricsConfiguration.html)  |  (Obligatorio) `s3:GetMetricsConfiguration`  |  Obligatorio para obtener una configuración para las métricas especificada por el ID de configuración de métricas desde el bucket.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotificationConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotificationConfiguration.html)  |  (Obligatorio) `s3:GetBucketNotification`  |  Obligatorio para devolver la configuración de notificación de un bucket de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketOwnershipControls.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketOwnershipControls.html)  |  (Obligatorio) `s3:GetBucketOwnershipControls`  |  Obligatorio para recuperar la configuración de propiedad de objetos de un bucket de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicy.html)  |  (Obligatorio) `s3:GetBucketPolicy`  |  Obligatorio para devolver la política de un bucket de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicyStatus.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicyStatus.html)  |  (Obligatorio) `s3:GetBucketPolicyStatus`  |  Obligatorio para recuperar el estado de política de un bucket de S3, que indica si el bucket es público.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html)  |  (Obligatorio) `s3:GetReplicationConfiguration`  |  Obligatorio para devolver la configuración de replicación de un bucket de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketRequestPayment.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketRequestPayment.html)  |  (Obligatorio) `s3:GetBucketRequestPayment`  |  Obligatorio para devolver la configuración de pagos de solicitudes de un bucket de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html)  |  (Obligatorio) `s3:GetBucketVersioning`  |  Obligatorio para devolver el estado de control de versiones de un bucket de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html)  |  (Obligatorio) `s3:GetBucketTagging`  |  Obligatorio para devolver el conjunto de etiquetas asociado a un bucket de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketWebsite.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketWebsite.html)  |  (Obligatorio) `s3:GetBucketWebsite`  |  Obligatorio para devolver la configuración del sitio web de un bucket de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectLockConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectLockConfiguration.html)  |  (Obligatorio) `s3:GetBucketObjectLockConfiguration`  |  Obligatorio para obtener la configuración de bloqueo de objetos de un bucket de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html) (nivel de bucket)  |  (Obligatorio) `s3:GetBucketPublicAccessBlock`  |  Obligatorio para recuperar la configuración de bloqueo de acceso público para un bucket de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadBucket.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadBucket.html)  |  (Obligatorio) `s3:ListBucket`  |  Obligatorio para determinar si existe un bucket y si tiene permiso para acceder a él.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketAnalyticsConfigurations.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketAnalyticsConfigurations.html)  |  (Obligatorio) `s3:GetAnalyticsConfiguration`  |  Obligatorio para mostrar las configuraciones de análisis de un bucket de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketIntelligentTieringConfigurations.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketIntelligentTieringConfigurations.html)  |  (Obligatorio) `s3:GetIntelligentTieringConfiguration`  |  Obligatorio para mostrar las configuraciones de capas avanzadas de S3 de un bucket de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html)  |  (Obligatorio) `s3:GetInventoryConfiguration`  |  Obligatorio para devolver una lista de las configuraciones de inventario de un bucket de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketMetricsConfigurations.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketMetricsConfigurations.html)  |  (Obligatorio) `s3:GetMetricsConfiguration`  |  Obligatorio para mostrar las configuraciones de métricas de un bucket de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html)  |  (Obligatorio) `s3:ListBucket`  |  Obligatorio para mostrar algunos o todos los objetos (hasta 1000) de un bucket de S3.  | 
|    |  (Obligatorio condicionalmente) `s3:GetObjectAcl`  |  Obligatorio si quiere mostrar la información del propietario del objeto.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html)  |  (Obligatorio) `s3:ListBucket`  |  Obligatorio para mostrar algunos o todos los objetos (hasta 1000) de un bucket de S3.  | 
|    |  (Obligatorio condicionalmente) `s3:GetObjectAcl`  |  Obligatorio si quiere mostrar la información del propietario del objeto.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectVersions.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectVersions.html)  |  (Obligatorio) `s3:ListBucketVersions`  |  Obligatorio para obtener metadatos sobre todas las versiones de objetos en un bucket de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAccelerateConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAccelerateConfiguration.html)  |  (Obligatorio) `s3:PutAccelerateConfiguration`  |  Obligatorio para establecer la configuración acelerada de un bucket existente.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAcl.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAcl.html)  |  (Obligatorio) `s3:PutBucketAcl`  |  Obligatorio para usar listas de control de acceso (ACL) para establecer los permisos en un bucket existente.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html)  |  (Obligatorio) `s3:PutAnalyticsConfiguration`  |  Obligatorio para establecer una configuración de análisis para un bucket de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketCors.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketCors.html)  |  (Obligatorio) `s3:PutBucketCORS`  |  Obligatorio para establecer la configuración de uso compartido de recursos entre orígenes (CORS) para un bucket de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html)  |  (Obligatorio) `s3:PutEncryptionConfiguration`  |  Obligatorio para configurar el cifrado predeterminado para un bucket de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html)  |  (Obligatorio) `s3:PutIntelligentTieringConfiguration`  |  Obligatorio para poner la configuración de capas avanzadas de S3 en un bucket de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html)  |  (Obligatorio) `s3:PutInventoryConfiguration`  |  Obligatorio para agregar una configuración de inventario a un bucket de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html)  |  (Obligatorio) `s3:PutLifecycleConfiguration`  |  Obligatorio para crear una nueva una configuración de S3 Lifecycle o sustituir una configuración de ciclo de vida existente por un bucket de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLogging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLogging.html)  |  (Obligatorio) `s3:PutBucketLogging`  |  Obligatorio para establecer los parámetros de registro de un bucket de S3 y especificar los permisos para ver y modificar los parámetros de registro.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html)  |  (Obligatorio) `s3:PutMetricsConfiguration`  |  Obligatorio para establecer o actualizar una configuración de métricas para las métricas de solicitudes de Amazon CloudWatch de un bucket de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketNotificationConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketNotificationConfiguration.html)  |  (Obligatorio) `s3:PutBucketNotification`  |  Obligatorio para habilitar notificaciones de eventos específicos para un bucket de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketOwnershipControls.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketOwnershipControls.html)  |  (Obligatorio) `s3:PutBucketOwnershipControls`  |  Obligatorio para crear o modificar la configuración de propiedad de objetos de un bucket de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketPolicy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketPolicy.html)  |  (Obligatorio) `s3:PutBucketPolicy`  |  Obligatorio para aplicar una política de bucket de S3 a un bucket.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html)  |  (Obligatorio) `s3:PutReplicationConfiguration`  |  Obligatorio para crear una nueva configuración de replicación o reemplazar una existente para un bucket de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketRequestPayment.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketRequestPayment.html)  |  (Obligatorio) `s3:PutBucketRequestPayment`  |  Obligatorio para establecer la configuración de pagos de solicitudes de un bucket.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html)  |  (Obligatorio) `s3:PutBucketTagging`  |  Obligatorio para agregar un conjunto de etiquetas a un bucket de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketVersioning.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketVersioning.html)  |  (Obligatorio) `s3:PutBucketVersioning`  |  Obligatorio para establecer el estado de control de versiones de un bucket de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html)  |  (Obligatorio) `s3:PutBucketWebsite`  |  Obligatorio para configurar un bucket como un sitio web y establecer la configuración del sitio web.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectLockConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectLockConfiguration.html)  |  (Obligatorio) `s3:PutBucketObjectLockConfiguration`  |  Obligatorio para poner la configuración del bloqueo de objetos en un bucket de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html) (nivel de bucket)  |  (Obligatorio) `s3:PutBucketPublicAccessBlock`  |  Obligatorio para crear o modificar la configuración de bloqueo de acceso público para un bucket de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataInventoryTableConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataInventoryTableConfiguration.html)  |  (Obligatorio) `s3:UpdateBucketMetadataInventoryTableConfiguration`, `s3tables:CreateTableBucket`, `s3tables:CreateNamespace`, `s3tables:CreateTable`, `s3tables:GetTable`, `s3tables:PutTablePolicy`, `s3tables:PutTableEncryption` y `kms:DescribeKey`  |  Obligatorio para habilitar o deshabilitar una tabla de inventario para una configuración de tabla de metadatos en un bucket de uso general. Si desea cifrar la tabla de inventario con cifrado del servidor con claves de AWS Key Management Service (AWS KMS) (SSE-KMS), necesita permisos adicionales en la política de claves de KMS. Para obtener más información, consulte [Configuración de permisos para configurar tablas de metadatos](metadata-tables-permissions.md).  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataJournalTableConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataJournalTableConfiguration.html)  |  (Obligatorio) `s3:UpdateBucketMetadataJournalTableConfiguration`  |  Obligatorio para habilitar o deshabilitar la caducidad de los registros de la tabla de diario para una configuración de tabla de metadatos en un bucket de uso general.  | 

## Permisos y operaciones de objetos
<a name="using-with-s3-policy-actions-related-to-objects"></a>

Las operaciones de objetos son operaciones de la API de S3 que actúan en función del tipo de recurso del objeto. Debe especificar las acciones de política de S3 para las operaciones de objetos en políticas basadas en recursos (como políticas de bucket, políticas de puntos de acceso, políticas de puntos de acceso multirregionales, políticas de puntos de conexión de VPC) o políticas basadas en identidades de IAM.

En las políticas, el elemento `Resource` debe ser el ARN del objeto. Para obtener más información sobre el formato del elemento `Resource` y las políticas de ejemplo, consulte [Operaciones con objetos](security_iam_service-with-iam.md#using-with-s3-actions-related-to-objects). 

**nota**  
Las acciones de la política de AWS KMS (`kms:GenerateDataKey` y `kms:Decrypt`) solo se aplican al tipo de recurso de AWS KMS y se deben especificar en las políticas de IAM basadas en identidades y en las políticas basadas en recursos de AWS KMS (políticas de claves de AWS KMS). No puede especificar acciones de políticas de AWS KMS en las políticas basadas en recursos de S3, como las políticas de bucket de S3.
Cuando utilice puntos de acceso para controlar el acceso a las operaciones de los objetos, puede utilizar políticas de puntos de acceso. Para conceder permisos a las operaciones de objetos en las políticas de puntos de acceso, tenga en cuenta lo siguiente:  
En las políticas de puntos de acceso que otorgan permisos a las operaciones de objetos, el elemento `Resource` deben ser los ARN de los objetos a los que se accede a través de un punto de acceso. Para obtener más información sobre el formato del elemento `Resource` y las políticas de ejemplo, consulte [Operaciones de objetos en políticas de puntos de acceso](security_iam_service-with-iam.md#object-operations-ap).
Los puntos de acceso no admiten todas las operaciones de objetos. Para obtener más información, consulte [Compatibilidad de los puntos de acceso con las operaciones de S3](access-points-service-api-support.md#access-points-operations-support).
Los puntos de acceso multirregionales no admiten todas las operaciones de objetos. Para obtener más información, consulte [Compatibilidad de punto de acceso de varias regiones con operaciones de S3](MrapOperations.md#mrap-operations-support).

A continuación, se muestra la asignación de las operaciones de los objetos y las acciones de política requeridas. 


| Operaciones de la API | Acciones de políticas | Descripción de las acciones de política | 
| --- | --- | --- | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html)  |  (Obligatorio) `s3:AbortMultipartUpload`  |  Obligatorio para cancelar una carga multiparte.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html)  |  (Obligatorio) `s3:PutObject`  |  Obligatorio para completar una carga multiparte.  | 
|    |  (Obligatorio condicionalmente) `kms:Decrypt`  |  Obligatorio si desea completar una carga multiparte de un objeto cifrado con clave administrado por un cliente de AWS KMS.   | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html)  |  Para el objeto de origen:  |  Para el objeto de origen:  | 
|    |  (Obligatorio) `s3:GetObject` o `s3:GetObjectVersion`  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonS3/latest/userguide/using-with-s3-policy-actions.html)  | 
|    |  (Obligatorio condicionalmente) `kms:Decrypt`  |  Es obligatorio si desea copiar un objeto cifrado con clave administrada por el cliente de AWS KMS del bucket de origen.   | 
|    |  Para el objeto de destino:  |  Para el objeto de destino:  | 
|    |  (Obligatorio) `s3:PutObject`  |  Obligatorio para poner el objeto copiado en el bucket de destino.  | 
|    |  (Obligatorio condicionalmente) `s3:PutObjectAcl`  |  Obligatorio si desea poner el objeto copiado con la lista de control de acceso (ACL) de objetos en el bucket de destino al realizar una solicitud de `CopyObject`.  | 
|    |  (Obligatorio condicionalmente) `s3:PutObjectTagging`  |  Obligatorio si desea poner el objeto copiado con el etiquetado de objetos en el bucket de destino al realizar una solicitud de `CopyObject`.  | 
|    |  (Obligatorio condicionalmente) `kms:GenerateDataKey`  |  Obligatorio si desea cifrar el objeto copiado con una clave administrada por el cliente de AWS KMS y ponerlo en el bucket de destino.   | 
|    |  (Obligatorio condicionalmente) `s3:PutObjectRetention`  |  Obligatorio si desea establecer una configuración de retención de bloqueo de objetos para el nuevo objeto.  | 
|    |  (Obligatorio condicionalmente) `s3:PutObjectLegalHold`  |  Obligatorio si desea colocar una retención legal de bloqueo de objetos en el objeto nuevo.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html)  |  (Obligatorio) `s3:PutObject`  |  Obligatorio para crear una carga multiparte.  | 
|    |  (Obligatorio condicionalmente) `s3:PutObjectAcl`  |  Obligatorio si desea establecer los permisos de la lista de control de acceso (ACL) del objeto para el objeto cargado.  | 
|    |  (Obligatorio condicionalmente) `s3:PutObjectTagging`  |  Obligatorio si desea agregar etiquetado de objetos al objeto cargado.  | 
|    |  (Obligatorio condicionalmente) `kms:GenerateDataKey`  |  Obligatorio si desea utilizar una clave administrada por el cliente de AWS KMS para cifrar un objeto al iniciar una carga multiparte.   | 
|    |  (Obligatorio condicionalmente) `s3:PutObjectRetention`  |  Obligatorio si desea establecer una configuración de retención de bloqueo de objetos para el objeto cargado.  | 
|    |  (Obligatorio condicionalmente) `s3:PutObjectLegalHold`  |  Obligatorio si desea aplicar una retención legal de bloqueo de objetos en el objeto cargado.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html)  |  (Obligatorio) `s3:DeleteObject` o `s3:DeleteObjectVersion`  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonS3/latest/userguide/using-with-s3-policy-actions.html)  | 
|    |  (Obligatorio condicionalmente) `s3:BypassGovernanceRetention`  |  Obligatorio si desea eliminar un objeto que está protegido por el modo de gobierno para la retención del bloqueo de objetos.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjects.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjects.html)  |  (Obligatorio) `s3:DeleteObject` o `s3:DeleteObjectVersion`  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonS3/latest/userguide/using-with-s3-policy-actions.html)  | 
|    |  (Obligatorio condicionalmente) `s3:BypassGovernanceRetention`  |  Obligatorio si desea eliminar objetos que están protegidos por el modo de gobierno para la retención del bloqueo de objetos.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectTagging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectTagging.html)  |  (Obligatorio) `s3:DeleteObjectTagging` o `s3:DeleteObjectVersionTagging`  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonS3/latest/userguide/using-with-s3-policy-actions.html)  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)  |  (Obligatorio) `s3:GetObject` o `s3:GetObjectVersion`  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonS3/latest/userguide/using-with-s3-policy-actions.html)  | 
|    |  (Obligatorio condicionalmente) `kms:Decrypt`  |  Obligatorio si desea obtener y descifrar un objeto cifrado con clave administrada por el cliente de AWS KMS.   | 
|    |  (Obligatorio condicionalmente) `s3:GetObjectTagging`  |  Obligatorio si desea obtener el conjunto de etiquetas de un objeto al realizar una solicitud de `GetObject`.  | 
|    |  (Obligatorio condicionalmente) `s3:GetObjectLegalHold`  |  Obligatorio si desea obtener el estado actual de retención legal de bloqueo de objetos.  | 
|    |  (Obligatorio condicionalmente) `s3:GetObjectRetention`  |  Obligatorio si desea recuperar la configuración de retención de bloqueo de objetos para un objeto.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html)  |  (Obligatorio) `s3:GetObjectAcl` o `s3:GetObjectVersionAcl`  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonS3/latest/userguide/using-with-s3-policy-actions.html)  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html)  |  (Obligatorio) `s3:GetObject` o `s3:GetObjectVersion`  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonS3/latest/userguide/using-with-s3-policy-actions.html)  | 
|    |  (Obligatorio condicionalmente) `kms:Decrypt`  |  Obligatorio si desea recuperar los atributos relacionados con un objeto cifrado con clave administrado por el cliente de AWS KMS.   | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectLegalHold.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectLegalHold.html)  |  (Obligatorio) `s3:GetObjectLegalHold`  |  Obligatorio para obtener el estado actual de retención legal de bloqueo de objetos.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectRetention.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectRetention.html)  |  (Obligatorio) `s3:GetObjectRetention`  |  Obligatorio para recuperar la configuración de retención de bloqueo de objetos para un objeto.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html)  |  (Obligatorio) `s3:GetObjectTagging` o `s3:GetObjectVersionTagging`  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonS3/latest/userguide/using-with-s3-policy-actions.html)  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTorrent.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTorrent.html)  |  (Obligatorio) `s3:GetObject`  |  Obligatorio para devolver los archivos torrent de un objeto.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html)  |  (Obligatorio) `s3:GetObject`  |  Obligatorio para recuperar metadatos de un objeto sin devolver el objeto en sí.  | 
|    |  (Obligatorio condicionalmente) `s3:GetObjectLegalHold`  |  Obligatorio si desea obtener el estado actual de retención legal de bloqueo de objetos.  | 
|    |  (Obligatorio condicionalmente) `s3:GetObjectRetention`  |  Obligatorio si desea recuperar la configuración de retención de bloqueo de objetos para un objeto.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html)  |  (Obligatorio) `s3:ListBucketMultipartUploads`  |  Obligatorio para mostrar las cargas multiparte en curso en un bucket.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html)  |  (Obligatorio) `s3:ListMultipartUploadParts`  |  Obligatorio para mostrar las partes que se han cargado para una carga multiparte específica.  | 
|    |  (Obligatorio condicionalmente) `kms:Decrypt`  |  Obligatorio si desea mostrar las partes de una carga multiparte cifrada con clave administrada por un cliente de AWS KMS.   | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)  |  (Obligatorio) `s3:PutObject`  |  Obligatorio para poner un objeto.  | 
|    |  (Obligatorio condicionalmente) `s3:PutObjectAcl`  |  Obligatorio si desea poner la lista de control de acceso (ACL) del objeto cuando haga una solicitud de `PutObject`.  | 
|    |  (Obligatorio condicionalmente) `s3:PutObjectTagging`  |  Obligatorio si desea poner etiquetas de objetos cuando haga una solicitud de `PutObject`.  | 
|    |  (Obligatorio condicionalmente) `kms:GenerateDataKey`  |  Obligatorio si desea cifrar un objeto con clave administrada por el cliente de AWS KMS.   | 
|    |  (Obligatorio condicionalmente) `s3:PutObjectRetention`  |  Obligatorio si desea establecer una configuración de retención de bloqueo de objetos en un objeto.  | 
|    |  (Obligatorio condicionalmente) `s3:PutObjectLegalHold`  |  Obligatorio si desea aplicar una configuración de retención legal de bloqueo de objetos en un objeto especificado.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectAcl.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectAcl.html)  |  (Obligatorio) `s3:PutObjectAcl` o `s3:PutObjectVersionAcl`  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonS3/latest/userguide/using-with-s3-policy-actions.html)  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectLegalHold.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectLegalHold.html)  |  (Obligatorio) `s3:PutObjectLegalHold`  |  Obligatorio para aplicar una configuración de retención legal de bloqueo de objetos a un objeto.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectRetention.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectRetention.html)  |  (Obligatorio) `s3:PutObjectRetention`  |  Obligatorio para aplicar una configuración de retención de bloqueo de objetos a un objeto.  | 
|    |  (Obligatorio condicionalmente) `s3:BypassGovernanceRetention`  |  Obligatorio si quiere omitir el modo de gobierno de una configuración de retención de bloqueo de objetos.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html)  |  (Obligatorio) `s3:PutObjectTagging` o `s3:PutObjectVersionTagging`  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonS3/latest/userguide/using-with-s3-policy-actions.html)  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html)  |  (Obligatorio) `s3:RestoreObject`  |  Obligatorio para restaurar una copia de un objeto archivado.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_SelectObjectContent.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_SelectObjectContent.html)  |  (Obligatorio) `s3:GetObject`  |  Obligatorio para filtrar el contenido de un objeto de S3 en función de una instrucción de lenguaje de consulta estructurado (SQL) simple.  | 
|    |  (Obligatorio condicionalmente) `kms:Decrypt`  |  Obligatorio si desea filtrar el contenido de un objeto de S3 cifrado con una clave administrada por el cliente de AWS KMS.  | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateObjectEncryption.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateObjectEncryption.html) | (Obligatorio) `s3:UpdateObjectEncryption`, `s3:PutObject`, `kms:Encrypt`, `kms:Decrypt`, `kms:GenerateDataKey`, `kms:ReEncrypt*`  | Se requiere si desea cambiar objetos cifrados entre el cifrado del servidor con cifrado administrado por Amazon S3 (SSE-S3) y cifrado del servidor con claves de cifrado de AWS Key Management Service (AWS KMS) (SSE-KMS). También puede usar la operación `UpdateObjectEncryption` para aplicar las claves del bucket de S3 para reducir los costos de solicitud de AWS KMS o cambiar la clave de KMS administrada por el cliente que se usa para cifrar los datos para que pueda cumplir con los estándares de rotación de claves personalizados. | 
|    | (Obligatorio condicionalmente) `organizations:DescribeAccount` | Si utiliza AWS Organizations, para usar la operación `UpdateObjectEncryption` con claves de KMS administradas por el cliente de otras Cuentas de AWS dentro de la organización, debe tener el permiso `organizations:DescribeAccount`.   Debe solicitar también la capacidad de usar AWS KMS keys si son propiedad de otras cuentas de miembros de la organización contactando con AWS Support.   | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html)  |  (Obligatorio) `s3:PutObject`  |  Obligatorio para cargar una parte en una carga multiparte.  | 
|    |  (Obligatorio condicionalmente) `kms:GenerateDataKey`  |  Obligatorio si quiere poner una parte de la carga y cifrarla con una clave administrada por el cliente de AWS KMS.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html)  |  Para el objeto de origen:  |  Para el objeto de origen:  | 
|    |  (Obligatorio) `s3:GetObject` o `s3:GetObjectVersion`  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonS3/latest/userguide/using-with-s3-policy-actions.html)  | 
|    |  (Obligatorio condicionalmente) `kms:Decrypt`  |  Es obligatorio si desea copiar un objeto cifrado con clave administrada por el cliente de AWS KMS del bucket de origen.   | 
|    |  Para la parte de destino:  |  Para la parte de destino:  | 
|    |  (Obligatorio) `s3:PutObject`  |  Obligatorio para cargar una parte de carga multiparte en el bucket de destino.  | 
|    |  (Obligatorio condicionalmente) `kms:GenerateDataKey`  |  Obligatorio si desea cifrar una parte con una clave administrada por el cliente de AWS KMS al cargar la parte en el bucket de destino.   | 

## Punto de acceso para operaciones y permisos de buckets de propósito general
<a name="using-with-s3-policy-actions-related-to-accesspoint"></a>

Las operaciones de puntos de acceso son operaciones de la API de S3 que funcionan en el tipo de recurso `accesspoint`. Debe especificar las acciones de políticas de S3 para las operaciones de punto de acceso en las políticas de IAM basadas en identidades, no en las políticas de buckets ni en las de puntos de acceso.

En las políticas, el elemento `Resource` debe ser el ARN de `accesspoint`. Para obtener más información sobre el formato del elemento `Resource` y las políticas de ejemplo, consulte [Operaciones de punto de acceso para buckets de propósito general](security_iam_service-with-iam.md#using-with-s3-actions-related-to-accesspoint).

**nota**  
Si desea utilizar puntos de acceso para controlar el acceso a las operaciones de los buckets o los objetos, tenga en cuenta lo siguiente:  
Para obtener información sobre el uso de puntos de acceso para controlar el acceso a las operaciones del bucket, consulte [Operaciones de bucket en políticas para puntos de acceso para buckets de propósito general](security_iam_service-with-iam.md#bucket-operations-ap).
Para obtener información sobre el uso de puntos de acceso para controlar el acceso a las operaciones del objeto, consulte [Operaciones de objetos en políticas de puntos de acceso](security_iam_service-with-iam.md#object-operations-ap).
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](access-points-policies.md).

A continuación, se muestra la asignación de las operaciones de los puntos de acceso y las acciones de la política requeridas. 


| Operaciones de la API | Acciones de políticas | Descripción de las acciones de política | 
| --- | --- | --- | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPoint.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPoint.html)  |  (Obligatorio) `s3:CreateAccessPoint`  |  Obligatorio para crear un punto de acceso asociado a un bucket de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPoint.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPoint.html)  |  (Obligatorio) `s3:DeleteAccessPoint`  |  Obligatorio para eliminar un punto de acceso.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointPolicy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointPolicy.html)  |  (Obligatorio) `s3:DeleteAccessPointPolicy`  |  Obligatorio para eliminar una política de punto de acceso.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointPolicy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointPolicy.html)  |  (Obligatorio) `s3:GetAccessPointPolicy`  |  Obligatorio para recuperar una política de punto de acceso.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointPolicyStatus.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointPolicyStatus.html)  |  (Obligatorio) `s3:GetAccessPointPolicyStatus`  |  Obligatorio para recuperar la información sobre si el punto de acceso especificado tiene actualmente una política que permite el acceso público.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessPointPolicy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessPointPolicy.html)  |  (Obligatorio) `s3:PutAccessPointPolicy`  |  Obligatorio para poner una política de punto de acceso.  | 

## Operaciones y permisos de punto de acceso del objeto Lambda
<a name="using-with-s3-policy-actions-related-to-olap"></a>

Las operaciones de puntos de acceso del objeto Lambda son operaciones de la API de S3 que funcionan en el tipo de recurso `objectlambdaaccesspoint`. 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](olap-policies.md).

A continuación, se muestra la asignación de las operaciones de los puntos de acceso de objeto Lambda y las acciones de la política requeridas. 


| Operaciones de la API | Acciones de políticas | Descripción de las acciones de política | 
| --- | --- | --- | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPointForObjectLambda.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPointForObjectLambda.html)  |  (Obligatorio) `s3:CreateAccessPointForObjectLambda`  |  Obligatorio para crear un punto de acceso de objeto Lambda.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointForObjectLambda.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointForObjectLambda.html)  |  (Obligatorio) `s3:DeleteAccessPointForObjectLambda`  |  Obligatorio para eliminar un punto de acceso de objeto Lambda especificado.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointPolicyForObjectLambda.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointPolicyForObjectLambda.html)  |  (Obligatorio) `s3:DeleteAccessPointPolicyForObjectLambda`  |  Obligatorio para eliminar la política en un punto de acceso de objeto Lambda especificado.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointConfigurationForObjectLambda.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointConfigurationForObjectLambda.html)  |  (Obligatorio) `s3:GetAccessPointConfigurationForObjectLambda`  |  Obligatorio para recuperar la configuración del punto de acceso de objeto Lambda.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetAccessPointForObjectLambda.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetAccessPointForObjectLambda.html)  |  (Obligatorio) `s3:GetAccessPointForObjectLambda`  |  Obligatorio para recuperar información sobre el punto de acceso de objeto Lambda.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetAccessPointPolicyForObjectLambda.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetAccessPointPolicyForObjectLambda.html)  |  (Obligatorio) `s3:GetAccessPointPolicyForObjectLambda`  |  Obligatorio para devolver la política del punto de acceso asociada al punto de acceso de objeto Lambda especificado.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetAccessPointPolicyStatusForObjectLambda.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetAccessPointPolicyStatusForObjectLambda.html)  |  (Obligatorio) `s3:GetAccessPointPolicyStatusForObjectLambda`  |  Obligatorio para devolver el estado de la política para un punto de acceso específico del objeto Lambda.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutAccessPointConfigurationForObjectLambda.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutAccessPointConfigurationForObjectLambda.html)  |  (Obligatorio) `s3:PutAccessPointConfigurationForObjectLambda`  |  Obligatorio para establecer la configuración del punto de acceso de objeto Lambda.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutAccessPointPolicyForObjectLambda.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutAccessPointPolicyForObjectLambda.html)  |  (Obligatorio) `s3:PutAccessPointPolicyForObjectLambda`  |  Obligatorio para asociar una política de acceso a un punto de acceso de objeto Lambda especificado.  | 

## Operaciones y permisos de punto de acceso multirregionales
<a name="using-with-s3-policy-actions-related-to-mrap"></a>

Las operaciones de puntos de acceso multirregionales son operaciones de la API de S3 que funcionan en el tipo de recurso `multiregionaccesspoint`. 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](MultiRegionAccessPointPermissions.md#MultiRegionAccessPointPolicyExamples).

A continuación, se muestra la asignación de las operaciones de los puntos de acceso multirregionales y las acciones de la política requeridas. 


| Operaciones de la API | Acciones de políticas | Descripción de las acciones de política | 
| --- | --- | --- | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateMultiRegionAccessPoint.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateMultiRegionAccessPoint.html)  |  (Obligatorio) `s3:CreateMultiRegionAccessPoint`  |  Obligatorio para crear un punto de acceso multirregional y asociarlo con buckets de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteMultiRegionAccessPoint.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteMultiRegionAccessPoint.html)  |  (Obligatorio) `s3:DeleteMultiRegionAccessPoint`  |  Obligatorio para eliminar un punto de acceso multirregional.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeMultiRegionAccessPointOperation.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeMultiRegionAccessPointOperation.html)  |  (Obligatorio) `s3:DescribeMultiRegionAccessPointOperation`  |  Obligatorio para recuperar el estado de una solicitud asincrónica para administrar un punto de acceso multirregional.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPoint.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPoint.html)  |  (Obligatorio) `s3:GetMultiRegionAccessPoint`  |  Obligatorio para devolver información de la configuración sobre el punto de acceso multirregional especificado.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPointPolicy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPointPolicy.html)  |  (Obligatorio) `s3:GetMultiRegionAccessPointPolicy`  |  Obligatorio para devolver la política de control de acceso del punto de acceso de multirregional especificado.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPointPolicyStatus.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPointPolicyStatus.html)  |  (Obligatorio) `s3:GetMultiRegionAccessPointPolicyStatus`  |  Obligatorio para devolver el estado de la política para un punto de acceso de multirregional específico sobre si el punto de acceso multirregional especificado tiene una política de control de acceso que permite el acceso público.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPointRoutes.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPointRoutes.html)  |  (Obligatorio) `s3:GetMultiRegionAccessPointRoutes`  |  Obligatorio para devolver la configuración de enrutamiento de un punto de acceso multirregional.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutMultiRegionAccessPointPolicy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutMultiRegionAccessPointPolicy.html)  |  (Obligatorio) `s3:PutMultiRegionAccessPointPolicy`  |  Obligatorio para actualizar la política de control de acceso del punto de acceso multirregional especificado.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_SubmitMultiRegionAccessPointRoutes.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_SubmitMultiRegionAccessPointRoutes.html)  |  (Obligatorio) `s3:SubmitMultiRegionAccessPointRoutes`  |  Obligatorio para enviar una actualización de la configuración de la ruta para un punto de acceso multirregional.  | 

## Operaciones y permisos de trabajos por lotes
<a name="using-with-s3-policy-actions-related-to-batchops"></a>

(Operaciones por lotes) Las operaciones de trabajos son operaciones de la API de S3 que funcionan en el tipo de recurso de `job`. Debe especificar las acciones de políticas de S3 para las operaciones de trabajo en políticas de IAM basadas en identidades, no en políticas de bucket.

En las políticas, el elemento `Resource` debe ser el ARN de `job`. Para obtener más información sobre el formato del elemento `Resource` y las políticas de ejemplo, consulte [Operaciones de trabajos por lotes](security_iam_service-with-iam.md#using-with-s3-actions-related-to-batchops).

A continuación, se muestra la asignación de las operaciones de trabajo por lotes y las acciones de política requeridas. 


| Operaciones de la API | Acciones de políticas | Descripción de las acciones de política | 
| --- | --- | --- | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteJobTagging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteJobTagging.html)  |  (Obligatorio) `s3:DeleteJobTagging`  |  Obligatorio para eliminar etiquetas en un trabajo de operaciones por lotes de S3 existente.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeJob.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeJob.html)  |  (Obligatorio) `s3:DescribeJob`  |  Obligatorio para recuperar los parámetros de configuración y el estado de un trabajo de operaciones por lotes.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetJobTagging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetJobTagging.html)  |  (Obligatorio) `s3:GetJobTagging`  |  Obligatorio para devolver el conjunto de etiquetas de un trabajo de operaciones por lotes de S3 existente.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutJobTagging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutJobTagging.html)  |  (Obligatorio) `s3:PutJobTagging`  |  Obligatorio para poner o reemplazar etiquetas en un trabajo de Operaciones por lotes de S3 existente.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobPriority.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobPriority.html)  |  (Obligatorio) `s3:UpdateJobPriority`  |  Obligatorio para actualizar la prioridad de un trabajo existente.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobStatus.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobStatus.html)  |  (Obligatorio) `s3:UpdateJobStatus`  |  Obligatorio para actualizar el estado del trabajo especificado.  | 

## Operaciones y permisos de configuración de lente de almacenamiento de S3
<a name="using-with-s3-policy-actions-related-to-lens"></a>

Las operaciones de configuración de lente de almacenamiento de S3 son operaciones de la API de S3 que funcionan en el tipo de recurso de `storagelensconfiguration`. Para obtener más información acerca de cómo configurar las operaciones de configuración de S3 Storage Lens, consulte [Configuración de permisos de Lente de almacenamiento de Amazon S3](storage_lens_iam_permissions.md).

A continuación, se muestra la asignación de las operaciones de configuración de lente de almacenamiento de S3 y las acciones de política requeridas. 


| Operaciones de la API | Acciones de políticas | Descripción de las acciones de política | 
| --- | --- | --- | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteStorageLensConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteStorageLensConfiguration.html)  |  (Obligatorio) `s3:DeleteStorageLensConfiguration`  |  Obligatorio para eliminar la configuración de lente de almacenamiento de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteStorageLensConfigurationTagging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteStorageLensConfigurationTagging.html)  |  (Obligatorio) `s3:DeleteStorageLensConfigurationTagging`  |  Obligatorio para eliminar las etiquetas de configuración de lente de almacenamiento de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetStorageLensConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetStorageLensConfiguration.html)  |  (Obligatorio) `s3:GetStorageLensConfiguration`  |  Obligatorio para obtener la configuración de lente de almacenamiento de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetStorageLensConfigurationTagging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetStorageLensConfigurationTagging.html)  |  (Obligatorio) `s3:GetStorageLensConfigurationTagging`  |  Obligatorio para obtener las etiquetas de configuración de lente de almacenamiento de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutStorageLensConfigurationTagging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutStorageLensConfigurationTagging.html)  |  (Obligatorio) `s3:PutStorageLensConfigurationTagging`  |  Obligatorio para poner o reemplazar etiquetas en una configuración de lente de almacenamiento de S3 existente.  | 

## Operaciones y permisos de grupos de lentes de almacenamiento de S3
<a name="using-with-s3-policy-actions-related-to-lens-groups"></a>

Las operaciones de grupos de lente de almacenamiento de S3 son operaciones de la API de S3 que funcionan en el tipo de recurso de `storagelensgroup`. Para obtener más información acerca de cómo configurar los permisos de los grupos de lentes de almacenamiento de S3, consulte [Permisos de grupos de Storage Lens](storage-lens-groups.md#storage-lens-group-permissions).

A continuación, se muestra la asignación de las operaciones de grupos de lentes de almacenamiento de S3 y las acciones de política requeridas. 


| Operaciones de la API | Acciones de políticas | Descripción de las acciones de política | 
| --- | --- | --- | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteStorageLensGroup.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteStorageLensGroup.html)  |  (Obligatorio) `s3:DeleteStorageLensGroup`  |  Obligatorio para eliminar un grupo de lentes de almacenamiento de S3 existente.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetStorageLensGroup.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetStorageLensGroup.html)  |  (Obligatorio) `s3:GetStorageLensGroup`  |  Obligatorio para recuperar los detalles de la configuración del grupo de lentes de almacenamiento de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateStorageLensGroup.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateStorageLensGroup.html)  |  (Obligatorio) `s3:UpdateStorageLensGroup`  |  Obligatorio para actualizar el grupo de lentes de almacenamiento de S3 existente.  | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateStorageLensGroup.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateStorageLensGroup.html) | (Obligatorio) `s3:CreateStorageLensGroup` | Obligatorio para crear un nuevo grupo de lentes de almacenamiento. | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateStorageLensGroup.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateStorageLensGroup.html), [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_TagResource.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_TagResource.html) | (Obligatorio) `s3:CreateStorageLensGroup`, `s3:TagResource` | Obligatorio para crear un nuevo grupo de lentes de almacenamiento con etiquetas. | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListStorageLensGroups.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListStorageLensGroups.html) | (Obligatorio) `s3:ListStorageLensGroups` | Obligatorio para enumerar todos los grupos de lentes de almacenamiento en la región de origen. | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListTagsForResource.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListTagsForResource.html) | (Obligatorio) `s3:ListTagsForResource` | Obligatorio para enumerar las etiquetas que se han agregado a al grupo de lentes de almacenamiento. | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_TagResource.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_TagResource.html) | (Obligatorio) `s3:TagResource` | Obligatorio para agregar o actualizar una etiqueta de grupo de lentes de almacenamiento para un grupo de lentes de almacenamiento existente. | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UntagResource.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UntagResource.html) | (Obligatorio) `s3:UntagResource` | Obligatorio para eliminar una etiqueta de un grupo de lentes de almacenamiento. | 

## Operaciones y permisos de instancias de Concesiones de acceso a S3
<a name="using-with-s3-policy-actions-related-to-s3ag-instances"></a>

Las operaciones de instancias de Concesiones de acceso a S3 son operaciones de API de S3 que funcionan en el tipo de recurso `accessgrantsinstance`. Una instancia de Concesiones de acceso a S3 es un contenedor lógico de concesiones de acceso. Para obtener más información sobre el uso de instancias de Concesiones de acceso a S3, consulte [Trabajo con instancias de concesiones de acceso a S3](access-grants-instance.md).

A continuación se muestra la asignación de las operaciones de configuración de instancias de Concesiones de acceso a S3 y las acciones de política requeridas. 


| Operaciones de la API | Acciones de políticas | Descripción de las acciones de política | 
| --- | --- | --- | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_AssociateAccessGrantsIdentityCenter.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_AssociateAccessGrantsIdentityCenter.html)  |  (Obligatorio) `s3:AssociateAccessGrantsIdentityCenter`  |  Necesario para asociar una instancia de AWS IAM Identity Center a su instancia de Concesiones de acceso a S3, lo que le permite crear concesiones de acceso para usuarios y grupos en su directorio de identidades corporativas. También debe tener los siguientes permisos:  `sso:CreateApplication`, `sso:PutApplicationGrant`, y `sso:PutApplicationAuthenticationMethod`.  | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessGrantsInstance.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessGrantsInstance.html)  |  (Obligatorio) `s3:CreateAccessGrantsInstance`  |  Necesario para crear una instancia de Concesiones de acceso a S3 (recurso `accessgrantsinstance`), que es un contenedor de concesiones de acceso individuales.  Para asociar una instancia de AWS IAM Identity Center a su instancia de Concesiones de acceso a S3, también debe tener los permisos `sso:DescribeInstance`, `sso:CreateApplication`, `sso:PutApplicationGrant` y `sso:PutApplicationAuthenticationMethod`.  | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessGrantsInstance.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessGrantsInstance.html)  |  (Obligatorio) `s3:DeleteAccessGrantsInstance`  |  Necesario para eliminar una instancia de Concesiones de acceso a S3 (recurso `accessgrantsinstance`) de una Región de AWS de la cuenta.   | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessGrantsInstanceResourcePolicy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessGrantsInstanceResourcePolicy.html)  |  (Obligatorio) `s3:DeleteAccessGrantsInstanceResourcePolicy`  |  Necesario para eliminar una política de recursos de la instancia de Concesiones de acceso a S3.   | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DissociateAccessGrantsIdentityCenter.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DissociateAccessGrantsIdentityCenter.html)  |  (Obligatorio) `s3:DissociateAccessGrantsIdentityCenter`  |  Necesario para anular la asociación de una instancia de AWS IAM Identity Center de su instancia de Concesiones de acceso a S3. También debe tener los siguientes permisos: `sso:DeleteApplication`  | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessGrantsInstance.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessGrantsInstance.html)  |  (Obligatorio) `s3:GetAccessGrantsInstance`  |  Necesario para recuperar la instancia de Concesiones de acceso a S3 de una Región de AWS de la cuenta.  | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessGrantsInstanceForPrefix.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessGrantsInstanceForPrefix.html)  |  (Obligatorio) `s3:GetAccessGrantsInstanceForPrefix`  |  Necesario para recuperar la instancia de Concesiones de acceso a S3 que contiene un prefijo en concreto.  | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessGrantsInstanceResourcePolicy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessGrantsInstanceResourcePolicy.html)  |  (Obligatorio) `s3:GetAccessGrantsInstanceResourcePolicy`  |  Necesario para devolver la política de recursos de la instancia de Concesiones de acceso a S3.  | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessGrantsInstances.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessGrantsInstances.html)  |  (Obligatorio) `s3:ListAccessGrantsInstances`  |  Necesario para devolver una lista de las instancias de Concesiones de acceso a S3 de la cuenta.  | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessGrantsInstanceResourcePolicy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessGrantsInstanceResourcePolicy.html)  |  (Obligatorio) `s3:PutAccessGrantsInstanceResourcePolicy`  |  Necesario para actualizar la política de recursos de la instancia de Concesiones de acceso a S3.  | 

## Operaciones y permisos de ubicación de Concesiones de acceso a S3
<a name="using-with-s3-policy-actions-related-to-s3ag-locations"></a>

Las operaciones de ubicación de Concesiones de acceso a S3 son operaciones de API de S3 que funcionan en el tipo de recurso `accessgrantslocation`. Para obtener más información sobre el uso de ubicaciones de Concesiones de acceso a S3, consulte [Trabajo con ubicaciones de concesiones de acceso a S3](access-grants-location.md).

A continuación se muestra la asignación de las operaciones de configuración de ubicaciones de Concesiones de acceso a S3 y las acciones de política requeridas. 


| Operaciones de la API | Acciones de políticas | Descripción de las acciones de política | 
| --- | --- | --- | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessGrantsLocation.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessGrantsLocation.html)  |  (Obligatorio) `s3:CreateAccessGrantsLocation`  |  Necesario para registrar una ubicación en su instancia de Concesiones de acceso a S3 (crear un recurso `accessgrantslocation`). También debe tener el siguiente permiso para el rol de IAM especificado:  `iam:PassRole`  | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessGrantsLocation.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessGrantsLocation.html)  |  (Obligatorio) `s3:DeleteAccessGrantsLocation`  |  Necesario para eliminar una ubicación registrada de su instancia de Concesiones de acceso a S3.   | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessGrantsLocation.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessGrantsLocation.html)  |  (Obligatorio) `s3:GetAccessGrantsLocation`  |  Necesario para recuperar los detalles de una determinada ubicación registrada en la instancia de Concesiones de acceso a S3.  | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessGrantsLocations.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessGrantsLocations.html)  |  (Obligatorio) `s3:ListAccessGrantsLocations`  |  Necesario para devolver una lista de las ubicaciones registradas en la instancia de Concesiones de acceso a S3.  | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateAccessGrantsLocation.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateAccessGrantsLocation.html)  |  (Obligatorio) `s3:UpdateAccessGrantsLocation`  |  Necesario para actualizar el rol de IAM de una ubicación registrada en la instancia de Concesiones de acceso a S3.  | 

## Operaciones y permisos de concesión de Concesiones de acceso a S3
<a name="using-with-s3-policy-actions-related-to-s3ag-grants"></a>

Las operaciones de concesión de Concesiones de acceso a S3 son operaciones de API de S3 que funcionan en el tipo de recurso `accessgrant`. Para obtener más información sobre el uso de concesiones individuales con Concesiones de acceso a S3, consulte [Trabajo con concesiones en concesiones de acceso a S3](access-grants-grant.md).

A continuación se muestra la asignación de las operaciones de configuración de concesión de Concesiones de acceso a S3 y las acciones de política requeridas. 


| Operaciones de la API | Acciones de políticas | Descripción de las acciones de política | 
| --- | --- | --- | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessGrant.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessGrant.html)  |  (Obligatorio) `s3:CreateAccessGrant`  |  Necesario para crear una concesión individual (recurso `accessgrant`) para un usuario o grupo en la instancia de Concesiones de acceso a S3. También debe tener los siguientes permisos: Para cualquier identidad del directorio: `sso:DescribeInstance` y `sso:DescribeApplication` Para los usuarios del directorio: `identitystore:DescribeUser`  | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessGrant.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessGrant.html)  |  (Obligatorio) `s3:DeleteAccessGrant`  |  Necesario para eliminar una concesión de acceso individual (recurso `accessgrant`) de la instancia de Concesiones de acceso a S3.   | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessGrant.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessGrant.html)  |  (Obligatorio) `s3:GetAccessGrant`  |  Necesario para obtener los detalles de una concesión de acceso individual en la instancia de Concesiones de acceso a S3.   | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessGrants.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessGrants.html)  |  (Obligatorio) `s3:ListAccessGrants`  |  Necesario para devolver una lista de concesiones de acceso individuales en la instancia de Concesiones de acceso a S3.   | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListCallerAccessGrants.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListCallerAccessGrants.html)  |  (Obligatorio) `s3:ListCallerAccessGrants`  |  Necesario para obtener una lista de las concesiones de acceso que otorgan al solicitante acceso a los datos de Amazon S3 mediante Concesiones de acceso a S3.   | 

## Permisos y operaciones de la cuenta
<a name="using-with-s3-policy-actions-related-to-accounts"></a>

Las operaciones de cuentas son operaciones de la API de S3 que funcionan en el nivel de la cuenta. La cuenta no es un tipo de recurso definido por Amazon S3. Debe especificar las acciones de políticas de S3 para las operaciones de cuenta en políticas de IAM basadas en identidades, no en políticas de bucket.

En las políticas, el elemento `Resource` debe ser `"*"`. Para obtener más información acerca de las políticas de ejemplo, consulte [Operaciones de cuentas](security_iam_service-with-iam.md#using-with-s3-actions-related-to-accounts).

A continuación, se muestra la asignación de las operaciones de la cuenta y las acciones de la política requeridas. 


| Operaciones de la API | Acciones de políticas | Descripción de las acciones de política | 
| --- | --- | --- | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html)  |  (Obligatorio) `s3:CreateJob`  |  Obligatorio para crear un nuevo trabajo de operaciones por lotes de S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateStorageLensGroup.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateStorageLensGroup.html)  |  (Obligatorio) `s3:CreateStorageLensGroup`  |  Obligatorio para crear un nuevo grupo de lentes de almacenamiento de S3 y asociarlo al ID de la Cuenta de AWS especificado.  | 
|    |  (Obligatorio condicionalmente) `s3:TagResource`  |  Obligatorio si desea crear un grupo de lentes de almacenamiento de S3 con etiquetas de recursos de AWS.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeletePublicAccessBlock.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeletePublicAccessBlock.html) (Nivel de cuenta)  |  (Obligatorio) `s3:PutAccountPublicAccessBlock`  |  Obligatorio para eliminar la configuración de bloqueo de acceso público de una Cuenta de AWS.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPoint.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPoint.html)  |  (Obligatorio) `s3:GetAccessPoint`  |  Obligatorio para recuperar información de la configuración sobre el punto de acceso especificado.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointPolicy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointPolicy.html) (Nivel de cuenta)  |  (Obligatorio) `s3:GetAccountPublicAccessBlock`  |  Obligatorio para recuperar la configuración de bloqueo de acceso público para una Cuenta de AWS.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessPoints.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessPoints.html)  |  (Obligatorio) `s3:ListAccessPoints`  |  Obligatorio para mostrar los puntos de acceso de un bucket de S3 que son propiedad de una Cuenta de AWS.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessPointsForObjectLambda.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessPointsForObjectLambda.html)  |  (Obligatorio) `s3:ListAccessPointsForObjectLambda`  |  Obligatorio para mostrar los puntos de acceso de objeto Lambda.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html)  |  (Obligatorio) `s3:ListAllMyBuckets`  |  Obligatorio para devolver una lista de todos los buckets pertenecientes al remitente autenticado de la solicitud.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListJobs.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListJobs.html)  |  (Obligatorio) `s3:ListJobs`  |  Obligatorio para mostrar los trabajos actuales y los trabajos que han finalizado recientemente.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListMultiRegionAccessPoints.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListMultiRegionAccessPoints.html)  |  (Obligatorio) `s3:ListMultiRegionAccessPoints`  |  Obligatorio para devolver una lista de los puntos de acceso multirregionales que están actualmente asociados a la Cuenta de AWS especificada.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListStorageLensConfigurations.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListStorageLensConfigurations.html)  |  (Obligatorio) `s3:ListStorageLensConfigurations`  |  Obligatorio para obtener una lista de las configuraciones de lente de almacenamiento de S3 para una Cuenta de AWS.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListStorageLensGroups.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListStorageLensGroups.html)  |  (Obligatorio) `s3:ListStorageLensGroups`  |  Obligatorio para mostrar todos los grupos de lentes de almacenamiento de S3 de la Región de AWS de inicio especificada.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html) (Nivel de cuenta)  |  (Obligatorio) `s3:PutAccountPublicAccessBlock`  |  Obligatorio para crear o modificar la configuración de bloqueo de acceso público para una Cuenta de AWS.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutStorageLensConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutStorageLensConfiguration.html)  |  (Obligatorio) `s3:PutStorageLensConfiguration`  |  Obligatorio para poner una configuración de lente de almacenamiento de S3.  | 

# Políticas y permisos en Amazon S3
<a name="access-policy-language-overview"></a>

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](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html) en la *Referencia de autorización de servicios*.

Para obtener más información sobre los permisos para las operaciones de la API de S3 por tipos de recursos de S3, consulte [Permisos necesarios para las operaciones de la API de Amazon S3](using-with-s3-policy-actions.md).

Una política contiene los siguientes elementos básicos:
+ [Resource](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-resources) – 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](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-resources).
+ [Actions](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-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 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html) 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](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-actions). Para obtener una lista completa de las acciones de Amazon S3, consulte [Acciones](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Operations.html) en la *Referencia de la API de Amazon Simple Storage Service*.
+ [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_effect.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_effect.html): el efecto obtenido cuando el usuario solicita la acción específica, que puede ser `Allow`o `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](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_effect.html) en la *Guía del usuario IAM*.
+ [Principal](security_iam_service-with-iam.md#s3-bucket-user-policy-specifying-principal-intro) – 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](security_iam_service-with-iam.md#s3-bucket-user-policy-specifying-principal-intro).
+ [Condition](amazon-s3-policy-keys.md) – 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](amazon-s3-policy-keys.md).

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`.

------
#### [ JSON ]

****  

```
{
    "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](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) y [Referencia de políticas de JSON de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html) en la *guía de usuario de IAM*.

## Delegación de permisos
<a name="permission-delegation"></a>

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
<a name="about-resource-owner"></a>

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 de los objetos](object-lifecycle-mgmt.md).

### Autenticación de la propiedad y las solicitudes
<a name="about-resource-owner-requests"></a>

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 sobre la solicitud de autenticación, consulte [Making requests](https://docs.aws.amazon.com/AmazonS3/latest/API/MakingRequests.html) en la *Amazon S3 API Reference*.

El propietario del bucket puede permitir solicitudes no autenticadas. Por ejemplo, se permiten solicitudes [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html) 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"](access-control-block-public-access.md#access-control-block-public-access-policy-status).

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ífic `65a011a29cdf8ec533ec3d1ccaae921c`. 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](access-control-block-public-access.md). Para obtener más información acerca de las ACL, consulte [Información general de las Listas de control de acceso (ACL)](acl-overview.md).

**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](https://docs.aws.amazon.com/general/latest/gr/root-vs-iam.html) y [Prácticas recomendadas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) en la *Guía del usuario de IAM*.







# Políticas de buckets para Amazon S3
<a name="bucket-policies"></a>

Una política de bucket está basada en recursos que puede utilizar para conceder permisos de acceso al bucket de Amazon S3 y a los objetos que contiene. Solo el propietario del bucket puede asociar una política a un bucket. Los permisos asociados a un bucket se aplican a todos los objetos del bucket que son propiedad de la cuenta de propietario del bucket. Estos permisos no se aplican a los objetos que pertenecen a otras Cuentas de AWS.

S3 Object Ownership es una configuración de nivel de bucket de Amazon S3 que puede usar para controlar la propiedad de los objetos que se cargan en el bucket y para activar o desactivar las listas de control de acceso (ACL). De forma predeterminada, la propiedad de objetos se establece en la configuración impuesta por el propietario del bucket. Además, todas las ACL están deshabilitadas. El propietario del bucket posee todos los objetos del bucket y administra el acceso a los datos de forma exclusiva mediante políticas.

Las políticas de buckets utilizan el lenguaje de política de AWS Identity and Access Management (IAM) basado en JSON. Puede utilizar directivas de bucket para agregar o denegar permisos para los objetos de un bucket. Las políticas de bucket pueden permitir o denegar solicitudes en función de los elementos de la política. Estos elementos incluyen el solicitante, las acciones de S3, los recursos y los aspectos o condiciones de la solicitud (como la dirección IP utilizada para realizar la solicitud). 

Por ejemplo, puede crear una política de bucket que haga lo siguiente: 
+ Conceder permisos entre cuentas para cargar objetos en el bucket de S3
+ Asegurarse de que usted, el propietario del bucket, tenga el control total de los objetos cargados

Para obtener más información, consulte [Ejemplos de políticas de bucket de Amazon S3](example-bucket-policies.md).

**importante**  
No puede usar una política de bucket para evitar eliminaciones ni transiciones mediante una regla de [S3 Lifecycle](object-lifecycle-mgmt.md). Por ejemplo, aunque la política de bucket deniegue todas las acciones a todas las entidades principales, la configuración de S3 Lifecycle seguirá funcionando con normalidad.

Los temas de esta sección proporcionan ejemplos y muestran cómo agregar una política de bucket en la consola de S3. Para obtener más información sobre las políticas basadas en la identidad, consulte [Políticas basadas en identidad para Amazon S3](security_iam_id-based-policy-examples.md). Para obtener información sobre el lenguaje de las políticas de bucket, consulte [Políticas y permisos en Amazon S3](access-policy-language-overview.md).

Para obtener más información sobre los permisos para las operaciones de la API de S3 por tipos de recursos de S3, consulte [Permisos necesarios para las operaciones de la API de Amazon S3](using-with-s3-policy-actions.md).

**Topics**
+ [Agregar una política de bucket mediante la consola de Amazon S3](add-bucket-policy.md)
+ [Control del acceso desde puntos de enlace de la VPC con políticas de bucket](example-bucket-policies-vpc-endpoint.md)
+ [Ejemplos de políticas de bucket de Amazon S3](example-bucket-policies.md)
+ [Ejemplos de políticas de bucket que utilizan claves de condición](amazon-s3-policy-keys.md)

# Agregar una política de bucket mediante la consola de Amazon S3
<a name="add-bucket-policy"></a>

Puede utilizar el [Generador de políticas de AWS](https://aws.amazon.com/blogs/aws/aws-policy-generator/) y la consola de Amazon S3 para agregar una nueva política de bucket o editar una existente. Una política de bucket es una política de AWS Identity and Access Management (IAM) basada en recursos. Puede agregar una política de bucket a un bucket para conceder a otras Cuentas de AWS o usuarios de IAM permisos de acceso al bucket y los objetos que contiene. Los permisos de objetos solo se aplican a aquellos objetos que cree el propietario del bucket. Para obtener más información acerca de las políticas de bucket, consulte [Administración de identidades y accesos para Amazon S3](security-iam.md).

Asegúrese de resolver advertencias de seguridad, errores, advertencias generales y sugerencias de AWS Identity and Access Management Access Analyzer antes de guardar la política. IAM Access Analyzer ejecuta verificaciones de política para validarla contra la [Gramática de la política](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html) de IAM y las [prácticas recomendadas](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html). Estas verificaciones generan hallazgos y proporcionan recomendaciones procesables para ayudarlo a crear políticas funcionales y que se ajustan a las prácticas recomendadas de seguridad. Para obtener más información sobre la validación de políticas utilizando IAM Access Analyzer, consulte [Validación de políticas de IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) en la *Guía del usuario de IAM*. Para ver una lista de advertencias, errores y sugerencias que devuelve IAM Access Analyzer, consulte [Referencia de verificación de políticas de IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-reference-policy-checks.html).

Para obtener instrucciones sobre la solución de errores con una política, consulte [Solución de problemas de errores de acceso rechazado (403 Forbidden) en Amazon S3](troubleshoot-403-errors.md).

**Para crear o editar una política de bucket**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En el panel de navegación izquierdo, elija **Buckets de uso general** o **Buckets de directorio**.

1. En la lista de buckets, elija el nombre del bucket para el que desea crear una política de bucket o cuya política de bucket quiera editar.

1. Elija la pestaña **Permisos**.

1. En **Política de bucket**, elija **Editar**. Aparece la página **Edit bucket policy** (Editar política de bucket).

1. En la página **Editar política de bucket**, lleve a cabo alguna de las siguientes operaciones: 
   + Para ver ejemplos de políticas de bucket, elija **Ejemplos de políticas**. O consulte [Ejemplos de políticas de bucket de Amazon S3](example-bucket-policies.md) en la *Guía del usuario de Amazon S3*.
   + Para generar una política automáticamente o editar JSON en la sección **Política**, elija **Generador de políticas**.

   Si elige **Generador de políticas**, se abre el generador de políticas de AWS en una ventana nueva.

   1. En la página **Generador de políticas de AWS**, para **Seleccionar tipo de política**, elija **Política de bucket de S3**.

   1. Agregue una instrucción ingresando la información en los campos proporcionados y, a continuación, elija **Agregar declaración**. Repita este paso para tantas instrucciones como desee agregar. Para obtener más información acerca de estos campos, consulte la [Referencia de los elementos de las políticas de JSON de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) en la *Guía del usuario de IAM*. 
**nota**  
Para mayor comodidad, la página **Editar la política del bucket** muestra el **ARN del bucket** (Nombre de recurso de Amazon) actual encima del campo de texto **Política**. Puede copiar este ARN para utilizarlo en las instrucciones de la página **Generador de políticas de AWS**. 

   1. Una vez que haya terminado de agregar instrucciones, elija **Generar política**.

   1. Copie el texto de la política generada, elija **Cerrar** y vuelva a la página **Editar política de bucket** en la consola de Amazon S3.

1. En el cuadro **Política**, edite la política existente o pegue la política de bucket desde el generador de políticas de AWS. Asegúrese de resolver advertencias de seguridad, errores, advertencias generales y sugerencias antes de guardar la política.
**nota**  
Las políticas de bucket tienen un límite de tamaño de 20 KB.

1. (Opcional) Elija **Preview external access** (Vista previa del acceso externo) en la esquina inferior derecha para obtener una vista previa de cómo la política nueva afecta al acceso público y entre cuentas al recurso. Antes de guardar la política, puede comprobar si introduce nuevos hallazgos de IAM Access Analyzer o resuelve las conclusiones existentes. Si no ve un analizador activo, elija **Ir a Access Analyzer** para [crear un analizador de la cuenta](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html#access-analyzer-enabling) en Access Analyzer de IAM. Para obtener más información, consulte [Vista previa del acceso](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-access-preview.html) en la *Guía del usuario de IAM*. 

1. Elija **Guardar cambios**, que le devuelve a la pestaña **Permisos**. 

# Control del acceso desde puntos de enlace de la VPC con políticas de bucket
<a name="example-bucket-policies-vpc-endpoint"></a>

Puede utilizar las políticas de bucket de Amazon S3 para controlar el acceso a los buckets desde puntos de conexión específicos de la nube privada virtual (VPC) o VPC específicas. Esta sección incluye ejemplos de políticas de bucket que se pueden utilizar para controlar el acceso al bucket de Amazon S3 desde puntos de conexión de VPC. Para obtener información acerca de cómo configurar los puntos de enlace de la VPC, consulte [Puntos de conexión de la VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html) en la *guía del usuario de VPC*. 

Una VPC le permite lanzar recursos de AWS en una red virtual que haya definido. Un punto de conexión de VPC le permite crear una conexión privada entre la VPC y otro Servicio de AWS. Esta conexión privada no requiere acceso a través de Internet, de una conexión de red privada virtual (VPN), de una instancia NAT o de Direct Connect. 

Un punto de conexión de la VPC de Amazon S3 es una entidad lógica dentro de una VPC que permite la conectividad solo a Amazon S3. El punto de conexión de la VPC direcciona las solicitudes a Amazon S3 y direcciona las respuestas de vuelta a la VPC. Los puntos de conexión de la VPC solo cambian la forma en que se direccionan las solicitudes. Los nombres de DNS y los puntos de enlace públicos de Amazon S3 seguirán funcionando con los puntos de enlace de la VPC. Para obtener información importante acerca de cómo utilizar los puntos de conexión de VPC con Amazon S3, consulte [Puntos de conexión de puerta de enlace](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-gateway.html) y [Puntos de conexión de puerta de enlace para Amazon S3](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-s3.html) en la *Guía del usuario de VPC*. 

Los puntos de enlace de VPC para Amazon S3 tienen dos formas de controlar el acceso a los datos de Amazon S3: 
+ Puede controlar qué solicitudes, usuarios o grupos obtienen acceso a través de un punto de conexión de la VPC específico. Para obtener información acerca de este tipo de control de acceso, consulte [Control del acceso a los puntos de conexión de VPC con políticas de puntos de conexión](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-access.html) en la *Guía del usuario de VPC*.
+ Puede controlar qué VPC o puntos de enlace de la VPC tienen acceso a sus buckets a través de las políticas de bucket de Amazon S3. Para ver ejemplos de este tipo de control de acceso de política de bucket, consulte los siguientes temas sobre restricción de acceso.

**Topics**
+ [Restricción del acceso a un punto de conexión de la VPC específico](#example-bucket-policies-restrict-accesss-vpc-endpoint)
+ [Restricción del acceso a una VPC específica](#example-bucket-policies-restrict-access-vpc)
+ [Restricción del acceso a un punto de conexión de VPC de IPv6](#example-bucket-policies-ipv6-vpc-endpoint)

**importante**  
Al aplicar las políticas de bucket de Amazon S3 para los puntos de conexión de VPC que se describen en esta sección, es posible que bloquee el acceso al bucket involuntariamente. Los permisos de bucket pensados para limitar el acceso del bucket a las conexiones procedente de su punto de conexión de la VPC pueden bloquear todas las conexiones al bucket. Para obtener información acerca de cómo corregir este problema, consulte [¿Cómo ajusto mi política de bucket cuando tiene la VPC o el ID de punto de conexión de VPC incorrectos?](https://aws.amazon.com/premiumsupport/knowledge-center/s3-regain-access/) en el *Centro de conocimiento de AWS Support*.

## Restricción del acceso a un punto de conexión de la VPC específico
<a name="example-bucket-policies-restrict-accesss-vpc-endpoint"></a>

El siguiente es un ejemplo de una política de bucket de Amazon S3 que restringe el acceso a un bucket específico, `awsexamplebucket1`, solo desde el punto de conexión de la VPC con el ID `vpce-1a2b3c4d`. Si el punto de conexión específico no se usa, la política deniega todo el acceso al bucket. La condición `aws:SourceVpce` especifica el punto de conexión. La condición `aws:SourceVpce` no requiere un nombre de recurso de Amazon (ARN) para el recurso de punto de conexión de VPC, solo el ID del punto de conexión de VPC. Para obtener más información acerca del uso de las condiciones en una política, consulte [Ejemplos de políticas de bucket que utilizan claves de condición](amazon-s3-policy-keys.md).

**importante**  
Antes de utilizar la política de ejemplo siguiente, reemplace el ID del punto de conexión de la VPC por un valor adecuado para su caso de uso. De lo contrario, no podrá acceder a su bucket.
Esta política desactiva el acceso a la consola al bucket especificado, ya que las solicitudes de consola no se originan en el punto de conexión de VPC especificado.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Id": "Policy1415115909152",
   "Statement": [
     {
       "Sid": "Access-to-specific-VPCE-only",
       "Principal": "*",
       "Action": "s3:*",
       "Effect": "Deny",
       "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket",
                    "arn:aws:s3:::amzn-s3-demo-bucket/*"],
       "Condition": {
         "StringNotEquals": {
           "aws:SourceVpce": "vpce-0abcdef1234567890"
         }
       }
     }
   ]
}
```

------

## Restricción del acceso a una VPC específica
<a name="example-bucket-policies-restrict-access-vpc"></a>

Puede crear una política de bucket para restringir el acceso a una VPC específica con la condición `aws:SourceVpc`. Esto es útil si tiene múltiples puntos de enlace de la VPC configurados en la misma VPC y desea administrar el acceso a sus buckets de Amazon S3 para todos sus puntos de enlace. El siguiente es un ejemplo de una política que deniega el acceso a `awsexamplebucket1` y sus objetos desde cualquier VPC `vpc-111bbb22` exterior. Si la VPC especificada no se usa, la política deniega todo el acceso al bucket. Esta instrucción no concede acceso al bucket. Para conceder el acceso, debe agregar una instrucción `Allow` independiente. La clave de condición `vpc-111bbb22` no requiere un ARN para el recurso de VPC, solo el ID de VPC.

**importante**  
Antes de utilizar la política de ejemplo siguiente, reemplace el ID de VPC por un valor adecuado para su caso de uso. De lo contrario, no podrá acceder a su bucket.
Esta política desactiva el acceso a la consola al bucket especificado porque las solicitudes de consola no se originan en la VPC especificada.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Id": "Policy1415115909153",
   "Statement": [
     {
       "Sid": "Access-to-specific-VPC-only",
       "Principal": "*",
       "Action": "s3:*",
       "Effect": "Deny",
       "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket",
                    "arn:aws:s3:::amzn-s3-demo-bucket/*"],
       "Condition": {
         "StringNotEquals": {
           "aws:SourceVpc": "vpc-1a2b3c4d"
         }
       }
     }
   ]
}
```

------

## Restricción del acceso a un punto de conexión de VPC de IPv6
<a name="example-bucket-policies-ipv6-vpc-endpoint"></a>

La política de ejemplo siguiente deniega todas las acciones de Amazon S3 (`s3:`) en el bucket de *amzn-s3-demo-bucket* y sus objetos, a menos que la solicitud se origine en el punto de conexión de VPC especificado (`vpce-0a1b2c3d4e5f6g`) y la dirección IP de origen coincida con el bloque de CIDR de IPv6 proporcionado.

```
{
   "Version": "2012-10-17", 		 	 	 
   "Id": "Policy1415115909154",
   "Statement": [
     {
       "Sid": "AccessSpecificIPv6VPCEOnly",
       "Action": "s3:*",
       "Effect": "Deny",
       "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket",
                    "arn:aws:s3:::amzn-s3-demo-bucket/*"],
       "Condition": {
         "StringNotEquals": {
           "aws:SourceVpc": "vpc-0a1b2c3d4e5f6g4h2"
         },
        "NotIpAddress": {
          "aws:VpcSourceIp": "2001:db8::/32"
        }
       }
     }
   ]
}
```

Para obtener información sobre cómo restringir el acceso al bucket en función de IP o VPC específicas, consulte [¿Cómo puedo permitir que solo puntos de enlace o direcciones IP de VPC específicos accedan a mi bucket de Amazon S3?](https://repost.aws/knowledge-center/block-s3-traffic-vpc-ip) en el Centro de conocimiento de AWS re:Post.

# Ejemplos de políticas de bucket de Amazon S3
<a name="example-bucket-policies"></a>

Con las políticas de bucket de Amazon S3, puede proteger el acceso a los objetos de los buckets, de modo que solo los usuarios con los permisos adecuados puedan acceder a ellos. Incluso puede impedir que los usuarios autenticados sin los permisos adecuados accedan a los recursos de Amazon S3.

En esta sección se presentan ejemplos de casos de uso típicos para políticas de bucket. Estas políticas de ejemplo usan `amzn-s3-demo-bucket` como valor de recurso. Para probar estas políticas, sustituya `user input placeholders` por su propia información (como el nombre del bucket). 

Para conceder o denegar permisos a un conjunto de objetos, puede usar caracteres comodín (`*`) en nombres de recurso de Amazon (ARN) y otros valores. Por ejemplo, puede controlar el acceso a grupos de objetos que empiezan por un [prefijo](https://docs.aws.amazon.com/general/latest/gr/glos-chap.html#keyprefix) común o terminar con una extensión específica, como `.html`. 

Para obtener más información sobre el lenguaje de la política de AWS Identity and Access Management (IAM), consulte [Políticas y permisos en Amazon S3](access-policy-language-overview.md).

Para obtener más información sobre los permisos para las operaciones de la API de S3 por tipos de recursos de S3, consulte [Permisos necesarios para las operaciones de la API de Amazon S3](using-with-s3-policy-actions.md).

**nota**  
Si utiliza la consola de Amazon S3 para probar los permisos, debe conceder permisos adicionales requeridos por la consola: `s3:ListAllMyBuckets`, `s3:GetBucketLocation` y `s3:ListBucket`. Para ver un ejemplo de un tutorial en el que se conceden permisos a usuarios y se prueban esos permisos utilizando la consola, consulte [Controlar el acceso a un bucket con las políticas de usuario](walkthrough1.md).

Los recursos adicionales para crear políticas de bucket incluyen lo siguiente:
+ Para obtener una lista de las acciones, recursos y claves de condición de política de IAM que se pueden utilizar al crear una política de buckets, consulte [Acciones, recursos y claves de condición para Amazon S3](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html) en la *Referencia de autorizaciones de servicios*.
+ Para obtener más información sobre los permisos para las operaciones de la API de S3 por tipos de recursos de S3, consulte [Permisos necesarios para las operaciones de la API de Amazon S3](using-with-s3-policy-actions.md).
+ Para obtener información sobre cómo crear una política de S3, consulte [Agregar una política de bucket mediante la consola de Amazon S3](add-bucket-policy.md).
+ Para solucionar los errores de una política, consulte [Solución de problemas de errores de acceso rechazado (403 Forbidden) en Amazon S3](troubleshoot-403-errors.md).

Si tiene problemas para agregar o actualizar una política, consulte [¿Por qué aparece el error “Invalid principal in policy” cuando intento actualizar mi política de bucket de Amazon S3?](https://repost.aws/knowledge-center/s3-invalid-principal-in-policy-error) en el Centro de conocimiento de AWS re:Post.

**Topics**
+ [Concesión de permisos de solo lectura a un usuario anónimo público](#example-bucket-policies-anonymous-user)
+ [Requerir cifrado](#example-bucket-policies-encryption)
+ [Administración de buckets mediante ACL predefinidas](#example-bucket-policies-public-access)
+ [Administración del acceso a objetos con etiquetado de objetos](#example-bucket-policies-object-tags)
+ [Administración del acceso a objetos mediante claves de condición globales](#example-bucket-policies-global-condition-keys)
+ [Administración del acceso en función de solicitudes HTTP o HTTPS](#example-bucket-policies-HTTP-HTTPS)
+ [Administración del acceso de los usuarios a carpetas específicas](#example-bucket-policies-folders)
+ [Administración del acceso para los registros de acceso](#example-bucket-policies-access-logs)
+ [Administración del acceso a una OAI de Amazon CloudFront](#example-bucket-policies-cloudfront)
+ [Administración del acceso para la Lente de almacenamiento de Amazon S3](#example-bucket-policies-lens)
+ [Administración de permisos para inventario de S3, análisis de S3 e informes de inventario de S3](#example-bucket-policies-s3-inventory)
+ [Exigir MFA](#example-bucket-policies-MFA)
+ [Prevención de que los usuarios eliminen objetos](#using-with-s3-actions-related-to-bucket-subresources)

## Concesión de permisos de solo lectura a un usuario anónimo público
<a name="example-bucket-policies-anonymous-user"></a>

Puede usar la configuración de la política para conceder acceso a usuarios anónimos públicos, lo que resulta útil si está configurando el bucket como un sitio web estático. Para conceder acceso a usuarios públicos anónimos, es necesario deshabilitar la configuración de Bloqueo de acceso público para su bucket. Para obtener más información acerca de cómo hacerlo y la política necesaria, consulte [Configurar permisos para el acceso a sitios web](WebsiteAccessPermissionsReqd.md). Para obtener información sobre cómo configurar políticas más restrictivas con el mismo propósito, consulte [¿Cómo puedo conceder acceso de lectura público a algunos objetos de mi bucket de Amazon S3?](https://repost.aws/knowledge-center/read-access-objects-s3-bucket) en el Centro de conocimiento de AWS.

De forma predeterminada, Amazon S3 bloquea el acceso público a su cuenta y sus buckets. Si desea utilizar un bucket para alojar un sitio web estático, puede utilizar estos pasos para editar la configuración de bloqueo de acceso público. 

**aviso**  
Antes de completar estos pasos, consulte [Bloquear el acceso público a su almacenamiento de Amazon S3](access-control-block-public-access.md) para asegurarse de que comprende y acepta los riesgos que implica permitir el acceso público. Cuando desactiva la configuración de acceso público de bloqueo para que el bucket sea público, cualquier usuario de Internet puede acceder al bucket. Le recomendamos que bloquee todo el acceso público a sus buckets.

1. Abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3](https://console.aws.amazon.com/s3/).

1. Elija el nombre del bucket que ha configurado como sitio web estático.

1. Elija **Permisos**.

1. En **Bloquear acceso público (configuración de bucket)**, elija **Editar**.

1. Desactive **Bloquear *todo el* acceso público** y elija **Guardar cambios**.  
![\[La consola de Amazon S3, que muestra la configuración del bucket de acceso público al bloque.\]](http://docs.aws.amazon.com/es_es/AmazonS3/latest/userguide/images/edit-public-access-clear.png)

   Amazon S3 desactiva la configuración de Bloqueo de acceso público para su bucket. Para crear un sitio web público y estático, es posible que también tenga que [editar la configuración de Bloqueo de acceso público](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/block-public-access-account.html) para su cuenta antes de agregar una política de bucket. Si la configuración de Bloqueo de acceso público de su cuenta está activada actualmente, verá una nota en **Bloquear acceso público (configuración del bucket)**.

## Requerir cifrado
<a name="example-bucket-policies-encryption"></a>

Puede requerir cifrado del servidor con claves de AWS Key Management Service (AWS KMS) (SSE-KMS), como se muestra en los siguientes ejemplos.

### Requerir SSE-KMS para todos los objetos escritos en un bucket
<a name="example-bucket-policies-encryption-1"></a>

La política de ejemplo siguiente requiere que todos los objetos que se escriben en el bucket se cifren con el cifrado del lado del servidor mediante claves de AWS Key Management Service (AWS KMS) (SSE-KMS). Si el objeto no está cifrado con SSE-KMS, se deniega la solicitud.

------
#### [ JSON ]

****  

```
{
"Version":"2012-10-17",		 	 	 
"Id": "PutObjPolicy",
"Statement": [{
  "Sid": "DenyObjectsThatAreNotSSEKMS",
  "Principal": "*",
  "Effect": "Deny",
  "Action": "s3:PutObject",
  "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
  "Condition": {
    "Null": {
      "s3:x-amz-server-side-encryption-aws-kms-key-id": "true"
    }
  }
}]
}
```

------

### Requerir SSE-KMS con una AWS KMS key específica para todos los objetos escritos en un bucket
<a name="example-bucket-policies-encryption-2"></a>

La siguiente política de ejemplo impide que se escriban objetos en el bucket si no están cifrados con SSE-KMS mediante un ID de clave de KMS específico. Aunque los objetos se cifran con SSE-KMS mediante un cifrado predeterminado de encabezado por solicitud o de bucket, los objetos no se pueden escribir en el bucket si no se han cifrado con la clave de KMS especificada. Asegúrese de sustituir el ARN de clave de KMS que se usa en este ejemplo por su propio ARN de clave de KMS.

------
#### [ JSON ]

****  

```
{
"Version":"2012-10-17",		 	 	 
"Id": "PutObjPolicy",
"Statement": [{
  "Sid": "DenyObjectsThatAreNotSSEKMSWithSpecificKey",
  "Principal": "*",
  "Effect": "Deny",
  "Action": "s3:PutObject",
  "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
  "Condition": {
    "ArnNotEqualsIfExists": {
      "s3:x-amz-server-side-encryption-aws-kms-key-id": "arn:aws:kms:us-east-1:111122223333:key/01234567-89ab-cdef-0123-456789abcdef"
    }
  }
}]
}
```

------

## Administración de buckets mediante ACL predefinidas
<a name="example-bucket-policies-public-access"></a>

### Concesión de permisos a varias cuentas para cargar objetos o establecer ACL de objetos para el acceso público
<a name="example-bucket-policies-acl-1"></a>

La política de ejemplo siguiente concede permisos `s3:PutObject` y `s3:PutObjectAcl` a múltiples Cuentas de AWS. Además, la política de ejemplo requiere que cualquier solicitud de estas operaciones incluya la [lista de control de acceso (ACL) predefinida `public-read`](acl-overview.md#canned-acl). Para obtener más información, consulte [Acciones de políticas para Amazon S3](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-actions) y [Claves de condición de políticas para Amazon S3](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-conditionkeys).

**aviso**  
La `public-read` ACL predefinida permite que cualquier persona del mundo vea los objetos del bucket. Tenga cuidado al conceder acceso anónimo a su bucket de Amazon S3 o al deshabilitar la configuración del bloqueo de acceso público. Al otorgar acceso anónimo, cualquier persona puede acceder a su bucket. Le recomendamos que no conceda nunca acceso anónimo a su bucket de Amazon S3 a menos que lo necesite específicamente, por ejemplo con [alojamiento de sitios web estáticos](WebsiteHosting.md). Si desea habilitar la configuración del acceso público de bloques para el alojamiento de sitios web estáticos, consulte el [Tutorial: Configuración de un sitio web estático en Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/HostingWebsiteOnS3Setup.html).

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AddPublicReadCannedAcl",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:root",
                    "arn:aws:iam::444455556666:root"
                ]
            },
            "Action": [
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
            "Condition": {
                "StringEquals": {
                    "s3:x-amz-acl": [
                        "public-read"
                    ]
                }
            }
        }
    ]
}
```

------

### Conceder permisos entre cuentas para cargar objetos al mismo tiempo que se garantiza que el propietario del bucket tenga el control total
<a name="example-bucket-policies-acl-2"></a>

En el siguiente ejemplo, se muestra cómo permitir que otra Cuenta de AWS cargue objetos en el bucket al tiempo que se asegura de que tiene el control total de los objetos cargados. Esta política otorga una Cuenta de AWS específica (*`111122223333`*) la capacidad de cargar objetos solo si esa cuenta incluye la ACL predefinida `bucket-owner-full-control` en la carga. La condición `StringEquals` en la política especifica la clave de condición `s3:x-amz-acl` para expresar el requisito de ACL predefinido. Para obtener más información, consulte [Claves de condición de políticas para Amazon S3](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-conditionkeys). 

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
     {
       "Sid":"PolicyForAllowUploadWithACL",
       "Effect":"Allow",
       "Principal":{"AWS":"111122223333"},
       "Action":"s3:PutObject",
       "Resource":"arn:aws:s3:::amzn-s3-demo-bucket/*",
       "Condition": {
         "StringEquals": {"s3:x-amz-acl":"bucket-owner-full-control"}
       }
     }
   ]
}
```

------

## Administración del acceso a objetos con etiquetado de objetos
<a name="example-bucket-policies-object-tags"></a>

### Permitir a un usuario leer solo los objetos que tienen una clave y valor de etiqueta específicos
<a name="example-bucket-policies-tagging-1"></a>

La siguiente política de permisos limita al usuario a leer solo los objetos que tengan la clave y el valor de la etiqueta `environment: production`. Esta política usa la clave de condición `s3:ExistingObjectTag` para especificar la clave y el valor de etiqueta.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Principal":{
            "AWS":"arn:aws:iam::111122223333:role/JohnDoe"
         },
         "Effect":"Allow",
         "Action":[
            "s3:GetObject",
            "s3:GetObjectVersion"
         ],
         "Resource":"arn:aws:s3:::amzn-s3-demo-bucket/*",
         "Condition":{
            "StringEquals":{
               "s3:ExistingObjectTag/environment":"production"
            }
         }
      }
   ]
}
```

------

### Restringir las claves de etiqueta de objetos que los usuarios pueden agregar
<a name="example-bucket-policies-tagging-2"></a>

La política de ejemplo siguiente concede un permiso de usuario para realizar la acción `s3:PutObjectTagging`, lo que permite al usuario agregar etiquetas a un objeto existente. La condición usa la clave de condición `s3:RequestObjectTagKeys` para especificar las claves de etiqueta permitidas, como `Owner` o `CreationDate`. Para obtener más información, consulte [Creación de una condición que pruebe valores de varias claves](https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_multi-value-conditions.html) en la *Guía para usuarios de IAM*.

La política garantiza que cada clave de etiqueta especificada en la solicitud sea una clave de etiqueta autorizada. El calificador `ForAnyValue` de la condición garantiza que al menos una de las claves especificadas estará presente en la solicitud.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
  "Statement": [
    {"Principal":{"AWS":[
            "arn:aws:iam::111122223333:role/JohnDoe"
         ]
       },
 "Effect": "Allow",
      "Action": [
        "s3:PutObjectTagging"
      ],
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket/*"
      ],
      "Condition": {"ForAnyValue:StringEquals": {"s3:RequestObjectTagKeys": [
            "Owner",
            "CreationDate"
          ]
        }
      }
    }
  ]
}
```

------

### Requerir una clave y un valor de etiqueta específica al permitir a los usuarios agregar etiquetas de objetos
<a name="example-bucket-policies-tagging-3"></a>

La política de ejemplo siguiente concede un permiso de usuario para realizar la acción `s3:PutObjectTagging`, lo que permite al usuario agregar etiquetas a un objeto existente. La condición requiere que el usuario incluya una clave de etiqueta específica (como `Project`) con el valor establecido en `X`.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
  "Statement": [
    {"Principal":{"AWS":[
       "arn:aws:iam::111122223333:user/JohnDoe"
         ]
       },
      "Effect": "Allow",
      "Action": [
        "s3:PutObjectTagging"
      ],
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket/*"
      ],
      "Condition": {"StringEquals": {"s3:RequestObjectTag/Project": "X"
        }
      }
    }
  ]
}
```

------

### Permitir a un usuario agregar objetos solo con una clave y valor de etiqueta de objetos específicos
<a name="example-bucket-policies-tagging-4"></a>

La política de ejemplo siguiente concede un permiso de usuario para realizar la acción `s3:PutObject`, de modo que pueda agregar objetos a un bucket. Sin embargo, la instrucción `Condition` restringe las claves de etiqueta y los valores permitidos en los objetos cargados. En este ejemplo, el usuario solo puede agregar al bucket objetos que tengan la clave de etiqueta específica (`Department`) con el valor establecido en `Finance`.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
        "Principal":{
            "AWS":[
                 "arn:aws:iam::111122223333:user/JohnDoe"
         ]
        },
        "Effect": "Allow",
        "Action": [
            "s3:PutObject"
        ],
        "Resource": [
            "arn:aws:s3:::amzn-s3-demo-bucket/*"
        ],
        "Condition": {
            "StringEquals": {
                "s3:RequestObjectTag/Department": "Finance"
            }
        }
    }]
}
```

------

## Administración del acceso a objetos mediante claves de condición globales
<a name="example-bucket-policies-global-condition-keys"></a>

Las [claves de condición globales](https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_condition-keys.html) son claves de contexto de condición con un prefijo `aws`. Servicios de AWS pueden admitir claves de condición globales o proporcionar claves específicas del servicio que incluyan el prefijo de servicio. Puede utilizar el elemento `Condition` de una política JSON para comparar las claves de una solicitud con los valores de claves que especifique en la política.

### Restringir el acceso solo a entregas de registros de acceso al servidor de Amazon S3
<a name="example-bucket-policies-global-condition-keys-1"></a>

En la política de bucket de ejemplo siguiente, la clave de condición global [https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) se utiliza para comparar el [Nombre de recurso de Amazon (ARN)](https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns) del recurso, que realiza una solicitud de servicio a servicio con el ARN especificado en la política. La clave de condición global `aws:SourceArn` se usa para evitar que el servicio de Amazon S3 se utilice como un [sustituto confuso](https://docs.aws.amazon.com//IAM/latest/UserGuide/confused-deputy.html) durante las transacciones entre servicios. Solo el servicio de Amazon S3 tiene permiso para agregar objetos al bucket de Amazon S3.

Esta política de bucket de ejemplo concede permisos `s3:PutObject` solo a la entidad principal del servicio de registro (`logging.s3.amazonaws.com`). 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowPutObjectS3ServerAccessLogsPolicy",
            "Principal": {
                "Service": "logging.s3.amazonaws.com"
            },
            "Effect": "Allow",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket-logs/*",
            "Condition": {
                "StringEquals": {
                "aws:SourceAccount": "111122223333"
                },
                "ArnLike": {
                "aws:SourceArn": "arn:aws:s3:::amzn-s3-demo-source-bucket1"
                }
            }
        },
        {
            "Sid": "RestrictToS3ServerAccessLogs",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket-logs/*",
            "Condition": {
                "ForAllValues:StringNotEquals": {
                    "aws:PrincipalServiceNamesList": "logging.s3.amazonaws.com"
                }
            }
        }
    ]
}
```

------

### Permitir el acceso solo a la organización
<a name="example-bucket-policies-global-condition-keys-2"></a>

Si desea exigir que todas las [entidades principales de IAM](https://docs.aws.amazon.com//IAM/latest/UserGuide/intro-structure.html#intro-structure-principal) que accedan a un recurso provengan de una Cuenta de AWS en la organización (incluida la cuenta de administración de AWS Organizations), puede utilizar la clave de condición global `aws:PrincipalOrgID`.

Para conceder o restringir este tipo de acceso, defina la condición `aws:PrincipalOrgID` y establezca el valor del [ID de la organización](https://docs.aws.amazon.com//organizations/latest/userguide/orgs_manage_org_details.html) en la política de bucket. El ID de la organización se usa para controlar el acceso al bucket. Al usar la condición `aws:PrincipalOrgID`, los permisos de la política de bucket también se aplican a todas las cuentas nuevas que se agreguen a la organización.

Este es un ejemplo de política de bucket basada en recursos que puede utilizar para conceder a determinadas entidades principales de IAM de la organización acceso directo al bucket. Al agregar la clave de condición global `aws:PrincipalOrgID` a la política de bucket, ahora es necesario que la cuenta de la entidad principal esté en la organización para poder acceder al recurso. Aunque especifique accidentalmente una cuenta incorrecta al conceder el acceso, la [clave de condición global aws:PrincipalOrgID](https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalorgid) actúa como una protección adicional. Cuando esta clave global se utiliza en una política, evita que todas las entidades principales de fuera de la organización especificada accedan al bucket de S3. Solo las entidades principales de las cuentas de la organización mostradas pueden obtener acceso al recurso.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
        "Sid": "AllowGetObject",
        "Principal": {
            "AWS": "*"
        },
        "Effect": "Allow",
        "Action": "s3:GetObject",
        "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
        "Condition": {
            "StringEquals": {
                "aws:PrincipalOrgID": ["o-aa111bb222"]
            }
        }
    }]
}
```

------

## Administración del acceso en función de solicitudes HTTP o HTTPS
<a name="example-bucket-policies-HTTP-HTTPS"></a>

### Restringir el acceso solo a las solicitudes HTTPS
<a name="example-bucket-policies-use-case-HTTP-HTTPS-1"></a>

Si quiere evitar que los posibles atacantes manipulen el tráfico de la red, puede usar HTTPS (TLS) para permitir solo conexiones cifradas y, al mismo tiempo, restringir el acceso de las solicitudes HTTP al bucket. Para determinar si la solicitud es HTTP o HTTPS, utilice la clave de condición global [https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-securetransport](https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-securetransport) en la política de bucket de S3. La clave de condición `aws:SecureTransport` comprueba si una solicitud se envió mediante HTTP.

Si una solicitud devuelve `true`, significa que la solicitud se envió a través de HTTPS. Si la solicitud devuelve `false`, significa que la solicitud se envió a través de HTTP. A continuación, puede permitir o denegar el acceso al bucket en función del esquema de solicitud deseado.

En el ejemplo siguiente, la política de bucket deniega explícitamente las solicitudes HTTP. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
        "Sid": "RestrictToTLSRequestsOnly",
        "Action": "s3:*",
        "Effect": "Deny",
        "Resource": [
            "arn:aws:s3:::amzn-s3-demo-bucket",
            "arn:aws:s3:::amzn-s3-demo-bucket/*"
        ],
        "Condition": {
            "Bool": {
                "aws:SecureTransport": "false"
            }
        },
        "Principal": "*"
    }]
}
```

------

### Restringir el acceso a un HTTP referer específico
<a name="example-bucket-policies-HTTP-HTTPS-2"></a>

Suponga que tiene un sitio web con el nombre de dominio *`www.example.com`* o *`example.com`* con enlaces a fotografías y vídeos almacenados en el bucket denominado `amzn-s3-demo-bucket`. De forma predeterminada, todos los recursos de Amazon S3 son privados; por lo tanto, solo la Cuenta de AWS que creó los recursos puede acceder a ellos. 

Para permitir el acceso de lectura a estos objetos desde el sitio web, puede agregar una política de bucket que conceda el permiso `s3:GetObject` con una condición de la solicitud `GET` que debe proceder de páginas web específicas. La política siguiente restringe las solicitudes mediante la condición `StringLike` con la clave de condición `aws:Referer`.

Asegúrese de que los navegadores que utiliza incluyan el encabezado HTTP `referer` en la solicitud.

**aviso**  
Le recomendamos que actúe con precaución cuando utilice la clave de condición de `aws:Referer`. Es peligroso incluir un valor de encabezado de referencia HTTP conocido públicamente. Las partes no autorizadas podrían utilizar navegadores personalizados o modificados para proporcionar cualquier valor `aws:Referer` que eligieran. Por lo tanto, no utilice `aws:Referer` para evitar que las partes no autorizadas realicen solicitudes de AWS de forma directa.   
La clave de condición de `aws:Referer` se ofrece solo para que los clientes puedan proteger su contenido digital, como el contenido almacenado en Amazon S3, para evitar las referencias en sitios de terceros no autorizados. Para obtener más información, consulte [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-referer](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-referer) en la *Guía del usuario de IAM*.

## Administración del acceso de los usuarios a carpetas específicas
<a name="example-bucket-policies-folders"></a>

### Conceder acceso a los usuarios a carpetas específicas
<a name="example-bucket-policies-folders-1"></a>

Suponga que está intentando conceder a los usuarios acceso a una carpeta específica. Si el usuario de IAM y el bucket de S3 pertenecen a la misma Cuenta de AWS, puede utilizar una política de IAM para conceder al usuario acceso a una carpeta de bucket específica. Con este enfoque, no es necesario actualizar la política de bucket para conceder el acceso. Puede agregar la política de IAM a un rol de IAM al que puedan cambiarse varios usuarios. 

Si la identidad de IAM y el bucket de S3 pertenecen a Cuentas de AWS diferentes, debe conceder acceso entre cuentas tanto en la política de IAM como en la política de bucket. Para obtener más información sobre cómo conceder acceso entre cuentas, consulte [Propietario del bucket que concede permisos de bucket entre cuentas](https://docs.aws.amazon.com//AmazonS3/latest/userguide/example-walkthroughs-managing-access-example2.html).

La política de bucket de ejemplo siguiente concede a `JohnDoe` acceso completo a la consola solo a su carpeta (`home/JohnDoe/`). Al crear una carpeta `home` y conceder los permisos adecuados a los usuarios, puede hacer que varios usuarios compartan un solo bucket. Esta política consta de tres instrucciones `Allow`:
+ `AllowRootAndHomeListingOfCompanyBucket`: permite al usuario (`JohnDoe`) mostrar los objetos en el nivel raíz del bucket `amzn-s3-demo-bucket` y en la carpeta `home`. Esta instrucción también permite al usuario buscar el prefijo `home/` mediante la consola.
+ `AllowListingOfUserFolder`: permite al usuario (`JohnDoe`) mostrar todos los objetos de la carpeta `home/JohnDoe/` y cualquier subcarpeta.
+ `AllowAllS3ActionsInUserFolder`: permite al usuario realizar todas las acciones de Amazon S3 mediante la concesión de los permisos `Read`, `Write` y `Delete`. Los permisos están limitados a la carpeta principal del propietario del bucket.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowRootAndHomeListingOfCompanyBucket",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:user/JohnDoe"
                ]
            },
            "Effect": "Allow",
            "Action": ["s3:ListBucket"],
            "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket"],
            "Condition": {
                "StringEquals": {
                    "s3:prefix": ["", "home/", "home/JohnDoe"],
                    "s3:delimiter": ["/"]
                }
            }
        },
        {
            "Sid": "AllowListingOfUserFolder",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:user/JohnDoe"
                ]
            },
            "Action": ["s3:ListBucket"],
            "Effect": "Allow",
            "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket"],
            "Condition": {
                "StringLike": {
                    "s3:prefix": ["home/JohnDoe/*"]
                }
            }
        },
        {
            "Sid": "AllowAllS3ActionsInUserFolder",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:user/JohnDoe"
                ]
            },
            "Action": ["s3:*"],
            "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket/home/JohnDoe/*"]
        }
    ]
}
```

------

## Administración del acceso para los registros de acceso
<a name="example-bucket-policies-access-logs"></a>

### Conceder acceso al equilibrador de carga de aplicación para habilitar los registros de acceso
<a name="example-bucket-policies-access-logs-1"></a>

Al habilitar los registros de acceso del equilibrador de carga de aplicación, debe especificar el nombre del bucket de S3 donde el equilibrador de carga [almacenará los registros](https://docs.aws.amazon.com//elasticloadbalancing/latest/application/enable-access-logging.html#access-log-create-bucket). El bucket debe tener una [política asociada](https://docs.aws.amazon.com//elasticloadbalancing/latest/application/enable-access-logging.html#attach-bucket-policy) que conceda permiso a Elastic Load Balancing para escribir en el bucket.

En el siguiente ejemplo, la política de bucket concede permiso a Elastic Load Balancing (ELB) para escribir los registros de acceso en el bucket:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:root"
            },
            "Effect": "Allow",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/prefix/AWSLogs/111122223333/*"
        }
    ]
}
```

------

**nota**  
Asegúrese de sustituir `elb-account-id` por el ID de Cuenta de AWS para Elastic Load Balancing para la Región de AWS. Para ver la lista de regiones de Elastic Load Balancing, consulte [Adjuntar una política al bucket de Amazon S3](https://docs.aws.amazon.com//elasticloadbalancing/latest/classic/enable-access-logs.html#attach-bucket-policy) en la *Guía del usuario de Elastic Load Balancing*.

Si la Región de AWS no aparece en la lista de regiones de Elastic Load Balancing compatibles, utilice la siguiente política, que concede permisos al servicio de entrega de registros especificado.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
       "Principal": {
         "Service": "logdelivery.elasticloadbalancing.amazonaws.com"
          },
      "Effect": "Allow",
      "Action": "s3:PutObject",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/prefix/AWSLogs/111122223333/*"
    }
  ]
}
```

------

A continuación, asegúrese de configurar los [registros de acceso de Elastic Load Balancing](https://docs.aws.amazon.com//elasticloadbalancing/latest/application/enable-access-logging.html#enable-access-logs) habilitándolos. Puede [verificar los permisos del bucket](https://docs.aws.amazon.com//elasticloadbalancing/latest/application/enable-access-logging.html#verify-bucket-permissions) creando un archivo de prueba.

## Administración del acceso a una OAI de Amazon CloudFront
<a name="example-bucket-policies-cloudfront"></a>

### Conceder permiso a una OAI de Amazon CloudFront
<a name="example-bucket-policies-cloudfront-1"></a>

En el siguiente ejemplo de política de buckets, se concede un permiso de identidad de acceso de origen (OAI) de CloudFront para obtener (leer) todos los objetos del bucket de S3. Puede utilizar un OAI de CloudFront para permitir a los usuarios acceder a objetos del bucket a través de CloudFront, pero no directamente a través de Amazon S3. Para obtener más información, consulte [ Restricción del acceso a contenido de Amazon S3 utilizando una identidad de acceso de origen](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html) en la *guía para desarrolladores de Amazon CloudFront*.

La política siguiente utiliza el ID de la OAI como `Principal` de la política. Para obtener más información sobre el uso de políticas de bucket de S3 para conceder acceso a una OAI de CloudFront, consulte [Migración de la identidad de acceso de origen (OAI) al control de acceso de origen (OAC)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html#migrate-from-oai-to-oac) en la *Guía para desarrolladores de Amazon CloudFront*.

Para usar este ejemplo:
+ Reemplace `EH1HDMB1FH2TC` por el ID de la OAI. Para buscar el ID de la OAI, consulte la [Origin Access Identity page](https://console.aws.amazon.com/cloudfront/home?region=us-east-1#oai:) (Página de identidad de acceso de origen) en la consola de CloudFront o utilice [https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ListCloudFrontOriginAccessIdentities.html](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ListCloudFrontOriginAccessIdentities.html) en la API de CloudFront.
+ Reemplace `amzn-s3-demo-bucket` con el nombre de su bucket.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "PolicyForCloudFrontPrivateContent",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity EH1HDMB1FH2TC"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
        }
    ]
}
```

------

## Administración del acceso para la Lente de almacenamiento de Amazon S3
<a name="example-bucket-policies-lens"></a>

### Conceder permisos para Lente de almacenamiento de Amazon S3
<a name="example-bucket-policies-lens-1"></a>

Lente de almacenamiento de S3 agrega las métricas y muestra la información en la sección **Account snapshot** (Instantánea de la cuenta) en la página **Buckets** de la consola de Amazon S3. La Lente de almacenamiento de S3 también proporciona un panel interactivo que puede utilizar para visualizar información y tendencias, marcar valores atípicos y recibir recomendaciones para optimizar los costos de almacenamiento y aplicar las prácticas recomendadas de protección de datos. El panel tiene opciones de desglose para generar y visualizar información en el nivel de la organización, la cuenta, la Región de AWS, la clase de almacenamiento, el bucket, el prefijo o el grupo de Lente de almacenamiento. También puede enviar un informe de métricas diario en CSV o formato Parquet a un bucket de S3 de uso general o exportar las métricas directamente a un bucket de tablas de S3 administrado de AWS.

Lente de almacenamiento de S3 puede exportar las métricas de uso de almacenamiento agregado a un bucket de Amazon S3 para un análisis posterior. El bucket en el que S3 Storage Lens coloca sus exportaciones de métricas se conoce como el *bucket de destino*. Al configurar la exportación de métricas de S3 Storage Lens, debe tener una política de buckets para el bucket de destino. Para obtener más información, consulte [Supervisión de la actividad y el uso de almacenamiento con Lente de almacenamiento de Amazon S3](storage_lens.md).

En el siguiente ejemplo de política de bucket, se concede a Amazon S3 permiso para escribir objetos (solicitudes `PUT`) en un bucket de destino. Usted utiliza una política de bucket como esta en el bucket de destino cuando configura una exportación de métricas de S3 Storage Lens.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "S3StorageLensExamplePolicy",
            "Effect": "Allow",
            "Principal": {
                "Service": "storage-lens.s3.amazonaws.com"
            },
            "Action": "s3:PutObject",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-destination-bucket/destination-prefix/StorageLens/111122223333/*"
            ],
            "Condition": {
                "StringEquals": {
                    "s3:x-amz-acl": "bucket-owner-full-control",
                    "aws:SourceAccount": "111122223333",
                    "aws:SourceArn": "arn:aws:s3:region-code:111122223333:storage-lens/storage-lens-dashboard-configuration-id"
                }
            }
        }
    ]
}
```

------

Cuando configure una exportación de métricas a nivel de organización de Lente de almacenamiento de S3, utilice la siguiente modificación de la instrucción `Resource` de la política de buckets anterior.

```
1. "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket/destination-prefix/StorageLens/your-organization-id/*",
```

## Administración de permisos para inventario de S3, análisis de S3 e informes de inventario de S3
<a name="example-bucket-policies-s3-inventory"></a>

### Concesión de permisos para el inventario de S3 y el análisis de S3
<a name="example-bucket-policies-s3-inventory-1"></a>

El inventario de S3 crea listas de los objetos en un bucket y la exportación de análisis de clase de almacenamiento de análisis de S3 crea archivos de salida de los datos utilizados en los análisis. El bucket para el que el inventario enumera los objetos se denomina *bucket de origen*. El bucket donde se escribe el archivo de inventario y el bucket donde se escribe se denomina *bucket de destino*. Al configurar un inventario o una exportación de análisis, debe crear una política de buckets para el bucket de destino. Para obtener más información, consulte [Catálogo y análisis de sus datos con Inventario de S3](storage-inventory.md) y [Análisis de Amazon S3: análisis de clases de almacenamiento](analytics-storage-class.md).

En el siguiente ejemplo de política de bucket, se concede a Amazon S3 permiso para escribir objetos (solicitudes `PUT`) de la cuenta para el bucket de origen en el bucket de destino. Usted utiliza una política de bucket como esta en el bucket de destino cuando configura el inventario de S3 y la exportación de análisis de S3.

------
#### [ JSON ]

****  

```
{  
      "Version":"2012-10-17",		 	 	 
      "Statement": [
        {
            "Sid": "InventoryAndAnalyticsExamplePolicy",
            "Effect": "Allow",
            "Principal": {
                "Service": "s3.amazonaws.com"
            },
            "Action": "s3:PutObject",
            "Resource": [
            "arn:aws:s3:::amzn-s3-demo-destination-bucket/*"
            ],
            "Condition": {
                "ArnLike": {
                "aws:SourceArn": "arn:aws:s3:::amzn-s3-demo-source-bucket"
                },
                "StringEquals": {
                    "aws:SourceAccount": "111122223333",
                    "s3:x-amz-acl": "bucket-owner-full-control"
                }
            }
        }
    ]
}
```

------

### Control de la creación de la configuración del informe de inventario de S3
<a name="example-bucket-policies-s3-inventory-2"></a>

[Catálogo y análisis de sus datos con Inventario de S3](storage-inventory.md) crea listas de los objetos de un bucket de S3 y los metadatos para cada objeto. El permiso `s3:PutInventoryConfiguration` permite a un usuario crear una configuración de inventario que incluya todos los campos de metadatos de objeto disponibles de manera predeterminada y especificar el bucket de destino para almacenar el inventario. Un usuario con acceso de lectura a los objetos del bucket de destino puede acceder a todos los campos de metadatos de objetos que están disponibles en el informe de inventario. Para obtener más información acerca de los campos de metadatos disponibles en el inventario de S3, consulte [Lista de Amazon S3 Inventory](storage-inventory.md#storage-inventory-contents).

Para impedir que un usuario configure un informe de Inventario de S3, retire el permiso `s3:PutInventoryConfiguration` al usuario.

Algunos campos de metadatos de objetos en las configuraciones de los informes de Inventario de S3 son opcionales, lo que significa que están disponibles de manera predeterminada pero pueden restringirse cuando se concede el permiso `s3:PutInventoryConfiguration` a un usuario. Puede controlar si los usuarios pueden incluir estos campos de metadatos opcionales en sus informes mediante la clave de condición `s3:InventoryAccessibleOptionalFields`. Para obtener una lista de los campos de metadatos opcionales disponibles en Inventario de S3, consulte [https://docs.aws.amazon.com//AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html#API_PutBucketInventoryConfiguration_RequestBody](https://docs.aws.amazon.com//AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html#API_PutBucketInventoryConfiguration_RequestBody) en la *Referencia de la API de Amazon Simple Storage Service*.

Para conceder a un usuario permiso para crear una configuración de inventario con campos de metadatos opcionales específicos, utilice la clave de condición `s3:InventoryAccessibleOptionalFields` para delimitar las condiciones de su política de buckets. 

En el siguiente ejemplo de política, se otorga a un usuario (`Ana`) permiso para crear una configuración de inventario de forma condicional. En la condición `ForAllValues:StringEquals` de la política, se usa la clave de condición `s3:InventoryAccessibleOptionalFields` para especificar los dos campos de metadatos opcionales permitidos, es decir, `Size` y `StorageClass`. Por lo tanto, cuando `Ana` crea una configuración de inventario, los únicos campos de metadatos opcionales que puede incluir son `Size` y `StorageClass`. 

------
#### [ JSON ]

****  

```
{
	"Id": "InventoryConfigPolicy",
	"Version":"2012-10-17",		 	 	 
	"Statement": [{
			"Sid": "AllowInventoryCreationConditionally",
			"Effect": "Allow",			
			"Principal": {
				"AWS": "arn:aws:iam::111122223333:user/Ana"
			},			
			"Action": 
				"s3:PutInventoryConfiguration",
			"Resource": 
				"arn:aws:s3:::DOC-EXAMPLE-SOURCE-BUCKET",
			"Condition": {
				"ForAllValues:StringEquals": {
					"s3:InventoryAccessibleOptionalFields": [
					   "Size",
					   "StorageClass"
					   ]
				  }
				}
			}
	]
}
```

------

Para evitar que un usuario configure un informe de Inventario de S3 que incluya campos de metadatos opcionales específicos, añada una instrucción `Deny` explícita a la política de buckets para el bucket de origen. En el siguiente ejemplo de política de buckets, se impide al usuario `Ana` crear una configuración de inventario en el bucket de origen `amzn-s3-demo-source-bucket` que incluya los campos de metadatos opcionales `ObjectAccessControlList` o `ObjectOwner`. El usuario `Ana` aún puede crear una configuración de inventario con otros campos de metadatos opcionales.

```
 1. {
 2. 	"Id": "InventoryConfigSomeFields",
 3. 	"Version": "2012-10-17",		 	 	 
 4. 	"Statement": [{
 5. 			"Sid": "AllowInventoryCreation",
 6. 			"Effect": "Allow",
 7. 			"Principal": {
 8. 				"AWS": "arn:aws:iam::111122223333:user/Ana"
 9. 			},
10. 			"Action": "s3:PutInventoryConfiguration",			
11. 			"Resource": 
12. 				"arn:aws:s3:::amzn-s3-demo-source-bucket",
13. 
14. 		},
15. 		{
16. 			"Sid": "DenyCertainInventoryFieldCreation",
17. 			"Effect": "Deny",
18. 			"Principal": {
19. 				"AWS": "arn:aws:iam::111122223333:user/Ana"
20. 			},
21. 			"Action": "s3:PutInventoryConfiguration",	
22. 			"Resource": 
23. 			  "arn:aws:s3:::amzn-s3-demo-source-bucket",			
24. 			"Condition": {
25. 				"ForAnyValue:StringEquals": {
26. 					"s3:InventoryAccessibleOptionalFields": [
27. 					   "ObjectOwner",
28. 					   "ObjectAccessControlList"
29. 					   ]
30. 				  }
31. 				}
32. 			}
33. 	]
34. }
```

**nota**  
El uso de la clave de condición `s3:InventoryAccessibleOptionalFields` en las políticas de buckets no afecta a la entrega de informes de inventario basados en las configuraciones de inventario existentes. 

**importante**  
Recomendamos que use `ForAllValues` con un efecto `Allow` o `ForAnyValue` con un efecto `Deny`, tal y como se muestra en los ejemplos anteriores.  
No utilice `ForAllValues` con un efecto `Deny` ni `ForAnyValue` con un efecto `Allow`, ya que estas combinaciones pueden ser demasiado restrictivas y bloquear la eliminación de la configuración del inventario.  
Para obtener más información sobre los operadores de conjuntos de condiciones `ForAllValues` y `ForAnyValue`, consulte [Claves de contexto multivalor](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-single-vs-multi-valued-context-keys.html#reference_policies_condition-multi-valued-context-keys) en la *Guía del usuario de IAM*.

## Exigir MFA
<a name="example-bucket-policies-MFA"></a>

Amazon S3 admite el acceso de API protegido por MFA, una característica que puede exigir aplicar Multi-Factor Authentication (MFA) para acceder a sus recursos de Amazon S3. La autenticación multifactor proporciona un nivel de seguridad adicional que puede aplicar a su entorno de AWS. MFA es una característica de seguridad que requiere que los usuarios demuestren una posesión física de un dispositivo de MFA facilitando un código MFA válido. Para obtener más información, consulte [autenticación multifactor de AWS](https://aws.amazon.com/mfa/). Puede solicitar MFA para cualquier solicitud de acceso a sus recursos de Amazon S3. 

Para implementar el requisito de MFA, utilice la clave de condición `aws:MultiFactorAuthAge` en una política de bucket. Los usuarios de IAM pueden acceder a los recursos de Amazon S3 con credenciales temporales emitidas por AWS Security Token Service (AWS STS). Usted facilita el código de MFA al realizar la solicitud al AWS STS. 

Cuando Amazon S3 recibe una solicitud con autenticación multifactor, la clave de condición `aws:MultiFactorAuthAge` proporciona un valor numérico que indica el tiempo que transcurrió (en segundos) desde que se creó la credencial temporal. Si la credencial temporal provista en la solicitud no se creó utilizando un dispositivo de MFA, este valor de clave es nulo (no está presente). En una política de bucket, puede añadir una condición para revisar este valor, como se muestra en el siguiente ejemplo. 

Esta política de ejemplo deniega cualquier operación de Amazon S3 en la carpeta *`/taxdocuments`* del bucket `amzn-s3-demo-bucket` si la solicitud no se autentica utilizando MFA. Para obtener más información sobre MFA, consulte [Uso de autenticación multifactor (MFA) en AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa.html) en la *Guía del usuario de IAM*.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "123",
    "Statement": [
      {
        "Sid": "",
        "Effect": "Deny",
        "Principal": "*",
        "Action": "s3:*",
        "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/taxdocuments/*",
        "Condition": { "Null": { "aws:MultiFactorAuthAge": true }}
      }
    ]
 }
```

------

La condición `Null` en el bloque `Condition` se evalúa como `true` si el valor de clave de condición `aws:MultiFactorAuthAge` es nulo, lo que indica que las credenciales de seguridad temporales en la solicitud se crearon sin un dispositivo de MFA. 

La siguiente política de bucket es una extensión de la política de bucket anterior. La siguiente política incluye dos instrucciones de política. Una instrucción permite el permiso `s3:GetObject` en un bucket (`amzn-s3-demo-bucket`) para todo el mundo. Otra instrucción limita el acceso a la carpeta `amzn-s3-demo-bucket/taxdocuments` en el bucket mediante la solicitud de la MFA. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "123",
    "Statement": [
      {
        "Sid": "DenyInsecureConnections",
        "Effect": "Deny",
        "Principal": {
            "AWS": "arn:aws:iam::111122223333:root"
        },
        "Action": "s3:*",
        "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/taxdocuments/*",
        "Condition": { "Null": { "aws:MultiFactorAuthAge": true } }
      },
      {
        "Sid": "AllowGetObject",
        "Effect": "Allow",
        "Principal": {
            "AWS": "arn:aws:iam::111122223333:root"
        },
        "Action": ["s3:GetObject"],
        "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
      }
    ]
 }
```

------

Puede utilizar de forma opcional una condición numérica para limitar la duración de la validez de la clave `aws:MultiFactorAuthAge`. La duración que especifique con la clave `aws:MultiFactorAuthAge` es independiente de la duración de la credencial de seguridad temporal que se utiliza en la autenticación de la solicitud. 

Por ejemplo, la siguiente política de bucket, además de exigir la autenticación MFA, también verifica el tiempo que transcurrió desde que se creó la sesión temporal. La política deniega cualquier operación si el valor de clave `aws:MultiFactorAuthAge` indica que la sesión temporal se creó hace más de una hora (3600 segundos). 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "123",
    "Statement": [
      {
        "Sid": "",
        "Effect": "Deny",
        "Principal": "*",
        "Action": "s3:*",
        "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/taxdocuments/*",
        "Condition": {"Null": {"aws:MultiFactorAuthAge": true }}
      },
      {
        "Sid": "",
        "Effect": "Deny",
        "Principal": "*",
        "Action": "s3:*",
        "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/taxdocuments/*",
        "Condition": {"NumericGreaterThan": {"aws:MultiFactorAuthAge": 3600 }}
       },
       {
         "Sid": "",
         "Effect": "Allow",
         "Principal": "*",
         "Action": ["s3:GetObject"],
         "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
       }
    ]
 }
```

------

## Prevención de que los usuarios eliminen objetos
<a name="using-with-s3-actions-related-to-bucket-subresources"></a>

De forma predeterminada, los usuarios no tienen permisos. Sin embargo, a medida que crea políticas, puede conceder permisos a los usuarios que no quería conceder. Para evitar esas ambigüedades en los permisos, puede escribir una política de acceso más estricta y agregar una denegación explícita. 

Para impedir de forma explícita que los usuarios o las cuentas eliminen objetos, debe agregar las siguientes acciones a una política de bucket: permisos `s3:DeleteObject`, `s3:DeleteObjectVersion`, y `s3:PutLifecycleConfiguration`. Las tres acciones son necesarias porque puede eliminar objetos al llamar de forma explícita a las operaciones de la API `DELETE Object` o configurar su ciclo de vida (consulte [Administración del ciclo de vida de los objetos](object-lifecycle-mgmt.md)) para que Amazon S3 pueda eliminar los objetos cuando acabe su vida útil.

En el siguiente ejemplo de política, debe denegar explícitamente permisos `DELETE Object` al usuario `MaryMajor`. Una instrucción `Deny` explícita siempre sustituye a cualquier otro permiso concedido.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "statement1",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::123456789012:user/MaryMajor"
      },
      "Action": [
        "s3:GetObjectVersion",
        "s3:GetBucketAcl"
      ],
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket1",
	 	"arn:aws:s3:::amzn-s3-demo-bucket1/*"
      ]
    },
    {
      "Sid": "statement2",
      "Effect": "Deny",
      "Principal": {
        "AWS": "arn:aws:iam::123456789012:user/MaryMajor"
      },
      "Action": [
        "s3:DeleteObject",
        "s3:DeleteObjectVersion",
        "s3:PutLifecycleConfiguration"
      ],
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket1",
	    "arn:aws:s3:::amzn-s3-demo-bucket1/*"
      ]
    }
  ]
}
```

------

# Ejemplos de políticas de bucket que utilizan claves de condición
<a name="amazon-s3-policy-keys"></a>

Puede utilizar el lenguaje de la política de acceso para especificar condiciones al conceder permisos. Puede utilizar el elemento opcional `Condition` o el bloque de `Condition` para especificar condiciones para cuando una política está en vigor. 

Para obtener información sobre las políticas que utilizan claves de condición de Amazon S3 para operaciones de objetos y bucket, consulte los siguientes ejemplos. Para obtener más información acerca de las claves de condición, consulte [Claves de condición de políticas para Amazon S3](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-conditionkeys). Para obtener una lista completa de las acciones, claves de condición y recursos de Amazon S3 que puede especificar en las políticas, consulte [Actions, resources, and condition keys for Amazon S3](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html) en la *Referencia de autorización de servicios*.

Para obtener más información sobre los permisos para las operaciones de la API de S3 por tipos de recursos de S3, consulte [Permisos necesarios para las operaciones de la API de Amazon S3](using-with-s3-policy-actions.md).

## Ejemplos: claves de condición de Amazon S3 para operaciones con objetos
<a name="object-keys-in-amazon-s3-policies"></a>

Los siguientes ejemplos muestran cómo puede utilizar claves de condición específicas de Amazon S3 para operaciones con objetos. Para obtener una lista completa de las acciones, claves de condición y recursos de Amazon S3 que puede especificar en las políticas, consulte [Actions, resources, and condition keys for Amazon S3](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html) en la *Referencia de autorización de servicios*.

Para obtener más información sobre los permisos para las operaciones de la API de S3 por tipos de recursos de S3, consulte [Permisos necesarios para las operaciones de la API de Amazon S3](using-with-s3-policy-actions.md).

Varias de las políticas de ejemplo muestran cómo se pueden utilizar las claves de condiciones con las operaciones [PUT Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html). La operación PUT Object permite encabezados específicos para la lista de control de acceso (ACL) que puede utilizar para conceder permisos basados en la ACL. Mediante el uso de estas claves de condición, puede configurar una condición para solicitar permisos de acceso específicos cuando el usuario carga un objeto. También puede conceder permisos basados en ACL con la operación PutObjectAcl. Para obtener más información, consulte [PutObjectAcl](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectAcl.html) en la *referencia de la API de Amazon Simple Storage Service 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)](acl-overview.md).

**Topics**
+ [Ejemplo 1: Concesión de permisos `s3:PutObject` que requieren que los objetos se almacenen con cifrado del servidor](#putobject-require-sse-2)
+ [Ejemplo 2: Concesión de permisos `s3:PutObject` para copiar objetos con una restricción en el origen de la copia](#putobject-limit-copy-source-3)
+ [Ejemplo 3: Concesión de acceso a una versión específica de un objeto](#getobjectversion-limit-access-to-specific-version-3)
+ [Ejemplo 4: Concesión de permisos basados en etiquetas de objeto](#example-object-tagging-access-control)
+ [Ejemplo 5: Restricción del acceso mediante el ID de Cuenta de AWS del propietario del bucket](#example-object-resource-account)
+ [Ejemplo 6: Necesidad de una versión mínima de TLS](#example-object-tls-version)
+ [Ejemplo 7: Exclusión de determinadas entidades principales de una instrucción `Deny`](#example-exclude-principal-from-deny-statement)
+ [Ejemplo 8: exigencia a los clientes para cargar objetos de forma condicional en función de los nombres de clave de objeto o ETag](#example-conditional-writes-enforce)

### Ejemplo 1: Concesión de permisos `s3:PutObject` que requieren que los objetos se almacenen con cifrado del servidor
<a name="putobject-require-sse-2"></a>

Supongamos que la cuenta A tiene un bucket. El administrador de la cuenta desea conceder permisos para cargar objetos a Jane, usuario en la cuenta A, con la condición de que Jane siempre solicite el cifrado del servidor con claves administradas por Amazon S3 (SSE-S3). El administrador de la cuenta A puede especificar este requisito mediante la clave de condición `s3:x-amz-server-side-encryption`, tal como se muestra. El par clave-valor del siguiente bloque de `Condition` especifica la clave de condición `s3:x-amz-server-side-encryption` y SSE-S3 (`AES256`) como tipo de cifrado:

```
"Condition": {
     "StringNotEquals": {
         "s3:x-amz-server-side-encryption": "AES256"
     }}
```

Al probar este permiso mediante la AWS CLI, debe agregar el cifrado necesario mediante el parámetro `--server-side-encryption`, como se muestra en el siguiente ejemplo. Para utilizar este comando de ejemplo, sustituya `user input placeholders` por su propia información. 

```
aws s3api put-object --bucket amzn-s3-demo-bucket --key HappyFace.jpg --body c:\HappyFace.jpg --server-side-encryption "AES256" --profile AccountAadmin
```

### Ejemplo 2: Concesión de permisos `s3:PutObject` para copiar objetos con una restricción en el origen de la copia
<a name="putobject-limit-copy-source-3"></a>

En una solicitud de objetos `PUT`, cuando especifica un objeto de origen, la solicitud es una operación de copia (consulte [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectCOPY.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectCOPY.html)). Por lo tanto, el propietario del bucket puede conceder un permiso al usuario para copiar objetos con restricciones en el origen, por ejemplo:
+ Permita copiar objetos solo desde el bucket de origen especificado (por ejemplo, `amzn-s3-demo-source-bucket`).
+ Permita copiar objetos del bucket de origen especificado y solo los objetos cuyo prefijo de nombre de clave comienza como prefijo específico, como *`public/`* (por ejemplo, `amzn-s3-demo-source-bucket/public/*`).
+ Permita copiar solo un objeto específico desde el bucket de origen (por ejemplo, `amzn-s3-demo-source-bucket/example.jpg`).

La siguiente política de bucket concede a un usuario (`Dave`) el permiso `s3:PutObject`. Esta política le permite copiar solo los objetos con la condición de que la solicitud incluya el encabezado `s3:x-amz-copy-source` y el valor del encabezado especifique el prefijo de nombre de clave `/amzn-s3-demo-source-bucket/public/*`. Para utilizar esta política de ejemplo, sustituya `user input placeholders` por su propia información.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
       {
            "Sid": "cross-account permission to user in your own account",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::123456789012:user/Dave"
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-source-bucket/*"
        },
        {
            "Sid": "Deny your user permission to upload object if copy source is not /bucket/prefix",
            "Effect": "Deny",
            "Principal": {
                "AWS": "arn:aws:iam::123456789012:user/Dave"
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-source-bucket/*",
            "Condition": {
                "StringNotLike": {
                    "s3:x-amz-copy-source": "amzn-s3-demo-source-bucket/public/*"
                }
            }
        }
    ]
}
```

------

**Prueba de la política con la AWS CLI**  
Puede usar el comando AWS CLI de la `copy-object` para probar el permiso. Para especificar el origen, debe añadir el parámetro `--copy-source` y el prefijo de nombre de clave debe coincidir con el prefijo permitido en la política. Tiene que proporcionar las credenciales al usuario Dave utilizando el parámetro `--profile`. Para obtener más información sobre la configuración de la AWS CLI, consulte [Developing with Amazon S3 using the AWS CLI](https://docs.aws.amazon.com/AmazonS3/latest/API/setup-aws-cli.html) en la *Amazon S3 API Reference*.

```
aws s3api copy-object --bucket amzn-s3-demo-source-bucket --key HappyFace.jpg 
--copy-source amzn-s3-demo-source-bucket/public/PublicHappyFace1.jpg --profile AccountADave
```

**Conceder permiso para copiar solo un objeto específico**  
La política anterior utiliza la condición `StringNotLike`. Para conceder el permiso para copiar solo un objeto específico, debe cambiar la condición de `StringNotLike` a `StringNotEquals` y, a continuación, especificar la clave exacta del objeto, como se muestra en el ejemplo siguiente. Para utilizar este comando de ejemplo, sustituya `user input placeholders` por su propia información.

```
"Condition": {
       "StringNotEquals": {
           "s3:x-amz-copy-source": "amzn-s3-demo-source-bucket/public/PublicHappyFace1.jpg"
       }
}
```

### Ejemplo 3: Concesión de acceso a una versión específica de un objeto
<a name="getobjectversion-limit-access-to-specific-version-3"></a>

Supongamos que la cuenta A tiene un bucket con control de versiones habilitado. El bucket tiene varias versiones del objeto `HappyFace.jpg`. El administrador de la cuenta A desea ahora conceder al usuario `Dave` permiso para obtener solo una versión específica del objeto. Para ello, el administrador de la cuenta debe conceder al usuario `Dave` el permiso `s3:GetObjectVersion` de forma condicional, como se muestra en el siguiente ejemplo. El par clave-valor en el bloque `Condition` especifica la clave de condición `s3:VersionId`. En este caso, para recuperar el objeto del bucket habilitado para el control de versiones especificado, `Dave` tiene que saber el ID de versión exacta del objeto. Para utilizar esta política de ejemplo, sustituya `user input placeholders` por su propia información.

Para obtener más información, consulte [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) en la *Referencia de la API de Amazon Simple Storage Service*. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "statement1",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::123456789012:user/Dave"
            },
            "Action": "s3:GetObjectVersion",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/HappyFace.jpg"
        },
        {
            "Sid": "statement2",
            "Effect": "Deny",
            "Principal": {
                "AWS": "arn:aws:iam::123456789012:user/Dave"
            },
            "Action": "s3:GetObjectVersion",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/HappyFace.jpg",
            "Condition": {
                "StringNotEquals": {
                    "s3:VersionId": "AaaHbAQitwiL_h47_44lRO2DDfLlBO5e"
                }
            }
        }
    ]
}
```

------

**Prueba de la política con la AWS CLI**  
Puede probar los permisos en esta política con el comando `get-object` de la AWS CLI con el parámetro `--version-id` para identificar la versión específica del objeto a recuperar. El comando recupera la versión especificada del objeto y lo guarda en el archivo `OutputFile.jpg`.

```
aws s3api get-object --bucket amzn-s3-demo-bucket --key HappyFace.jpg OutputFile.jpg --version-id AaaHbAQitwiL_h47_44lRO2DDfLlBO5e --profile AccountADave
```

### Ejemplo 4: Concesión de permisos basados en etiquetas de objeto
<a name="example-object-tagging-access-control"></a>

Para obtener ejemplos de cómo utilizar claves de condición de etiquetado de objetos con operaciones de Amazon S3, consulte [Etiquetado y políticas de control de acceso](tagging-and-policies.md).

### Ejemplo 5: Restricción del acceso mediante el ID de Cuenta de AWS del propietario del bucket
<a name="example-object-resource-account"></a>

Puede utilizar la clave de condición `aws:ResourceAccount` o `s3:ResourceAccount` para escribir políticas de punto de conexión de IAM o nube privada virtual (VPC) que restrinjan el acceso de usuarios, roles o aplicaciones a los buckets de Amazon S3 que pertenecen a un ID de Cuenta de AWS específico. Puede usar estas claves de condición para restringir que los clientes dentro de la VPC accedan a los buckets que no posee.

Sin embargo, debe tener en cuenta que algunos servicios de AWS dependen del acceso a buckets administrados de AWS. Por lo tanto, es posible que el uso de la clave `aws:ResourceAccount` o `s3:ResourceAccount` de la política de IAM también afecte al acceso a estos recursos. Para obtener más información, consulte los siguientes recursos:
+ [Restringir el acceso a los buckets de una Cuenta de AWS específica](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html#bucket-policies-s3) en la *Guía de AWS PrivateLink*
+ [Restringir el acceso a los buckets que utiliza Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/vpc-endpoints.html#ecr-minimum-s3-perms) en la *Guía de Amazon ECR*
+ [Proporcionar el acceso necesario a Systems Manager para buckets de Amazon S3 administrados por AWS](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent-minimum-s3-permissions.html) en la *Guía de AWS Systems Manager*

Para obtener más información sobre las claves de condición `aws:ResourceAccount` y `s3:ResourceAccount` y los ejemplos que muestran cómo usarlas, consulte [Limitar el acceso a los buckets de Amazon S3 propiedad de unas Cuentas de AWS específicas](https://aws.amazon.com/blogs/storage/limit-access-to-amazon-s3-buckets-owned-by-specific-aws-accounts/) en el *blog sobre almacenamiento de AWS*.

### Ejemplo 6: Necesidad de una versión mínima de TLS
<a name="example-object-tls-version"></a>

Puede utilizar la clave de condición `s3:TlsVersion` para escribir políticas de bucket, de punto de conexión de nube privada virtual (VPCE) o de IAM que restrinjan el acceso de aplicaciones o usuarios a buckets de Amazon S3 en función de la versión de TLS que utilice el cliente. Puede utilizar esta clave de condición para escribir políticas que requieran una versión mínima de TLS. 

**nota**  
Cuando los servicios de AWS realizan llamadas a otros servicios de AWS en su nombre (llamadas de servicio a servicio), se suprime cierto contexto de autorización específico de la red, incluidos `s3:TlsVersion`, `aws:SecureTransport`, `aws:SourceIp` y `aws:VpcSourceIp`. Si la política utiliza estas claves de condición con instrucciones `Deny`, las entidades principales de servicio de AWS podrían bloquearse involuntariamente. Para permitir que los servicios de AWS funcionen correctamente a la vez que mantiene los requisitos de seguridad, excluya las entidades principales de servicio de las instrucciones `Deny`; para ello, agregue la clave de condición `aws:PrincipalIsAWSService` con un valor de `false`. Por ejemplo:  

```
{
  "Effect": "Deny",
  "Action": "s3:*",
  "Resource": "*",
  "Condition": {
    "Bool": {
      "aws:SecureTransport": "false",
      "aws:PrincipalIsAWSService": "false"
    }
  }
}
```
Esta política deniega el acceso a las operaciones de S3 cuando no se utiliza HTTPS (`aws:SecureTransport` es false), pero solo para entidades principales de servicio que no son de AWS. Esto asegura que las restricciones condicionales se aplican a todas las entidades principales excepto a las entidades principales de servicio de AWS.

**Example**  
La política de bucket de ejemplo siguiente *deniega* las solicitudes de `PutObject` de clientes que tienen una versión TLS inferior a 1.2, por ejemplo, 1.1 o 1.0. Para utilizar esta política de ejemplo, sustituya `user input placeholders` por su propia información.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:PutObject",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket1",
                "arn:aws:s3:::amzn-s3-demo-bucket1/*"
            ],
            "Condition": {
                "NumericLessThan": {
                    "s3:TlsVersion": 1.2
                }
            }
        }
    ]
}
```

**Example**  
La política de bucket de ejemplo siguiente *permite* las solicitudes de `PutObject` de clientes que tienen una versión TLS posterior a 1.1, por ejemplo, 1.2, 1.3 o posteriores:    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:PutObject",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket1",
                "arn:aws:s3:::amzn-s3-demo-bucket1/*"
            ],
            "Condition": {
                "NumericGreaterThan": {
                    "s3:TlsVersion": 1.1
                }
            }
        }
    ]
}
```

### Ejemplo 7: Exclusión de determinadas entidades principales de una instrucción `Deny`
<a name="example-exclude-principal-from-deny-statement"></a>

La siguiente política de bucket deniega el acceso `s3:GetObject` a `amzn-s3-demo-bucket`, excepto a las entidades principales con el número de cuenta *`123456789012`*. Para utilizar esta política de ejemplo, sustituya `user input placeholders` por su propia información.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyAccessFromPrincipalNotInSpecificAccount",
      "Principal": {
        "AWS": "*"
      },
      "Action": "s3:GetObject",
      "Effect": "Deny",
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket/*"
      ],
      "Condition": {
        "StringNotEquals": {
          "aws:PrincipalAccount": [
            "123456789012"
          ]
        }
      }
    }
  ]
}
```

------

### Ejemplo 8: exigencia a los clientes para cargar objetos de forma condicional en función de los nombres de clave de objeto o ETag
<a name="example-conditional-writes-enforce"></a>

Con las escrituras condicionales, puede agregar un encabezado adicional a las solicitudes `WRITE` para especificar condiciones previas a la operación de S3. Este encabezado especifica una condición que, si no se cumple, provocará un error en la operación de S3. Por ejemplo, puede evitar que se sobrescriban datos existentes al validar que no haya ningún objeto con el mismo nombre de clave en el bucket durante la carga de objetos. De forma alternativa, puede comprobar la etiqueta de entidad (ETag) de un objeto en Amazon S3 antes de escribir un objeto.

Para ver ejemplos de políticas de bucket que utilizan condiciones en una política de bucket para aplicar escrituras condicionales, consulte [Aplicación de escrituras condicionales en buckets de Amazon S3](conditional-writes-enforce.md).

## Ejemplos: claves de condición de Amazon S3 para operaciones de buckets
<a name="bucket-keys-in-amazon-s3-policies"></a>

Las políticas de ejemplo siguientes muestran cómo puede utilizar claves de condición específicas de Amazon S3 para operaciones de buckets.

**Topics**
+ [Ejemplo 1: Concesión de permiso `s3:GetObject` con una condición en una dirección IP](#AvailableKeys-iamV2)
+ [Ejemplo 2: obtener una lista de objetos en un bucket con un prefijo específico](#condition-key-bucket-ops-2)
+ [Ejemplo 3: establecer el número máximo de claves](#example-numeric-condition-operators)

### Ejemplo 1: Concesión de permiso `s3:GetObject` con una condición en una dirección IP
<a name="AvailableKeys-iamV2"></a>

Puede conceder permiso a los usuarios autenticados para usar la acción `s3:GetObject` si la solicitud se genera a partir de un intervalo específico de direcciones IP (por ejemplo, `192.0.2.*`), a menos que la dirección IP sea una que desee excluir (por ejemplo, `192.0.2.188`). En el bloque de `Condition`, `IpAddress` y `NotIpAddress` son condiciones y cada una recibe un par clave-valor para evaluación. En este ejemplo, los pares de clave-valor usan la clave general `aws:SourceIp` de AWS. Para utilizar esta política de ejemplo, sustituya `user input placeholders` por su propia información.

**nota**  
Los valores de clave `IPAddress` y `NotIpAddress` especificados en el bloque `Condition` usan la notación CIDR, como se describe en RFC 4632. Para obtener más información, consulte [http://www.rfc-editor.org/rfc/rfc4632.txt](http://www.rfc-editor.org/rfc/rfc4632.txt).

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "S3PolicyId1",
    "Statement": [
        {
            "Sid": "statement1",
            "Effect": "Allow",
            "Principal": "*",
            "Action":"s3:GetObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
            "Condition" : {
                "IpAddress" : {
                    "aws:SourceIp": "192.0.2.0/24" 
                },
                "NotIpAddress" : {
                    "aws:SourceIp": "192.0.2.188/32" 
                } 
            } 
        } 
    ]
}
```

------

También puede utilizar otras claves de condición generales de AWS en las políticas de Amazon S3. Por ejemplo, puede especificar las claves de condición `aws:SourceVpce` y `aws:SourceVpc` en las políticas de bucket para los puntos de enlace de la VPC. Para ver ejemplos específicos, consulte [Control del acceso desde puntos de enlace de la VPC con políticas de bucket](example-bucket-policies-vpc-endpoint.md).

**nota**  
Para alguna claves de condición globales de AWS, solo se admiten determinados tipos de recursos. Por lo tanto, compruebe si Amazon S3 admite la clave de condición global y el tipo de recurso que desea usar o si necesitará usar una clave de condición específica de Amazon S3 en su lugar. Para obtener una lista completa de los tipos de recursos y claves de condición admitidos para Amazon S3, consulte [Actions, resources, and condition keys for Amazon S3](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html) en la *Referencia de autorización de servicios*.  
Para obtener más información sobre los permisos para las operaciones de la API de S3 por tipos de recursos de S3, consulte [Permisos necesarios para las operaciones de la API de Amazon S3](using-with-s3-policy-actions.md).

### Ejemplo 2: obtener una lista de objetos en un bucket con un prefijo específico
<a name="condition-key-bucket-ops-2"></a>

Puede utilizar la clave de condición `s3:prefix` para limitar la respuesta de la operación de la API [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html) a nombres de clave con un prefijo específico. Si es el propietario del bucket, puede usar esta clave de condición para restringir que un usuario pueda mostrar el contenido de un prefijo específico en el bucket. Esta clave de condición `s3:prefix` resulta útil si los objetos en el bucket están organizados por prefijos de nombre de clave. 

La consola de Amazon S3 utiliza prefijos de nombre de clave para mostrar un concepto de carpeta. Solo la consola admite el concepto de carpetas; la API de Amazon S3 solo admite buckets y objetos. Por ejemplo, si tiene dos objetos con nombres de clave *`public/object1.jpg`* y *`public/object2.jpg`*, la consola muestra los objetos en la carpeta *`public`*. En la API de Amazon S3, estos son objetos con prefijos, no objetos en carpetas. Para obtener más información sobre el uso de prefijos y delimitadores para filtrar permisos de acceso, consulte [Controlar el acceso a un bucket con las políticas de usuario](walkthrough1.md). 

En el siguiente escenario, la cuenta del propietario del bucket y la cuenta principal, a la que pertenece el usuario, son las mismas. Por lo tanto, el propietario del bucket puede usar una política de bucket o una política de usuario para conceder acceso. Para obtener más información sobre otras claves de condición que puede utilizar con la operación de la API `ListObjectsV2`, consulte [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html).

**nota**  
Si el bucket tiene el control de versiones habilitado, para mostrar los objetos en el bucket, debe conceder el permiso `s3:ListBucketVersions` en las siguientes políticas, en lugar del permiso `s3:ListBucket`. El permiso `s3:ListBucketVersions` también admite la clave de condición `s3:prefix`. 

**Política de usuario**  
La siguiente política de usuario concede el permiso `s3:ListBucket` (consulte [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html)) con una instrucción `Condition` que exige que el usuario especifique un prefijo en la solicitud con un valor de `projects`. Para utilizar esta política de ejemplo, sustituya `user input placeholders` por su propia información.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"statement1",
         "Effect":"Allow",
         "Action": "s3:ListBucket",
         "Resource":"arn:aws:s3:::amzn-s3-demo-bucket",
         "Condition" : {
             "StringEquals" : {
                 "s3:prefix": "projects" 
             }
          } 
       },
      {
         "Sid":"statement2",
         "Effect":"Deny",
         "Action": "s3:ListBucket",
         "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
         "Condition" : {
             "StringNotEquals" : {
                 "s3:prefix": "projects" 
             }
          } 
       }         
    ]
}
```

------

La instrucción `Condition` restringe al usuario a mostrar solo las claves de objeto que tengan el prefijo `projects`. La instrucción `Deny` explícita agregada impide que el usuario muestre las claves con cualquier otro prefijo, independientemente de los demás permisos que tenga el usuario. Por ejemplo, es posible que el usuario pueda obtener el permiso para crear una lista de claves de objetos sin ninguna restricción mediante actualizaciones de políticas de usuario anteriores o mediante una política de bucket. Como las instrucciones `Deny` explícitas siempre invalidan las instrucciones `Allow`, si el usuario intenta mostrar claves distintas de las que tienen el prefijo `projects`, se deniega la solicitud. 

**Política de bucket**  
Si agrega el elemento `Principal` a la política de usuario anterior, que identifica al usuario, tendrá una política de bucket, como se muestra en el siguiente ejemplo. Para utilizar esta política de ejemplo, sustituya `user input placeholders` por su propia información.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"statement1",
         "Effect":"Allow",
         "Principal": {
            "AWS": "arn:aws:iam::123456789012:user/bucket-owner"
         },  
         "Action":  "s3:ListBucket",
         "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
         "Condition" : {
             "StringEquals" : {
                 "s3:prefix": "projects" 
             }
          } 
       },
      {
         "Sid":"statement2",
         "Effect":"Deny",
         "Principal": {
            "AWS": "arn:aws:iam::123456789012:user/bucket-owner"
         },  
         "Action": "s3:ListBucket",
         "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
         "Condition" : {
             "StringNotEquals" : {
                 "s3:prefix": "projects"  
             }
          } 
       }         
    ]
}
```

------

**Prueba de la política con la AWS CLI**  
Puede usar el siguiente comando `list-object` de la AWS CLI para probar la política. En el comando, usa el parámetro `--profile` para proporcionar las credenciales de usuario. Para obtener más información sobre la configuración y el uso de la AWS CLI, consulte [Developing with Amazon S3 using the AWS CLI](https://docs.aws.amazon.com/AmazonS3/latest/API/setup-aws-cli.html) en la *Amazon S3 API Reference*.

```
aws s3api list-objects --bucket amzn-s3-demo-bucket --prefix projects --profile AccountA
```

### Ejemplo 3: establecer el número máximo de claves
<a name="example-numeric-condition-operators"></a>

Puede usar la clave de condición `s3:max-keys` para establecer el número máximo de claves que un solicitante puede devolver en una solicitud de [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html) o [https://docs.aws.amazon.com//AmazonS3/latest/API/API_ListObjectVersions.html](https://docs.aws.amazon.com//AmazonS3/latest/API/API_ListObjectVersions.html). De forma predeterminada, estas operaciones de la API devuelven hasta 1000 claves. Para obtener una lista de los operadores de condición numéricos que se pueden utilizar con `s3:max-keys` y los ejemplos adjuntos, consulte [Operadores de condición numérica](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_Numeric) en la *guía del usuario de IAM*.

# Políticas basadas en identidad para Amazon S3
<a name="security_iam_id-based-policy-examples"></a>

De forma predeterminada, los usuarios y roles no tienen permiso para crear ni modificar los recursos de Amazon S3. Un administrador de IAM puede crear políticas de IAM para conceder permisos a los usuarios para realizar acciones en los recursos que necesitan.

Para obtener información acerca de cómo crear una política basada en identidades de IAM mediante el uso de estos documentos de políticas JSON de ejemplo, consulte [Creación de políticas de IAM (consola)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html) en la *Guía del usuario de IAM*.

A fin de obtener más información sobre las acciones y los tipos de recursos definidos por Amazon S3, incluido el formato de los ARN para cada tipo de recurso, consulte [Acciones, recursos y claves de condición para Amazon S3](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html) en la *Referencia de autorizaciones de servicio*.

Para obtener más información sobre los permisos para las operaciones de la API de S3 por tipos de recursos de S3, consulte [Permisos necesarios para las operaciones de la API de Amazon S3](using-with-s3-policy-actions.md).

**Topics**
+ [Prácticas recomendadas sobre las políticas](#security_iam_service-with-iam-policy-best-practices)
+ [Controlar el acceso a un bucket con las políticas de usuario](walkthrough1.md)
+ [Ejemplos de políticas basadas en identidad para Amazon S3](example-policies-s3.md)

## Prácticas recomendadas sobre las políticas
<a name="security_iam_service-with-iam-policy-best-practices"></a>

Las políticas basadas en identidad determinan si alguien puede crear, acceder o eliminar los recursos de Amazon S3 de la cuenta. Estas acciones pueden generar costos adicionales para su Cuenta de AWS. Siga estas directrices y recomendaciones al crear o editar políticas basadas en identidades:
+ **Comience a utilizar las políticas administradas de AWS y avance hacia permisos de privilegios mínimos**. Para empezar a conceder permisos a los usuarios y cargas de trabajo, utilice las *políticas administradas de AWS* que otorgan permisos para muchos casos de uso comunes. Están disponibles en su Cuenta de AWS. Se recomienda definir políticas administradas por el cliente de AWS específicas para sus casos de uso a fin de reducir aún más los permisos. Con el fin de obtener más información, consulte las [políticas administradas por AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) o las [políticas administradas por AWS para funciones de tarea](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) en la *Guía de usuario de IAM*.
+ **Aplique permisos de privilegio mínimo**: cuando establezca permisos con políticas de IAM, conceda solo los permisos necesarios para realizar una tarea. Para ello, debe definir las acciones que se pueden llevar a cabo en determinados recursos en condiciones específicas, también conocidos como *permisos de privilegios mínimos*. Con el fin de obtener más información sobre el uso de IAM para aplicar permisos, consulte [Políticas y permisos en IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) en la *Guía del usuario de IAM*.
+ **Utilice condiciones en las políticas de IAM para restringir aún más el acceso**: puede agregar una condición a sus políticas para limitar el acceso a las acciones y los recursos. Por ejemplo, puede escribir una condición de políticas para especificar que todas las solicitudes deben enviarse utilizando SSL. También puede usar condiciones para conceder acceso a acciones de servicios si se emplean a través de un Servicio de AWS determinado como, por ejemplo, CloudFormation. Para obtener más información, consulte [Elementos de la política de JSON de IAM: Condición](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) en la *Guía del usuario de IAM*.
+ **Utiliza el analizador de acceso de IAM para validar las políticas de IAM con el fin de garantizar la seguridad y funcionalidad de los permisos**: el analizador de acceso de IAM valida políticas nuevas y existentes para que respeten el lenguaje (JSON) de las políticas de IAM y las prácticas recomendadas de IAM. El analizador de acceso de IAM proporciona más de 100 verificaciones de políticas y recomendaciones procesables para ayudar a crear políticas seguras y funcionales. Para más información, consulte [Validación de políticas con el Analizador de acceso de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) en la *Guía del usuario de IAM*.
+ **Solicite la autenticación multifactor (MFA)**: si se encuentra en una situación en la que necesite usuarios raíz o de IAM en su Cuenta de AWS, active la MFA para obtener una mayor seguridad. Para exigir la MFA cuando se invoquen las operaciones de la API, añada condiciones de MFA a sus políticas. Para más información, consulte [Acceso seguro a la API con MFA](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html) en la *Guía del usuario de IAM*.

Para obtener más información sobre las prácticas recomendadas de IAM, consulte [Prácticas recomendadas de seguridad en IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) en la *Guía del usuario de IAM*.

# Controlar el acceso a un bucket con las políticas de usuario
<a name="walkthrough1"></a>

En este tutorial se explica cómo funcionan los permisos del usuario con Amazon S3. En este ejemplo, puede crear un bucket con carpetas. A continuación, cree usuarios de IAM AWS Identity and Access Management en la Cuenta de AWS y conceda a estos usuarios permisos progresivos en el bucket de Amazon S3 y sus carpetas. 

**Topics**
+ [Conceptos básicos de buckets y carpetas](#walkthrough-background1)
+ [Resumen del tutorial](#walkthrough-scenario)
+ [Prepararse para el tutorial](#walkthrough-what-you-need)
+ [Paso 1: Crear un bucket](#walkthrough1-create-bucket)
+ [Paso 2: Crear usuarios y un grupo de IAM](#walkthrough1-add-users)
+ [Paso 3: Comprobar que los usuarios de IAM no tengan permisos](#walkthrough1-verify-no-user-permissions)
+ [Paso 4: Conceder permisos en el nivel de grupo](#walkthrough-group-policy)
+ [Paso 5: Conceder permisos específicos al usuario Alice de IAM](#walkthrough-grant-user1-permissions)
+ [Paso 6: Conceder permisos específicos al usuario Bob de IAM](#walkthrough1-grant-permissions-step5)
+ [Paso 7: Proteger la carpeta privada](#walkthrough-secure-private-folder-explicit-deny)
+ [Paso 8: Limpiar](#walkthrough-cleanup)
+ [Recursos relacionados](#RelatedResources-walkthrough1)

## Conceptos básicos de buckets y carpetas
<a name="walkthrough-background1"></a>

El modelo de datos de Amazon S3 es una estructura plana: usted crea un bucket y el bucket almacena objetos. No existe una jerarquía entre los subbuckets o las subcarpetas, pero puede emular una jerarquía de carpetas. Las herramientas, como, por ejemplo, la consola de Amazon S3, pueden mostrar una vista de estas carpetas y subcarpetas lógicas del bucket.

La consola muestra que un bucket denominado `companybucket` tiene tres carpetas: `Private`, `Development` y `Finance`, y un objeto, `s3-dg.pdf`. La consola utiliza los nombres de objeto (claves) para crear una jerarquía lógica con carpetas y subcarpetas. Considere los siguientes ejemplos:
+ Al crear la carpeta `Development`, la consola crea un objeto con la clave `Development/`. Tenga en cuenta el delimitador final (`/`).
+ Al cargar un objeto denominado `Projects1.xls` en la carpeta `Development`, la consola carga el objeto y le asigna la clave `Development/Projects1.xls`. 

  En la clave, `Development` es el [prefijo](https://docs.aws.amazon.com/general/latest/gr/glos-chap.html#keyprefix) y `/` es el delimitador. La API de Amazon S3 admite prefijos y delimitadores en sus operaciones. Por ejemplo, puede obtener una lista de todos los objetos de un bucket con un prefijo y delimitador específicos. En la consola, al abrir la carpeta `Development`, la consola muestra los objetos de esa carpeta. En el siguiente ejemplo, la carpeta `Development` contiene un objeto. 

  Cuando la consola muestra la carpeta `Development` del bucket `companybucket`, envía una solicitud a Amazon S3 en la que especifica el prefijo `Development` y el delimitador `/`. La respuesta de la consola se parece a una lista de carpetas del sistema de archivos de su equipo. En el ejemplo anterior se muestra que el bucket `companybucket` tiene un objeto con la clave `Development/Projects1.xls`.

La consola utiliza claves de objeto para inferir una jerarquía lógica. Amazon S3 no tiene una jerarquía física. Amazon S3 solo tiene buckets que contienen objetos en una estructura de archivos plana. Cuando crea objetos con la API de Amazon S3, puede utilizar las claves del objeto que implican una jerarquía lógica. Al crear una jerarquía lógica de objetos, puede administrar el acceso a carpetas individuales, tal y como se explica en este tutorial.

Antes de comenzar, asegúrese de estar familiarizado con el concepto del contenido del bucket en el *nivel raíz*. Supongamos que el bucket `companybucket` tiene los siguientes objetos:
+ `Private/privDoc1.txt`
+ `Private/privDoc2.zip`
+ `Development/project1.xls`
+ `Development/project2.xls`
+ `Finance/Tax2011/document1.pdf`
+ `Finance/Tax2011/document2.pdf`
+ `s3-dg.pdf`

Estas claves de objeto crean una jerarquía lógica con `Private`, `Development` y `Finance` como carpetas en el nivel raíz y `s3-dg.pdf` como un objeto en el nivel raíz. Cuando elige el nombre del bucket en la consola de Amazon S3, los elementos en el nivel raíz aparecen. La consola muestra los prefijos de nivel principal (`Private/`, `Development/` y `Finance/`) como carpetas en el nivel raíz. La clave del objeto `s3-dg.pdf` no tiene prefijo y, por lo tanto, aparece como un elemento en el nivel raíz.



## Resumen del tutorial
<a name="walkthrough-scenario"></a>

En este tutorial, creará un bucket con tres carpetas: (`Private`, `Development` y `Finance`). 

Tiene dos usuarios, Alice y Bob. Quiere que Alice solo tenga acceso a la carpeta `Development` y que Bob solo tenga acceso a la carpeta `Finance`. Desea mantener privado el contenido de la carpeta `Private`. En el tutorial, para administrar el acceso, cree los usuarios de IAM (el ejemplo utiliza los nombres de usuario Alice y Bob) y conceda los permisos necesarios. 

IAM también permite crear grupos de usuarios y conceder permisos a nivel grupal para que se apliquen a todos los usuarios del grupo. Esto lo ayuda a administrar mejor los permisos. Para este ejercicio, Alice y Bob deben tener algunos permisos en común. Por lo tanto, también debe crear un grupo denominado `Consultants` y, a continuación, añadir a Alice y Bob al grupo. En primer lugar, para conceder los permisos, asocie una política de grupo al grupo. A continuación, para añadir los permisos específicos del usuario, asocie políticas a usuarios específicos.

**nota**  
En el tutorial, se utiliza `companybucket` como el nombre del bucket, Alice y Bob como los usuarios de IAM y `Consultants` como el nombre del grupo. Dado que Amazon S3 requiere que los nombres de los buckets sean exclusivos a nivel global, debe crear un nombre de bucket para reemplazar el existente.

## Prepararse para el tutorial
<a name="walkthrough-what-you-need"></a>

 En este ejemplo, utilizará las credenciales de su Cuenta de AWS para crear usuarios de IAM. Al principio, estos usuarios no tienen permisos. Conceda permisos a estos usuarios de forma gradual para realizar acciones específicas de Amazon S3. Para probar estos permisos, inicie sesión en la consola con las credenciales de cada usuario. A medida que concede los permisos de forma progresiva como propietario de la Cuenta de AWS y prueba los permisos como usuario de IAM, tendrá que iniciar y cerrar sesión con diferentes credenciales en cada ocasión. Puede realizar estas pruebas con un navegador, pero el proceso se agilizará si utiliza dos navegadores distintos. Utilice un navegador para conectarse a la Consola de administración de AWS con las credenciales de la Cuenta de AWS y otro navegador para conectarse con las credenciales del usuario de IAM. 

 Para iniciar sesión en la Consola de administración de AWS con las credenciales de la Cuenta de AWS, vaya a [https://console.aws.amazon.com/](https://console.aws.amazon.com/).  Un usuario de IAM no puede iniciar sesión con el mismo enlace. Un usuario de IAM debe utilizar una página de inicio de sesión activada para IAM. Como propietario de la cuenta, puede proporcionar este enlace a los usuarios. 

Para obtener más información acerca de IAM, consulte [Inicio de sesión en la Consola de administración de AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/console.html) en la *Guía del usuario de IAM*.

### Para proporcionar un enlace de inicio de sesión para usuarios de IAM
<a name="walkthrough-sign-in-user-credentials"></a>

1. Inicie sesión en la Consola de administración de AWS y abra la consola de IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. En el panel de **Navigation (Navegación)**, elija **IAM Dashboard** (Panel de IAM).

1. Anote la URL en **IAM users sign in link: (Enlace de inicio de sesión de usuarios de IAM:)**. Proporcionará este enlace a los usuarios de IAM para que inicien sesión en la consola con el nombre de usuario y contraseña de IAM.

## Paso 1: Crear un bucket
<a name="walkthrough1-create-bucket"></a>

En este paso, inicie sesión en la consola de Amazon S3 con las credenciales de la Cuenta de AWS, cree un bucket, agregue las carpetas al bucket y cargue uno o dos documentos de ejemplo en cada carpeta. 

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Cree un bucket. 

   Para obtener instrucciones paso a paso, consulte [Creación de un bucket de uso general](create-bucket-overview.md).

1. Cargue un documento en el bucket.

   Para este ejercicio, supongamos que tiene el documento `s3-dg.pdf` en el nivel raíz de este bucket. Si carga un documento diferente, sustituya el nombre de archivo por `s3-dg.pdf`.

1. Añada las tres carpetas denominadas `Private`, `Finance` y `Development` al bucket.

   Para obtener instrucciones paso a paso para crear una carpeta, consulte [Organización de objetos en la consola de Amazon S3 con carpetas](using-folders.md)> en la *Guía del usuario de la consola de Amazon Simple Storage Service*.

1. Cargue uno o dos documentos en cada carpeta. 

   Para este ejercicio, supongamos que tiene cargado un par de documentos en cada carpeta, lo que hace que el bucket tenga objetos con las siguientes claves:
   + `Private/privDoc1.txt`
   + `Private/privDoc2.zip`
   + `Development/project1.xls`
   + `Development/project2.xls`
   + `Finance/Tax2011/document1.pdf`
   + `Finance/Tax2011/document2.pdf`
   + `s3-dg.pdf`

   

   Para obtener instrucciones paso a paso, consulte [Carga de objetos](upload-objects.md). 

## Paso 2: Crear usuarios y un grupo de IAM
<a name="walkthrough1-add-users"></a>

Ahora, utilice la [consola de IAM](https://console.aws.amazon.com/iam/) para agregar dos usuarios de IAM, Alice y Bob, a su Cuenta de AWS. Para obtener instrucciones paso a paso, consulte [Creación de un usuario de IAM en su Cuenta de AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html#id_users_create_console) en la *Guía del usuario de IAM*. 

Cree también un grupo administrativo denominado `Consultants`. A continuación, agregue los usuarios al grupo. Para obtener instrucciones paso a paso, consulte [Creación de un grupo de usuarios de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups_create.html). 

**aviso**  
Cuando añade los usuarios y un grupo, no debe asociar ninguna política que conceda permisos a estos usuarios. Al principio, estos usuarios no tienen ningún permiso. En las siguientes secciones se explica cómo conceder los permisos de forma gradual. Primero debe asegurarse de haber asignado contraseñas a estos usuarios de IAM. Utilice estas credenciales de usuario para probar las acciones de Amazon S3 y comprobar que los permisos funcionen de la forma esperada.

Para obtener instrucciones paso a paso sobre cómo crear un nuevo usuario de IAM, consulte [Creación de un usuario de IAM en la Cuenta de AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html) en la *Guía del usuario de IAM*. Cuando cree los usuarios para esta explicación, seleccione **Acceso a la Consola de administración de AWS** y desmarque [Acceso programático](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys).

Para obtener instrucciones paso a paso acerca de cómo crear un grupo administrativo, consulte [Creación del primer grupo y usuario administrador de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_create-admin-group.html) en la *guía del usuario de IAM*.



## Paso 3: Comprobar que los usuarios de IAM no tengan permisos
<a name="walkthrough1-verify-no-user-permissions"></a>

Si utiliza dos navegadores, ahora puede utilizar el segundo navegador para iniciar sesión en la consola con una de las credenciales de usuario de IAM.

1. Con el enlace de inicio de sesión del usuario de IAM (consulte [Para proporcionar un enlace de inicio de sesión para usuarios de IAM](#walkthrough-sign-in-user-credentials)), inicie sesión en la Consola de administración de AWS con cualquiera de las credenciales de usuario de IAM.

1. Abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3](https://console.aws.amazon.com/s3/).

    Verifiq‎ue el mensaje de la consola en el que se que indica que el acceso está denegado. 

Ahora, puede comenzar a conceder permisos de forma gradual a los usuarios. En primer lugar, asocie una política de grupo que conceda los permisos que ambos usuarios deben tener. 

## Paso 4: Conceder permisos en el nivel de grupo
<a name="walkthrough-group-policy"></a>

Quiere que los usuarios puedan realizar las siguientes acciones:
+ Mostrar todos los buckets que pertenecen a la cuenta principal. Para ello, Bob y Alice deben tener permiso para ejecutar la acción `s3:ListAllMyBuckets`.
+ Mostrar los elementos, las carpetas y los objetos del bucket `companybucket` en el nivel raíz. Para ello, Bob y Alice deben tener permiso para ejecutar la acción `s3:ListBucket` en el bucket `companybucket`.

En primer lugar, cree una política que conceda estos permisos y, a continuación, asóciela al grupo `Consultants`. 

### Paso 4.1: Conceder permiso para mostrar todos los buckets
<a name="walkthrough1-grant-permissions-step1"></a>

En este paso, creará una política administrada que conceda a los usuarios los permisos mínimos para que puedan mostrar todos los buckets que pertenecen a la cuenta principal. A continuación, asociará la política al grupo `Consultants`. Cuando adjunta la política administrada a un usuario o grupo, permite al usuario o grupo obtener una lista de buckets que pertenecen a la principal Cuenta de AWS.

1. Inicie sesión en la Consola de administración de AWS y abra la consola de IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).
**nota**  
Dado que concederá permisos al usuario, inicie sesión con las credenciales de su Cuenta de AWS, no como usuario de IAM.

1. Cree la política administrada.

   1. En el panel de navegación de la izquierda, elija **Políticas** y, a continuación, seleccione **Crear política**.

   1. Seleccione la pestaña **JSON**.

   1. Copie la siguiente política de acceso y péguela en el campo de texto de la política.

------
#### [ JSON ]

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Sid": "AllowGroupToSeeBucketListInTheConsole",
            "Action": ["s3:ListAllMyBuckets"],
            "Effect": "Allow",
            "Resource": ["arn:aws:s3:::*"]
          }
        ]
      }
      ```

------

      Una política es un documento JSON. En el documento, `Statement` es una matriz de objetos, cada uno describe un permiso con una recopilación de pares nombre-valor. La política anterior describe un permiso específico. El elemento `Action` especifica el tipo de acceso. En la política, `s3:ListAllMyBuckets` es una acción predeterminada de Amazon S3. Esta acción abarca la operación GET Service de Amazon S3, que devuelve una lista de todos los buckets que pertenecen al remitente autenticado. El valor del elemento `Effect` determina si se concede o deniega un permiso específico.

   1. Elija **Review Policy (Revisar la política)**. En la página siguiente, introduzca `AllowGroupToSeeBucketListInTheConsole` en el campo **Name (Nombre)** y, a continuación, seleccione **Create policy (Crear política)**.
**nota**  
La entrada **Summary (Resumen)** muestra un mensaje que indica que la política no concede ningún permiso. Para este tutorial, puede hacer caso omiso de este mensaje.

1. Asocie la política administrada `AllowGroupToSeeBucketListInTheConsole` que creó para el grupo `Consultants`.

   Para obtener instrucciones paso a paso acerca de cómo asociar una política administrada, consulte [Agregación y eliminación de permisos de identidad de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html#attach-managed-policy-console) en la *Guía del usuario de IAM*. 

   Asocie los documentos de la política a los usuarios y grupos de IAM en la consola de IAM. Asocie la política al grupo porque quiere que ambos usuarios puedan mostrar los buckets. 

1. Pruebe el permiso.

   1. Con el enlace de inicio de sesión del usuario de IAM (consulte [Para proporcionar un enlace de inicio de sesión para usuarios de IAM](#walkthrough-sign-in-user-credentials)), inicie sesión en la consola con cualquiera de las credenciales del usuario de IAM.

   1. Abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3](https://console.aws.amazon.com/s3/).

      Ahora, la consola debería mostrar todos los buckets pero no los objetos que ellos contienen.

### Paso 4.2: Permitir que los usuarios puedan mostrar el contenido en el nivel raíz de un bucket
<a name="walkthrough1-grant-permissions-step2"></a>

A continuación, permita a todos los usuarios del grupo `Consultants` mostrar los elementos del bucket `companybucket` en el nivel raíz. Cuando un usuario elija el bucket de la empresa en la consola de Amazon S3, podrá ver los elementos del bucket en el nivel raíz.

**nota**  
En este ejemplo se utiliza `companybucket` a título ilustrativo. Debe utilizar el nombre del bucket que creó.

Para comprender qué solicitud envía la consola a Amazon S3 cuando elige el nombre de un bucket, la respuesta que devuelve Amazon S3 y la forma en que la consola interpreta la respuesta, examine el flujo de forma más detenida.

Al elegir el nombre de un bucket, la consola envía la solicitud [GET Bucket (List Objects)](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGET.html) a Amazon S3. Esta solicitud incluye los siguientes parámetros:
+ El parámetro `prefix` con una cadena vacía como valor. 
+ El parámetro `delimiter` con `/` como valor. 

A continuación, se muestra un ejemplo de solicitud.

```
GET ?prefix=&delimiter=/ HTTP/1.1 
Host: companybucket.s3.amazonaws.com
Date: Wed, 01 Aug  2012 12:00:00 GMT
Authorization: AWS AKIAIOSFODNN7EXAMPLE:xQE0diMbLRepdf3YB+FIEXAMPLE=
```

Amazon S3 devuelve una respuesta que incluye el siguiente elemento `<ListBucketResult/>`:

```
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <Name>companybucket</Name>
  <Prefix></Prefix>
  <Delimiter>/</Delimiter>
   ...
  <Contents>
    <Key>s3-dg.pdf</Key>
    ...
  </Contents>
  <CommonPrefixes>
    <Prefix>Development/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>Finance/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>Private/</Prefix>
  </CommonPrefixes>
</ListBucketResult>
```

La clave del objeto `s3-dg.pdf` no contiene el delimitador `/` y Amazon S3 devuelve la clave en el elemento `<Contents>`. Sin embargo, todas las demás claves de nuestro bucket de ejemplo contienen el delimitador `/`. Amazon S3 agrupa estas claves y devuelve un elemento `<CommonPrefixes>` para cada uno de los valores de prefijo diferentes `Development/`, `Finance/` y `Private/`, que es una subcadena desde el comienzo de estas claves hasta la primera instancia del delimitador `/` especificado. 

La consola interpreta este resultado y muestra los elementos en el nivel raíz como tres carpetas y una clave de objeto. 

Si Bob o Alice abren la carpeta **Development (Desarrollo)**, la consola envía la solicitud [GET Bucket (List Objects)](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGET.html) a Amazon S3 con los parámetros `prefix` y `delimiter` establecidos en los siguientes valores:
+ El parámetro `prefix` con el valor `Development/`.
+ El parámetro `delimiter` con el valor “`/`”. 

Como respuesta, Amazon S3 devuelve las claves de objeto que comienzan con el prefijo especificado. 

```
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <Name>companybucket</Name>
  <Prefix>Development</Prefix>
  <Delimiter>/</Delimiter>
   ...
  <Contents>
    <Key>Project1.xls</Key>
    ...
  </Contents>
  <Contents>
    <Key>Project2.xls</Key>
    ...
  </Contents> 
</ListBucketResult>
```

La consola muestra las claves de objeto.

Ahora, vuelva a conceder permiso a los usuarios para mostrar los elementos del bucket en el nivel raíz. Para mostrar el contenido del bucket, los usuarios necesitan permiso para ejecutar la acción `s3:ListBucket`, tal como se muestra en la siguiente instrucción de política. Para asegurarse de que vean solo el contenido en el nivel raíz, añada una condición en la que los usuarios deben especificar un parámetro `prefix` vacío en la solicitud; es decir, no pueden hacer doble clic en ninguna de las carpetas en el nivel raíz. Por último, añada una condición para solicitar acceso de tipo carpeta al pedir que las solicitudes de usuario incluyan el parámetro `delimiter` con el valor “`/`”. 

```
{
  "Sid": "AllowRootLevelListingOfCompanyBucket",
  "Action": ["s3:ListBucket"],
  "Effect": "Allow",
  "Resource": ["arn:aws:s3:::companybucket"],
  "Condition":{ 
         "StringEquals":{
             "s3:prefix":[""], "s3:delimiter":["/"]
                        }
              }
}
```

Al elegir un bucket de la consola de Amazon S3, la consola envía primero la solicitud [GET Bucket location](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETlocation.html) para buscar la Región de AWS donde se encuentra el bucket. A continuación, la consola utiliza el punto de conexión específico de la región del bucket para enviar la solicitud [GET Bucket (List Objects)](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGET.html). Como resultado, si los usuarios utilizan la consola, debe concederles permiso para ejecutar la acción `s3:GetBucketLocation`, tal como se muestra en la siguiente instrucción de política.

```
{
   "Sid": "RequiredByS3Console",
   "Action": ["s3:GetBucketLocation"],
   "Effect": "Allow",
   "Resource": ["arn:aws:s3:::*"]
}
```

**Para permitir a los usuarios mostrar el contenido del bucket en el nivel raíz**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

   Utilice las credenciales de su Cuenta de AWS, no las de usuario de IAM, para iniciar sesión en la consola.

1. Sustituya la política administrada existente `AllowGroupToSeeBucketListInTheConsole` asociada al grupo `Consultants` por la siguiente política, que también permite la acción `s3:ListBucket`. Recuerde sustituir *`companybucket`* en la política `Resource` por el nombre del bucket. 

   Para obtener instrucciones paso a paso, consulte [Edición de políticas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-edit.html) en la *Guía de usuario de IAM*. Al seguir las instrucciones paso a paso, asegúrese de seguir las indicaciones para aplicar los cambios a todas las entidades principales a las que la política está asociada. 

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	                  
     "Statement": [
        {
          "Sid": "AllowGroupToSeeBucketListAndAlsoAllowGetBucketLocationRequiredForListBucket",
          "Action": [ "s3:ListAllMyBuckets", "s3:GetBucketLocation" ],
          "Effect": "Allow",
          "Resource": [ "arn:aws:s3:::*"  ]
        },
        {
          "Sid": "AllowRootLevelListingOfCompanyBucket",
          "Action": ["s3:ListBucket"],
          "Effect": "Allow",
          "Resource": ["arn:aws:s3:::companybucket"],
          "Condition":{ 
                "StringEquals":{
                       "s3:prefix":[""], "s3:delimiter":["/"]
                              }
                      }
        }
     ] 
   }
   ```

------

1. Pruebe los permisos actualizados.

   1. Con el enlace de inicio de sesión del usuario de IAM (consulte [Para proporcionar un enlace de inicio de sesión para usuarios de IAM](#walkthrough-sign-in-user-credentials)), inicie sesión en la Consola de administración de AWS. 

      Abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3](https://console.aws.amazon.com/s3/).

   1. Elija el bucket que creó y la consola mostrará los elementos del bucket en el nivel raíz. Si elige cualquiera de las carpetas del bucket, no podrá ver el contenido de la carpeta, ya que aún no ha concedido esos permisos.

Esta prueba se realiza correctamente cuando los usuarios utilizan la consola de Amazon S3. Cuando elija un bucket en la consola, la implementación de la consola envía una solicitud que incluye el parámetro `prefix`con una cadena vacía como valor y el parámetro `delimiter` con “`/`” como valor.

### Paso 4.3: Resumen de la política de grupo
<a name="walkthrough-group-policy-summary"></a>

El resultado final de la política de grupo que añadió es conceder a los usuarios de IAM, Alice y Bob, los siguientes permisos mínimos:
+ Mostrar todos los buckets que pertenecen a la cuenta principal.
+ Ver los elementos del bucket `companybucket` en el nivel raíz. 

Sin embargo, los usuarios aún no pueden hacer demasiado. A continuación, conceda permisos específicos del usuario de la siguiente manera:
+ Permita a Alice obtener y colocar objetos en la carpeta `Development`.
+ Permita a Bob obtener y colocar objetos en la carpeta `Finance`.

Para permisos específicos del usuario, asocie una política al usuario específico, no al grupo. En la siguiente sección, conceda permiso a Alice para trabajar en la carpeta `Development`. Puede repetir los pasos para conceder un permiso similar a Bob para trabajar en la carpeta `Finance`.

## Paso 5: Conceder permisos específicos al usuario Alice de IAM
<a name="walkthrough-grant-user1-permissions"></a>

Ahora debe conceder permisos adicionales a Alice para que pueda ver el contenido de la carpeta `Development` y obtener y colocar objetos en esa carpeta.

### Paso 5.1: Conceder permiso al usuario Alice de IAM para mostrar el contenido de la carpeta Development (Desarrollo)
<a name="walkthrough-grant-user1-permissions-listbucket"></a>

Para que Alice pueda mostrar el contenido de la carpeta `Development`, debe aplicar una política al usuario Alice que le conceda permiso para ejecutar la acción `s3:ListBucket` en el bucket `companybucket`, siempre que la solicitud incluya el prefijo `Development/`. Utilice una política insertada, ya que quiere que esta política se aplique únicamente al usuario Alice. Para obtener más información sobre las políticas insertadas, consulte [Políticas administradas e insertadas](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html) en la *Guía del usuario de IAM*.

1. Inicie sesión en la Consola de administración de AWS y abra la consola de IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

   Utilice las credenciales de su Cuenta de AWS, no las de usuario de IAM, para iniciar sesión en la consola.

1. Cree una política insertada para conceder permiso al usuario Alice para mostrar el contenido de la carpeta `Development`.

   1. En el panel de navegación de la izquierda, elija **Users (Usuarios)**.

   1. Elija el nombre de usuario **Alice**.

   1. En la página de detalles del usuario, elija la pestaña **Permissions (Permisos)** y, a continuación, seleccione **Add inline policy (Añadir política insertada)**.

   1. Seleccione la pestaña **JSON**.

   1. Copie la siguiente política y péguela en el campo de texto de la política.

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	   
          "Statement": [
          {
            "Sid": "AllowListBucketIfSpecificPrefixIsIncludedInRequest",
            "Action": ["s3:ListBucket"],
            "Effect": "Allow",
            "Resource": ["arn:aws:s3:::companybucket"],
            "Condition": { "StringLike": {"s3:prefix": ["Development/*"] }
             }
          }
        ]
      }
      ```

------

   1. Elija **Review Policy (Revisar la política)**. En la página siguiente, introduzca un nombre en el campo **Name (Nombre)** y, a continuación, elija **Create policy (Crear política)**.

1. Pruebe el cambio en los permisos de Alice:

   1. Con el enlace de inicio de sesión del usuario de IAM (consulte [Para proporcionar un enlace de inicio de sesión para usuarios de IAM](#walkthrough-sign-in-user-credentials)), inicie sesión en la Consola de administración de AWS. 

   1. Abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3](https://console.aws.amazon.com/s3/).

   1. En la consola de Amazon S3, compruebe que Alice pueda ver la lista de objetos en la carpeta `Development/` del bucket. 

      Cuando el usuario selecciona la carpeta `/Development` para ver la lista de objetos que contiene, la consola de Amazon S3 envía la solicitud `ListObjects` a Amazon S3 con el prefijo `/Development`. Debido a que se le ha concedido permiso al usuario para ver la lista de objetos con el prefijo `Development` y el delimitador `/`, Amazon S3 devuelve la lista de objetos con el prefijo de clave `Development/` y la consola muestra la lista.

### Paso 5.2: Conceder permisos al usuario Alice de IAM para obtener y colocar objetos en la carpeta Development (Desarrollo)
<a name="walkthrough-grant-user1-permissions-get-put-object"></a>

Para que Alice pueda obtener y colocar objetos en la carpeta `Development`, necesitará permiso para ejecutar las acciones `s3:GetObject` y `s3:PutObject`. Las siguientes instrucciones de política conceden estos permisos, siempre que la solicitud incluya el parámetro `prefix` con un valor de `Development/`.

```
{
    "Sid":"AllowUserToReadWriteObjectData",
    "Action":["s3:GetObject", "s3:PutObject"],
    "Effect":"Allow",
    "Resource":["arn:aws:s3:::companybucket/Development/*"]
 }
```



1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

   Utilice las credenciales de su Cuenta de AWS, no las de usuario de IAM, para iniciar sesión en la consola.

1. Edite la política insertada que creó en el paso anterior. 

   1. En el panel de navegación de la izquierda, elija **Usuarios**.

   1. Elija el nombre de usuario Alice.

   1. En la página de detalles del usuario, elija la pestaña **Permisos** y expanda la sección **Políticas insertadas**.

   1. Seleccione **Editar política** junto al nombre de la política que creó en el paso anterior.

   1. Copie la siguiente política y péguela en el campo de texto de la política para sustituir la política existente.

------
#### [ JSON ]

****  

      ```
      {
           "Version":"2012-10-17",		 	 	 
           "Statement":[
            {
               "Sid":"AllowListBucketIfSpecificPrefixIsIncludedInRequest",
               "Action":["s3:ListBucket"],
               "Effect":"Allow",
               "Resource":["arn:aws:s3:::companybucket"],
               "Condition":{
                  "StringLike":{"s3:prefix":["Development/*"]
                  }
               }
            },
            {
              "Sid":"AllowUserToReadWriteObjectDataInDevelopmentFolder", 
              "Action":["s3:GetObject", "s3:PutObject"],
              "Effect":"Allow",
              "Resource":["arn:aws:s3:::companybucket/Development/*"]
            }
         ]
      }
      ```

------

1. Pruebe la política actualizada:

   1. Con el enlace de inicio de sesión del usuario de IAM (consulte [Para proporcionar un enlace de inicio de sesión para usuarios de IAM](#walkthrough-sign-in-user-credentials)), inicie sesión en la Consola de administración de AWS. 

   1. Abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3](https://console.aws.amazon.com/s3/).

   1. En la consola de Amazon S3, compruebe que Alice pueda añadir y descargar un objeto en la carpeta `Development`. 

### Paso 5.3: Denegar permisos de forma explícita al usuario Alice de IAM para que no obtenga acceso a ninguna otra carpeta del bucket
<a name="walkthrough-grant-user1-explicit-deny-other-access"></a>

El usuario Alice ahora puede mostrar el contenido del bucket `companybucket` en el nivel raíz. También puede obtener y colocar objetos en la carpeta `Development`. Si realmente desea ajustar los permisos de acceso, puede denegar de forma explícita el acceso a Alice a cualquier otra carpeta del bucket. Si existe alguna otra política (política de bucket o ACL) que conceda acceso a Alice a otra carpeta del bucket, esta denegación explícita anula estos permisos. 

Puede añadir la siguiente instrucción a la política del usuario Alice que requiere que todas las solicitudes que Alice envía a Amazon S3 incluyan el parámetro `prefix`, cuyo valor puede ser `Development/*` o una cadena vacía. 



```
{
   "Sid": "ExplicitlyDenyAnyRequestsForAllOtherFoldersExceptDevelopment",
   "Action": ["s3:ListBucket"],
   "Effect": "Deny",
   "Resource": ["arn:aws:s3:::companybucket"],
   "Condition":{  "StringNotLike": {"s3:prefix":["Development/*",""] },
                  "Null"         : {"s3:prefix":false }
    }
}
```

Existen dos expresiones condicionales en el bloque `Condition`. El resultado de estas expresiones condicionales se combina con el uso de la operación lógica `AND`. Si ambas condiciones son válidas, el resultado de la condición combinada se considera válido. Dado que el `Effect` en esta política es `Deny`, cuando la `Condition` se considera válida, los usuarios no pueden realizar la `Action` especificada.
+ La expresión condicional `Null` asegura que las solicitudes de Alice incluyan el parámetro `prefix`. 

  El parámetro `prefix` requiere acceso de tipo carpeta. Si envía una solicitud sin el parámetro `prefix`, Amazon S3 devuelve todas las claves de objeto. 

  Si la solicitud incluye el parámetro `prefix` con un valor nulo, la expresión se considera válida y, por lo tanto, el parámetro `Condition` también se considera válido. Debe permitir una cadena vacía como valor del parámetro `prefix`. Recuerde que permitir una cadena nula permite a Alice recuperar los elementos del bucket en el nivel raíz como lo hizo la consola en la explicación anterior. Para obtener más información, consulte [Paso 4.2: Permitir que los usuarios puedan mostrar el contenido en el nivel raíz de un bucket](#walkthrough1-grant-permissions-step2). 
+ La expresión condicional `StringNotLike` asegura que la solicitud falle, si se especifica el valor del parámetro `prefix` y no el parámetro `Development/*`. 

Siga los pasos de la sección anterior y vuelva a actualizar la política insertada que creó para el usuario Alice.

Copie la siguiente política y péguela en el campo de texto de la política para sustituir la política existente.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"AllowListBucketIfSpecificPrefixIsIncludedInRequest",
         "Action":["s3:ListBucket"],
         "Effect":"Allow",
         "Resource":["arn:aws:s3:::companybucket"],
         "Condition":{
            "StringLike":{"s3:prefix":["Development/*"]
            }
         }
      },
      {
        "Sid":"AllowUserToReadWriteObjectDataInDevelopmentFolder", 
        "Action":["s3:GetObject", "s3:PutObject"],
        "Effect":"Allow",
        "Resource":["arn:aws:s3:::companybucket/Development/*"]
      },
      {
         "Sid": "ExplicitlyDenyAnyRequestsForAllOtherFoldersExceptDevelopment",
         "Action": ["s3:ListBucket"],
         "Effect": "Deny",
         "Resource": ["arn:aws:s3:::companybucket"],
         "Condition":{  "StringNotLike": {"s3:prefix":["Development/*",""] },
                        "Null"         : {"s3:prefix":false }
          }
      }
   ]
}
```

------

## Paso 6: Conceder permisos específicos al usuario Bob de IAM
<a name="walkthrough1-grant-permissions-step5"></a>

Ahora desea conceder permiso a Bob para trabajar en la carpeta `Finance`. Siga los pasos realizados anteriormente para conceder permisos a Alice, pero sustituya la carpeta `Development` por la carpeta `Finance`. Para obtener instrucciones paso a paso, consulte [Paso 5: Conceder permisos específicos al usuario Alice de IAM](#walkthrough-grant-user1-permissions). 

## Paso 7: Proteger la carpeta privada
<a name="walkthrough-secure-private-folder-explicit-deny"></a>

En este ejemplo, tiene solo dos usuarios. Concedió todos los permisos mínimos requeridos en el nivel de grupo y los permisos en el nivel de usuario solo cuando realmente se requerían permisos en el nivel de usuario individual. Este enfoque ayuda a reducir el esfuerzo para administrar los permisos. A medida que el número de usuarios aumenta, administrar los permisos puede ser complicado. Por ejemplo, no quiere que ninguno de los usuarios de este ejemplo obtenga acceso al contenido de la carpeta `Private`. ¿Cómo asegurarse de no conceder permisos accidentalmente al usuario a la carpeta `Private`? Añada una política que deniegue explícitamente el acceso a la carpeta. Una denegación explícita anula cualquier otro permiso. 

Para asegurarse de que la carpeta `Private` sea privada, puede añadir estas dos instrucciones de denegación a la política de grupo:
+ Añada la siguiente instrucción para denegar explícitamente cualquier acción sobre los recursos de la carpeta `Private` (`companybucket/Private/*`).

  ```
  {
    "Sid": "ExplictDenyAccessToPrivateFolderToEveryoneInTheGroup",
    "Action": ["s3:*"],
    "Effect": "Deny",
    "Resource":["arn:aws:s3:::companybucket/Private/*"]
  }
  ```
+ Además, deniegue el permiso para mostrar la acción de los objetos cuando la solicitud especifica el prefijo `Private/`. Si Bob o Alice abren la carpeta `Private` en la consola, esta política hace que Amazon S3 devuelva una respuesta de error.

  ```
  {
    "Sid": "DenyListBucketOnPrivateFolder",
    "Action": ["s3:ListBucket"],
    "Effect": "Deny",
    "Resource": ["arn:aws:s3:::*"],
    "Condition":{
        "StringLike":{"s3:prefix":["Private/"]}
     }
  }
  ```

Sustituya la política del grupo `Consultants` por una política actualizada que incluya las instrucciones de denegación anteriores. Después de aplicar la política actualizada, ninguno de los usuarios del grupo puede obtener acceso a la carpeta `Private` de su bucket. 

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

   Utilice las credenciales de su Cuenta de AWS, no las de usuario de IAM, para iniciar sesión en la consola.

1. Sustituya la política administrada existente `AllowGroupToSeeBucketListInTheConsole` que se encuentra asociada al grupo `Consultants` por la siguiente política. Recuerde sustituir *`companybucket`* en la política por el nombre del bucket. 

   Para obtener instrucciones, consulte [Edición de políticas administradas por el cliente](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-edit.html#edit-managed-policy-console) en la *Guía del usuario de IAM*. Al seguir las instrucciones, asegúrese de seguir las indicaciones para aplicar los cambios a todas las entidades principales a las que la política está asociada. 

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "AllowGroupToSeeBucketListAndAlsoAllowGetBucketLocationRequiredForListBucket",
         "Action": ["s3:ListAllMyBuckets", "s3:GetBucketLocation"],
         "Effect": "Allow",
         "Resource": ["arn:aws:s3:::*"]
       },
       {
         "Sid": "AllowRootLevelListingOfCompanyBucket",
         "Action": ["s3:ListBucket"],
         "Effect": "Allow",
         "Resource": ["arn:aws:s3:::companybucket"],
         "Condition":{
             "StringEquals":{"s3:prefix":[""]}
          }
       },
       {
         "Sid": "RequireFolderStyleList",
         "Action": ["s3:ListBucket"],
         "Effect": "Deny",
         "Resource": ["arn:aws:s3:::*"],
         "Condition":{
             "StringNotEquals":{"s3:delimiter":"/"}
          }
        },
       {
         "Sid": "ExplictDenyAccessToPrivateFolderToEveryoneInTheGroup",
         "Action": ["s3:*"],
         "Effect": "Deny",
         "Resource":["arn:aws:s3:::companybucket/Private/*"]
       },
       {
         "Sid": "DenyListBucketOnPrivateFolder",
         "Action": ["s3:ListBucket"],
         "Effect": "Deny",
         "Resource": ["arn:aws:s3:::*"],
         "Condition":{
             "StringLike":{"s3:prefix":["Private/"]}
          }
       }
     ]
   }
   ```

------



## Paso 8: Limpiar
<a name="walkthrough-cleanup"></a>

Para realizar una limpieza, abra la [consola de IAM](https://console.aws.amazon.com/iam/) y elimine los usuarios Alice y Bob. Para obtener instrucciones paso a paso, consulte [Eliminación de un usuario de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_manage.html#id_users_deleting) en la *Guía del usuario de IAM*.

Para asegurarse de que no le apliquen cargos adicionales por almacenamiento, debe eliminar los objetos y el bucket que creó para este ejercicio.

## Recursos relacionados
<a name="RelatedResources-walkthrough1"></a>
+ [Administración de políticas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage.html) en la *guía del usuario de IAM*

# Ejemplos de políticas basadas en identidad para Amazon S3
<a name="example-policies-s3"></a>

En esta sección se muestran varias políticas basadas en identidad de AWS Identity and Access Management (IAM) de ejemplo para controlar el acceso a Amazon S3. Para ver ejemplos de *políticas de bucket* (políticas basadas en recursos), consulte [Políticas de buckets para Amazon S3](bucket-policies.md). Para obtener información sobre el lenguaje de políticas de IAM, consulte [Políticas y permisos en Amazon S3](access-policy-language-overview.md).

Las siguientes políticas de ejemplo funcionarán si las prueba mediante programación. Sin embargo, debe conceder permisos adicionales que necesita la consola de Amazon S3 para utilizarlas con dicha consola. Para obtener información acerca del uso de estas políticas con la consola de Amazon S3, consulte [Controlar el acceso a un bucket con las políticas de usuario](walkthrough1.md). 

Para obtener más información sobre los permisos para las operaciones de la API de S3 por tipos de recursos de S3, consulte [Permisos necesarios para las operaciones de la API de Amazon S3](using-with-s3-policy-actions.md).

**Topics**
+ [Permiso para que el usuario de IAM tenga acceso a uno de los buckets](#iam-policy-ex0)
+ [Permiso para que cada usuario de IAM tenga acceso a una carpeta en un bucket](#iam-policy-ex1)
+ [Permiso para que un grupo tenga una carpeta compartida en Amazon S3](#iam-policy-ex2)
+ [Permiso para que los usuarios lean objetos en una parte del bucket](#iam-policy-ex3)
+ [Permiso para que un socio coloque archivos en una parte específica de un bucket](#iam-policy-ex4)
+ [Restringir el acceso a los buckets de Amazon S3 en una Cuenta de AWS específica](#iam-policy-ex6)
+ [Restricción del acceso a buckets de Amazon S3 dentro de la unidad organizativa](#iam-policy-ex7)
+ [Restricción del acceso a buckets de Amazon S3 dentro de la organización](#iam-policy-ex8)
+ [Concesión de permiso para recuperar la configuración de PublicAccessBlock de una Cuenta de AWS](#using-with-s3-actions-related-to-accountss)
+ [Restricción de la creación de buckets a una región](#condition-key-bucket-ops-1)

## Permiso para que el usuario de IAM tenga acceso a uno de los buckets
<a name="iam-policy-ex0"></a>

En este ejemplo, desea conceder a un usuario de IAM el acceso de la Cuenta de AWS a uno de los buckets, *amzn-s3-demo-bucket1*, y permitirle que agregue, actualice y elimine objetos. 

Además de conceder los permisos `s3:PutObject`, `s3:GetObject` y `s3:DeleteObject` al usuario, la política también concede los permisos `s3:ListAllMyBuckets`, `s3:GetBucketLocation` y `s3:ListBucket`. Estos son los permisos adicionales que requiere la consola. Las acciones `s3:PutObjectAcl` y `s3:GetObjectAcl` también son necesarias para poder copiar, cortar y pegar objetos en la consola. Para ver un ejemplo de un tutorial en el que se conceden permisos a usuarios y se los prueba con la consola, consulte [Controlar el acceso a un bucket con las políticas de usuario](walkthrough1.md). 

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action": "s3:ListAllMyBuckets",
         "Resource":"*"
      },
      {
         "Effect":"Allow",
         "Action":["s3:ListBucket","s3:GetBucketLocation"],
         "Resource":"arn:aws:s3:::amzn-s3-demo-bucket1"
      },
      {
         "Effect":"Allow",
         "Action":[
            "s3:PutObject",
            "s3:PutObjectAcl",
            "s3:GetObject",
            "s3:GetObjectAcl",
            "s3:DeleteObject"
         ],
         "Resource":"arn:aws:s3:::amzn-s3-demo-bucket1/*"
      }
   ]
}
```

------

## Permiso para que cada usuario de IAM tenga acceso a una carpeta en un bucket
<a name="iam-policy-ex1"></a>

En este ejemplo, desea conceder el acceso al bucket *amzn-s3-demo-bucket1* a dos usuarios de IAM, Mary y Carlos, para que puedan agregar, actualizar y eliminar objetos. Sin embargo, desea impedir que cada usuario acceda a un único prefijo (carpeta) en el bucket. Debe crear carpetas con nombres que coincidan con los nombres de usuarios. 

```
amzn-s3-demo-bucket1
   Mary/
   Carlos/
```

Para conceder a cada usuario el acceso solo a sus carpetas, puede escribir una política para cada usuario y asociarla de forma individual. Por ejemplo, puede asociar la siguiente política al usuario Mary para conceder permisos específicos de Amazon S3 en la carpeta `amzn-s3-demo-bucket1/Mary`.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Action": [
            "s3:PutObject",
            "s3:GetObject",
            "s3:GetObjectVersion",
            "s3:DeleteObject",
            "s3:DeleteObjectVersion"
         ],
         "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/Mary/*"
      }
   ]
}
```

------

Puede asociar una política similar al usuario Carlos, especificando la carpeta `Carlos` en el valor `Resource`.

En vez de asociar políticas a cada usuario, puede escribir una sola política que utilice una variable de política y, a continuación, asociarla a un grupo. En primer lugar, debe crear un grupo y agregar a Mary y Carlos al grupo. La política del ejemplo siguiente muestra cómo conceder un conjunto de permisos de Amazon S3 en la carpeta `amzn-s3-demo-bucket1/${aws:username}`. Cuando se evalúa la política, la variable de la política `${aws:username}` se sustituye por el nombre de usuario del solicitante. Por ejemplo, si Mary envía una solicitud para colocar un objeto, la operación se permitirá solo si Mary carga el objeto en la carpeta `amzn-s3-demo-bucket1/Mary`.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "s3:PutObject",
            "s3:GetObject",
            "s3:GetObjectVersion",
            "s3:DeleteObject",
            "s3:DeleteObjectVersion"
         ],
         "Resource":"arn:aws:s3:::amzn-s3-demo-bucket1/${aws:username}/*"
      }
   ]
}
```

------

**nota**  
Cuando utiliza variables de políticas, debe especificar de forma explícita la versión `2012-10-17` en la política. La versión predeterminada del lenguaje de la política de IAM, 2008-10-17, no admite variables de políticas. 

 Si desea probar la política anterior en la consola de Amazon S3, esta requiere permiso para permisos adicionales, como se muestra en la siguiente política. Para obtener información acerca de cómo la consola utiliza estos permisos, consulte [Controlar el acceso a un bucket con las políticas de usuario](walkthrough1.md). 

------
#### [ JSON ]

****  

```
{
 "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowGroupToSeeBucketListInTheConsole",
      "Action": [ 
      	"s3:ListAllMyBuckets", 
      	"s3:GetBucketLocation" 
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:s3:::*"  
    },
    {
      "Sid": "AllowRootLevelListingOfTheBucket",
      "Action": "s3:ListBucket",
      "Effect": "Allow",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1",
      "Condition": { 
            "StringEquals": {
                    "s3:prefix": [""], "s3:delimiter": ["/"]
                           }
                 }
    },
    {
      "Sid": "AllowListBucketOfASpecificUserPrefix",
      "Action": "s3:ListBucket",
      "Effect": "Allow",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1",
      "Condition": {  "StringLike": {"s3:prefix": ["${aws:username}/*"] }
       }
    },
      {
     "Sid": "AllowUserSpecificActionsOnlyInTheSpecificUserPrefix",
         "Effect": "Allow",
         "Action": [
            "s3:PutObject",
            "s3:GetObject",
            "s3:GetObjectVersion",
            "s3:DeleteObject",
            "s3:DeleteObjectVersion"
         ],
         "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/${aws:username}/*"
      }
  ]
}
```

------

**nota**  
En la versión 2012-10-17 de la política, las variables comienzan con `$`. Este cambio en la sintaxis puede crear un conflicto potencial si la clave del objeto (nombre de objeto) incluye `$`.   
Para evitar este conflicto, especifique el carácter `$` mediante `${$}`. Por ejemplo, para incluir la clave de objeto `my$file` en la política, debe especificarlo como `my${$}file`.

Aunque los nombres de usuario de IAM son identificadores descriptivos fáciles, no necesariamente deben ser identificadores globales únicos. Por ejemplo, si el usuario Carlos abandona la organización y se une un usuario con el mismo nombre (Carlos), este puede tener acceso a la información del usuario anterior con el mismo nombre.

En vez de usar nombres de usuario, puede crear carpetas en función de los ID de usuario de IAM. Cada ID de usuario de IAM es único. En este caso, debe modificar la política anterior para usar la variable de política `${aws:userid}`. Para obtener más información acerca de los identificadores de usuarios, consulte [Identificadores de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html) en la *guía de usuario de IAM*.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Action": [
            "s3:PutObject",
            "s3:GetObject",
            "s3:GetObjectVersion",
            "s3:DeleteObject",
            "s3:DeleteObjectVersion"
         ],
         "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/home/${aws:userid}/*"
      }
   ]
}
```

------

### Permiso para que los usuarios que no son de IAM (usuarios de aplicaciones móviles) tengan acceso a las carpetas de un bucket
<a name="non-iam-mobile-app-user-access"></a>

Supongamos que desea desarrollar una aplicación móvil, un juego que almacena los datos de usuario en un bucket de S3. Debe crear una carpeta en el bucket para cada usuario de la aplicación. También debe limitar el acceso de cada usuario a su propia carpeta. Pero no puede crear carpetas antes de que alguien descargue la aplicación y comience a jugar porque no tiene su ID de usuario.

En este caso, puede solicitar a los usuarios que inicien sesión en la aplicación con los proveedores de identidades públicos como Login with Amazon, Facebook o Google. Una vez que los usuarios iniciaron sesión en la aplicación mediante uno de estos proveedores, tendrán un ID de usuario que usted podrá utilizar para crear carpetas específicas de usuarios en tiempo de ejecución.

Luego, puede utilizar la identidad federada de sitio web en AWS Security Token Service para integrar la información del proveedor de identidad con su aplicación y obtener credenciales de seguridad temporales para cada usuario. A continuación, puede crear políticas de IAM para permitir que la aplicación tenga acceso a su bucket y realice operaciones como crear carpetas específicas de usuario y cargar datos. Para obtener más información acerca de la federación de identidades de sitio web, consulte [Acerca de federación de identidades de sitio web](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc.html) en la *Guía del usuario de IAM*.

## Permiso para que un grupo tenga una carpeta compartida en Amazon S3
<a name="iam-policy-ex2"></a>

Al asociar la siguiente política a un grupo, todos los miembros del grupo obtienen acceso a la siguiente carpeta en Amazon S3: `amzn-s3-demo-bucket1/share/marketing`. Los miembros del grupo solo pueden acceder a los permisos específicos de Amazon S3 que se muestran en la política y solo a los objetos en la carpeta especificada. 

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "s3:PutObject",
            "s3:GetObject",
            "s3:GetObjectVersion",
            "s3:DeleteObject",
            "s3:DeleteObjectVersion"
         ],
         "Resource":"arn:aws:s3:::amzn-s3-demo-bucket1/share/marketing/*"
      }
   ]
}
```

------

## Permiso para que los usuarios lean objetos en una parte del bucket
<a name="iam-policy-ex3"></a>

En este ejemplo, crea un grupo denominado `AllUsers`, que contiene todos los usuarios de IAM que pertenecen a la Cuenta de AWS. A continuación asocia una política que concede al grupo el acceso a `GetObject` y `GetObjectVersion`, pero solo para objetos en la carpeta `amzn-s3-demo-bucket1/readonly`. 

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "s3:GetObject",
            "s3:GetObjectVersion"
         ],
         "Resource":"arn:aws:s3:::amzn-s3-demo-bucket1/readonly/*"
      }
   ]
}
```

------

## Permiso para que un socio coloque archivos en una parte específica de un bucket
<a name="iam-policy-ex4"></a>

En este ejemplo, crea un grupo llamado `AnyCompany` que representa a una compañía asociada. Crea un usuario de IAM para la persona o aplicación específica en la empresa asociada que necesita acceso y, luego, coloca al usuario en el grupo. 

Luego, asocia una política que concede al grupo `PutObject` acceso a la siguiente carpeta en un bucket:

`amzn-s3-demo-bucket1/uploads/anycompany` 

Como quiere evitar que el grupo `AnyCompany` realice cualquier otro tipo de acción con el bucket, agrega una instrucción que deniegue explícitamente el permiso para cualquier acción de Amazon S3, excepto `PutObject` en todos los recursos de Amazon S3 en la Cuenta de AWS.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":"s3:PutObject",
         "Resource":"arn:aws:s3:::amzn-s3-demo-bucket1/uploads/anycompany/*"
      },
      {
         "Effect":"Deny",
         "Action":"s3:*",
         "NotResource":"arn:aws:s3:::amzn-s3-demo-bucket1/uploads/anycompany/*"
      }
   ]
}
```

------

## Restringir el acceso a los buckets de Amazon S3 en una Cuenta de AWS específica
<a name="iam-policy-ex6"></a>

Si desea asegurarse de que las entidades principales de Amazon S3 accedan solo a los recursos que se encuentran dentro de una Cuenta de AWS de confianza, puede restringir el acceso. Por ejemplo, esta [Política de IAM basada en identidades](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html) utiliza un efecto `Deny` para bloquear el acceso a las acciones de Amazon S3, a menos que el recurso de Amazon S3 al que se accede esté en una cuenta `222222222222`. Para evitar que una entidad principal de IAM en una Cuenta de AWS acceda a objetos de Amazon S3 fuera de la cuenta, asocie la siguiente política de IAM:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyS3AccessOutsideMyBoundary",
      "Effect": "Deny",
      "Action": [
        "s3:*"
      ],
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
          "aws:ResourceAccount": [
            "222222222222"
          ]
        }
      }
    }
  ]
}
```

------

**nota**  
Esta política no sustituye los controles de acceso de IAM existentes porque no otorga acceso alguno. En cambio, esta política actúa como una barrera de protección adicional para los demás permisos de IAM, independientemente de los permisos otorgados a través de otras políticas de IAM.

Asegúrese de sustituir el ID de cuenta `222222222222` en la política por su propia Cuenta de AWS. Para aplicar una política a varias cuentas sin dejar de mantener esta restricción, sustituya el ID de cuenta por la clave de condición `aws:PrincipalAccount`. Esta condición requiere que la entidad principal y el recurso se encuentren en la misma cuenta.

## Restricción del acceso a buckets de Amazon S3 dentro de la unidad organizativa
<a name="iam-policy-ex7"></a>

Si tiene una [Unidad organizativa (OU)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_ous.html) configure en AWS Organizations, es posible que desee restringir el acceso al bucket de Amazon S3 a una parte específica de la organización. En este ejemplo, utilizaremos la clave `aws:ResourceOrgPaths` para restringir el acceso del bucket de Amazon S3 a una unidad organizativa de la organización. En este ejemplo, el [ID de la unidad organizativa](https://docs.aws.amazon.com/organizations/latest/APIReference/API_OrganizationalUnit.html) es `ou-acroot-exampleou`. Asegúrese de sustituir este valor en su propia política por sus propios ID de unidad organizativa.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
     {
       "Sid": "AllowS3AccessOutsideMyBoundary",
       "Effect": "Allow",
       "Action": [
         "s3:*"
       ],
       "Resource": "*",
       "Condition": {
         "ForAllValues:StringLike": {
           "aws:ResourceOrgPaths": [
             "o-acorg/r-acroot/ou-acroot-exampleou/"
           ] 
         }
       }
     }
   ]
 }
```

------

**nota**  
Esta política no concede ningún acceso. En su lugar, esta política actúa como respaldo para los demás permisos de IAM, lo que impide que las entidades principales accedan a objetos de Amazon S3 fuera de un límite definido por la unidad organizativa.

La política niega el acceso a las acciones de Amazon S3 a menos que el objeto de Amazon S3 al que se accede se encuentre en la unidad organizativa `ou-acroot-exampleou` de la organización. La [condición de política de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) requiere `aws:ResourceOrgPaths`, una clave de condición multivalor, para contener cualquiera de las rutas de unidad organizativa mostradas. La política utiliza el operador `ForAllValues:StringNotLike` para comparar los valores de `aws:ResourceOrgPaths` con las unidades organizativas mostradas sin la coincidencia que distingue entre mayúsculas y minúsculas.

## Restricción del acceso a buckets de Amazon S3 dentro de la organización
<a name="iam-policy-ex8"></a>

Para restringir el acceso a los objetos de Amazon S3 dentro de la organización, asocie una política de IAM a la raíz de la organización, aplicándola a todas las cuentas de la organización. Para requerir a las entidades principales de IAM que sigan esta regla, utilice una [política de control de servicio (SCP)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html). Si elige utilizar SCP, asegúrese de [probar SCP](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html#scp-warning-testing-effect) minuciosamente antes de adjuntar la política a la raíz de la organización.

En la siguiente política de ejemplo, se deniega el acceso a las acciones de Amazon S3 a menos que el objeto de Amazon S3 al que se accede esté en la misma organización que la entidad principal de IAM que accede a él:

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
     {
       "Sid": "DenyS3AccessOutsideMyBoundary",
       "Effect": "Deny",
       "Action": [
         "s3:*"
       ],
       "Resource": "arn:aws:s3:::*/*",
       "Condition": {
         "StringNotEquals": {
           "aws:ResourceOrgID": "${aws:PrincipalOrgID}"
         }
       }
     }
   ]
 }
```

------

**nota**  
Esta política no concede ningún acceso. En su lugar, esta política actúa como respaldo para los demás permisos de IAM, lo que impide que las entidades principales accedan a objetos de Amazon S3 fuera de la organización. Esta política también se aplica a los recursos de Amazon S3 que se crean después de que la política haya entrado en vigor.

La [Condición de política de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) en este ejemplo requiere `aws:ResourceOrgID` y `aws:PrincipalOrgID` para ser iguales entre sí. Con este requisito, la entidad principal que realiza la solicitud y el recurso al que se accede deben estar en la misma organización.

## Concesión de permiso para recuperar la configuración de PublicAccessBlock de una Cuenta de AWS
<a name="using-with-s3-actions-related-to-accountss"></a>

La política basada en identidad de ejemplo siguiente concede el permiso `s3:GetAccountPublicAccessBlock` a un usuario. Para todos estos permisos, estableció el valor `Resource` en `"*"`. Para obtener información sobre los ARN de recursos, consulte [Recursos de políticas para Amazon S3](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-resources).

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"statement1",
         "Effect":"Allow",
         "Action":[
            "s3:GetAccountPublicAccessBlock" 
         ],
         "Resource":[
            "*"
         ]
       }
    ]
}
```

------

## Restricción de la creación de buckets a una región
<a name="condition-key-bucket-ops-1"></a>

Supongamos que el administrador de una Cuenta de AWS desea conceder al usuario (Dave) permiso para crear un bucket solo en la región de América del Sur (São Paulo). El administrador de la cuenta puede asociar la siguiente política de usuario que concede el permiso `s3:CreateBucket` con una condición, tal como se muestra. El par clave-valor en el bloque `Condition` especifica la clave `s3:LocationConstraint` y la región `sa-east-1` como su valor.

**nota**  
En este ejemplo, el propietario del bucket concede el permiso a uno de sus usuarios, así que se puede usar una política de bucket o de usuario. En este ejemplo se muestra una política de usuario.

Para obtener una lista de las regiones de Amazon S3, consulte [Regiones y puntos de conexión](https://docs.aws.amazon.com/general/latest/gr/s3.html) en la *Referencia general de AWS*. 

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Sid": "statement1",
         "Effect": "Allow",
         "Action": "s3:CreateBucket",
         "Resource": "arn:aws:s3:::*",
         "Condition": {
             "StringLike": {
                 "s3:LocationConstraint": "sa-east-1"
             }
         }
       }
    ]
}
```

------

**Agregar denegación de forma explícita**  
La política anterior impide que el usuario cree un bucket en cualquier otra región, excepto la región `sa-east-1`. Sin embargo, es posible que otras políticas concedan al usuario el permiso para crear buckets en otra región. Por ejemplo, si el usuario pertenece a un grupo, es posible que el grupo tenga una política asociada que permite a todos los usuarios en el grupo crear buckets en otra región. Para asegurarse de que el usuario no obtenga el permiso para crear buckets en otra región, puede agregar una instrucción de denegación explícita en la política anterior. 

La instrucción `Deny` utiliza la condición `StringNotLike`. Es decir, la solicitud para crear un bucket se deniega si la restricción de ubicación no es `sa-east-1`. La denegación explícita no permite al usuario crear un bucket en ninguna otra región, independientemente de los permisos que obtenga el usuario. La siguiente política incluye una instrucción de denegación explícita.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"statement1",
         "Effect":"Allow",
         "Action": "s3:CreateBucket",
         "Resource": "arn:aws:s3:::*",
         "Condition": {
             "StringLike": {
                 "s3:LocationConstraint": "sa-east-1"
             }
         }
       },
      {
         "Sid":"statement2",
         "Effect":"Deny",
         "Action": "s3:CreateBucket",
         "Resource": "arn:aws:s3:::*",
         "Condition": {
             "StringNotLike": {
                 "s3:LocationConstraint": "sa-east-1"
             }
         }
       }
    ]
}
```

------

**Prueba de la política con la AWS CLI**  
Puede usar el siguiente comando `create-bucket` de la AWS CLI para probar la política. En este ejemplo se utiliza el archivo `bucketconfig.txt` para especificar la restricción de ubicación. Tenga en cuenta la ruta del archivo de Windows. Tiene que actualizar el nombre y la ruta del bucket según corresponda. Debe usar el parámetro `--profile` para proporcionar las credenciales de usuario. Para obtener más información sobre la configuración y el uso de la AWS CLI, consulte [Developing with Amazon S3 using the AWS CLI](https://docs.aws.amazon.com/AmazonS3/latest/API/setup-aws-cli.html) en la *Amazon S3 API Reference*.

```
aws s3api create-bucket --bucket examplebucket --profile AccountADave --create-bucket-configuration file://c:/Users/someUser/bucketconfig.txt
```

El archivo `bucketconfig.txt` especifica la configuración, tal y como se muestra a continuación.

```
{"LocationConstraint": "sa-east-1"}
```

# Explicaciones que utilizan políticas para administrar el acceso a los recursos de Amazon S3
<a name="example-walkthroughs-managing-access"></a>

Este tema proporciona los siguientes ejemplos de tutorial introductorio para ofrecer acceso a los recursos de Amazon S3. Estos ejemplos utilizan la Consola de administración de AWS para crear recursos (buckets, objetos, usuarios) y otorgarles permisos. Luego, los ejemplos le muestran cómo verificar los permisos con las herramientas de línea de comandos para que no tenga que escribir ningún código. Proporcionamos comandos con la AWS Command Line Interface (AWS CLI) y AWS Tools for Windows PowerShell.
+ [Ejemplo 1: propietario del bucket que concede permisos de bucket a sus usuarios](example-walkthroughs-managing-access-example1.md)

  Los usuarios de IAM que crea en la cuenta no tienen permisos de forma predeterminada. En este ejercicio, usted le otorga a un usuario permiso para realizar operaciones de bucket y objeto.
+ [Ejemplo 2: propietario del bucket que concede permisos de bucket entre cuentas](example-walkthroughs-managing-access-example2.md)

  En este ejercicio, el propietario de un bucket, la cuenta A, concede permisos entre cuentas a otra Cuenta de AWS, la cuenta B. Luego, la cuenta B delega esos permisos a los usuarios de la cuenta. 
+ **Administración de permisos de objetos cuando los propietarios del objeto y del bucket no son los mismos**

  Los escenarios de ejemplo en este caso incluyen a un propietario de bucket que concede permisos de objetos a otros, pero no todos los objetos en el bucket le pertenecen al propietario del bucket. ¿Qué permisos necesita el propietario del bucket y cómo puede delegar esos permisos?

  La Cuenta de AWS que crea un bucket se denomina *propietario del bucket*. El propietario puede conceder permisos a otras Cuentas de AWS para cargar objetos, y las Cuentas de AWS que crean objetos son las propietarias de estos. El propietario del bucket no tiene permisos sobre aquellos objetos creados por otras Cuentas de AWS. Si el propietario del bucket escribe una política de bucket que concede acceso a los objetos, la política no se aplica a los objetos que le pertenecen a otras cuentas. 

  En este caso, el propietario del objeto primero debe otorgar permisos al propietario del bucket con una Access Control List (ACL, Lista de control de acceso) de objetos. Luego, el propietario del bucket puede delegar esos permisos de objeto a otros, a usuarios de su propia cuenta o a otra Cuenta de AWS, como se muestra en los siguientes ejemplos.
  + [Ejemplo 3: propietario del bucket que concede a sus usuarios permisos para objetos que no posee](example-walkthroughs-managing-access-example3.md)

    En este ejercicio, el propietario del bucket primero obtiene permisos del propietario del objeto. Luego, el propietario del bucket delega esos permisos a usuarios de su propia cuenta.
  + [Ejemplo 4: Propietario de bucket que concede permisos entre cuentas para objetos que no le pertenecen](example-walkthroughs-managing-access-example4.md)

    Después de recibir los permisos del propietario del objeto, el propietario del bucket no puede delegar permisos a otras Cuentas de AWS, ya que no se admite la delegación entre cuentas (consulte [Delegación de permisos](access-policy-language-overview.md#permission-delegation)). En lugar de eso, el propietario del bucket puede crear un rol de IAM con permisos para realizar operaciones específicas (como Get object) y permitir que otra Cuenta de AWS asuma ese rol. Luego, cualquiera que asuma el rol puede acceder a los objetos. En este ejemplo se muestra cómo el propietario de un bucket utiliza un rol de IAM para habilitar esta delegación entre cuentas. 

## Antes de probar los tutoriales de ejemplo
<a name="before-you-try-example-walkthroughs-manage-access"></a>

Estos ejemplos utilizan la Consola de administración de AWS para crear recursos y conceder permisos. Para probar los permisos, en los ejemplos se utilizan las herramientas de la línea de comandos, AWS CLI y AWS Tools for Windows PowerShell, por lo que no necesita escribir ningún código. Para probar los permisos, debe configurar una de estas herramientas. Para obtener más información, consulte [Configuración de las herramientas para los tutoriales](policy-eval-walkthrough-download-awscli.md). 

Además, cuando se crean recursos, en estos ejemplos no se utilizan credenciales de usuario raíz de una Cuenta de AWS. En lugar de eso, usted crea un usuario administrador en estas cuentas para realizar estas tareas. 

### Acerca del uso de un usuario administrador para crear recursos y conceder permisos
<a name="about-using-root-credentials"></a>

AWS Identity and Access Management (IAM) recomienda no usar las credenciales de usuario raíz de la Cuenta de AWS para realizar solicitudes. En lugar de eso, cree un usuario o rol de IAM, concédale acceso completo y luego utilice sus credenciales para realizar solicitudes. Recibe el nombre de usuario o rol administrador. Para obtener más información, consulte [Credenciales de Usuario raíz de la cuenta de AWS e identidades de IAM](https://docs.aws.amazon.com/general/latest/gr/root-vs-iam.html) en la *Referencia general de AWS* y [Prácticas recomendadas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) en la *Guía del usuario de IAM*.

Todos los tutoriales de ejemplo en esta sección utilizan las credenciales de usuario administrador. Si no creó un usuario administrador para su Cuenta de AWS, en los temas se indica cómo hacerlo. 

Para iniciar sesión en la Consola de administración de AWS con las credenciales de usuario, debe utilizar la dirección URL de inicio de sesión de usuario de IAM. La [consola de IAM](https://console.aws.amazon.com/iam/) proporciona esta URL para su Cuenta de AWS. Los temas le muestran cómo obtener el URL.

# Configuración de las herramientas para los tutoriales
<a name="policy-eval-walkthrough-download-awscli"></a>

En los ejemplos introductorios (consulte [Explicaciones que utilizan políticas para administrar el acceso a los recursos de Amazon S3](example-walkthroughs-managing-access.md)) utilice la Consola de administración de AWS para crear recursos y conceder permisos. Para probar los permisos, en los ejemplos se utilizan las herramientas de la línea de comandos, AWS Command Line Interface (AWS CLI) y AWS Tools for Windows PowerShell, por lo que no necesita escribir ningún código. Para probar los permisos, debe configurar una de estas herramientas. 

**Para configurar la AWS CLI**

1. Descargue y configure la AWS CLI. Para obtener instrucciones, consulte los siguientes temas en la *Guía del usuario de la AWS Command Line Interface*: 

    [Instalación o actualización a la versión más reciente de la AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-set-up.html) 

    [Comenzar a utilizar AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/installing.html) 

1. Configure el perfil predeterminado. 

   Puede almacenar las credenciales de usuarios en el archivo de configuración de la AWS CLI. Cree un perfil predeterminado en el archivo de configuración con las credenciales de su Cuenta de AWS. Para obtener instrucciones sobre cómo encontrar y editar el archivo de configuración de AWS CLI, consulte [Opciones de los archivos de configuración y credenciales](https://docs.aws.amazon.com/cli/latest/userguide/cli-config-files.html).

   ```
   [default]
   aws_access_key_id = access key ID
   aws_secret_access_key = secret access key
   region = us-west-2
   ```

1. Verifique la configuración introduciendo el siguiente comando en el símbolo del sistema. Ninguno de estos comandos proporciona las credenciales de forma explícita, por lo que se utilizan las credenciales del perfil predeterminado.
   + Pruebe el comando `help`.

     ```
     aws help
     ```
   + Para obtener una lista de buckets en la cuenta configurada, utilice el comando `aws s3 ls`.

     ```
     aws s3 ls
     ```

A medida que avanza por los tutoriales, creará usuarios y guardará las credenciales de usuario en los archivos de configuración mediante la creación de perfiles, como se muestra en el siguiente ejemplo. Estos perfiles tienen los nombres `AccountAadmin` y `AccountBadmin`.

```
[profile AccountAadmin]
aws_access_key_id = User AccountAadmin access key ID
aws_secret_access_key = User AccountAadmin secret access key
region = us-west-2

[profile AccountBadmin]
aws_access_key_id = Account B access key ID
aws_secret_access_key = Account B secret access key
region = us-east-1
```

Para ejecutar un comando con estas credenciales de usuario, agregue el parámetro `--profile` especificando el nombre de perfil. El comando de la AWS CLI siguiente recupera una lista de objetos en *`examplebucket`* y especifica el perfil `AccountBadmin`. 

```
aws s3 ls s3://examplebucket --profile AccountBadmin
```

Como alternativa, puede configurar un conjunto de credenciales de usuario como el perfil predeterminado cambiando la variable de entorno `AWS_DEFAULT_PROFILE` en el símbolo del sistema. Después de haberlo hecho, siempre que ejecute los comandos de la AWS CLI sin el parámetro `--profile`, la AWS CLI utiliza el perfil que configure en la variable de entorno como perfil predeterminado.

```
$ export AWS_DEFAULT_PROFILE=AccountAadmin
```

**Para configurar AWS Tools for Windows PowerShell**

1. Descargue y configure la AWS Tools for Windows PowerShell. Para las instrucciones, vaya a [Instalación de la AWS Tools for Windows PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up.html#pstools-installing-download) en la *Guía del usuario de Herramientas de AWS para PowerShell*. 
**nota**  
Para cargar el módulo de AWS Tools for Windows PowerShell, debe habilitar la ejecución de scripts de PowerShell. Para obtener más información, consulte [Habilitación de la ejecución del script](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up.html#enable-script-execution) en la *Guía del usuario de Herramientas de AWS para PowerShell*.

1. Para estos tutoriales, debe especificar las credenciales de AWS por sesión con el comando `Set-AWSCredentials`. El comando guarda las credenciales en un almacén persistente (parámetro `-StoreAs `).

   ```
   Set-AWSCredentials -AccessKey AccessKeyID -SecretKey SecretAccessKey -storeas string
   ```

1. Verifique la configuración.
   + Para recuperar una lista de comandos disponibles que puede utilizar para las operaciones de Amazon S3, ejecute el comando `Get-Command`. 

     ```
     Get-Command -module awspowershell -noun s3* -StoredCredentials string
     ```
   + Para recuperar una lista de objetos de un bucket, ejecute el comando `Get-S3Object`.

     ```
     Get-S3Object -BucketName bucketname -StoredCredentials string
     ```

Para obtener una lista de comandos, consulte [Referencia de Cmdlet para Herramientas de AWS para PowerShell](https://docs.aws.amazon.com/powershell/latest/reference/Index.html). 

Ahora está listo para probar los tutoriales. Siga los enlaces provistos al principio de cada sección.

# Ejemplo 1: propietario del bucket que concede permisos de bucket a sus usuarios
<a name="example-walkthroughs-managing-access-example1"></a>

**importante**  
Conceder permisos a roles de IAM es preferible a conceder permisos a usuarios individuales. Para obtener más información acerca de cómo conceder permisos a roles de IAM, consulte [Descripción de permisos entre cuentas y uso de roles de IAM](example-walkthroughs-managing-access-example4.md#access-policies-walkthrough-example4-overview).

**Topics**
+ [Prepararse para el tutorial](#grant-permissions-to-user-in-your-account-step0)
+ [Paso 1: Creación de recursos en la cuenta A y concesión de permisos](#grant-permissions-to-user-in-your-account-step1)
+ [Paso 2: Probar los permisos](#grant-permissions-to-user-in-your-account-test)

En este tutorial, una Cuenta de AWS es propietaria de un bucket y la cuenta incluye un usuario de IAM. De forma predeterminada, el usuario no tiene permisos. La cuenta principal debe conceder permisos al usuario para realizar cualquier tarea. El propietario del bucket y la cuenta principal son el mismo. Por tanto, para conceder permisos al usuario en el bucket, la Cuenta de AWS puede utilizar una política de bucket, una política de usuario o ambas. El propietario de la cuenta concederá algunos permisos utilizando una política de bucket y otros permisos mediante una política de usuario.

En los siguientes pasos se resume el tutorial:

![\[Diagrama que muestra una cuenta de AWS que concede permisos.\]](http://docs.aws.amazon.com/es_es/AmazonS3/latest/userguide/images/access-policy-ex1.png)


1. El administrador de la cuenta crea una política de bucket en la que se concede un conjunto de permisos al usuario.

1. El administrador de la cuenta adjunta una política de usuario al usuario, en la que se conceden permisos adicionales.

1. A continuación, el usuario prueba los permisos concedidos tanto mediante la política de bucket como mediante la política de usuario.

Para este ejemplo, necesitará una Cuenta de AWS. En lugar de usar las credenciales de usuario raíz de la cuenta, creará un usuario administrador (consulte [Acerca del uso de un usuario administrador para crear recursos y conceder permisos](example-walkthroughs-managing-access.md#about-using-root-credentials)). Nos referimos a la Cuenta de AWS y al usuario administrador como se muestra en la siguiente tabla.


| ID de cuenta | Cuenta denominada | Usuario administrador de la cuenta | 
| --- | --- | --- | 
|  *1111-1111-1111*  |  Cuenta A  |  AccountAadmin  | 

**nota**  
El usuario administrador de este ejemplo es **AccountAdmin**, que hace referencia a la cuenta A y no **AccountAdmin**.

Todas las tareas de creación de usuarios y concesión de permisos se realizan en la Consola de administración de AWS. Para verificar los permisos, en la explicación se utilizan herramientas de la línea de comandos, AWS Command Line Interface (AWS CLI) y AWS Tools for Windows PowerShell, por lo que no necesita escribir código.

## Prepararse para el tutorial
<a name="grant-permissions-to-user-in-your-account-step0"></a>

1. Asegúrese de tener una Cuenta de AWS que cuente con un usuario con privilegios de administrador.

   1. Si lo necesita, regístrese para obtener una Cuenta de AWS. Nos referiremos a esta cuenta como Cuenta A.

      1.  Vaya a [https://aws.amazon.com/s3](https://aws.amazon.com/s3) y elija **Crear una cuenta de AWS**. 

      1. Siga las instrucciones en pantalla.

         AWSCuando la cuenta esté activada y lista para usar, lo notificará por email.

   1. En la Cuenta A, cree un usuario administrador **AccountAadmin**. Con las credenciales de la Cuenta A, inicie sesión en la [consola de IAM](https://console.aws.amazon.com/iam/home?#home) y realice los siguientes pasos: 

      1. Cree al usuario **AccountAadmin** y tenga en cuenta las credenciales de seguridad del mismo. 

         Para obtener instrucciones, consulte [Creación de un usuario de IAM en la Cuenta de AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html) en la *Guía del usuario de IAM*. 

      1. Conceda privilegios de administrador a **AccountAadmin** adjuntando una política de usuario que le conceda acceso total. 

         Para obtener instrucciones, consulte [Administración de políticas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage.html) en la *Guía del usuario de IAM*. 

      1. Tenga en cuenta la **URL de inicio de sesión de usuario de IAM** para **AccountAadmin**. Tendrá que usar esta dirección URL al iniciar sesión en la Consola de administración de AWS. Para obtener más información sobre dónde encontrar la URL de inicio de sesión, consulte [Iniciar sesión en la Consola de administración de AWS como usuario de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_how-users-sign-in.html) en la *Guía del usuario de IAM*. Tenga en cuenta la URL de cada una de las cuentas.

1. Configure AWS CLI o AWS Tools for Windows PowerShell. Asegúrese de guardar las credenciales del usuario administrador de la siguiente manera:
   + Si utiliza la AWS CLI, cree un perfil, `AccountAadmin`, en el archivo de configuración.
   + Si usa AWS Tools for Windows PowerShell, asegúrese de almacenar las credenciales para la sesión como `AccountAadmin`.

   Para obtener instrucciones, consulte [Configuración de las herramientas para los tutoriales](policy-eval-walkthrough-download-awscli.md). 

## Paso 1: Creación de recursos en la cuenta A y concesión de permisos
<a name="grant-permissions-to-user-in-your-account-step1"></a>

Con las credenciales del usuario `AccountAadmin` en la Cuenta A y la URL especial de inicio de sesión del usuario de IAM, inicie sesión en la Consola de administración de AWS y realice los siguientes pasos:

1. Creación de recursos de un bucket y un usuario de IAM

   1. En la consola de Amazon S3, cree un bucket. Tenga en cuenta la Región de AWS en la que creó el bucket. Para obtener instrucciones, consulte [Creación de un bucket de uso general](create-bucket-overview.md). 

   1. En la [consola de IAM](https://console.aws.amazon.com/iam/), haga lo siguiente: 

      1. Cree un usuario llamado Dave.

         Para obtener instrucciones paso a paso, consulte [Creación de usuarios de IAM (consola)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html#id_users_create_console) en la *Guía del usuario de IAM*. 

      1. Tenga en cuenta las credenciales de `UserDave`.

      1. Tenga en cuenta el nombre de recurso de Amazon (ARN) para el usuario Dave. En la [consola de IAM](https://console.aws.amazon.com/iam/), seleccione el usuario y en la pestaña **Resumen** podrá ver el ARN del usuario.

1. Concesión de permisos. 

   Dado que la cuenta propietaria del bucket y la cuenta principal a la que pertenece el usuario coinciden, la Cuenta de AWS puede conceder permisos al usuario mediante una política de bucket, una política de usuario o ambas. En este ejemplo, usará ambas. Si el objeto también es propiedad de la misma cuenta, el propietario del bucket puede conceder permisos de objeto en la política del bucket (o una política de IAM).

   1. En la consola de Amazon S3, asocie la siguiente política de bucket a *awsexamplebucket1*. 

      La política tiene dos instrucciones: 
      + En la primera instrucción se conceden a Dave los permisos de operación en el bucket `s3:GetBucketLocation` y `s3:ListBucket`.
      + En la segunda instrucción se concede el permiso `s3:GetObject`. Dado que la Cuenta A también es propietaria del objeto, el administrador de la cuenta puede conceder el permiso `s3:GetObject`. 

      En la instrucción `Principal`, el ARN del usuario es lo que identifica a Dave. Para obtener más información sobre los elementos de las políticas, consulte [Políticas y permisos en Amazon S3](access-policy-language-overview.md).

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Sid": "statement1",
                  "Effect": "Allow",
                  "Principal": {
                      "AWS": "arn:aws:iam::111122223333:user/Dave"
                  },
                  "Action": [
                      "s3:GetBucketLocation",
                      "s3:ListBucket"
                  ],
                  "Resource": [
                      "arn:aws:s3:::awsexamplebucket1"
                  ]
              },
              {
                  "Sid": "statement2",
                  "Effect": "Allow",
                  "Principal": {
                      "AWS": "arn:aws:iam::111122223333:user/Dave"
                  },
                  "Action": [
                      "s3:GetObject"
                  ],
                  "Resource": [
                      "arn:aws:s3:::awsexamplebucket1/*"
                  ]
              }
          ]
      }
      ```

------

   1. Cree una política en línea para el usuario Dave utilizando la siguiente política. La política concede a Dave el permiso `s3:PutObject`. Tendrá que actualizar la política proporcionando el nombre del bucket.

------
#### [ JSON ]

****  

      ```
      {
         "Version":"2012-10-17",		 	 	 
         "Statement": [
            {
               "Sid": "PermissionForObjectOperations",
               "Effect": "Allow",
               "Action": [
                  "s3:PutObject"
               ],
               "Resource": [
                  "arn:aws:s3:::awsexamplebucket1/*"
               ]
            }
         ]
      }
      ```

------

      Para obtener instrucciones, consulte [Administración de políticas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_inline-using.html) en la *Guía del usuario de IAM*. Tenga en cuenta que tendrá que iniciar sesión en la consola con las credenciales de la Cuenta A.

## Paso 2: Probar los permisos
<a name="grant-permissions-to-user-in-your-account-test"></a>

Compruebe que los permisos funcionan con las credenciales de Dave. Puede utilizar uno de los dos procedimientos siguientes.

**Prueba de los permisos mediante la AWS CLI**

1. Actualice el archivo de configuración de la AWS CLI agregando el perfil de `UserDaveAccountA` siguiente. Para obtener más información, consulte [Configuración de las herramientas para los tutoriales](policy-eval-walkthrough-download-awscli.md).

   ```
   [profile UserDaveAccountA]
   aws_access_key_id = access-key
   aws_secret_access_key = secret-access-key
   region = us-east-1
   ```

1. Compruebe que Dave pueda realizar las operaciones según los permisos concedidos en la política de usuario. Cargue un objeto de muestra con el comando de la AWS CLI `put-object`. 

   El parámetro `--body` en el comando identifica el archivo de origen para cargar. Por ejemplo, si el archivo está en el directorio raíz del disco C: en un equipo Windows, debe especificar `c:\HappyFace.jpg`. El parámetro `--key` brinda el nombre de clave para el objeto.

   ```
   aws s3api put-object --bucket awsexamplebucket1 --key HappyFace.jpg --body HappyFace.jpg --profile UserDaveAccountA
   ```

   Ejecute el siguiente comando de la AWS CLI para obtener el objeto. 

   ```
   aws s3api get-object --bucket awsexamplebucket1 --key HappyFace.jpg OutputFile.jpg --profile UserDaveAccountA
   ```

**Prueba de los permisos mediante la AWS Tools for Windows PowerShell**

1. Almacene las credenciales de Dave como `AccountADave`. A continuación, use estas credenciales para `PUT` y `GET` un objeto.

   ```
   set-awscredentials -AccessKey AccessKeyID -SecretKey SecretAccessKey -storeas AccountADave
   ```

1. Cargue un objeto de muestra con el comando `Write-S3Object` de AWS Tools for Windows PowerShell con las credenciales almacenadas de Dave. 

   ```
   Write-S3Object -bucketname awsexamplebucket1 -key HappyFace.jpg -file HappyFace.jpg -StoredCredentials AccountADave
   ```

   Descargue el objeto que cargó en el paso anterior.

   ```
   Read-S3Object -bucketname awsexamplebucket1 -key HappyFace.jpg -file Output.jpg -StoredCredentials AccountADave
   ```

# Ejemplo 2: propietario del bucket que concede permisos de bucket entre cuentas
<a name="example-walkthroughs-managing-access-example2"></a>

**importante**  
Conceder permisos a roles de IAM es preferible a conceder permisos a usuarios individuales. Para obtener información sobre como hacer esto, consulte [Descripción de permisos entre cuentas y uso de roles de IAM](example-walkthroughs-managing-access-example4.md#access-policies-walkthrough-example4-overview).

**Topics**
+ [Prepararse para el tutorial](#cross-acct-access-step0)
+ [Paso 1: Realizar las tareas de la cuenta A](#access-policies-walkthrough-cross-account-permissions-acctA-tasks)
+ [Paso 2: Realizar las tareas de la cuenta B](#access-policies-walkthrough-cross-account-permissions-acctB-tasks)
+ [Paso 3: (Opcional) Intentar denegar explícitamente](#access-policies-walkthrough-example2-explicit-deny)
+ [Paso 4: Limpiar](#access-policies-walkthrough-example2-cleanup-step)

Una Cuenta de AWS, por ejemplo, la cuenta A, puede conceder a otra Cuenta de AWS, la cuenta B, permiso para acceder a sus recursos, como buckets y objetos. La cuenta B puede delegar estos permisos a los usuarios en la cuenta. En este escenario de ejemplo, un propietario de bucket concede permiso entre cuentas a otra cuenta para realizar operaciones de bucket específicas.

**nota**  
La cuenta A también puede usar una política de bucket para conceder permisos directamente a un usuario de la cuanta B. Sin embargo, el usuario necesitará permiso de la cuenta principal, la cuenta B, a la que pertenece el usuario, incluso aunque la cuenta B no tenga permisos de la cuenta A. El usuario podrá acceder al recurso siempre y cuando tenga permiso del propietario del recurso y la cuenta principal.

El siguiente es un resumen de los pasos del tutorial:

![\[Una Cuenta de AWS que concede a otra Cuenta de AWS permiso para acceder a sus recursos.\]](http://docs.aws.amazon.com/es_es/AmazonS3/latest/userguide/images/access-policy-ex2.png)


1. El usuario administrador de la cuenta A adjunta una política de bucket que concede permisos entre cuentas a la cuenta B para realizar operaciones de bucket específicas.

   Tenga en cuenta que el usuario administrador en la cuenta B heredará automáticamente los permisos.

1. El usuario administrador de la cuenta B le adjunta la política de usuario al usuario que delega los permisos que recibió de la cuenta A.

1. El usuario de la cuenta B luego accede a un objeto en el bucket que pertenece a la cuenta A para verificar los permisos.

Para este ejemplo, necesita dos cuentas. En la siguiente tabla se muestra cómo nos referimos a estas cuentas y a sus usuarios administradores. De acuerdo con las directrices de IAM (consulte [Acerca del uso de un usuario administrador para crear recursos y conceder permisos](example-walkthroughs-managing-access.md#about-using-root-credentials)), no utilizamos las credenciales de usuario raíz en este tutorial. En lugar de eso, usted crea un usuario administrador en cada cuenta y utiliza esas credenciales cuando se crean recursos y se conceden permisos. 


| Cuenta de AWSID de  | Cuenta denominada | Usuario administrador de la cuenta  | 
| --- | --- | --- | 
|  *1111-1111-1111*  |  Cuenta A  |  AccountAadmin  | 
|  *2222-2222-2222*  |  Cuenta B  |  AccountBadmin  | 

Todas las tareas de creación de usuarios y concesión de permisos se realizan en la Consola de administración de AWS. Para verificar los permisos, en la explicación se utilizan herramientas de línea de comandos, AWS Command Line Interface (CLI) y AWS Tools for Windows PowerShell, por lo que no necesita escribir código.

## Prepararse para el tutorial
<a name="cross-acct-access-step0"></a>

1. Asegúrese de tener dos Cuentas de AWS y que cada cuenta tenga un usuario administrador, como se muestra en la tabla de la sección anterior.

   1. Si lo necesita, regístrese para obtener una Cuenta de AWS. 

   1. Con las credenciales de la cuenta A, inicie sesión en la [consola de IAM](https://console.aws.amazon.com/iam/home?#home) para crear el usuario administrador:

      1. Cree al usuario **AccountAadmin** y tenga en cuenta las credenciales de seguridad. Para obtener instrucciones, consulte [Creación de un usuario de IAM en la Cuenta de AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html) en la *Guía del usuario de IAM*. 

      1. Conceda privilegios de administrador a **AccountAadmin** adjuntando una política de usuario que le conceda acceso total. Para obtener instrucciones, consulte [Uso de políticas](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage.html) en la *guía del usuario de IAM*. 

   1. Mientras se encuentra en la consola de IAM, tenga en cuenta la **URL de inicio de sesión de usuario de IAM** en el **Panel**. Todos los usuarios de la cuenta deben utilizar esta dirección URL para iniciar sesión en la Consola de administración de AWS.

      Para obtener más información, consulte [Cómo los usuarios inician sesión en la cuenta](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_how-users-sign-in.html) en la *Guía del usuario de IAM*. 

   1. Repita el paso anterior con las credenciales de la cuenta B y cree el usuario administrador **AccountBadmin**.

1. Configure AWS Command Line Interface (AWS CLI) o AWS Tools for Windows PowerShell. Asegúrese de guardar las credenciales del usuario administrador de la siguiente manera:
   + Si está usando la AWS CLI, cree dos perfiles, `AccountAadmin` y `AccountBadmin`, en el archivo de configuración.
   + Si usa AWS Tools for Windows PowerShell, asegúrese de almacenar las credenciales para la sesión como `AccountAadmin` y `AccountBadmin`.

   Para obtener instrucciones, consulte [Configuración de las herramientas para los tutoriales](policy-eval-walkthrough-download-awscli.md). 

1. Guarde las credenciales de usuario administrador, también denominadas perfiles. Puede utilizar el nombre de perfil en lugar de especificar las credenciales para cada comando que escribe. Para obtener más información, consulte [Configuración de las herramientas para los tutoriales](policy-eval-walkthrough-download-awscli.md). 

   1. Agregue perfiles en el archivo de credenciales de la AWS CLI para cada uno de los usuarios administradores, `AccountAadmin` y `AccountBadmin` en las dos cuentas. 

      ```
      [AccountAadmin]
      aws_access_key_id = access-key-ID
      aws_secret_access_key = secret-access-key
      region = us-east-1
      
      [AccountBadmin]
      aws_access_key_id = access-key-ID
      aws_secret_access_key = secret-access-key
      region = us-east-1
      ```

   1. Si usa AWS Tools for Windows PowerShell, ejecute el siguiente comando.

      ```
      set-awscredentials –AccessKey AcctA-access-key-ID –SecretKey AcctA-secret-access-key –storeas AccountAadmin
      set-awscredentials –AccessKey AcctB-access-key-ID –SecretKey AcctB-secret-access-key –storeas AccountBadmin
      ```

## Paso 1: Realizar las tareas de la cuenta A
<a name="access-policies-walkthrough-cross-account-permissions-acctA-tasks"></a>

### Paso 1.1: Iniciar sesión en la Consola de administración de AWS
<a name="access-policies-walkthrough-cross-account-permissions-acctA-tasks-sign-in"></a>

Con la URL de inicio de sesión de usuario de IAM para la cuenta A, primero inicie sesión en la Consola de administración de AWS como el usuario **AccountAadmin**. Este usuario creará un bucket y le asociará una política. 

### Paso 1.2: Crear un bucket
<a name="access-policies-walkthrough-example2a-create-bucket"></a>

1. En la consola de Amazon S3, cree un bucket. En este ejercicio se asume que el bucket se crea en la Región de AWS Este de EE. UU. (Norte de Virginia) y se llama `amzn-s3-demo-bucket`.

   Para obtener instrucciones, consulte [Creación de un bucket de uso general](create-bucket-overview.md). 

1. Cargue un objeto de ejemplo en el bucket.

   Para obtener instrucciones, consulte [Paso 2: Cargar un objeto en el bucket](GetStartedWithS3.md#uploading-an-object-bucket). 

### Paso 1.3: Asociar una política de bucket para conceder permisos entre cuentas a la cuenta B
<a name="access-policies-walkthrough-example2a"></a>

La política de bucket concede los permisos de `s3:GetLifecycleConfiguration` y `s3:ListBucket` a la cuenta B. Se asume que aún sigue registrado en la consola con las credenciales de usuario **AccountAadmin**.

1. Adjunte la siguiente política de bucket a `amzn-s3-demo-bucket`. La política le concede a la cuenta B permiso para las acciones `s3:GetLifecycleConfiguration` y `s3:ListBucket`.

   Para obtener instrucciones, consulte [Agregar una política de bucket mediante la consola de Amazon S3](add-bucket-policy.md). 

------
#### [ JSON ]

****  

   ```
   {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
         {
            "Sid": "Example permissions",
            "Effect": "Allow",
            "Principal": {
               "AWS": "arn:aws:iam::111122223333:root"
            },
            "Action": [
               "s3:GetLifecycleConfiguration",
               "s3:ListBucket"
            ],
            "Resource": [
               "arn:aws:s3:::amzn-s3-demo-bucket"
            ]
         }
      ]
   }
   ```

------

1. Asegúrese de que la cuenta B (y por lo tanto el usuario administrador) pueda realizar las operaciones.
   + Verificación mediante la AWS CLI

     ```
     aws s3 ls s3://amzn-s3-demo-bucket --profile AccountBadmin
     aws s3api get-bucket-lifecycle-configuration --bucket amzn-s3-demo-bucket --profile AccountBadmin
     ```
   + Verificación mediante la AWS Tools for Windows PowerShell

     ```
     get-s3object -BucketName amzn-s3-demo-bucket -StoredCredentials AccountBadmin 
     get-s3bucketlifecycleconfiguration -BucketName amzn-s3-demo-bucket -StoredCredentials AccountBadmin
     ```

## Paso 2: Realizar las tareas de la cuenta B
<a name="access-policies-walkthrough-cross-account-permissions-acctB-tasks"></a>

Ahora, el administrador de la cuenta B crea un usuario, Dave, y delega los permisos que recibió de la cuenta A. 

### Paso 2.1: Iniciar sesión en la Consola de administración de AWS
<a name="access-policies-walkthrough-cross-account-permissions-acctB-tasks-sign-in"></a>

Con el URL de inicio de sesión de usuario de IAM para la cuenta B, primero inicie sesión en la Consola de administración de AWS con el usuario **AccountBadmin**. 

### Paso 2.2: Crear el usuario Dave en la cuenta B
<a name="access-policies-walkthrough-example2b-create-user"></a>

En la [Consola de IAM](https://console.aws.amazon.com/iam/), cree un usuario, **Dave**. 

Para obtener instrucciones, consulte [Creación de usuarios de IAM (consola)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html#id_users_create_console) en la *Guía del usuario de IAM*. 

### Paso 2.3: Delegar permisos al usuario Dave
<a name="access-policies-walkthrough-example2-delegate-perm-userdave"></a>

Cree una política en línea para el usuario Dave utilizando la siguiente política. Tendrá que proporcionar el nombre del bucket para actualizar la política.

Se asume que se ha registrado en la consola con las credenciales de usuario **AccountBadmin**.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Sid": "Example",
         "Effect": "Allow",
         "Action": [
            "s3:ListBucket"
         ],
         "Resource": [
            "arn:aws:s3:::amzn-s3-demo-bucket"
         ]
      }
   ]
}
```

------

Para obtener instrucciones, consulte [Administración de políticas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_inline-using.html) en la *Guía del usuario de IAM*.

### Paso 2.4: Probar los permisos
<a name="access-policies-walkthrough-example2b-user-dave-access"></a>

Ahora, Dave en la cuenta B puede indicar los contenidos de `amzn-s3-demo-bucket` que pertenece a la cuenta A. Puede usar cualquiera de los siguientes procedimientos para verificar los permisos. 

**Prueba de los permisos mediante la AWS CLI**

1. Agregue el perfil `UserDave` al archivo de configuración de la AWS CLI. Para obtener más información acerca del archivo de configuración, consulte [Configuración de las herramientas para los tutoriales](policy-eval-walkthrough-download-awscli.md).

   ```
   [profile UserDave]
   aws_access_key_id = access-key
   aws_secret_access_key = secret-access-key
   region = us-east-1
   ```

1. En el símbolo del sistema, ingrese el siguiente comando de la AWS CLI para asegurarse de que Dave ya pueda obtener una lista de objetos de `amzn-s3-demo-bucket` que pertenece a la cuenta A. Tenga en cuenta que el comando especifica el perfil `UserDave`.

   ```
   aws s3 ls s3://amzn-s3-demo-bucket --profile UserDave
   ```

   Dave no tiene ningún otro permiso. Por lo tanto, si intenta cualquier otra operación, como la siguiente configuración `get-bucket-lifecycle`, Amazon S3 deniega el permiso. 

   ```
   aws s3api get-bucket-lifecycle-configuration --bucket amzn-s3-demo-bucket --profile UserDave
   ```

**Prueba de los permisos mediante AWS Tools for Windows PowerShell**

1. Almacene las credenciales de Dave como `AccountBDave`.

   ```
   set-awscredentials -AccessKey AccessKeyID -SecretKey SecretAccessKey -storeas AccountBDave
   ```

1. Pruebe el comando List Bucket.

   ```
   get-s3object -BucketName amzn-s3-demo-bucket -StoredCredentials AccountBDave
   ```

   Dave no tiene ningún otro permiso. Por lo tanto, si intenta cualquier otra operación, como la siguiente `get-s3bucketlifecycleconfiguration`, Amazon S3 deniega el permiso. 

   ```
   get-s3bucketlifecycleconfiguration -BucketName amzn-s3-demo-bucket -StoredCredentials AccountBDave
   ```

## Paso 3: (Opcional) Intentar denegar explícitamente
<a name="access-policies-walkthrough-example2-explicit-deny"></a>

Puede tener permisos concedidos mediante el uso de una lista de control de acceso (ACL), una política de bucket o una política de usuario. Pero si se establece una denegación explícita a través de una política de bucket o una política de usuario, la denegación explícita tiene preferencia sobre cualquier otro permiso. Para las pruebas, actualice la política de bucket y niegue explícitamente los permisos de `s3:ListBucket` a la cuenta B. La política también concede el permiso de `s3:ListBucket`. Sin embargo, la denegación explícita prevalece, y la cuenta B o los usuarios de la cuenta B no podrán mostrar los objetos en `amzn-s3-demo-bucket`.

1. Con las credenciales de usuario `AccountAadmin` en la cuenta A, sustituya la política de bucket por lo siguiente. 

1. Ahora, si intenta obtener una lista de bucket con las credenciales de `AccountBadmin`, se le denegará el acceso.
   + Con la AWS CLI, ejecute el siguiente comando:

     ```
     aws s3 ls s3://amzn-s3-demo-bucket --profile AccountBadmin
     ```
   + Con la AWS Tools for Windows PowerShell, ejecute el siguiente comando:

     ```
     get-s3object -BucketName amzn-s3-demo-bucket -StoredCredentials AccountBDave
     ```

## Paso 4: Limpiar
<a name="access-policies-walkthrough-example2-cleanup-step"></a>

1. Después de que haya terminado de probar, puede realizar lo siguiente para limpiar:

   1. Inicie sesión en la Consola de administración de AWS ([Consola de administración de AWS](https://console.aws.amazon.com/)) con las credenciales de la cuenta A y haga lo siguiente:
     + En la consola de Amazon S3, elimine la política de bucket asociada a `amzn-s3-demo-bucket`. En **Propiedades** del bucket, elimine la política en la sección **Permisos**. 
     + Si se creó el bucket para este ejercicio, en la consola de Amazon S3, elimine los objetos y luego elimine el bucket. 
     + En la [consola de IAM](https://console.aws.amazon.com/iam/), quite el usuario `AccountAadmin`.

1. Inicie sesión en la [consola de IAM](https://console.aws.amazon.com/iam/) con las credenciales de la cuenta B. Elimine el usuario `AccountBadmin`. Para obtener instrucciones paso a paso, consulte [Eliminación de un usuario de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_manage.html#id_users_deleting) en la *Guía del usuario de IAM*.

# Ejemplo 3: propietario del bucket que concede a sus usuarios permisos para objetos que no posee
<a name="example-walkthroughs-managing-access-example3"></a>

**importante**  
Conceder permisos a roles de IAM es preferible a conceder permisos a usuarios individuales. Para obtener información sobre como hacer esto, consulte [Descripción de permisos entre cuentas y uso de roles de IAM](example-walkthroughs-managing-access-example4.md#access-policies-walkthrough-example4-overview).

**Topics**
+ [Paso 0: Prepararse para el tutorial](#access-policies-walkthrough-cross-account-acl-step0)
+ [Paso 1: Realizar las tareas de la cuenta A](#access-policies-walkthrough-cross-account-acl-acctA-tasks)
+ [Paso 2: Realizar las tareas de la cuenta B](#access-policies-walkthrough-cross-account-acl-acctB-tasks)
+ [Paso 3: Probar los permisos](#access-policies-walkthrough-cross-account-acl-verify)
+ [Paso 4: Limpiar](#access-policies-walkthrough-cross-account-acl-cleanup)

El escenario para este ejemplo es que el propietario de un bucket desea conceder permiso para acceder a objetos, pero no todos los objetos del bucket pertenecen al propietario del bucket. Para este ejemplo, el propietario del bucket intenta conceder permiso a usuarios en su propia cuenta.

El propietario del bucket puede habilitar otras Cuentas de AWS para cargar objetos. De forma predeterminada, el propietario del bucket no posee objetos escritos en un bucket por otra Cuenta de AWS. Los objetos pertenecen a las cuentas que los escriben en un bucket de S3. Si el propietario del bucket no posee objetos en el bucket, el propietario del objeto primero debe conceder permiso al propietario del bucket con una lista de control de acceso (ACL) del objeto. A continuación, el propietario del bucket puede conceder permisos a un objeto que no posee. Para obtener más información, consulte [Propiedad de los buckets y objetos de Amazon S3](access-policy-language-overview.md#about-resource-owner).

Si el propietario del bucket aplica la configuración de propietario del bucket obligatorio de S3 Object Ownership para el bucket, el propietario del bucket será el propietario de todos los objetos del bucket, incluidos los objetos escritos por otra Cuenta de AWS. Este enfoque resuelve el problema de que los objetos no pertenecen al propietario del bucket. A continuación, puede delegar permisos a los usuarios de su propia cuenta o a otras Cuentas de AWS.

**nota**  
S3 Object Ownership es una configuración de bucket de Amazon S3 que puede usar para controlar la propiedad de los objetos que se cargan en el bucket y para activar o desactivar las ACL. De forma predeterminada, la propiedad de objetos se establece en la configuración impuesta por el propietario del bucket. Además, todas las ACL están deshabilitadas. Cuando las ACL están deshabilitadas, el propietario del bucket posee todos los objetos del bucket y administra su acceso de forma exclusiva mediante políticas de administración de acceso.  
 La mayoría de los casos de uso modernos de Amazon S3 ya no requieren el uso de ACL. Le recomendamos desactivar las ACL, excepto en circunstancias en las que necesite controlar el acceso a cada objeto de manera individual. Si las ACL están desactivadas, puede usar políticas para controlar el acceso a todos los objetos del bucket, independientemente de quién haya subido los objetos al bucket. Para obtener más información, consulte [Control de la propiedad de los objetos y desactivación de las ACL del bucket](about-object-ownership.md).

En este ejemplo, asumimos que el propietario del bucket no ha aplicado la configuración de propietario del bucket obligatorio de Object Ownership. El propietario del bucket delega permiso a usuarios en su propia cuenta. A continuación, se muestra un resumen de los pasos del tutorial:

![\[el propietario de un bucket que concede permisos para objetos que no posee.\]](http://docs.aws.amazon.com/es_es/AmazonS3/latest/userguide/images/access-policy-ex3.png)


1. El usuario administrador de la cuenta A adjunta una política de bucket con dos instrucciones.
   + Conceda permiso entre cuentas a la cuenta B para cargar objetos.
   + Permita que un usuario en su propia cuenta pueda acceder a los objetos en el bucket.

1. El usuario administrador de la cuenta B carga objetos al bucket que pertenece a la cuenta A.

1. El administrador de la cuenta B actualiza la ACL de objetos y le concede al propietario del bucket permiso de control total sobre el objeto.

1. El usuario de la cuenta A lo verifica al acceder a los objetos en el bucket, independientemente de quién es el propietario.

Para este ejemplo, necesita dos cuentas. La siguiente tabla muestra cómo denominamos a estas cuentas y a los usuarios administradores en estas cuentas. En este tutorial, no utilizará las credenciales de usuario raíz de la cuenta, de acuerdo con las directrices recomendadas de IAM. Para obtener más información, consulte [Acerca del uso de un usuario administrador para crear recursos y conceder permisos](example-walkthroughs-managing-access.md#about-using-root-credentials). En cambio, usted crea un administrador en cada cuenta y usa esas credenciales para crear recursos y conceder permisos.


| Cuenta de AWSID de  | Cuenta denominada | Administrador en la cuenta  | 
| --- | --- | --- | 
|  *1111-1111-1111*  |  Cuenta A  |  AccountAadmin  | 
|  *2222-2222-2222*  |  Cuenta B  |  AccountBadmin  | 

Todas las tareas de creación de usuarios y concesión de permisos se realizan en la Consola de administración de AWS. Para verificar los permisos, en la explicación se utilizan herramientas de la línea de comandos, AWS Command Line Interface (AWS CLI) y AWS Tools for Windows PowerShell, por lo que no necesita escribir código. 

## Paso 0: Prepararse para el tutorial
<a name="access-policies-walkthrough-cross-account-acl-step0"></a>

1. Asegúrese de tener dos Cuentas de AWS y que cada cuenta tenga un administrador, como se muestra en la tabla de la sección anterior.

   1. Si lo necesita, regístrese para obtener una Cuenta de AWS. 

   1. Con las credenciales de la cuenta A, inicie sesión en la [consola de IAM](https://console.aws.amazon.com/iam/) y haga lo siguiente para crear un usuario administrador:
      + Cree al usuario **AccountAadmin** y tenga en cuenta las credenciales de seguridad del mismo. Para obtener más información sobre cómo agregar usuarios, consulte [Creación de un usuario de IAM en su Cuenta de AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html) en la *Guía del usuario de IAM*. 
      + Conceda permisos de administrador a **AccountAadmin** al asociar una política de usuario que conceda acceso completo. Para obtener instrucciones, consulte [Administración de políticas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage.html) en la *Guía del usuario de IAM*. 
      + En el **panel** de la [consola de IAM](https://console.aws.amazon.com/iam/), tenga en cuenta la **URL de inicio de sesión de usuario de IAM**. Los usuarios de esta cuenta deben usar esta dirección URL para iniciar sesión en la Consola de administración de AWS. Para obtener más información, consulte [Cómo los usuarios inician sesión en la cuenta](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_how-users-sign-in.html) en la *Guía del usuario de IAM*. 

   1. Repita el paso anterior con las credenciales de la cuenta B y cree el usuario administrador **AccountBadmin**.

1. Configure AWS CLI o Tools for Windows PowerShell. Asegúrese de guardar las credenciales de administrador de la siguiente manera:
   + Si está usando la AWS CLI, cree dos perfiles, `AccountAadmin` y `AccountBadmin`, en el archivo de configuración.
   + Si utiliza Tools for Windows PowerShell, asegúrese de almacenar las credenciales de la sesión como `AccountAadmin` y `AccountBadmin`.

   Para obtener instrucciones, consulte [Configuración de las herramientas para los tutoriales](policy-eval-walkthrough-download-awscli.md). 

## Paso 1: Realizar las tareas de la cuenta A
<a name="access-policies-walkthrough-cross-account-acl-acctA-tasks"></a>

Realice los siguientes pasos para la cuenta A:

### Paso 1.1: Iniciar sesión en la consola
<a name="access-policies-walkthrough-cross-account-permissions-acctA-tasks-sign-in-example3"></a>

Con la URL de inicio de sesión de usuario de IAM para la cuenta A, inicie sesión en la Consola de administración de AWS como el usuario **AccountAadmin**. Este usuario creará un bucket y le asociará una política. 

### Paso 1.2: Crear un bucket y un usuario y agregar una política de bucket para conceder permisos de usuario
<a name="access-policies-walkthrough-cross-account-acl-create-bucket"></a>

1. En la consola de Amazon S3, cree un bucket. En este ejercicio se supone que el bucket se crea en la Región de AWS Este de EE. UU. (Norte de Virginia) y el nombre es `amzn-s3-demo-bucket1`.

   Para obtener instrucciones, consulte [Creación de un bucket de uso general](create-bucket-overview.md). 

1. En la [Consola de IAM](https://console.aws.amazon.com/iam/), cree un usuario, **Dave**. 

   Para obtener instrucciones paso a paso, consulte [Creación de usuarios de IAM (consola)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html#id_users_create_console) en la *Guía del usuario de IAM*. 

1. Tenga en cuenta las credenciales del usuario Dave. 

1. En la consola de Amazon S3, adjunte la siguiente política de bucket al bucket `amzn-s3-demo-bucket1`. Para obtener instrucciones, consulte [Agregar una política de bucket mediante la consola de Amazon S3](add-bucket-policy.md). Siga los pasos para añadir una política de bucket. Para obtener información acerca de cómo buscar ID de cuenta, consulte [Búsqueda de su ID de Cuenta de AWS](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html#FindingYourAccountIdentifiers). 

   La política le concede a la cuenta B permisos para `s3:PutObject` y `s3:ListBucket`. La política también le concede al usuario `Dave` el permiso `s3:GetObject`. 

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "Statement1",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:root"
               },
               "Action": [
                   "s3:PutObject",
                   "s3:ListBucket"
               ],
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket1/*",
                   "arn:aws:s3:::amzn-s3-demo-bucket1"
               ]
           },
           {
               "Sid": "Statement3",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:user/Dave"
               },
               "Action": [
                   "s3:GetObject"
               ],
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket1/*"
               ]
           }
       ]
   }
   ```

------

## Paso 2: Realizar las tareas de la cuenta B
<a name="access-policies-walkthrough-cross-account-acl-acctB-tasks"></a>

Ahora que la cuenta B tiene permisos para realizar operaciones en el bucket de la cuenta A, el administrador de la cuenta B hace lo siguiente:
+ Carga un objeto en el bucket de la cuenta A 
+ Agrega un permiso en la ACL de objetos para concederle el control total al propietario del bucket de la cuenta A

**Uso de AWS CLI**

1. Mediante el uso del comando `put-object` de la AWS CLI, cargue un objeto. El parámetro `--body` en el comando identifica el archivo de origen para cargar. Por ejemplo, si el archivo está en la unidad `C:` de un equipo Windows, debe especificar `c:\HappyFace.jpg`. El parámetro `--key` brinda el nombre de clave para el objeto. 

   ```
   aws s3api put-object --bucket amzn-s3-demo-bucket1 --key HappyFace.jpg --body HappyFace.jpg --profile AccountBadmin
   ```

1. Añada un permiso a la ACL de objetos para concederle al propietario del bucket el control total del objeto. Para obtener información acerca de cómo encontrar un ID de usuario canónico, consulte [Buscar el ID de usuario canónico de su Cuenta de AWS](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-identifiers.html#FindCanonicalId) en la *Guía de referencia de la Administración de cuentas de AWS*.

   ```
   aws s3api put-object-acl --bucket amzn-s3-demo-bucket1 --key HappyFace.jpg --grant-full-control id="AccountA-CanonicalUserID" --profile AccountBadmin
   ```

**Uso de Tools for Windows PowerShell**

1. Mediante el uso del comando `Write-S3Object`, cargue un objeto. 

   ```
   Write-S3Object -BucketName amzn-s3-demo-bucket1 -key HappyFace.jpg -file HappyFace.jpg -StoredCredentials AccountBadmin
   ```

1. Añada un permiso a la ACL de objetos para concederle al propietario del bucket el control total del objeto.

   ```
   Set-S3ACL -BucketName amzn-s3-demo-bucket1 -Key HappyFace.jpg -CannedACLName "bucket-owner-full-control" -StoredCreden
   ```

## Paso 3: Probar los permisos
<a name="access-policies-walkthrough-cross-account-acl-verify"></a>

Ahora verifique que el usuario Dave en la cuenta A pueda acceder al objeto propiedad de la cuenta B.

**Mediante AWS CLI**

1. Agregue las credenciales del usuario Dave al archivo de configuración de la AWS CLI y cree un nuevo perfil, `UserDaveAccountA`. Para obtener más información, consulte [Configuración de las herramientas para los tutoriales](policy-eval-walkthrough-download-awscli.md).

   ```
   [profile UserDaveAccountA]
   aws_access_key_id = access-key
   aws_secret_access_key = secret-access-key
   region = us-east-1
   ```

1. Ejecute el comando `get-object` CLI para descargarlo `HappyFace.jpg` y guardarlo localmente. Para proporcionar las credenciales del usuario Dave, debe añadir el parámetro `--profile`.

   ```
   aws s3api get-object --bucket amzn-s3-demo-bucket1 --key HappyFace.jpg Outputfile.jpg --profile UserDaveAccountA
   ```

**Uso de Tools for Windows PowerShell**

1. Almacene las credenciales del usuario Dave de AWS, como `UserDaveAccountA`, en el almacén persistente. 

   ```
   Set-AWSCredentials -AccessKey UserDave-AccessKey -SecretKey UserDave-SecretAccessKey -storeas UserDaveAccountA
   ```

1. Ejecute el `Read-S3Object` comando para descargar el `HappyFace.jpg` objeto y guárdelo localmente. Para proporcionar las credenciales del usuario Dave, debe añadir el parámetro `-StoredCredentials`. 

   ```
   Read-S3Object -BucketName amzn-s3-demo-bucket1 -Key HappyFace.jpg -file HappyFace.jpg  -StoredCredentials UserDaveAccountA
   ```

## Paso 4: Limpiar
<a name="access-policies-walkthrough-cross-account-acl-cleanup"></a>

1. Después de que haya terminado de probar, puede realizar lo siguiente para limpiar:

   1. Inicie sesión en la [Consola de administración de AWS](https://console.aws.amazon.com/) con las credenciales de la cuenta A y haga lo siguiente:
     + En la consola de Amazon S3, elimine la política de bucket asociada a *amzn-s3-demo-bucket1*. En **Propiedades** del bucket, elimine la política en la sección **Permisos**. 
     + Si se creó el bucket para este ejercicio, en la consola de Amazon S3, elimine los objetos y luego elimine el bucket. 
     + En la [consola de IAM](https://console.aws.amazon.com/iam/), quite el usuario **AccountAadmin**. Para obtener instrucciones paso a paso, consulte [Eliminación de un usuario de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_manage.html#id_users_deleting) en la *Guía del usuario de IAM*.

1. Inicie sesión en la [Consola de administración de AWS](https://console.aws.amazon.com/) con las credenciales de la cuenta B. En la [consola de IAM](https://console.aws.amazon.com/iam/), elimine el usuario **AccountBadmin**.

# Ejemplo 4: Propietario de bucket que concede permisos entre cuentas para objetos que no le pertenecen
<a name="example-walkthroughs-managing-access-example4"></a>

**Topics**
+ [Descripción de permisos entre cuentas y uso de roles de IAM](#access-policies-walkthrough-example4-overview)
+ [Paso 0: Prepararse para el tutorial](#access-policies-walkthrough-example4-step0)
+ [Paso 1: Realizar las tareas de la cuenta A](#access-policies-walkthrough-example4-step1)
+ [Paso 2: Realizar las tareas de la cuenta B](#access-policies-walkthrough-example4-step2)
+ [Paso 3: Realización de las tareas de la cuenta C](#access-policies-walkthrough-example4-step3)
+ [Paso 4: Limpiar](#access-policies-walkthrough-example4-step6)
+ [Recursos relacionados](#RelatedResources-managing-access-example4)

 En este ejemplo de escenario, usted posee un bucket y ha permitido que otras Cuentas de AWS carguen objetos. Si ha aplicado la configuración de propietario del bucket obligatorio de S3 Object Ownership para el bucket, será propietario de todos los objetos del bucket, incluidos los objetos escritos por otra Cuenta de AWS. Este enfoque resuelve el problema de que los objetos no le pertenecen, el propietario del bucket. A continuación, puede delegar permisos a los usuarios de su propia cuenta o a otras Cuentas de AWS. Supongamos que la configuración de propietario del bucket obligatorio de S3 Object Ownership no está habilitada. Es decir, el bucket puede tener objetos que pertenecen a otras Cuentas de AWS. 

Suponga que como propietario del bucket debe conceder permiso entre cuentas para ciertos objetos, independientemente de quién sea el propietario, a un usuario en otra cuenta. Por ejemplo, ese usuario podría ser una aplicación de facturación que necesita obtener acceso a los metadatos de los objetos. Hay dos cuestiones clave:
+ El propietario del bucket no tiene permisos sobre aquellos objetos creados por otras Cuentas de AWS. Para que el propietario del bucket conceda permisos para objetos que no le pertenecen, el propietario del objeto primero debe conceder permiso al propietario del bucket. El propietario del objeto es la Cuenta de AWS que creó los objetos. Luego, el propietario del bucket puede delegar esos permisos.
+ La cuenta propietaria del bucket delega permisos a usuarios en su propia cuenta (consulte [Ejemplo 3: propietario del bucket que concede a sus usuarios permisos para objetos que no posee](example-walkthroughs-managing-access-example3.md)). Sin embargo, la cuenta del propietario del bucket no puede delegar permisos en otra Cuentas de AWS porque no se admite la delegación entre cuentas. 

En este caso, el propietario del bucket puede crear un rol de AWS Identity and Access Management (IAM) con permiso para acceder a los objetos. A continuación, el propietario del bucket puede conceder permiso a otra Cuenta de AWS para asumir el rol, habilitarlo de manera temporal para acceder a los objetos en el bucket. 

**nota**  
S3 Object Ownership es una configuración de bucket de Amazon S3 que puede usar para controlar la propiedad de los objetos que se cargan en el bucket y para activar o desactivar las ACL. De forma predeterminada, la propiedad de objetos se establece en la configuración impuesta por el propietario del bucket. Además, todas las ACL están deshabilitadas. Cuando las ACL están deshabilitadas, el propietario del bucket posee todos los objetos del bucket y administra su acceso de forma exclusiva mediante políticas de administración de acceso.  
 La mayoría de los casos de uso modernos de Amazon S3 ya no requieren el uso de ACL. Le recomendamos desactivar las ACL, excepto en circunstancias en las que necesite controlar el acceso a cada objeto de manera individual. Si las ACL están desactivadas, puede usar políticas para controlar el acceso a todos los objetos del bucket, independientemente de quién haya subido los objetos al bucket. Para obtener más información, consulte [Control de la propiedad de los objetos y desactivación de las ACL del bucket](about-object-ownership.md).

## Descripción de permisos entre cuentas y uso de roles de IAM
<a name="access-policies-walkthrough-example4-overview"></a>

 Las funciones de IAM hacen posible diferentes situaciones en las que se delega acceso a los recursos y el acceso a otras cuentas es una de las situaciones clave. En este ejemplo, el propietario del bucket, la cuenta A, usa un rol de IAM para delegar de forma temporal el acceso a los objetos entre cuentas a usuarios de otra Cuenta de AWS, la cuenta C. Cada rol de IAM que crea trae adjuntas las siguientes dos políticas:
+ Una política de confianza que identifica a otra Cuenta de AWS para que pueda asumir el rol.
+ Una política de acceso que define qué permisos, por ejemplo, `s3:GetObject`, se conceden cuando alguien asume la función. Para ver una lista de permisos que puede especificar en una política, consulte [Acciones de políticas para Amazon S3](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-actions).

La Cuenta de AWS que se identifica en la política de confianza luego otorga permiso a su usuario para asumir el rol. El usuario puede luego realizar lo siguiente para obtener acceso a los objetos:
+ Asumir la función y, como respuesta, obtener las credenciales de seguridad temporales 
+ Con las credenciales de seguridad temporales, obtener acceso a los objetos en el bucket

Para obtener más información acerca de los roles de IAM, consulte [Roles de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) en la *guía del usuario de IAM*. 

A continuación, se muestra un resumen de los pasos del tutorial:

![\[Permisos entre cuentas con roles de IAM.\]](http://docs.aws.amazon.com/es_es/AmazonS3/latest/userguide/images/access-policy-ex4.png)


1. El usuario administrador de la cuenta A asocia una política de bucket por la cual concede un permiso condicional a la cuenta B para cargar objetos.

1. El administrador de la cuenta A crea un rol de IAM, con la cual establece una relación de confianza con la cuenta C, de manera que los usuarios de esa cuenta puedan obtener acceso a la cuenta A. La política de acceso asociada con la función limita lo que el usuario de la cuenta C puede hacer cuando el usuario obtiene acceso a la cuenta A.

1. El administrador de la cuenta B carga un objeto al bucket que pertenece a la cuenta A y concede un permiso de control absoluto al propietario del bucket.

1. El administrador de la cuenta C crea un usuario y asocia una política de usuario que le permite al usuario asumir la función.

1. El usuario de la cuenta C primero asume la función, la cual le devuelve al usuario credenciales de seguridad temporales. Con esas credenciales temporales, el usuario obtiene acceso a los objetos en el bucket.

Para este ejemplo, se necesitan tres cuentas. La siguiente tabla muestra cómo denominamos a estas cuentas y a los usuarios administradores en estas cuentas. De acuerdo con las directrices de IAM (consulte [Acerca del uso de un usuario administrador para crear recursos y conceder permisos](example-walkthroughs-managing-access.md#about-using-root-credentials)), no utilizamos las credenciales de Usuario raíz de la cuenta de AWS en este tutorial. En lugar de eso, usted crea un usuario administrador en cada cuenta y utiliza esas credenciales cuando se crean recursos y se conceden permisos.


| Cuenta de AWSID de  | Cuenta denominada | Usuario administrador de la cuenta  | 
| --- | --- | --- | 
|  *1111-1111-1111*  |  Cuenta A  |  AccountAadmin  | 
|  *2222-2222-2222*  |  Cuenta B  |  AccountBadmin  | 
|  *3333-3333-3333*  |  Cuenta C  |  AccountCadmin  | 



## Paso 0: Prepararse para el tutorial
<a name="access-policies-walkthrough-example4-step0"></a>

**nota**  
Puede que quiera abrir un editor de textos y tomar notas a medida que se explican los pasos. Específicamente, necesitará ID de cuentas, ID de usuarios canónicos, URL de inicio de sesión de usuarios de IAM para cada cuenta a fin de conectarse a la consola y Amazon Resource Name (ARN, Nombres de recursos de Amazon) de los usuarios de IAM y roles. 

1. Asegúrese de tener tres Cuentas de AWS y que cada cuenta tenga un usuario administrador, como se muestra en la tabla de la sección anterior.

   1. Regístrese para obtener Cuentas de AWS, según sea necesario. Denominamos estas cuentas cuenta A, cuenta B y cuenta C.

   1. Con las credenciales de la cuenta A, inicie sesión en la [consola de IAM](https://console.aws.amazon.com/iam/home?#home) y haga lo siguiente para crear un usuario administrador:
      + Cree al usuario **AccountAadmin** y tenga en cuenta sus credenciales de seguridad. Para obtener más información sobre cómo agregar usuarios, consulte [Creación de un usuario de IAM en su Cuenta de AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html) en la *Guía del usuario de IAM*. 
      + Conceda privilegios de administrador a **AccountAadmin** adjuntando una política de usuario que le conceda acceso total. Para obtener instrucciones, consulte [Administración de políticas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage.html) en la *Guía del usuario de IAM*. 
      + En el **panel** de la consola de IAM, tenga en cuenta la **URL de inicio de sesión de usuario de IAM**. Los usuarios de esta cuenta deben usar esta dirección URL para iniciar sesión en la Consola de administración de AWS. Para obtener más información, consulte [Inicio de sesión en la Consola de administración de AWS como usuario de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_how-users-sign-in.html) en la *Guía del usuario de IAM*. 

   1. Repita el paso anterior para crear usuarios administradores de la cuenta B y de la cuenta C.

1. Para la cuenta C, tenga en cuenta el ID de usuario canónico. 

   Cuando crea un rol de IAM en la cuenta A, la política de confianza le concede a la cuenta C el permiso para asumir la función mediante la especificación del ID de la cuenta. Puede buscar la información de la cuenta de la siguiente manera:

   1. Utilice el ID de la Cuenta de AWS o el alias de la cuenta, el nombre de usuario de IAM y la contraseña para iniciar sesión en la [consola de Amazon S3](https://console.aws.amazon.com/s3/).

   1. Elija el nombre de un bucket de Amazon S3 para ver los detalles de dicho bucket.

   1. Elija la pestaña **Permissions (Permisos)** y, a continuación, elija **Access Control List (Lista de control de acceso)**. 

   1. En la sección **Acceso para la Cuenta de AWS**, en la columna **Cuenta**, hay un identificador largo, por ejemplo, `c1daexampleaaf850ea79cf0430f33d72579fd1611c97f7ded193374c0b163b6`. Este es el ID de usuario canónico.

1. Cuando cree una política de bucket, necesitará la siguiente información. Tenga en cuenta estos valores:
   + **El ID de usuario canónico de la cuenta A**: cuando el administrador de la cuenta A concede el permiso condicional para cargar objetos al administrador de la cuenta B, la condición especifica el ID de usuario canónico del usuario de la cuenta A que debe obtener control absoluto de los objetos. 
**nota**  
El ID de usuario canónico es un concepto exclusivo de Amazon S3. Es la versión ofuscada de 64 caracteres del ID de la cuenta. 
   + **ARN de usuario para el administrador de la cuenta B**: puede encontrar el ARN del usuario en la [consola de IAM](https://console.aws.amazon.com/iam/). Debe seleccionar el usuario y buscar el ARN del usuario en la pestaña **Resumen**.

     En la política de bucket, se concede permiso al `AccountBadmin` para cargar objetos y se usa el ARN para especificar el usuario. El siguiente es un ejemplo de valor de ARN:

     ```
     arn:aws:iam::AccountB-ID:user/AccountBadmin
     ```

1. Configure AWS Command Line Interface (CLI) o AWS Tools for Windows PowerShell. Asegúrese de guardar las credenciales del usuario administrador de la siguiente manera:
   + Si está usando la AWS CLI, cree perfiles, `AccountAadmin` y `AccountBadmin`, en el archivo de configuración.
   + Si usa AWS Tools for Windows PowerShell, asegúrese de almacenar las credenciales para la sesión como `AccountAadmin` y `AccountBadmin`.

   Para obtener instrucciones, consulte [Configuración de las herramientas para los tutoriales](policy-eval-walkthrough-download-awscli.md).

## Paso 1: Realizar las tareas de la cuenta A
<a name="access-policies-walkthrough-example4-step1"></a>

En este ejemplo, la cuenta A es la propietaria del bucket. Por lo tanto, el usuario AccountAadmin en la cuenta A hará lo siguiente: 
+ Crear un bucket.
+ Asocie una política de bucket que conceda el permiso al administrador de la cuenta B para cargar objetos.
+ Cree un rol de IAM que conceda a la cuenta C el permiso para asumir el rol, de manera que pueda acceder a los objetos en el bucket.

### Paso 1.1: Iniciar sesión en la Consola de administración de AWS
<a name="access-policies-walkthrough-cross-account-permissions-acctA-tasks-sign-in-example4"></a>

Con la URL de inicio de sesión de usuario de IAM para la cuenta A, primero inicie sesión en la Consola de administración de AWS como el usuario **AccountAadmin**. Este usuario creará un bucket y le asociará una política. 

### Paso 1.2: Crear un bucket y asociar una política de bucket
<a name="access-policies-walkthrough-example2d-step1-1"></a>

En la consola de Amazon S3, haga lo siguiente:

1. Cree un bucket. Para este ejercicio, se supone que el nombre del bucket es `amzn-s3-demo-bucket1`.

   Para obtener instrucciones, consulte [Creación de un bucket de uso general](create-bucket-overview.md). 

1. Adjunte la siguiente política de bucket. La política concede permiso condicional al permiso de administrador de la cuenta B para cargar objetos.

   Actualice la política proporcionando sus propios valores para `amzn-s3-demo-bucket1`, `AccountB-ID` y `CanonicalUserId-of-AWSaccountA-BucketOwner`. 

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "111",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:user/AccountBadmin"
               },
               "Action": "s3:PutObject",
               "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/*"
           },
           {
               "Sid": "112",
               "Effect": "Deny",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:user/AccountBadmin"
               },
               "Action": "s3:PutObject",
               "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/*",
               "Condition": {
                   "StringNotEquals": {
                       "s3:x-amz-grant-full-control": "id=CanonicalUserId-of-AWSaccountA-BucketOwner"
                   }
               }
           }
       ]
   }
   ```

------

### Paso 1.3: Creación de un rol de IAM para permitir a la cuenta C el acceso entre cuentas en la cuenta A
<a name="access-policies-walkthrough-example2d-step1-2"></a>

En la [Consola de IAM](https://console.aws.amazon.com/iam/), cree un rol de IAM (**examplerole**) que conceda permiso a la cuenta C para asumir el rol. Asegúrese de que sigue registrado como administrador de la cuenta A, ya que el rol se debe crear en la cuenta A.

1. Antes de crear el rol, prepare la política administrada que define los permisos que requiere el rol. Más tarde, en otro paso, la asociará al rol.

   1. En el panel de navegación de la izquierda, elija **Políticas** y, a continuación, elija **Crear política**.

   1. Junto a **Create Your Own Policy**, seleccione **Select**.

   1. Escriba **access-accountA-bucket** en el campo **Nombre de la política**.

   1. Copie la siguiente política de acceso y péguela en el campo **Documento de la política**. La política de acceso le concede al rol el permiso de `s3:GetObject`, de manera que cuando el usuario de la cuenta C asuma el rol, solo pueda realizar la operación `s3:GetObject`.

------
#### [ JSON ]

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/*"
          }
        ]
      }
      ```

------

   1. Seleccione **Crear política**.

      La nueva política aparece en la lista de políticas administradas.

1. En el panel de navegación de la izquierda, elija **Roles** y, a continuación, elija **Creación de rol nuevo**.

1. En **Seleccionar tipo de rol**, seleccione **Rol para acceso entre cuentas** y, luego, elija el botón **Seleccionar** ubicado al lado de **Proporcionar acceso entre Cuentas de AWS de su propiedad**.

1. Escriba el ID de la cuenta C.

   Para este tutorial, no es obligatorio que los usuarios tengan la autenticación multifactor (MFA) para asumir el rol, por lo que deje esa opción desmarcada.

1. Seleccione **Next Step** para establecer los permisos que se asociarán al rol.

1. 

   Seleccione la casilla de verificación situada junto a la política **access-accountA-bucket** que creó y, a continuación, elija **Siguiente paso**.

   Aparece la página Review para que confirme las configuraciones de la función antes de crearla. Un elemento muy importante para tener en cuenta en esta página es el enlace que puede enviar a los usuarios que necesitan usar esta función. Los usuarios que hacen clic en el enlace se dirigen directamente a la página **Cambio de rol** con los campos ID de cuenta y Nombre de rol ya completados. También puede ver este enlace más tarde, en la página **Role Summary** de cualquier rol con permisos entre cuentas.

1. Escriba `examplerole` para el nombre del rol y, luego, elija **Siguiente paso**.

1. Después de revisar el rol, elija **Crear rol**.

   La función `examplerole` se muestra en la lista de funciones.

1. Elija el nombre del rol `examplerole`.

1. Seleccione la pestaña **Relaciones de confianza**.

1. Elija **Mostrar el documento de política** y verifique que la política de confianza que se muestra coincide con la siguiente política.

   La siguiente política de confianza establece una relación de confianza con la cuenta C mediante la concesión del permiso para realizar la acción `sts:AssumeRole`. Para obtener más información, consulte [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) en la *Referencia de la API de AWS Security Token Service*.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:root"
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------

1. Tenga en cuenta el nombre de recurso de Amazon (ARN) del rol `examplerole` que creó. 

   Más adelante en los pasos siguientes, se asocia una política de usuario para permitirle a un usuario de IAM que asuma esta función y la función se identifica con el valor de ARN. 

## Paso 2: Realizar las tareas de la cuenta B
<a name="access-policies-walkthrough-example4-step2"></a>

El bucket de ejemplo que pertenece a la cuenta A necesita objetos que pertenezcan a otras cuentas. En este paso, el administrador de la cuenta B carga un objeto con las herramientas de línea de comandos.
+ Mediante el uso del comando `put-object` de la AWS CLI, cargue un objeto en `amzn-s3-demo-bucket1`. 

  ```
  aws s3api put-object --bucket amzn-s3-demo-bucket1 --key HappyFace.jpg --body HappyFace.jpg --grant-full-control id="canonicalUserId-ofTheBucketOwner" --profile AccountBadmin
  ```

  Tenga en cuenta lo siguiente:
  + El parámetro `--Profile` especifica el perfil `AccountBadmin`, por lo que el objeto pertenece a la cuenta B.
  + El parámetro `grant-full-control` le concede al propietario del bucket permiso de control absoluto sobre el objeto según lo requiere la política de bucket.
  + El parámetro `--body` identifica el archivo de origen para cargar. Por ejemplo, si el archivo está en la unidad C: de un equipo con Windows, se especifica `c:\HappyFace.jpg`. 

## Paso 3: Realización de las tareas de la cuenta C
<a name="access-policies-walkthrough-example4-step3"></a>

En los pasos anteriores, la cuenta A ya ha creado un rol, `examplerole`, mediante el cual se establece una relación de confianza con la cuenta C. Este rol permite a los usuarios de la cuenta C acceder a la cuenta A. En este paso, el administrador de la cuenta C crea un usuario (Dave) y le delega el permiso `sts:AssumeRole` que recibió de la cuenta A. Este enfoque le permite a Dave asumir `examplerole` y obtener acceso temporal a la cuenta A. La política de acceso que la cuenta A asoció al rol limita lo que Dave puede hacer cuando accede a la cuenta A, específicamente, obtener objetos en `amzn-s3-demo-bucket1`.

### Paso 3.1: Creación de un usuario en la cuenta C y delegación de un permiso para asumir examplerole
<a name="cross-acct-access-using-role-step3-1"></a>

1. Con la URL de inicio de sesión de usuario de IAM para la cuenta C, primero inicie sesión en la Consola de administración de AWS como el usuario **AccountCadmin**. 

   

1. En la [consola de IAM](https://console.aws.amazon.com/iam/), cree el usuario Dave. 

   Para obtener instrucciones paso a paso, consulte [Creación de usuarios de IAM (Consola de administración de AWS)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html#id_users_create_console) en la *Guía del usuario de IAM*. 

1. Tenga en cuenta las credenciales de Dave. Dave necesitará estas credenciales para asumir la función `examplerole`.

1. Cree una política integrada para el usuario de IAM Dave a fin de delegar el permiso `sts:AssumeRole` a Dave en el rol `examplerole` en la cuenta A. 

   1. En el panel de navegación de la izquierda, elija **Usuarios**.

   1. Elija el nombre de usuario **Dave**.

   1. En la página de detalles del usuario, seleccione la pestaña **Permisos** y, luego, expanda la sección **Políticas insertadas**.

   1. Seleccione **hacer clic aquí** (o **Crear política de usuario**).

   1. Elija **Custom Policy** y después **Select**.

   1. Escriba un nombre para la política en el campo **Nombre de la política**.

   1. Copie la siguiente política en el campo **Documento de la política**.

      Debe actualizar la política proporcionando el `AccountA-ID`.

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "sts:AssumeRole"
                  ],
                  "Resource": "arn:aws:iam::111122223333:role/examplerole"
              }
          ]
      }
      ```

------

   1. Seleccione **Apply Policy**.

1. Guarde las credenciales de Dave en el archivo de configuración de la AWS CLI mediante la agregación de otro perfil, `AccountCDave`.

   ```
   [profile AccountCDave]
   aws_access_key_id = UserDaveAccessKeyID
   aws_secret_access_key = UserDaveSecretAccessKey
   region = us-west-2
   ```

### Paso 3.2: Asunción del rol (examplerole) y acceso a los objetos
<a name="cross-acct-access-using-role-step3-2"></a>

Ahora Dave puede obtener acceso a los objetos en el bucket que pertenecen a la cuenta A de la siguiente manera:
+ Dave primero asume la función `examplerole` con sus propias credenciales. Esto devuelve credenciales temporales.
+ Con las credenciales temporales, Dave obtiene acceso a los objetos en el bucket de la cuenta A.

1. En el símbolo del sistema, ejecute el comando `assume-role` de la AWS CLI con el perfil `AccountCDave`. 

   Debe actualizar el valor de ARN en el comando proporcionando el `AccountA-ID` donde se define `examplerole`.

   ```
   aws sts assume-role --role-arn arn:aws:iam::AccountA-ID:role/examplerole --profile AccountCDave --role-session-name test
   ```

   Como respuesta, AWS Security Token Service (AWS STS) muestra credenciales de seguridad temporales (ID de clave de acceso, clave de acceso secreta y token de sesión).

1. Guarde las credenciales de seguridad temporales en el archivo de configuración de la AWS CLI en el perfil `TempCred`.

   ```
   [profile TempCred]
   aws_access_key_id = temp-access-key-ID
   aws_secret_access_key = temp-secret-access-key
   aws_session_token = session-token
   region = us-west-2
   ```

1. En el símbolo del sistema, ejecute el siguiente comando de la AWS CLI para acceder a los objetos con las credenciales temporales. Por ejemplo, el comando especifica la Application Programming Interface (API, Interfaz de programación de aplicaciones) de head-object para recuperar los metadatos de los objetos para el objeto `HappyFace.jpg`.

   ```
   aws s3api get-object --bucket amzn-s3-demo-bucket1 --key HappyFace.jpg SaveFileAs.jpg --profile TempCred
   ```

   Como la política de acceso asociada con la función `examplerole` permite las acciones, Amazon S3 procesa la solicitud. Puede probar cualquier otra acción en cualquier otro objeto del bucket.

   Si prueba cualquier otra acción, por ejemplo, `get-object-acl`, se le negará el permiso porque no se le permite esa acción al rol.

   ```
   aws s3api get-object-acl --bucket amzn-s3-demo-bucket1 --key HappyFace.jpg --profile TempCred
   ```

   Usamos el usuario Dave para asumir la función y obtener acceso al objeto con credenciales temporales. También podría ser una aplicación en la cuenta C que obtuviera acceso a los objetos en el bucket `amzn-s3-demo-bucket1`. La aplicación puede obtener las credenciales de seguridad temporales y la cuenta C puede delegar el permiso de la aplicación para asumir la función `examplerole`.

## Paso 4: Limpiar
<a name="access-policies-walkthrough-example4-step6"></a>

1. Después de que haya terminado de probar, puede realizar lo siguiente para limpiar:

   1. Inicie sesión en la [Consola de administración de AWS](https://console.aws.amazon.com/) con las credenciales de la cuenta A y haga lo siguiente:
     + En la consola de Amazon S3, elimine la política de bucket asociada a `amzn-s3-demo-bucket1`. En **Propiedades** del bucket, elimine la política en la sección **Permisos**. 
     + Si se creó el bucket para este ejercicio, en la consola de Amazon S3, elimine los objetos y luego elimine el bucket. 
     + En la [consola de IAM](https://console.aws.amazon.com/iam/), elimine el `examplerole` que ha creado en la cuenta A. Para obtener instrucciones paso a paso, consulte [Eliminación de un usuario de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_manage.html#id_users_deleting) en la *Guía del usuario de IAM*. 
     + En la [consola de IAM](https://console.aws.amazon.com/iam/), quite el usuario **AccountAadmin**.

1. Inicie sesión en la [consola de IAM](https://console.aws.amazon.com/iam/) con las credenciales de la cuenta B. Elimine el usuario **AccountBadmin**. 

1. Inicie sesión en la [consola de IAM](https://console.aws.amazon.com/iam/) con las credenciales de la cuenta C. Elimine **AccountCadmin** y el usuario Dave.

## Recursos relacionados
<a name="RelatedResources-managing-access-example4"></a>

Para obtener más información relacionada con este tutorial, consulte los siguientes recursos en la *Guía del usuario de IAM*:
+ [Creación de un rol para delegar permisos a un usuario de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html)
+ [Tutorial: Delegación del acceso entre Cuentas de AWS mediante roles de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial-cross-account-with-roles.html)
+ [Administración de políticas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage.html)

# Uso de roles vinculados a servicios para Amazon S3 Storage Lens
<a name="using-service-linked-roles"></a>

Si desea utilizar Amazon S3 Storage Lens para recopilar y agrupar métricas en todas sus cuentas de AWS Organizations, primero debe asegurarse de que S3 Storage Lens tenga el acceso de confianza habilitado por la cuenta de administración de la organización. Lente de almacenamiento de S3 crea un rol vinculado a servicios (SLR) para permitirle que obtenga la lista de Cuentas de AWS que pertenecen a la organización. Esta lista de cuentas la utiliza S3 Storage Lens para recopilar métricas de los recursos de S3 en todas las cuentas de miembros cuando se crean o actualizan el panel o las configuraciones de S3 Storage Lens.

Amazon S3 Storage Lens utiliza [roles vinculados a servicios](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role) de AWS Identity and Access Management (IAM). Un rol vinculado a un servicio es un tipo único de rol de IAM que está vinculado directamente a S3 Storage Lens. Los roles vinculados a servicios están predefinidos por Lente de almacenamiento de S3 e incluyen todos los permisos que el servicio requiere para llamar a otros Servicios de AWS en su nombre.

Un rol vinculado a un servicio simplifica la configuración de S3 Storage Lens porque ya no tendrá que agregar manualmente los permisos necesarios. S3 Storage Lens define los permisos de sus roles vinculados a servicios y, a menos que esté definido de otra manera, solo S3 Storage Lens puede asumir sus roles. Los permisos definidos incluyen las políticas de confianza y de permisos, y que la política de permisos no se puede asociar a ninguna otra entidad de IAM.

Solo puede eliminar este rol vinculado a servicios después de eliminar los recursos relacionados. De esta forma, se protegen los recursos de S3 Storage Lens, ya que evita que se puedan eliminar accidentalmente permisos de acceso a los recursos.

Para obtener información sobre otros servicios que admiten roles vinculados a servicios, consulte [Servicios de AWS que funcionan con IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) y busque los servicios que muestran **Sí** en la columna **Rol vinculado al servicio**. Seleccione una opción **Sí** con un enlace para ver la documentación acerca del rol vinculado al servicio en cuestión.

## Permisos de roles vinculados a servicios para Amazon S3 Storage Lens
<a name="slr-permissions"></a>

S3 Storage Lens utiliza el rol vinculado a servicios denominado **AWSServiceRoleForS3StorageLens**. Esto permite el acceso a los servicios y los recursos de AWS utilizados o administrados por S3 Storage Lens. Permite que S3 Storage Lens acceda a los recursos de AWS Organizations en su nombre.

El rol vinculado al servicio de S3 Storage Lens confía en el siguiente servicio en el almacenamiento de la organización:
+ `storage-lens.s3.amazonaws.com`

La política de permisos del rol permite que S3 Storage Lens realice las siguientes acciones en los recursos:
+ `organizations:DescribeOrganization`

  `organizations:ListAccounts`

  `organizations:ListAWSServiceAccessForOrganization`

  `organizations:ListDelegatedAdministrators`

Debe configurar permisos para permitir a una entidad de IAM (como un usuario, grupo o función) crear, editar o eliminar la descripción de una función vinculada a un servicio. Para obtener más información, consulte [Permisos de roles vinculados a servicios](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions) en la *Guía del usuario de IAM*.

## Creación de un rol vinculado a un servicio para S3 Storage Lens
<a name="create-slr"></a>

No necesita crear manualmente un rol vinculado a un servicio. Cuando completa alguna de las siguientes tareas habiendo iniciado sesión en las cuentas de administración o de administrador delegado de AWS Organizations, S3 Storage Lens crea el rol vinculado a servicios por usted:
+ Cree una configuración del panel de S3 Storage Lens para la organización en la consola de Amazon S3.
+ Realice una operación `PUT` de una configuración de S3 Storage Lens para la organización mediante la API de REST, la AWS CLI y los SDK.

**nota**  
Lente de almacenamiento de S3 admitirá un máximo de cinco administradores delegados por organización.

Si elimina este rol vinculado a servicios, las acciones anteriores lo volverán a crear según sea necesario.

### Ejemplo de política para el rol vinculado al servicio de S3 Storage Lens
<a name="slr-sample-policy"></a>

**Example Política de permisos para el rol vinculado al servicio de S3 Storage Lens**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AwsOrgsAccess",
            "Effect": "Allow",
            "Action": [
                "organizations:DescribeOrganization",
                "organizations:ListAccounts",
                "organizations:ListAWSServiceAccessForOrganization",
                "organizations:ListDelegatedAdministrators"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

## Edición de un rol vinculado a servicios para Amazon S3 Storage Lens
<a name="edit-slr"></a>

Lente de almacenamiento de S3 no le permite editar el rol vinculado al servicio AWSServiceRoleForS3StorageLens. Después de crear un rol vinculado a un servicio, no puede cambiarle el nombre, ya que varias entidades pueden hacer referencia a él. Sin embargo, puede editar la descripción del rol mediante IAM. Para obtener más información, consulte [Editar un rol vinculado a servicios](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role) en la *Guía del usuario de IAM*.

## Eliminación de un rol vinculado a servicios para Amazon S3 Storage Lens
<a name="delete-slr"></a>

Si ya no utiliza el rol vinculado a servicios, le recomendamos que elimine dicho rol. De esta forma no tiene una entidad no utilizada que no se monitoree ni mantenga de forma activa. Sin embargo, debe limpiar los recursos del rol vinculado al servicio antes de eliminarlo manualmente.

**nota**  
Si el servicio de Amazon S3 Storage Lens utiliza el rol cuando intenta eliminar los recursos, es posible que no se pueda borrar. En tal caso, espere unos minutos e intente de nuevo la operación.

Para eliminar AWSServiceRoleForS3StorageLens, debe eliminar todas las configuraciones de Lente de almacenamiento de S3 de la organización presentes en todas las Regiones de AWS mediante las cuentas de administración o de administrador delegado de AWS Organizations.

Los recursos son configuraciones de S3 Storage Lens de organización. Utilice Lente de almacenamiento de S3 para limpiar los recursos y, a continuación, utilice la [consola de IAM](https://console.aws.amazon.com/iam/), la CLI, la API de REST o el AWS SDK para eliminar el rol. 

En la API de REST, la AWS CLI y los SDK, se pueden descubrir configuraciones de Lente de almacenamiento de S3 con `ListStorageLensConfigurations` en todas las regiones en las que la organización haya creado configuraciones de Lente de almacenamiento de S3. Utilice la acción `DeleteStorageLensConfiguration` para eliminar estas configuraciones de modo que pueda eliminar el rol.

**nota**  
Para eliminar el rol vinculado a servicios, debe eliminar todas las configuraciones de S3 Storage Lens de la organización en todas las regiones donde existan.

**Eliminación de los recursos de Lente de almacenamiento de Amazon S3 utilizados por el SLR AWSServiceRoleForS3StorageLens**

1. Para obtener una lista de configuraciones en el nivel de la organización, debe usar `ListStorageLensConfigurations` en cada región que tiene configuraciones de Lente de almacenamiento de S3. Esta lista también se puede obtener en la consola de Amazon S3.

1. Elimine estas configuraciones de los puntos de conexión regionales apropiados al invocar la llamada a la API `DeleteStorageLensConfiguration` o a través de la consola de Amazon S3. 

**Para eliminar manualmente el rol vinculado a servicios mediante IAM**

Una vez eliminadas las configuraciones, elimine el SLR AWSServiceRoleForS3StorageLens de la [consola de IAM](https://console.aws.amazon.com/iam/) o invoque la API de IAM `DeleteServiceLinkedRole` o use la AWS CLI o el AWS SDK. Para obtener más información, consulte [Eliminación de un rol vinculado a servicios](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role) en la *Guía del usuario de IAM*.

## Regiones admitidas para roles vinculados a servicios de S3 Storage Lens
<a name="slr-regions"></a>

S3 Storage Lens admite el uso de roles vinculados a servicios en todas las Regiones de AWS en las que el servicio esté disponible. Para obtener más información, consulte [Regiones y puntos de enlace de Amazon S3 Storage Lens](https://docs.aws.amazon.com/general/latest/gr/s3.html).

# Solución de problemas de identidad y acceso de Amazon S3
<a name="security_iam_troubleshoot"></a>

Utilice la siguiente información para diagnosticar y solucionar los problemas comunes que es posible que surjan cuando se trabaja con Amazon S3 e IAM.

**Topics**
+ [He recibido un error de acceso denegado](#access_denied_403)
+ [No tengo autorización para realizar una acción en Amazon S3](#security_iam_troubleshoot-no-permissions)
+ [No tengo autorización para realizar la operación iam:PassRole](#security_iam_troubleshoot-passrole)
+ [Quiero permitir a personas externas a mi Cuenta de AWS el acceso a mis recursos de Amazon S3](#security_iam_troubleshoot-cross-account-access)
+ [Solución de problemas de errores de acceso rechazado (403 Forbidden) en Amazon S3](troubleshoot-403-errors.md)

## He recibido un error de acceso denegado
<a name="access_denied_403"></a>

Verifique que no hay ninguna instrucción `Deny` explícita para el solicitante al que intenta conceder permisos, ni en la política de bucket ni en la política basada en la identidad. 

Para obtener información detallada sobre la solución de errores de acceso denegado, consulte [Solución de problemas de errores de acceso rechazado (403 Forbidden) en Amazon S3](troubleshoot-403-errors.md).

## No tengo autorización para realizar una acción en Amazon S3
<a name="security_iam_troubleshoot-no-permissions"></a>

Si recibe un error que indica que no tiene autorización para realizar una acción, las políticas se deben actualizar para permitirle realizar la acción.

En el siguiente ejemplo, el error se produce cuando el usuario de IAM `mateojackson` intenta utilizar la consola para consultar los detalles acerca de un recurso ficticio `my-example-widget`, pero no tiene los permisos ficticios `s3:GetWidget`.

```
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: s3:GetWidget on resource: my-example-widget
```

En este caso, la política del usuario `mateojackson` debe actualizarse para permitir el acceso al recurso `my-example-widget` mediante la acción `s3:GetWidget`.

Si necesita ayuda, contacte con su administrador de AWS. El administrador es la persona que le proporcionó las credenciales de inicio de sesión.

## No tengo autorización para realizar la operación iam:PassRole
<a name="security_iam_troubleshoot-passrole"></a>

Si recibe un error que indica que no tiene autorización para realizar la acción `iam:PassRole`, las políticas se deben actualizar para permitirle pasar un rol a Amazon S3.

Algunos Servicios de AWS le permiten transferir un rol existente a dicho servicio en lugar de crear un nuevo rol de servicio o uno vinculado al servicio. Para ello, debe tener permisos para transferir el rol al servicio.

En el siguiente ejemplo, el error se produce cuando un usuario de IAM denominado `marymajor` intenta utilizar la consola para realizar una acción en Amazon S3. Sin embargo, la acción requiere que el servicio cuente con permisos que otorguen un rol de servicio. Mary no tiene permisos para transferir el rol al servicio.

```
User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole
```

En este caso, las políticas de Mary se deben actualizar para permitirle realizar la acción `iam:PassRole`.

Si necesita ayuda, póngase en contacto con su administrador de AWS. El administrador es la persona que le proporcionó las credenciales de inicio de sesión.

## Quiero permitir a personas externas a mi Cuenta de AWS el acceso a mis recursos de Amazon S3
<a name="security_iam_troubleshoot-cross-account-access"></a>

Se puede crear un rol que los usuarios de otras cuentas o las personas externas a la organización puedan utilizar para acceder a sus recursos. Se puede especificar una persona de confianza para que asuma el rol. En el caso de los servicios que admitan las políticas basadas en recursos o las listas de control de acceso (ACL), puede utilizar dichas políticas para conceder a las personas acceso a sus recursos.

Para obtener más información, consulte lo siguiente:
+ Para saber si Amazon S3 admite estas características, consulte [Cómo funciona Amazon S3 con IAM](security_iam_service-with-iam.md).
+ Para obtener información acerca de cómo proporcionar acceso a los recursos de las Cuentas de AWS de su propiedad, consulte [Acceso para un usuario de IAM en otra Cuenta de AWS propia](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html) en la *Guía del usuario de IAM*.
+ Para obtener información acerca de cómo proporcionar acceso a sus recursos a Cuentas de AWS de terceros, consulte [Proporcionar acceso a Cuentas de AWS que son propiedad de terceros](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_third-party.html) en la *Guía del usuario de IAM*.
+ Para obtener información sobre cómo proporcionar acceso mediante una federación de identidades, consulte [Proporcionar acceso a usuarios autenticados externamente (identidad federada)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_federated-users.html) en la *Guía del usuario de IAM*.
+ Para conocer sobre la diferencia entre las políticas basadas en roles y en recursos para el acceso entre cuentas, consulte [Acceso a recursos entre cuentas en IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) en la *Guía del usuario de IAM*.

# Solución de problemas de errores de acceso rechazado (403 Forbidden) en Amazon S3
<a name="troubleshoot-403-errors"></a>

Los errores de acceso rechazado (HTTP `403 Forbidden`) se muestran cuando AWS rechaza explícita o implícitamente una solicitud de autorización. 
+ Se produce una *denegación explícita* cuando una política contiene una declaración `Deny` para la acción de AWS específica. 
+ Una *denegación implícita* se produce cuando no hay declaraciones `Deny` ni `Allow` aplicables. 

Como una política de AWS Identity and Access Management (IAM) rechaza implícitamente una entidad principal de IAM de forma predeterminada, la política debe permitir explícitamente que la entidad principal lleve a cabo una acción. De lo contrario, la política deniega el acceso de forma implícita. Para obtener más información, consulte [La diferencia entre denegaciones explícitas e implícitas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#AccessPolicyLanguage_Interplay) en la *Guía del usuario de IAM*. Para obtener información sobre la lógica de evaluación de la política que determina si una solicitud de acceso está permitida o denegada, consulte [Lógica de evaluación de política](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html) en la *Guía del usuario de IAM*. 

Para obtener más información sobre los permisos para las operaciones de la API de S3 por tipos de recursos de S3, consulte [Permisos necesarios para las operaciones de la API de Amazon S3](using-with-s3-policy-actions.md).

En los siguientes temas se describen las causas más comunes de los errores de acceso denegado en Amazon S3.

**nota**  
Para los errores de acceso denegado (HTTP `403 Forbidden`), Amazon S3 no cobra al propietario del bucket cuando la solicitud se inicia fuera de la cuenta de AWS individual del propietario del bucket o de la organización de AWS del propietario del bucket.

**Topics**
+ [Ejemplos de mensajes de acceso denegado y cómo solucionarlos](#access-denied-message-examples)
+ [Acceso denegado debido a la configuración de pago por el solicitante](#access-denied-requester-pays)
+ [Políticas de bucket y de IAM](#bucket-iam-policies)
+ [Configuración de ACL de Amazon S3](#troubleshoot-403-acl-settings)
+ [Configuración del bloqueo de acceso público en S3](#troubleshoot-403-bpa)
+ [Configuración del cifrado de Amazon S3](#troubleshoot-403-encryption)
+ [Configuración de bloqueo de objetos de S3](#troubleshoot-403-object-lock)
+ [Políticas de punto de conexión de VPC](#troubleshoot-403-vpc)
+ [AWS OrganizationsPolíticas de](#troubleshoot-403-orgs)
+ [Acceso de distribución de CloudFront](#troubleshoot-403-cloudfront)
+ [Configuración del punto de acceso](#troubleshoot-403-access-points)
+ [Recursos adicionales](#troubleshoot-403-additional-resources)

**nota**  
Si está intentando solucionar un problema de permisos, empiece por la sección [Ejemplos de mensajes de acceso denegado y cómo solucionarlos](#access-denied-message-examples) y, a continuación, vaya a la sección [Políticas de bucket y de IAM](#bucket-iam-policies). Asegúrese también de seguir la guía en [Consejos para comprobar los permisos](#troubleshoot-403-tips).

## Ejemplos de mensajes de acceso denegado y cómo solucionarlos
<a name="access-denied-message-examples"></a>

Amazon S3 incluye ahora contexto adicional en los errores de acceso denegado (HTTP `403 Forbidden`) para las solicitudes realizadas a los recursos en la misma Cuenta de AWS o misma organización en AWS Organizations. Este nuevo contexto incluye el tipo de política que denegó el acceso, el motivo del rechazo y la información sobre el usuario o rol de IAM que solicitó el acceso al recurso. 

Este contexto adicional le ayuda a solucionar los problemas de acceso, identificar la causa raíz de los errores de acceso denegado y corregir los controles de acceso incorrectos mediante la actualización de las políticas pertinentes. Este contexto adicional también está disponible en los registros de AWS CloudTrail. Los mensajes de error de acceso denegado mejorados para las solicitudes de la misma cuenta o misma organización ya están disponibles en todas las Regiones de AWS, incluidas las AWS GovCloud (US) Regions y las regiones de China. 

La mayoría de los mensajes de error de acceso denegado aparecen en el formato `User user-arn is not authorized to perform action on "resource-arn" because context`. En este ejemplo, *`user-arn`* es el [Nombre de recurso de Amazon (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns) del usuario que no recibe acceso, *`action`* es la acción de servicio que la política deniega y *`resource-arn`* es el ARN del recurso sobre el que actúa la política. El campo de *`context`* representa un contexto adicional sobre el tipo de política que explica por qué se deniega el acceso.

Cuando una política deniega explícitamente el acceso porque contiene una instrucción `Deny`, el mensaje de error de acceso denegado incluye la frase `with an explicit deny in a type policy`. Cuando la política deniega implícitamente el acceso, el mensaje de error de acceso denegado incluye la frase `because no type policy allows the action action`.

**importante**  
Los mensajes de acceso denegado mejorados solo se devuelven para las solicitudes de la misma cuenta o para solicitudes dentro de la misma organización en AWS Organizations. Las solicitudes entre cuentas fuera de la misma organización devuelven un mensaje `Access Denied` genérico.   
Para obtener información sobre la lógica de evaluación de la política que determina si una solicitud de acceso entre cuentas está permitida o denegada, consulte [Lógica de evaluación de política de acceso entre cuentas](https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_evaluation-logic-cross-account.html) en la *Guía del usuario de IAM*. Para obtener una explicación detallada que muestra cómo conceder acceso entre cuentas, consulte [Ejemplo 2: propietario del bucket que concede permisos de bucket entre cuentas](example-walkthroughs-managing-access-example2.md). 
Para solicitudes dentro de la misma organización en AWS Organizations:  
Los mensajes de acceso denegado mejorados no se devuelven si se produce una denegación debido a una política de punto de conexión de nube privada virtual (VPC).
Los mensajes de acceso denegado mejorados se proporcionan siempre que el propietario del bucket y la cuenta del solicitante pertenezcan a la misma organización en AWS Organizations. Aunque los buckets configurados con la configuración de **Propietario del bucket preferido** o **Escritor de objetos** de Propiedad de objetos de S3 pueden contener objetos que pertenecen a diferentes cuentas, la propiedad de los objetos no afecta a los mensajes de acceso denegado mejorados. Los mensajes de acceso denegado mejorados se devuelven para todas las solicitudes de objetos siempre que el propietario del bucket y el solicitante estén en la misma organización, independientemente de quién sea el propietario del objeto específico. Para obtener información sobre los ajustes y las configuraciones de Propiedad de objetos, consulte [Control de la propiedad de los objetos y desactivación de las ACL del bucket](about-object-ownership.md).
Los mensajes de error rechazados de acceso mejorado no se devuelven para las solicitudes realizadas a los buckets del directorio. Las solicitudes de bucket de directorio devuelven un mensaje `Access Denied` genérico.
Si varias políticas del mismo tipo de política rechazan una solicitud de autorización, el mensaje de error de acceso denegado no especifica el número de políticas.
Si se deniega una solicitud de autorización debido a varios tipos de políticas, el mensaje de error incluye solo uno de esos tipos de políticas.
Si se deniega una solicitud de acceso debido a varios motivos, el mensaje de error incluye solo uno de los motivos de la denegación. 

En los siguientes ejemplos se muestra el formato de los distintos tipos de mensajes de error de acceso denegado y cómo solucionar problemas de cada tipo de mensaje.

### Acceso denegado debido a un tipo de cifrado bloqueado
<a name="access-denied-due-to-blocked-encryption-type"></a>

Para limitar los tipos de cifrado del servidor que puede utilizar en los buckets de uso general, tiene la opción de elegir bloquear las solicitudes de escritura de SSE-C actualizando la configuración de cifrado predeterminada de los buckets. Esta configuración por bucket bloquea las solicitudes de carga de objetos que especifican SSE-C. Cuando se bloquea SSE-C para un bucket, cualquier solicitud `PutObject`, `CopyObject`, `PostObject` o de replicación o carga multiparte que especifique el cifrado SSE-C se rechazará con un error HTTP 403 `AccessDenied`.

Esta configuración es un parámetro de la API de `PutBucketEncryption` y también se puede actualizar mediante la consola de S3, la AWS CLI y los AWS SDK, si tiene el permiso `s3:PutEncryptionConfiguration`. Los valores válidos son `SSE-C`, que bloquea el cifrado SSE-C para el bucket de uso general y `NONE`, que permite usar SSE-C para escribir en el bucket.

Por ejemplo, cuando se deniega el acceso a una solicitud `PutObject` porque la configuración de `BlockedEncryptionTypes` bloquea solicitudes de escritura que especifican SSE-C, recibirá el siguiente mensaje:

```
An error occurred (AccessDenied) when calling the PutObject operation:   
User: arn:aws:iam::123456789012:user/MaryMajor  is not   
authorized to perform: s3:PutObject on resource:   
"arn:aws:s3:::amzn-s3-demo-bucket1/object-name" because this   
bucket has blocked upload requests that specify   
Server Side Encryption with Customer provided keys (SSE-C).   
Please specify a different server-side encryption type
```

Para obtener más información sobre esta configuración, consulte [Bloqueo o desbloqueo de SSE-C para un bucket de uso general](blocking-unblocking-s3-c-encryption-gpb.md).

### Acceso denegado debido a una política de control de recursos: denegación explícita
<a name="access-denied-rcp-examples-explicit"></a>

1. Compruebe si hay una instrucción `Deny` explícita para la acción en sus políticas de control de recursos (RCP). Para el siguiente ejemplo, la acción es  `s3:GetObject`.

1. Actualice su RCP al eliminar la instrucción `Deny`. Para obtener más información, consulte [Actualización de una política de control de recursos (RCP)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_policies_update.html#update_policy-rcp) en la *Guía del usuario de AWS Organizations*. 

```
An error occurred (AccessDenied) when calling the GetObject operation: 
User: arn:aws:iam::777788889999:user/MaryMajor is not authorized to perform: 
s3:GetObject on resource: "arn:aws:s3:::amzn-s3-demo-bucket1/object-name" 
with an explicit deny in a resource control policy
```

### Acceso denegado debido a una política de control de servicios: denegación implícita
<a name="access-denied-scp-examples-implicit"></a>

1. Compruebe si falta una instrucción `Allow` para la acción en sus políticas de control de servicio (SCP). Para el siguiente ejemplo, la acción es  `s3:GetObject`.

1. Actualice su política al agregar la instrucción `Allow`. Para obtener más información, consulte [Actualización de SCP](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps_create.html#update_policy) en la *Guía del usuario de AWS Organizations*.

```
User: arn:aws:iam::777788889999:user/MaryMajor is not authorized to perform:
s3:GetObject because no service control policy allows the s3:GetObject action
```

### Acceso denegado debido a una política de control de servicios: denegación explícita
<a name="access-denied-scp-examples-explicit"></a>

1. Compruebe si hay una instrucción `Deny` explícita para la acción en sus políticas de control de servicio (SCP). Para el siguiente ejemplo, la acción es  `s3:GetObject`.

1. Actualice su SCP cambiando la instrucción `Deny` para permitir al usuario el acceso necesario. Para obtener un ejemplo de cómo hacerlo, consulte [Impedir que los usuarios y roles de IAM realicen cambios especificados, con una excepción para un rol de administrador especificado](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps_examples_general.html#example-scp-restricts-with-exception) en la *Guía del usuario de AWS Organizations*. Para obtener más información sobre la actualización de la SCP, consulte [Actualización de una SCP](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps_create.html#update_policy) en la *Guía del usuario de AWS Organizations*.

```
User: arn:aws:iam::777788889999:user/MaryMajor is not authorized to perform: 
s3:GetObject with an explicit deny in a service control policy
```

### Acceso denegado debido a una política de punto de conexión de VPC: denegación implícita
<a name="access-denied-vpc-endpoint-examples-implicit"></a>

1. Compruebe si falta la instrucción `Allow` para la acción en las políticas de punto de conexión de nube privada virtual (VPC). Para el siguiente ejemplo, la acción es  `s3:GetObject`.

1. Actualice su política de punto de conexión de VPC al agregar la instrucción `Allow`. Para obtener más información, consulte [Actualizar una política de punto de conexión de VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html#update-vpc-endpoint-policy) en la *Guía de AWS PrivateLink*.

```
User: arn:aws:iam::123456789012:user/MaryMajor is not authorized to perform: 
s3:GetObject because no VPC endpoint policy allows the s3:GetObject action
```

### Acceso denegado debido a una política de punto de conexión de VPC: denegación explícita
<a name="access-denied-vpc-endpoint-examples-explicit"></a>

1. Compruebe si hay una instrucción `Deny` explícita para la acción en las políticas de punto de conexión de nube privada virtual (VPC). Para el siguiente ejemplo, la acción es  `s3:GetObject`.

1. Actualice la política de punto de conexión de VPC cambiando la instrucción `Deny` para permitir al usuario el acceso necesario. Por ejemplo, puede actualizar la instrucción `Deny` para usar la clave de condición `aws:PrincipalAccount` con el operador de condición `StringNotEquals` para permitir el acceso de la entidad principal específico, como se muestra en [Ejemplo 7: Exclusión de determinadas entidades principales de una instrucción `Deny`](amazon-s3-policy-keys.md#example-exclude-principal-from-deny-statement). Para obtener más información sobre cómo actualizar la política de punto de conexión de VPC, consulte [Actualización de una política de punto de conexión de VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html#update-vpc-endpoint-policy) en la *Guía de AWS PrivateLink*.

```
User: arn:aws:iam::123456789012:user/MaryMajor is not authorized to perform: 
s3:GetObject on resource: "arn:aws:s3:::amzn-s3-demo-bucket1/object-name" with 
an explicit deny in a VPC endpoint policy
```

### Acceso denegado debido a un límite de permisos: denegación implícita
<a name="access-denied-permissions-boundary-examples-implicit"></a>

1. Compruebe si falta una instrucción `Allow` para la acción en su límite de permisos. Para el siguiente ejemplo, la acción es  `s3:GetObject`.

1. Actualice su límite de permisos al agregar la instrucción `Allow` a su política de IAM. Para obtener más información, consulte [Límites de permisos para entidades de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) y [Edición de políticas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-edit.html) en la *Guía del usuario de IAM*.

```
User: arn:aws:iam::123456789012:user/MaryMajor is not authorized to perform: 
s3:GetObject on resource: "arn:aws:s3:::amzn-s3-demo-bucket1/object-name" 
because no permissions boundary allows the s3:GetObject action
```

### Acceso denegado debido a un límite de permisos: denegación explícita
<a name="access-denied-permissions-boundary-examples-explicit"></a>

1. Compruebe si hay una instrucción `Deny` explícita para la acción en su límite de permisos. Para el siguiente ejemplo, la acción es  `s3:GetObject`.

1. Actualice el límite de permisos cambiando la instrucción `Deny` de la política de IAM para permitir al usuario el acceso necesario. Por ejemplo, puede actualizar la instrucción `Deny` para usar la clave de condición `aws:PrincipalAccount` con el operador de condición `StringNotEquals` para permitir el acceso de la entidad principal específico, como se muestra en [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalaccount) en la *Guía del usuario de IAM*. Para obtener más información, consulte [Límites de permisos para entidades de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) y [Edición de políticas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-edit.html) en la *Guía del usuario de IAM*.

```
User: arn:aws:iam::777788889999:user/MaryMajor is not authorized to perform: 
s3:GetObject with an explicit deny in a permissions boundary
```

### Acceso denegado debido a políticas de sesión: denegación implícita
<a name="access-denied-session-policy-examples-implicit"></a>

1. Compruebe si falta una instrucción `Allow` para la acción en sus políticas de sesión. Para el siguiente ejemplo, la acción es  `s3:GetObject`.

1. Actualice su política de sesión al agregar la instrucción `Allow`. Para obtener más información, consulte [Políticas de la sesión](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) y [Edición de políticas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-edit.html) en la *Guía del usuario de IAM*.

```
User: arn:aws:iam::123456789012:user/MaryMajor is not authorized to perform: 
s3:GetObject because no session policy allows the s3:GetObject action
```

### Acceso denegado debido a políticas de sesión: denegación explícita
<a name="access-denied-session-policy-examples-explicit"></a>

1. Compruebe si hay una instrucción `Deny` explícita para la acción en sus políticas de sesión. Para el siguiente ejemplo, la acción es  `s3:GetObject`.

1. Actualice la política de sesión cambiando la instrucción `Deny` para permitir al usuario el acceso necesario. Por ejemplo, puede actualizar la instrucción `Deny` para usar la clave de condición `aws:PrincipalAccount` con el operador de condición `StringNotEquals` para permitir el acceso de la entidad principal específico, como se muestra en [Ejemplo 7: Exclusión de determinadas entidades principales de una instrucción `Deny`](amazon-s3-policy-keys.md#example-exclude-principal-from-deny-statement). Para obtener más información sobre cómo actualizar la política de sesión, consulte [Políticas de sesión](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) y [Edición de políticas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-edit.html) en la *Guía del usuario de IAM*.

```
User: arn:aws:iam::123456789012:user/MaryMajor is not authorized to perform: 
s3:GetObject on resource: "arn:aws:s3:::amzn-s3-demo-bucket1/object-name" with 
an explicit deny in a session policy
```

### Acceso denegado debido a políticas basadas en recursos: denegación implícita
<a name="access-denied-resource-based-policy-examples-implicit"></a>

**nota**  
*Las políticas basadas en recursos* son políticas como las de bucket y las de punto de acceso.

1. Compruebe si falta una instrucción `Allow` para la acción en su política basada en recursos. Compruebe también si la configuración de Bloqueo de acceso público de S3 `IgnorePublicAcls` se aplica a nivel de bucket, punto de acceso o cuenta. Para el siguiente ejemplo, la acción es  `s3:GetObject`.

1. Actualice su política al agregar la instrucción `Allow`. Para obtener más información, consulte [Políticas basadas en recursos](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_resource-based) y [Edición de políticas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-edit.html) en la *Guía del usuario de IAM*.

   Es posible que también tenga que ajustar la configuración de Bloqueo de acceso público `IgnorePublicAcls` para el bucket, el punto de acceso o la cuenta. Para obtener más información, consulte [Acceso denegado debido a la configuración de Bloqueo de acceso público](#access-denied-bpa-examples) y [Establecer la configuración de Block Public Access para sus buckets de S3](configuring-block-public-access-bucket.md).

```
User: arn:aws:iam::123456789012:user/MaryMajor is not authorized to perform: 
s3:GetObject because no resource-based policy allows the s3:GetObject action
```

### Acceso denegado debido a políticas basadas en recursos: denegación explícita
<a name="access-denied-resource-based-policy-examples-explicit"></a>

**nota**  
*Las políticas basadas en recursos* son políticas como las de bucket y las de punto de acceso.

1. Compruebe si hay una instrucción `Deny` explícita para la acción en su política basada en recursos. Compruebe también si la configuración de Bloqueo de acceso público de S3 `RestrictPublicBuckets` se aplica a nivel de bucket, punto de acceso o cuenta. Para el siguiente ejemplo, la acción es  `s3:GetObject`.

1. Actualice la política cambiando la instrucción `Deny` para permitir al usuario el acceso necesario. Por ejemplo, puede actualizar la instrucción `Deny` para usar la clave de condición `aws:PrincipalAccount` con el operador de condición `StringNotEquals` para permitir el acceso de la entidad principal específico, como se muestra en [Ejemplo 7: Exclusión de determinadas entidades principales de una instrucción `Deny`](amazon-s3-policy-keys.md#example-exclude-principal-from-deny-statement). Para obtener más información sobre cómo actualizar la política basada en recursos, consulte [Políticas basadas en recursos](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_resource-based) y [Edición de políticas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-edit.html) en la *Guía del usuario de IAM*.

   Es posible que también tenga que ajustar la configuración de Bloqueo de acceso público de `RestrictPublicBuckets` para el bucket, el punto de acceso o la cuenta. Para obtener más información, consulte [Acceso denegado debido a la configuración de Bloqueo de acceso público](#access-denied-bpa-examples) y [Establecer la configuración de Block Public Access para sus buckets de S3](configuring-block-public-access-bucket.md).

```
User: arn:aws:iam::123456789012:user/MaryMajor is not authorized to perform: 
s3:GetObject on resource: "arn:aws:s3:::amzn-s3-demo-bucket1/object-name" with 
an explicit deny in a resource-based policy
```

### Acceso denegado debido a políticas basadas en identidad: denegación implícita
<a name="access-denied-identity-based-policy-examples-implicit"></a>

1. Compruebe si falta una instrucción `Allow` para la acción en las políticas basadas en identidad asociadas a la identidad. Para el siguiente ejemplo, la acción es `s3:GetObject` y está asociada al usuario `MaryMajor`.

1. Actualice su política al agregar la instrucción `Allow`. Para obtener más información, consulte [Políticas basadas en identidades](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_id-based) y [Edición de políticas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-edit.html) en la *Guía del usuario de IAM*.

```
User: arn:aws:iam::123456789012:user/MaryMajor is not authorized to perform: 
s3:GetObject because no identity-based policy allows the s3:GetObject action
```

### Acceso denegado debido a políticas basadas en identidad: denegación explícita
<a name="access-denied-identity-based-policy-examples-explicit"></a>

1. Compruebe si hay una instrucción `Deny` explícita para la acción en las políticas basadas en identidad asociadas a la identidad. Para el siguiente ejemplo, la acción es `s3:GetObject` y está asociada al usuario `MaryMajor`.

1. Actualice la política cambiando la instrucción `Deny` para permitir al usuario el acceso necesario. Por ejemplo, puede actualizar la instrucción `Deny` para usar la clave de condición `aws:PrincipalAccount` con el operador de condición `StringNotEquals` para permitir el acceso de la entidad principal específico, como se muestra en [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalaccount) en la *Guía del usuario de IAM*. Para obtener más información, consulte [Políticas basadas en identidades](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_id-based) y [Edición de políticas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-edit.html) en la *Guía del usuario de IAM*.

```
User: arn:aws:iam::123456789012:user/MaryMajor is not authorized to perform: 
s3:GetObject on resource: "arn:aws:s3:::amzn-s3-demo-bucket1/object-name" with 
an explicit deny in an identity-based policy
```

### Acceso denegado debido a la configuración de Bloqueo de acceso público
<a name="access-denied-bpa-examples"></a>

La característica Block Public Access de Amazon S3 proporciona la configuración de los puntos de acceso, los buckets y las cuentas, con el fin de ayudarle a administrar el acceso público a los recursos de Amazon S3. Para obtener más información sobre el concepto de “público” de Amazon S3, consulte [Qué significa "pública"](access-control-block-public-access.md#access-control-block-public-access-policy-status). 

De forma predeterminada, los buckets, puntos de acceso y objetos nuevos no permiten el acceso público. Sin embargo, los usuarios pueden modificar las políticas de bucket, las políticas de punto de acceso, las políticas de usuario de IAM, los permisos de objeto o las listas de control de acceso (ACL) para permitir el acceso público. La configuración de Bloqueo de acceso público de S3 anula estas políticas, permisos y ACL. A partir de abril de 2023, todas las configuraciones de Bloqueo de acceso público estarán activadas de forma predeterminada para los buckets nuevos. 

Cuando Amazon S3 recibe una solicitud para acceder a un bucket o a un objeto, determina si el bucket o la cuenta del propietario del bucket tiene aplicada una configuración de bloqueo de acceso público. Si la solicitud se realizó a través de un punto de acceso, Amazon S3 también comprueba la configuración de bloqueo de acceso público del punto de acceso. Si hay una configuración de bloqueo de acceso público que prohíbe el acceso solicitado, Amazon S3 rechaza la solicitud.

Block Public Access de Amazon S3 proporciona cuatro configuraciones. Estas configuraciones son independientes y se pueden usar en cualquier combinación. Cada configuración se puede aplicar a un punto de acceso, a un bucket o a una cuenta completa de AWS. Si la configuración de bloqueo de acceso público para el punto de acceso, el bucket o la cuenta es diferente, Amazon S3 aplicará la combinación más restrictiva de la configuración del punto de acceso, el bucket y la cuenta.

Cuando Amazon S3 evalúa si una configuración de bloqueo de acceso público prohíbe una operación, rechaza cualquier solicitud que infrinja un punto de acceso, un bucket o una configuración de cuenta.

Las cuatro configuraciones que proporciona Bloqueo de acceso público de Amazon S3 son las siguientes: 
+ `BlockPublicAcls`: Esta configuración se aplica a las solicitudes de `PutBucketAcl`, `PutObjectAcl`, `PutObject`, `CreateBucket`,`CopyObject` y `POST Object`. La configuración de `BlockPublicAcls` causa el siguiente comportamiento: 
  + Las llamadas `PutBucketAcl` y `PutObjectAcl` producen un error si la lista de control de acceso (ACL) especificada es pública.
  + Las llamadas de `PutObject` producen un error si la solicitud incluye una ACL pública.
  + Si se aplica esta configuración a una cuenta, las llamadas `CreateBucket` producen un error con una respuesta HTTP `400` (`Bad Request`) si la solicitud incluye una ACL pública.

  Por ejemplo, cuando se deniega el acceso a una solicitud `CopyObject` debido a la configuración de `BlockPublicAcls`, recibirá el siguiente mensaje: 

  ```
  An error occurred (AccessDenied) when calling the CopyObject operation: 
  User: arn:aws:sts::123456789012:user/MaryMajor is not authorized to 
  perform: s3:CopyObject on resource: "arn:aws:s3:::amzn-s3-demo-bucket1/object-name" 
  because public ACLs are prevented by the BlockPublicAcls setting in S3 Block Public Access.
  ```
+ `IgnorePublicAcls`: La configuración `IgnorePublicAcls` causa que Amazon S3 ignore todas las ACL públicas en un bucket y los objetos que contiene. Si el permiso de tu solicitud solo lo concede una ACL pública, la configuración `IgnorePublicAcls` rechazará la solicitud.

  Cualquier denegación que resulte de la configuración `IgnorePublicAcls` es implícita. Por ejemplo, si `IgnorePublicAcls` deniega una solicitud `GetObject` debido a una ACL pública, recibirá el siguiente mensaje: 

  ```
  User: arn:aws:iam::123456789012:user/MaryMajor is not authorized to perform: 
  s3:GetObject because no resource-based policy allows the s3:GetObject action
  ```
+ `BlockPublicPolicy`: Esta configuración se aplica a las solicitudes de `PutBucketPolicy` y `PutAccessPointPolicy`. 

  La configuración de `BlockPublicPolicy` para un bucket hace que Amazon S3 rechace llamadas a `PutBucketPolicy` si la política de buckets especificada permite el acceso público. Esta configuración también provoca que Amazon S3 rechace llamadas a `PutAccessPointPolicy` para todos los puntos de acceso entre cuentas del bucket si la política especificada permite el acceso público.

  Si se establece `BlockPublicPolicy` para un punto de acceso, Amazon S3 rechazará las llamadas a `PutAccessPointPolicy` y `PutBucketPolicy` que se realicen a través del punto de acceso si la política especificada (ya sea para el punto de acceso o para el bucket subyacente) permite el acceso público.

  Por ejemplo, cuando se deniega el acceso en una solicitud `PutBucketPolicy` debido a la configuración de `BlockPublicPolicy`, recibirá el siguiente mensaje: 

  ```
  An error occurred (AccessDenied) when calling the PutBucketPolicy operation: 
  User: arn:aws:sts::123456789012:user/MaryMajor is not authorized to 
  perform: s3:PutBucketPolicy on resource: "arn:aws:s3:::amzn-s3-demo-bucket1/object-name" 
  because public policies are prevented by the BlockPublicPolicy setting in S3 Block Public Access.
  ```
+ `RestrictPublicBuckets`: La configuración de `RestrictPublicBuckets` restringe el acceso a un punto de acceso o un bucket con una política pública a solo las entidades principales de Servicio de AWS y los usuarios autorizados dentro de la cuenta del propietario del bucket y la cuenta del propietario del punto de acceso. Esta configuración bloquea todo el acceso entre cuentas al punto de acceso o al bucket (salvo a las entidades principales de Servicio de AWS), pero sigue permitiendo que los usuarios de la cuenta administren el punto de acceso o el bucket. Esta configuración también rechaza todas las llamadas anónimas (o sin firma).

  Cualquier denegación que resulte de la configuración de `RestrictPublicBuckets` es explícita. Por ejemplo, si `RestrictPublicBuckets` deniega una solicitud `GetObject` debido a un bucket público o política de punto de acceso, recibirá el siguiente mensaje: 

  ```
  User: arn:aws:iam::123456789012:user/MaryMajor is not authorized to perform: 
  s3:GetObject on resource: "arn:aws:s3:::amzn-s3-demo-bucket1/object-name" with 
  an explicit deny in a resource-based policy
  ```

Para obtener más información sobre estas opciones, consulte [Configurar Block Public Access](access-control-block-public-access.md#access-control-block-public-access-options). Para revisar y actualizar esta configuración, consulte [Configuración de Block Public Access](access-control-block-public-access.md#configuring-block-public-access).

## Acceso denegado debido a la configuración de pago por el solicitante
<a name="access-denied-requester-pays"></a>

Si el bucket de Amazon S3 al que intenta acceder tiene habilitada la característica pago por el solicitante, asegúrese de pasar los parámetros de solicitud correctos al realizar solicitudes a ese bucket. La característica pago por el solicitante de Amazon S3 permite al solicitante, en lugar del propietario del bucket, pagar los costos de transferencia de datos y solicitar el acceso a los objetos del bucket. Cuando el pago por el solicitante está habilitado para un bucket, no se le cobran al propietario del mismo las solicitudes realizadas por otras cuentas de AWS.

Si realiza una solicitud a un bucket con el pago por el solicitante habilitado sin pasar los parámetros necesarios, recibirá un error de acceso denegado (403 Prohibido). Para acceder a los objetos de un bucket con el pago por el solicitante habilitado, debe hacer lo siguiente: 

1. Al realizar solicitudes mediante la CLI de AWS, debe incluir el parámetro `--request-payer requester`. Por ejemplo, para copiar un objeto con la clave `object.txt` ubicada en el bucket de S3 `s3://amzn-s3-demo-bucket/` a una ubicación en la máquina local, también debe pasar el parámetro `--request-payer requester` si este bucket tiene habilitada la opción de pago por el solicitante. 

   ```
   aws s3 cp s3://amzn-s3-demo-bucket/object.txt /local/path \
   --request-payer requester
   ```

1. Al realizar solicitudes programáticas mediante un AWS SDK, defina el encabezado `x-amz-request-payer` con el valor `requester`. Para ver un ejemplo, consulta [Descarga de objetos desde buckets de pago por solicitante](ObjectsinRequesterPaysBuckets.md).

1. Asegúrese de que el usuario o rol de IAM que realiza la solicitud tenga los permisos necesarios para acceder al bucket de pago por el solicitante, como los permisos `s3:GetObject` y `s3:ListBucket`.

Al incluir el parámetro `--request-payer requester` o configurar el encabezado `x-amz-request-payer`, informa a Amazon S3 de que usted, el solicitante, pagará los costos asociados al acceso a los objetos del bucket con el pago por el solicitante habilitado. Esto evitará el error de acceso denegado (403 Prohibido).

## Políticas de bucket y de IAM
<a name="bucket-iam-policies"></a>

### Operaciones de bucket
<a name="troubleshoot-403-bucket-level-ops"></a>

Si no existe una política de bucket, el bucket permite de forma implícita las solicitudes de cualquier identidad AWS Identity and Access Management (IAM) de la cuenta del propietario del bucket. El bucket también rechaza implícitamente las solicitudes de cualquier otra identidad de IAM de cualquier otra cuenta y las solicitudes anónimas (sin firma). Sin embargo, si no existe una política de usuario de IAM, se rechaza implícitamente que el solicitante (a menos que sea el usuario raíz de la Cuenta de AWS) realice ninguna solicitud. Para obtener más información sobre esta lógica de evaluación, consulte [Cómo determinar si una solicitud se permite o se deniega dentro de una cuenta](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-denyallow) en la *Guía del usuario de IAM*.

### Operaciones en el nivel de objeto
<a name="troubleshoot-403-object-level-ops"></a>

Si el objeto es propiedad de la cuenta propietaria del bucket, la política de bucket y la política de usuario de IAM funcionarán de la misma manera para las operaciones en el nivel de objeto que para las operaciones en el nivel de bucket. Por ejemplo, si no existe una política de bucket, el bucket permite de forma implícita las solicitudes de objetos de cualquier identidad de IAM de la cuenta del propietario del bucket. El bucket también rechaza implícitamente las solicitudes de objeto de cualquier otra identidad de IAM de cualquier otra cuenta y las solicitudes anónimas (sin firma). Sin embargo, si no existe una política de usuario de IAM, se rechaza implícitamente que el solicitante (a menos que sea el usuario raíz de la Cuenta de AWS) realice ninguna solicitud de objetos.

Si el objeto es propiedad de una cuenta externa, el acceso al objeto solo se puede conceder a través de listas de control de acceso (ACL) a objetos. La política de bucket y la política de usuario de IAM todavía se pueden utilizar para denegar las solicitudes de objetos. 

Por lo tanto, para garantizar que la política de bucket o de usuarios de IAM no esté provocando un error de acceso denegado (403 Prohibido), debe cumplir los siguientes requisitos:
+ Para acceder con la misma cuenta, no debe haber ninguna instrucción `Deny` explícita para el solicitante al que intenta conceder permisos, ni en la política de bucket ni en la política de usuarios de IAM. Si desea conceder permisos utilizando únicamente la política de bucket y la política de usuarios de IAM, debe haber al menos una instrucción `Allow` explícita en una de estas políticas.
+ Para un acceso entre cuentas, no debe haber ninguna instrucción `Deny` explícita para el solicitante al que intenta conceder permisos, ni en la política de bucket ni en la política de usuarios de IAM. Para conceder permisos entre cuentas utilizando solo la política de bucket y la política de usuario de IAM, asegúrese de que tanto la política de bucket como la política de usuario de IAM del solicitante incluyan una instrucción `Allow` explícita.

**nota**  
Las instrucciones `Allow` de una política de bucket se aplican solo a los objetos que [pertenecen a la misma cuenta propietaria del bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html). Sin embargo, las instrucciones `Deny` de una política de bucket se aplican a todos los objetos independientemente de quién sea el propietario. 

**Para revisar o editar la política de bucket**
**nota**  
Para ver o editar una política de bucket, debe tener el permiso `s3:GetBucketPolicy`.

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En el panel de navegación izquierdo, elija **Buckets**.

1. En la lista **Buckets**, seleccione el nombre del bucket para el que desea crear una política de bucket.

1. Elija la pestaña **Permisos**.

1. En **Política de bucket**, elija **Editar**. Aparece la página **Editar política de bucket**.

Para revisar o editar la política de bucket mediante la AWS Command Line Interface (AWS CLI), use el comando [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-bucket-policy.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-bucket-policy.html).

**nota**  
Si tiene bloqueado el acceso a un bucket debido a una política de bucket incorrecta, [inicie sesión en la Consola de administración de AWS con las credenciales de usuario raíz de la Cuenta de AWS.](https://docs.aws.amazon.com/signin/latest/userguide/introduction-to-root-user-sign-in-tutorial.html) Para recuperar el acceso al bucket, asegúrese de eliminar la política de bucket incorrecta con sus credenciales de usuario raíz de la Cuenta de AWS.

### Consejos para comprobar los permisos
<a name="troubleshoot-403-tips"></a>

Para comprobar si el solicitante tiene los permisos adecuados para realizar una operación de Amazon S3, pruebe lo siguiente:
+ Identifique al solicitante. Si se trata de una solicitud sin firma, significa que es una solicitud anónima sin política de usuarios de IAM. Si se trata de una solicitud que utiliza una URL prefirmada, la política de usuario es la misma que la del usuario o rol de IAM que firmó la solicitud.
+ Verifique que está usando el usuario o el rol de IAM correctos. Para comprobar su usuario o rol de IAM, consulte la esquina superior derecha de la Consola de administración de AWS o utilice el comando [https://docs.aws.amazon.com/cli/latest/reference/sts/get-caller-identity.html](https://docs.aws.amazon.com/cli/latest/reference/sts/get-caller-identity.html).
+ Compruebe las políticas de IAM asociadas al usuario o rol de IAM. Puede usar uno de los métodos siguientes:
  + [Probar las políticas de IAM con el simulador de política de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_testing-policies.html).
  + Revisar los diferentes [tipos de políticas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html).
+ Si es necesario, [edite la política de usuario de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-edit.html).
+ Revise los siguientes ejemplos de políticas que deniegan o permiten el acceso de forma explícita:
  + Permitir la política de usuarios de IAM de forma explícita: [IAM: permite y deniega el acceso a varios servicios mediante programación y en la consola](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_iam_multiple-services-console.html)
  + Permitir la política de bucket: [Concesión de permisos a varias cuentas para cargar objetos o establecer ACL de objetos para el acceso público](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html#example-bucket-policies-acl-1)
  + Denegar la política de usuarios de IAM de forma explícita: [AWS: deniega el acceso a AWS en función de la Región de AWS solicitada](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_aws_deny-requested-region.html)
  + Denegar la política de bucket de forma explícita: [Requerir SSE-KMS para todos los objetos escritos en un bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html#example-bucket-policies-encryption-1)

## Configuración de ACL de Amazon S3
<a name="troubleshoot-403-acl-settings"></a>

Al comprobar la configuración de las ACL, primero debe [consultar la configuración de la propiedad del objeto](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-ownership-retrieving.html) para comprobar si las ACL están habilitadas en el bucket. Tenga en cuenta que los permisos de ACL solo se pueden usar para conceder permisos y no para rechazar solicitudes. Las ACL tampoco se pueden usar para otorgar acceso a los solicitantes rechazados mediante las denegaciones explícitas en las políticas de bucket o de usuarios de IAM.

### La configuración de Propiedad de objetos se establece como Aplicada al propietario del bucket
<a name="troubleshoot-403-object-ownership-1"></a>

Si la configuración **Aplicada al propietario del bucket** está habilitada, es poco probable que la configuración de ACL cause un error de acceso denegado (403 Prohibido), ya que esta opción desactiva todas las ACL que afectan al bucket y a los objetos. **Aplicada al propietario del bucket** es la configuración predeterminada (y recomendada) para los buckets de Amazon S3.

### La configuración de Propiedad de objetos se establece en propietario del bucket preferido o escritor de objetos
<a name="troubleshoot-403-object-ownership-2"></a>

Los permisos de ACL siguen siendo válidos con la configuración **Propietario del bucket preferido** o **Escritor de objetos**. Hay dos tipos de ACL: ACL de bucket y ACL de objetos. Para conocer las diferencias entre estos dos tipos de ACL, consulte [Mapeo de permisos de ACL y permisos de política de acceso](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#acl-access-policy-permission-mapping).

Según la acción de la solicitud rechazada, [compruebe los permisos de ACL de su bucket o del objeto](https://docs.aws.amazon.com/AmazonS3/latest/userguide/managing-acls.html):
+ Si Amazon S3 ha rechazado una `LIST`, un objeto `PUT` o una solicitud `GetBucketAcl` o `PutBucketAcl`, [revise los permisos de ACL del bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/managing-acls.html).
**nota**  
No puede conceder permisos a objetos `GET` con la configuración de ACL del bucket.
+ Si Amazon S3 ha rechazado una solicitud `GET` sobre un objeto de S3 o una solicitud [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectAcl.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectAcl.html), [revise los permisos de ACL del objeto](https://docs.aws.amazon.com/AmazonS3/latest/userguide/managing-acls.html).
**importante**  
Si la cuenta propietaria del objeto es diferente a la cuenta propietaria del bucket, entonces la política del bucket no controlará el acceso al objeto.

### Solución de un error de acceso denegado (403 Prohibido) provocado por una solicitud de objeto `GET` durante la propiedad de un objeto entre cuentas
<a name="troubleshoot-403-object-ownership-tips"></a>

Revise la [Configuración de propiedad de objetos](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html#object-ownership-overview) del bucket para determinar el propietario del objeto. Si tiene acceso a las [ACL del objeto](https://docs.aws.amazon.com/AmazonS3/latest/userguide/managing-acls.html), también puede comprobar la cuenta del propietario del objeto. (Para ver la cuenta del propietario del objeto, revise la configuración de la ACL del objeto en la consola de Amazon S3). Como alternativa, también puede realizar una solicitud `GetObjectAcl` para encontrar el [ID canónico](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html) del propietario del objeto a fin de verificar la cuenta del propietario del objeto. De forma predeterminada, las ACL otorgan permisos de forma explícita para las solicitudes `GET` a la cuenta del propietario del objeto.

Tras confirmar que el propietario del objeto es diferente del propietario del bucket, en función de su caso de uso y del nivel de acceso, elija uno de los siguientes métodos para solucionar el error Acceso denegado (403 Prohibido):
+ **Desactivar las ACL (recomendado)**: este método se aplicará a todos los objetos y puede ejecutarlo el propietario del bucket. Este método otorga automáticamente la propiedad al propietario del bucket, además de control total sobre cada objeto del bucket. Antes de implementar este método, compruebe los [requisitos previos para desactivar las ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-ownership-migrating-acls-prerequisites.html). Para obtener información sobre cómo configurar el bucket como **Aplicada al propietario del bucket** (recomendado), consulte [Configuración de Propiedad de objetos en un bucket existente](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-ownership-existing-bucket.html).
**importante**  
Para evitar un error de acceso denegado (403 Prohibido), asegúrese de migrar los permisos de ACL a una política de bucket antes de desactivar las ACL. Para obtener más información, consulte los [ejemplos de políticas de bucket para migrar desde los permisos de ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-ownership-migrating-acls-prerequisites.html#migrate-acl-permissions-bucket-policies).
+ **Cambiar el propietario del objeto por el propietario del bucket**: este método se puede aplicar a objetos individuales, pero solo el propietario del objeto (o un usuario con los permisos adecuados) puede cambiar la propiedad de un objeto. Se pueden aplicar costos adicionales de `PUT`. (Para obtener más información, consulte [Precios de Amazon S3](https://aws.amazon.com/s3/pricing/)). Este método otorga al propietario del bucket la propiedad total del objeto, lo que le permite controlar el acceso al objeto mediante una política de bucket. 

  Para cambiar la propiedad del objeto, lleve a cabo una de las siguientes acciones:
  + Usted (el propietario del bucket) puede volver a [copiar el objeto](https://docs.aws.amazon.com/AmazonS3/latest/userguide/copy-object.html#CopyingObjectsExamples) en el bucket. 
  + Puede cambiar la configuración de Propiedad de objetos del bucket a **Propietario del bucket preferido**. Si el control de versiones está desactivado, los objetos del bucket se sobrescriben. Si el control de versiones está activado, aparecerán versiones duplicadas del mismo objeto en el bucket, y el propietario del bucket podrá [establecer el vencimiento de una regla de ciclo de vida](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-expire-general-considerations.html). Para ver instrucciones sobre cómo cambiar la configuración de Propiedad de objetos, consulte [Configuración de la propiedad de objetos en un bucket existente](object-ownership-existing-bucket.md).
**nota**  
Al actualizar la configuración de Propiedad de objetos en **Propietario del bucket preferido**, la configuración solo se aplicará a los objetos nuevos que se carguen en el bucket.
  + Puede hacer que el propietario del objeto vuelva a cargar el objeto con la ACL de objetos predefinidos `bucket-owner-full-control`. 
**nota**  
Para las cargas entre cuentas, también puede requerir la ACL de objetos predefinidos `bucket-owner-full-control` en la política de bucket. Para ver un ejemplo de política de bucket, consulte [Conceder permisos entre cuentas para cargar objetos al mismo tiempo que se garantiza que el propietario del bucket tenga el control total](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html#example-bucket-policies-acl-2).
+ **Mantener al escritor de objetos como propietario del objeto**: este método no cambia el propietario del objeto, pero sí le permite otorgar acceso a los objetos de forma individual. Para otorgar acceso a un objeto, debe tener el permiso `PutObjectAcl` para el objeto. A continuación, para corregir el error Acceso denegado (403 Prohibido), añada al solicitante como [beneficiario](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#specifying-grantee) para acceder al objeto en las ACL del objeto. Para obtener más información, consulte [Configuración de la ACL](managing-acls.md).

## Configuración del bloqueo de acceso público en S3
<a name="troubleshoot-403-bpa"></a>

Si la solicitud que da error implica acceso público o políticas públicas, compruebe la configuración del Bloqueo de acceso público de S3 en la cuenta, bucket o punto de acceso. Para obtener más información sobre la solución de errores de acceso denegado relacionados con la configuración de Bloqueo de acceso público de S3, consulte [Acceso denegado debido a la configuración de Bloqueo de acceso público](#access-denied-bpa-examples).

## Configuración del cifrado de Amazon S3
<a name="troubleshoot-403-encryption"></a>

Amazon S3 admite el cifrado del lado del servidor en el bucket. El cifrado del lado del servidor es el cifrado de datos en su destino por la aplicación o servicio que los recibe. Amazon S3 cifra sus datos en el nivel de objeto; los escribe en los discos de sus centros de datos de AWS y cuando usted accede a ellos, los descifra para usted. 

De forma predeterminada, Amazon S3 aplica ahora el cifrado del lado del servidor con claves administradas por Amazon S3 (SSE-S3) como el nivel básico de cifrado para cada bucket de Amazon S3. Amazon S3 también le permite especificar el método de cifrado del lado del servidor al cargar objetos.

**Para revisar el estado de cifrado del lado del servidor y la configuración de cifrado de su bucket**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En el panel de navegación izquierdo, elija **Buckets**.

1. En la lista **Buckets**, elija el bucket para el que desea comprobar la configuración de cifrado.

1. Elija la pestaña **Propiedades**.

1. Desplácese hacia abajo hasta la sección **Cifrado predeterminado** y consulte la configuración **Tipo de cifrado**.

Para comprobar la configuración de cifrado mediante la AWS CLI, utilice el comando [https://docs.aws.amazon.com/cli/latest/reference/s3api/get-bucket-encryption.html](https://docs.aws.amazon.com/cli/latest/reference/s3api/get-bucket-encryption.html).

**Para comprobar el estado de cifrado de un objeto**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En el panel de navegación izquierdo, elija **Buckets**.

1. En la lista **Buckets**, elija el nombre del bucket que contiene el objeto.

1. En la lista **Objetos**, seleccione el nombre del objeto al que desea agregar cifrado o cuyo cifrado desea modificar. 

   Aparece la página de detalles del objeto.

1. Desplácese hacia abajo hasta la sección **Configuración del cifrado del lado del servidor** para ver la configuración de cifrado del lado del servidor del objeto.

Para comprobar el estado de cifrado del objeto mediante la AWS CLI, utilice el comando [https://docs.aws.amazon.com/cli/latest/reference/s3api/head-object.html#examples](https://docs.aws.amazon.com/cli/latest/reference/s3api/head-object.html#examples).

### Requisitos de permisos y cifrado
<a name="troubleshoot-403-encryption-requirements"></a>

Amazon S3 admite tres tipos de cifrado del lado del servidor:
+ Cifrado en el servidor con claves administradas por Amazon S3 (SSE-S3)
+ Cifrado del lado del servidor con claves AWS Key Management Service (AWS KMS) (SSE-KMS)
+ Cifrado en el servidor con claves proporcionadas por el cliente (SSE-C)

Según la configuración de cifrado, asegúrese de que se cumplan los siguientes requisitos de permisos:
+ **SSE-S3**: no se requieren permisos adicionales.
+ **SSE-KMS (con una clave administrada por el cliente)**: para cargar objetos, se requiere el permiso `kms:GenerateDataKey` en la AWS KMS key. Para descargar objetos y realizar cargas de varias partes, se requiere el permiso `kms:Decrypt` de la clave de KMS.
+ **SSE-KMS (con una Clave administrada de AWS)**: el solicitante debe ser de la misma cuenta que posee la clave de KMS `aws/s3`. El solicitante también debe tener los permisos de Amazon S3 correctos para acceder al objeto.
+ **SSE-C (con una clave administrada por el cliente)**: no se requieren permisos adicionales. Puede configurar la política de bucket para [requerir y restringir el cifrado del lado del servidor con claves de cifrado proporcionadas por el cliente](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html#ssec-require-condition-key) para los objetos del bucket.

Si el objeto está cifrado con una clave administrada por el cliente, asegúrese de que la política de claves de KMS le permita realizar las acciones `kms:GenerateDataKey` o `kms:Decrypt`. Para obtener instrucciones sobre cómo comprobar la política de claves de KMS, consulte [Consultar una política de claves](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-viewing.html) en la *Guía para desarrolladores de AWS Key Management Service*.

## Configuración de bloqueo de objetos de S3
<a name="troubleshoot-403-object-lock"></a>

Si el bucket tiene el [bloqueo de objetos de S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html) habilitado y el objeto está protegido por un [periodo de retención](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-overview.html#object-lock-retention-periods) o una [retención legal](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-overview.html#object-lock-legal-holds) e intenta eliminar un objeto, Amazon S3 devuelve una de las siguientes respuestas, en función de cómo intentó eliminar el objeto:
+ **Solicitud `DELETE` permanente**: si ha emitido una solicitud `DELETE` permanente (una solicitud que especifica un ID de versión), Amazon S3 devuelve un error de acceso denegado (`403 Forbidden`) cuando intenta eliminar el objeto.
+ **Solicitud `DELETE` sencilla**: si ha emitido una solicitud `DELETE` sencilla (una solicitud que no especifica un ID de versión), Amazon S3 devuelve una respuesta `200 OK` e inserta un [marcador de eliminación](DeleteMarker.md) en el bucket y ese marcador se convierte en la versión actual del objeto con un nuevo ID.

**Para comprobar si el bucket tiene activado el bloqueo de objetos**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En el panel de navegación izquierdo, elija **Buckets**.

1. En la lista **Buckets**, elija el nombre del bucket en cuestión.

1. Elija la pestaña **Propiedades**.

1. Desplácese hacia abajo hasta la sección **Bloqueo de objetos**. Compruebe si la configuración de **Bloqueo de objetos** está **Habilitada** o **Deshabilitada**.

Para determinar si el objeto está protegido por un período de retención o una retención legal, [consulta la información de bloqueo](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-managing.html#object-lock-managing-view) del objeto. 

Si el objeto está protegido por un período de retención o una retención legal, compruebe lo siguiente:
+ Si la versión del objeto está protegida por el modo de retención de conformidad, no se podrá eliminar permanentemente. Una solicitud `DELETE` permanente de cualquier solicitante, incluido el usuario raíz de la Cuenta de AWS, generará un error de acceso denegado (403 Prohibido). Además, tenga en cuenta que cuando envía una solicitud `DELETE` para un objeto protegido por el modo de retención de conformidad, Amazon S3 crea un [marcador de eliminación](https://docs.aws.amazon.com/AmazonS3/latest/userguide/DeleteMarker.html) para el objeto.
+ Si la versión del objeto está protegida con el modo de retención de control y usted tiene el permiso `s3:BypassGovernanceRetention`, puede omitir la protección y eliminar la versión de forma permanente. Para obtener más información, consulte [Omitir el modo de gobierno](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-managing.html#object-lock-managing-bypass).
+ Si la versión del objeto está protegida por una retención legal, una solicitud `DELETE` permanente puede generar un error de acceso denegado (403 Prohibido). Para eliminar la versión del objeto de forma permanente, debe eliminar la retención legal en la versión del objeto. Para eliminar una retención legal, debe tener el permiso `s3:PutObjectLegalHold`. Para obtener más información acerca de la eliminación de una retención legal, consulte [Configurar el Bloqueo de objetos de S3](object-lock-configure.md).

## Políticas de punto de conexión de VPC
<a name="troubleshoot-403-vpc"></a>

Si accede a Amazon S3 desde un punto de conexión de nube privada virtual (VPC), asegúrese de que la política de punto de conexión de VPC no le impida acceder a los recursos de Amazon S3. De forma predeterminada, la política de puntos de conexión de VPC permite todas las solicitudes a Amazon S3. También puedes configurar la política de puntos de conexión de VPC para restringir determinadas solicitudes. Para obtener información acerca de cómo comprobar la política de punto de conexión de VPC, consulte los recursos siguientes: 
+ [Acceso denegado debido a una política de punto de conexión de VPC: denegación implícita](#access-denied-vpc-endpoint-examples-implicit)
+ [Acceso denegado debido a una política de punto de conexión de VPC: denegación explícita](#access-denied-vpc-endpoint-examples-explicit)
+ [Control del acceso a puntos de conexión de VPC mediante el uso de las políticas de punto de conexión](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html) en la *Guía de AWS PrivateLink*

## AWS OrganizationsPolíticas de
<a name="troubleshoot-403-orgs"></a>

Si su Cuenta de AWS pertenece a una organización, las políticas de AWS Organizations pueden impedirle acceder a los recursos de Amazon S3. Las políticas de AWS Organizations no bloquean ninguna solicitud a Amazon S3 de forma predeterminada. Sin embargo, asegúrese de que las políticas de AWS Organizations no estén configuradas para bloquear el acceso a los buckets de S3. Para obtener instrucciones sobre cómo comprobar las políticas de AWS Organizations, consulte los recursos siguientes: 
+ [Acceso denegado debido a una política de control de servicios: denegación implícita](#access-denied-scp-examples-implicit)
+ [Acceso denegado debido a una política de control de servicios: denegación explícita](#access-denied-scp-examples-explicit)
+ [Acceso denegado debido a una política de control de recursos: denegación explícita](#access-denied-rcp-examples-explicit)
+ [Muestra de todas las políticas](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_info-operations.html#list-all-pols-in-org) en la *Guía del usuario de AWS Organizations*

Además, si ha configurado de un modo incorrecto la política de bucket para una cuenta de miembro con el fin de denegar a todos los usuarios el acceso al bucket de S3, puede desbloquear dicho bucket si inicia una sesión con privilegios para la cuenta de miembro en IAM. Después de lanzar una sesión con privilegios, puede eliminar la política de bucket configurada de un modo incorrecto para recuperar el acceso al bucket. Para obtener más información, consulte [Realización de una tarea con privilegios en la cuenta de un miembro de AWS Organizations](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user-privileged-task.html) en la *Guía del usuario de AWS Identity and Access Management*. 

## Acceso de distribución de CloudFront
<a name="troubleshoot-403-cloudfront"></a>

Si recibe un error de acceso denegado (403 Prohibido) al intentar acceder al sitio web estático de S3 a través de CloudFront, compruebe estos problemas comunes:
+ **Tiene el formato de nombre de dominio de origen correcto?**
  + Asegúrese de que utiliza el formato de punto de conexión de sitio web de S3 (bucket-name.s3-website-region.amazonaws.com) en lugar del punto de conexión de la API de REST.
  + Verificación de que el alojamiento estático de sitios web está habilitado en el bucket
+ **Permite la política de bucket el acceso a CloudFront?**
  + Comprobación de que la política de bucket incluye permisos para la identidad de acceso de origen (OAI) o el control de acceso de origen (OAC) de la distribución de CloudFront
  + Verificación de que la política incluye los permisos s3:GetObject necesarios

Para obtener información sobre pasos y configuraciones adicionales para la solución de problemas, incluidas las configuraciones de la página de error y del protocolo, consulte [¿Por qué aparece el error “403 access denied” cuando uso un punto de enlace del sitio web de Amazon S3 como origen de mi distribución de CloudFront?](https://repost.aws/knowledge-center/s3-website-cloudfront-error-403) en el Centro de conocimiento de AWS re:Post.

**nota**  
Este error es diferente de los errores 403 que puede recibir al acceder directamente a S3. Para problemas específicos de CloudFront, asegúrese de comprobar tanto la configuración de la distribución de CloudFront como la configuración de S3.

## Configuración del punto de acceso
<a name="troubleshoot-403-access-points"></a>

Si recibe un error de acceso denegado (403 Prohibido) al realizar solicitudes a través de los puntos de acceso de Amazon S3, es posible que tenga que comprobar lo siguiente: 
+ Las configuraciones de los puntos de acceso
+ La política de usuarios de IAM que se utiliza para los puntos de acceso
+ La política de bucket que se usa para administrar o configurar los puntos de acceso entre cuentas

**Configuraciones y políticas de los puntos de acceso**
+ Al crear un punto de acceso, el origen de la red puede ser **Internet** o **VPC**. Si el origen de la red se establece solo en VPC, Amazon S3 rechazará cualquier solicitud realizada al punto de acceso que no provenga de la VPC especificada. Para comprobar el origen de la red del punto de acceso, consulte [Crear puntos de acceso restringidos a una nube privada virtual](access-points-vpc.md).
+ Con los puntos de acceso, también se puede personalizar la configuración del bloqueo de acceso público, que es similar a la configuración del bloqueo de acceso público en el nivel de bucket o de cuenta. Para ver la configuración personalizada de Bloquear acceso público, consulte [Administración del acceso público a los puntos de acceso para buckets de propósito general](access-points-bpa-settings.md).
+ Para realizar solicitudes correctas a Amazon S3 a través de los puntos de acceso, asegúrese de que el solicitante tenga los permisos de IAM necesarios. Para obtener más información, consulte [Configurar las políticas de IAM para el uso de puntos de acceso](access-points-policies.md).
+ Si la solicitud incluye puntos de acceso entre cuentas, asegúrese de que el propietario del bucket haya actualizado la política del bucket para autorizar las solicitudes desde el punto de acceso. Para obtener más información, consulte [Concesión de permisos para puntos de acceso entre cuentas](access-points-policies.md#access-points-cross-account).

Si el error Acceso denegado (403 Prohibido) persiste después de consultar todos los elementos de este tema, [obtenga el ID de solicitud de Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/get-request-ids.html) y póngase en contacto con Soporte para obtener más información.

## Recursos adicionales
<a name="troubleshoot-403-additional-resources"></a>

Para obtener más orientación sobre los errores de acceso denegado (403 Prohibido) puede consultar los siguientes recursos:
+ [¿Cómo puedo solucionar los errores 403 Access Denied de Amazon S3?](https://repost.aws/knowledge-center/s3-troubleshoot-403) en el Centro de conocimiento de AWS re:Post.
+ [¿Por qué recibo un error 403 Forbidden cuando intento acceder a un bucket u objeto de Amazon S3?](https://repost.aws/knowledge-center/s3-403-forbidden-error) en el Centro de conocimiento de AWS re:Post.
+ [¿Por qué obtengo un error de acceso denegado cuando intento acceder a un recurso de Amazon S3 en la misma Cuenta de AWS?](https://repost.aws/knowledge-center/s3-troubleshoot-403-resource-same-account) en el Centro de conocimiento de AWS re:Post.
+ [¿Por qué aparece un error de acceso denegado cuando intento acceder a un bucket de Amazon S3 con acceso de lectura público?](https://repost.aws/knowledge-center/s3-troubleshoot-403-public-read) en el Centro de conocimiento de AWS re:Post.
+ [¿Por qué aparece un error de “discrepancia de firma” cuando intento utilizar una URL prefirmada para cargar un objeto en Amazon S3?](https://repost.aws/knowledge-center/s3-presigned-url-signature-mismatch) en el Centro de conocimiento de AWS re:Post.
+ [¿Por qué aparece el error Acceso denegado para ListObjectsV2 cuando ejecuto el comando sync en el bucket de Amazon S3?](https://repost.aws/knowledge-center/s3-access-denied-listobjects-sync) en el Centro de conocimiento de AWS re:Post.
+ [¿Por qué obtengo un error “403 access denied” cuando utilizo un punto de conexión de sitio web de Amazon S3 como origen de mi distribución de CloudFront?](https://repost.aws/knowledge-center/s3-website-cloudfront-error-403) en el Centro de conocimiento de AWS re:Post.

# AWSPolíticas administradas por para Amazon S3
<a name="security-iam-awsmanpol"></a>

Una política administrada de AWS es una política independiente que AWS crea y administra. Las políticas administradas de AWS se diseñan para ofrecer permisos para muchos casos de uso comunes, por lo que puede empezar a asignar permisos a los usuarios, grupos y roles.

Considere que es posible que las políticas administradas por AWS no concedan permisos de privilegio mínimo para los casos de uso concretos, ya que están disponibles para que las utilicen todos los clientes de AWS. Se recomienda definir [políticas administradas por el cliente](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies) específicas para sus casos de uso a fin de reducir aún más los permisos.

No puede cambiar los permisos definidos en las políticas administradas AWS. Si AWS actualiza los permisos definidos en una política administrada de AWS, la actualización afecta a todas las identidades de entidades principales (usuarios, grupos y roles) a las que está asociada la política. Lo más probable es que AWS actualice una política administrada de AWS cuando se lance un nuevo Servicio de AWS o las operaciones de la API nuevas estén disponibles para los servicios existentes.

Para obtener más información, consulte [Políticas administradas por AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) en la *Guía del usuario de IAM*.

## AWS Política administrada de: AmazonS3FullAccess
<a name="security-iam-awsmanpol-amazons3fullaccess"></a>

Puede asociar la política `AmazonS3FullAccess` a las identidades de IAM. Esta política otorga permisos que brindan acceso completo a Amazon S3.

Para ver los permisos de esta política, consulte [https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonS3FullAccess$jsonEditor](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonS3FullAccess$jsonEditor) en la Consola de administración de AWS.

## AWS Política administrada de: AmazonS3ReadOnlyAccess
<a name="security-iam-awsmanpol-amazons3readonlyaccess"></a>

Puede asociar la política `AmazonS3ReadOnlyAccess` a las identidades de IAM. Esta política otorga permisos que brindan acceso de solo lectura a Amazon S3.

Para ver los permisos de esta política, consulte [https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess$jsonEditor](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess$jsonEditor) en la Consola de administración de AWS.

## AWS Política administrada de: AmazonS3ObjectLambdaExecutionRolePolicy
<a name="security-iam-awsmanpol-amazons3objectlambdaexecutionrolepolicy"></a>

Proporciona a las funciones de AWS Lambda los permisos necesarios para enviar datos a S3 Object Lambda cuando se realizan solicitudes a un punto de acceso S3 Object Lambda. También concede permisos a Lambda para escribir en Amazon CloudWatch Logs.

Para ver los permisos de esta política, consulte [https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/service-role/AmazonS3ObjectLambdaExecutionRolePolicy$jsonEditor](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/service-role/AmazonS3ObjectLambdaExecutionRolePolicy$jsonEditor) en la Consola de administración de AWS.

## AWS Política administrada de: S3UnlockBucketPolicy
<a name="security-iam-awsmanpol-S3UnlockBucketPolicy"></a>

Si ha configurado de una forma incorrecta la política de bucket para una cuenta de miembro con el fin de denegar a todos los usuarios el acceso al bucket de S3, puede usar esta política administrada por AWS (`S3UnlockBucketPolicy`) para desbloquear el bucket. Para obtener más información sobre cómo eliminar una política de bucket configurada de un modo incorrecto que impide a todas las entidades principales acceder a un bucket de Amazon S3, consulte [Realización de una tarea con privilegios en una cuenta de miembro de AWS Organizations](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user-privileged-task.html) en la *Guía del usuario de AWS Identity and Access Management*. 

## Actualizaciones de Amazon S3 en las políticas administradas por AWS
<a name="security-iam-awsmanpol-updates"></a>

Es posible consultar los detalles sobre las actualizaciones de las políticas administradas por AWS para Amazon S3 debido a que este servicio comenzó a realizar el seguimiento de estos cambios.


| Cambio | Descripción | Fecha | 
| --- | --- | --- | 
|  Amazon S3 agregó `S3UnlockBucketPolicy`  |  Amazon S3 ha agregado una nueva política administrada por AWS denominada `S3UnlockBucketPolicy` para desbloquear un bucket y eliminar una política de bucket configurada de un modo incorrecto que deniegue a todas las entidades principales el acceso a un bucket de Amazon S3.  | 1 de noviembre de 2024 | 
|  Amazon S3 agregó permisos Describe a `AmazonS3ReadOnlyAccess`  |  Amazon S3 agregó permisos `s3:Describe*` a `AmazonS3ReadOnlyAccess`.  | 11 de agosto de 2023 | 
|  Amazon S3 agregó permisos de S3 Object Lambda a `AmazonS3FullAccess` y `AmazonS3ReadOnlyAccess`  |  Amazon S3 actualizó el `AmazonS3FullAccess` y las políticas de `AmazonS3ReadOnlyAccess` para incluir permisos para S3 Object Lambda.  | 27 de septiembre de 2021 | 
|  Amazon S3 agregó `AmazonS3ObjectLambdaExecutionRolePolicy`  |  Amazon S3 ha agregado una nueva política administrada por AWS llamada `AmazonS3ObjectLambdaExecutionRolePolicy` que proporciona permisos a las funciones de Lambda para interactuar con S3 Object Lambda y escribir en CloudWatch Logs.  | 18 de agosto de 2021 | 
|  Amazon S3 comenzó a realizar el seguimiento de los cambios  |  Amazon S3 comenzó a realizar el seguimiento de los cambios en sus políticas administradas de AWS  | 18 de agosto de 2021 | 