

La AWS SDK per Java 1.x è stata raggiunta end-of-support il 31 dicembre 2025. Ti consigliamo di eseguire la migrazione a per continuare [AWS SDK for Java 2.x](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/home.html)a ricevere nuove funzionalità, miglioramenti della disponibilità e aggiornamenti di sicurezza.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Gestione dell'accesso ai Amazon S3 bucket utilizzando le policy dei bucket
<a name="examples-s3-bucket-policies"></a>

Puoi impostare, ottenere o eliminare una *policy sui bucket* per gestire l'accesso ai tuoi Amazon S3 bucket.

## Imposta una Bucket Policy
<a name="set-s3-bucket-policy"></a>

Puoi impostare la policy sui bucket per un determinato bucket S3 nei seguenti modi:
+ Chiamando il client AmazonS3 e fornendogli un `setBucketPolicy` [SetBucketPolicyRequest](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/s3/model/SetBucketPolicyRequest.html) 
+ Impostazione diretta della policy utilizzando l'`setBucketPolicy`overload che richiede il nome del bucket e il testo della policy (in formato JSON)

 **Importazioni** 

```
import com.amazonaws.AmazonServiceException;
import com.amazonaws.auth.policy.Policy;
import com.amazonaws.auth.policy.Principal;
```

 **Codice** 

```
    s3.setBucketPolicy(bucket_name, policy_text);
} catch (AmazonServiceException e) {
    System.err.println(e.getErrorMessage());
    System.exit(1);
}
```

### Utilizzate la classe di policy per generare o convalidare una policy
<a name="use-s3-bucket-policy-class"></a>

Quando fornisci una policy bucket a`setBucketPolicy`, puoi fare quanto segue:
+ Specificate la policy direttamente come stringa di testo in formato JSON
+ [Crea la politica utilizzando la classe Policy](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/auth/policy/Policy.html)

Utilizzando la `Policy` classe, non devi preoccuparti di formattare correttamente la stringa di testo. Per ottenere il testo della policy JSON dalla `Policy` classe, usa il suo `toJson` metodo.

 **Importazioni** 

```
import com.amazonaws.auth.policy.Resource;
import com.amazonaws.auth.policy.Statement;
import com.amazonaws.auth.policy.actions.S3Actions;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
```

 **Codice** 

```
        new Statement(Statement.Effect.Allow)
                .withPrincipals(Principal.AllUsers)
                .withActions(S3Actions.GetObject)
                .withResources(new Resource(
                        "{region-arn}s3:::" + bucket_name + "/*")));
return bucket_policy.toJson();
```

La `Policy` classe fornisce anche un `fromJson` metodo che può tentare di creare una politica utilizzando una stringa JSON passata. Il metodo lo convalida per garantire che il testo possa essere trasformato in una struttura di policy valida e fallirà con un `IllegalArgumentException` se il testo della policy non è valido.

```
Policy bucket_policy = null;
try {
    bucket_policy = Policy.fromJson(file_text.toString());
} catch (IllegalArgumentException e) {
    System.out.format("Invalid policy text in file: \"%s\"",
            policy_file);
    System.out.println(e.getMessage());
}
```

È possibile utilizzare questa tecnica per preconvalidare una politica letta da un file o in altri modi.

Vedi l'[esempio completo](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/java/example_code/s3/src/main/java/aws/example/s3/SetBucketPolicy.java) su. GitHub

## Ottieni una Bucket Policy
<a name="get-s3-bucket-policy"></a>

Per recuperare la policy relativa a un Amazon S3 bucket, chiama il `getBucketPolicy` metodo del client AmazonS3, passandogli il nome del bucket da cui ottenere la policy.

 **Importazioni** 

```
import com.amazonaws.AmazonServiceException;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
```

 **Codice** 

```
  try {
      BucketPolicy bucket_policy = s3.getBucketPolicy(bucket_name);
      policy_text = bucket_policy.getPolicyText();
  } catch (AmazonServiceException e) {
      System.err.println(e.getErrorMessage());
      System.exit(1);
  }
```

Se il bucket denominato non esiste, se non hai accesso ad esso o se non ha una politica relativa al bucket, ne viene generata una. `AmazonServiceException`

Vedi l'esempio [completo](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/java/example_code/s3/src/main/java/aws/example/s3/GetBucketPolicy.java) su. GitHub

## Eliminare una policy del bucket
<a name="delete-s3-bucket-policy"></a>

Per eliminare una policy sui bucket, chiama il client AmazonS3`deleteBucketPolicy`, fornendogli il nome del bucket.

 **Importazioni** 

```
import com.amazonaws.AmazonServiceException;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.AmazonS3;
```

 **Codice** 

```
  try {
      s3.deleteBucketPolicy(bucket_name);
  } catch (AmazonServiceException e) {
      System.err.println(e.getErrorMessage());
      System.exit(1);
  }
```

Questo metodo funziona anche se il bucket non dispone già di una policy. Se specifichi un nome di bucket che non esiste o se non hai accesso al bucket, viene generato un. `AmazonServiceException`

Vedi l'esempio [completo](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/java/example_code/s3/src/main/java/aws/example/s3/DeleteBucketPolicy.java) su. GitHub

## Ulteriori informazioni
<a name="more-info"></a>
+  [Accedi alla panoramica del linguaggio delle politiche](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-policy-language-overview.html) nella Guida Amazon Simple Storage Service per l'utente
+  [Esempi di policy relative a Bucket](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html) nella Guida per l' Amazon Simple Storage Service utente