

# Administración de políticas de bucket de directorio
<a name="directory-bucket-bucket-policy"></a>

Puede agregar, eliminar, actualizar y ver políticas de buckets de directorio de Amazon S3 desde la consola de Amazon S3, los AWS SDK y la CLI de AWS. Para obtener más información, consulte los siguientes temas. Para obtener más información sobre las acciones de AWS Identity and Access Management (IAM) permitidas, consulte [Autorización de API de puntos de conexión regionales con IAM](s3-express-security-iam.md). Para ver ejemplos de políticas de bucket para buckets de directorio, consulte [Ejemplo de políticas de bucket para buckets de directorio](s3-express-security-iam-example-bucket-policies.md).

**Topics**
+ [Agregar una política de bucket](#directory-bucket-bucket-policy-add)
+ [Visualización de una política de bucket](#directory-bucket-bucket-policy-view)
+ [Eliminación de una política de bucket](#directory-bucket-bucket-policy-delete)

## Agregar una política de bucket
<a name="directory-bucket-bucket-policy-add"></a>

Para agregar una política de bucket a un bucket de directorio, puede utilizar la consola de Amazon S3 o los SDK de AWS o la AWS CLI.

### Uso de la consola de S3
<a name="directory-bucket-bucket-policy-add-console"></a>

**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 directorio**.

1. En la lista **Buckets de directorio**, seleccione el nombre del bucket al que desea crear una política.

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

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

1. Para generar una política automáticamente, elija **Generador de políticas**.

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

   Si no quiere usar el AWSgenerador de políticas, puede añadir o editar las instrucciones JSON en la sección **Política**.

   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 todas las instrucciones que 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. Elija **Guardar cambios**, que le devuelve a la pestaña **Permisos**. 

### Uso de los AWS SDK
<a name="directory-bucket-bucket-policy-add-sdks"></a>

------
#### [ SDK for Java 2.x ]

**Example**  
`PutBucketPolicy` AWS SDK for Java 2.x   

```
public static void setBucketPolicy(S3Client s3Client, String bucketName, String policyText) {
     
       //sample policy text
       /**
        * policy_statement = {
         *         'Version': '2012-10-17',
         *         'Statement': [
         *             {
         *                 'Sid': 'AdminPolicy',
         *                 'Effect': 'Allow',
         *                 'Principal': {
         *                     "AWS": "111122223333"
         *                 },
         *                 'Action': 's3express:*',
         *                 'Resource': 'arn:aws:s3express:region:111122223333:bucket/bucket-base-name--zone-id--x-s3'
         *             }
         *         ]
         *     }
         */
         System.out.println("Setting policy:");
         System.out.println("----");
         System.out.println(policyText);
         System.out.println("----");
         System.out.format("On Amazon S3 bucket: \"%s\"\n", bucketName);
         
         try {
             PutBucketPolicyRequest policyReq = PutBucketPolicyRequest.builder()
                     .bucket(bucketName)
                     .policy(policyText)
                     .build();
             s3Client.putBucketPolicy(policyReq);
             System.out.println("Done!");
         }    
         
         catch (S3Exception e) {
             System.err.println(e.awsErrorDetails().errorMessage());
             System.exit(1);
         }
    }
```

------

### Uso de AWS CLI
<a name="directory-bucket-delete-cli"></a>

En este ejemplo se muestra cómo agregar un bucket de política a un bucket de directorio con la AWS CLI. Para usar el comando, sustituya los *marcadores de posición de entrada del usuario* con su propia información.

```
aws s3api put-bucket-policy --bucket bucket-base-name--zone-id--x-s3 --policy file://bucket_policy.json
```

bucket\$1policy.json:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AdminPolicy",
            "Effect": "Allow",
            "Principal": {
                "AWS": "111122223333"
            },
            "Action": "s3express*",
            "Resource": "arn:aws:s3express:us-west-2:111122223333:bucket/amzn-s3-demo-bucket--usw2-az1--x-s3"
        }
    ]
}
```

------

Para obtener más información, consulte [put-bucket-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-bucket-policy.html) en AWS Command Line Interface.

## Visualización de una política de bucket
<a name="directory-bucket-bucket-policy-view"></a>

Para ver una política de buckets para un bucket de directorio, utilice los siguientes ejemplos.

### Uso de AWS CLI
<a name="directory-bucket-bucket-policy-view-cli"></a>

En este ejemplo se muestra cómo ver una política de bucket adjunta a un bucket de directorio con la AWS CLI. Para usar el comando, sustituya los *marcadores de posición de entrada del usuario* con su propia información.

```
aws s3api get-bucket-policy --bucket bucket-base-name--zone-id--x-s3
```

Para obtener más información, consulte [get-bucket-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-bucket-policy.html) en AWS Command Line Interface.

## Eliminación de una política de bucket
<a name="directory-bucket-bucket-policy-delete"></a>

Para eliminar una política de bucket para un directorio de bucket, utilice los siguientes ejemplos.

### Uso de los AWS SDK
<a name="directory-bucket-bucket-policy-delete-sdks"></a>

------
#### [ SDK for Java 2.x ]

**Example**  
`DeleteBucketPolicy` AWS SDK for Java 2.x   

```
public static void deleteBucketPolicy(S3Client s3Client, String bucketName) {
      try {
          DeleteBucketPolicyRequest deleteBucketPolicyRequest = DeleteBucketPolicyRequest
                  .builder()
                  .bucket(bucketName)
                  .build()
          s3Client.deleteBucketPolicy(deleteBucketPolicyRequest);
          System.out.println("Successfully deleted bucket policy");
      }
      
      catch (S3Exception e) {
          System.err.println(e.awsErrorDetails().errorMessage());
          System.exit(1);
      }
```

------

### Uso de AWS CLI
<a name="directory-bucket-delete-cli"></a>

En este ejemplo se muestra cómo eliminar una política de bucket para un bucket de directorio con la AWS CLI. Para usar el comando, sustituya los *marcadores de posición de entrada del usuario* con su propia información.

```
aws s3api delete-bucket-policy --bucket bucket-base-name--zone-id--x-s3
```

Para obtener más información, consulte [delete-bucket-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/delete-bucket-policy.html) en AWS Command Line Interface.