

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 delle autorizzazioni di Amazon S3 accesso per bucket e oggetti
<a name="examples-s3-access-permissions"></a>

È possibile utilizzare gli elenchi di controllo degli accessi (ACLs) per Amazon S3 i bucket e gli oggetti per un controllo dettagliato delle risorse. Amazon S3 

**Nota**  
Questi esempi di codice presuppongono che l'utente comprenda il materiale contenuto in [Using the AWS SDK per Java](basics.md) e che abbia configurato AWS le credenziali predefinite utilizzando le informazioni contenute in [Configurazione delle AWS credenziali](setup-credentials.md) e Area per lo sviluppo.

## Ottieni l'elenco di controllo degli accessi per un bucket
<a name="get-the-access-control-list-for-a-bucket"></a>

*Per ottenere l'ACL corrente per un bucket, chiama il `getBucketAcl` metodo di AmazonS3, passandogli il nome del bucket da interrogare.* Questo metodo restituisce un oggetto. [AccessControlList](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/s3/model/AccessControlList.html) Per ottenere ogni concessione di accesso nell'elenco, chiama il relativo `getGrantsAsList` metodo, che restituirà un elenco Java standard di oggetti [Grant](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/s3/model/Grant.html).

 **Importazioni** 

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

 **Codice** 

```
final AmazonS3 s3 = AmazonS3ClientBuilder.standard().withRegion(Regions.DEFAULT_REGION).build();
try {
    AccessControlList acl = s3.getBucketAcl(bucket_name);
    List<Grant> grants = acl.getGrantsAsList();
    for (Grant grant : grants) {
        System.out.format("  %s: %s\n", grant.getGrantee().getIdentifier(),
                grant.getPermission().toString());
    }
} catch (AmazonServiceException e) {
    System.err.println(e.getErrorMessage());
    System.exit(1);
}
```

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

## Imposta l'elenco di controllo degli accessi per un bucket
<a name="set-the-access-control-list-for-a-bucket"></a>

Per aggiungere o modificare le autorizzazioni a un ACL per un bucket, chiama il metodo di AmazonS3. `setBucketAcl` Richiede un [AccessControlList](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/s3/model/AccessControlList.html)oggetto che contenga un elenco di assegnatari e livelli di accesso da impostare.

 **Importazioni** 

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

 **Codice** 

```
final AmazonS3 s3 = AmazonS3ClientBuilder.standard().withRegion(Regions.DEFAULT_REGION).build();
try {
    // get the current ACL
    AccessControlList acl = s3.getBucketAcl(bucket_name);
    // set access for the grantee
    EmailAddressGrantee grantee = new EmailAddressGrantee(email);
    Permission permission = Permission.valueOf(access);
    acl.grantPermission(grantee, permission);
    s3.setBucketAcl(bucket_name, acl);
} catch (AmazonServiceException e) {
    System.err.println(e.getErrorMessage());
    System.exit(1);
}
```

**Nota**  
Puoi fornire l'identificatore univoco del beneficiario direttamente utilizzando la classe [Grantee](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/s3/model/Grantee.html) oppure utilizzare la [EmailAddressGrantee](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/s3/model/EmailAddressGrantee.html)classe per impostare il beneficiario via e-mail, come abbiamo fatto qui.

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

## Ottieni la lista di controllo degli accessi per un oggetto
<a name="get-the-access-control-list-for-an-object"></a>

*Per ottenere l'ACL corrente per un oggetto, chiama il `getObjectAcl` metodo di AmazonS3, passandogli il nome del *bucket e il nome* dell'oggetto da interrogare.* [Ad esempio`getBucketAcl`, questo metodo restituisce un [AccessControlList](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/s3/model/AccessControlList.html)oggetto che puoi usare per esaminare ogni Grant.](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/s3/model/Grant.html)

 **Importazioni** 

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

 **Codice** 

```
try {
    AccessControlList acl = s3.getObjectAcl(bucket_name, object_key);
    List<Grant> grants = acl.getGrantsAsList();
    for (Grant grant : grants) {
        System.out.format("  %s: %s\n", grant.getGrantee().getIdentifier(),
                grant.getPermission().toString());
    }
} catch (AmazonServiceException e) {
    System.err.println(e.getErrorMessage());
    System.exit(1);
}
```

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

## Impostare l'elenco di controllo degli accessi per un oggetto
<a name="set-the-access-control-list-for-an-object"></a>

Per aggiungere o modificare le autorizzazioni a un ACL per un oggetto, chiamate il metodo di AmazonS3. `setObjectAcl` Richiede un [AccessControlList](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/s3/model/AccessControlList.html)oggetto che contenga un elenco di assegnatari e livelli di accesso da impostare.

 **Importazioni** 

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

 **Codice** 

```
    try {
        // get the current ACL
        AccessControlList acl = s3.getObjectAcl(bucket_name, object_key);
        // set access for the grantee
        EmailAddressGrantee grantee = new EmailAddressGrantee(email);
        Permission permission = Permission.valueOf(access);
        acl.grantPermission(grantee, permission);
        s3.setObjectAcl(bucket_name, object_key, acl);
    } catch (AmazonServiceException e) {
        System.err.println(e.getErrorMessage());
        System.exit(1);
    }
}
```

**Nota**  
Puoi fornire l'identificatore univoco del beneficiario direttamente utilizzando la classe [Grantee](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/s3/model/Grantee.html) oppure utilizzare la [EmailAddressGrantee](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/s3/model/EmailAddressGrantee.html)classe per impostare il beneficiario via e-mail, come abbiamo fatto qui.

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

## Ulteriori informazioni
<a name="more-information"></a>
+  [GET Bucket acl nell'API](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETacl.html) Reference Amazon S3 
+  [INSERISCI Bucket acl](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTacl.html) nel riferimento API Amazon S3 
+  [GET Object acl nel riferimento](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGETacl.html) API Amazon S3 
+  [INSERISCI Object acl](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUTacl.html) nel riferimento API Amazon S3 