

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

# Fornire credenziali temporanee a AWS SDK per Java
<a name="credentials"></a>

Per effettuare richieste a Amazon Web Services, è necessario fornire credenziali AWS temporanee AWS SDK per Java da utilizzare quando chiama i servizi. Questa operazione può essere eseguita nei modi seguenti:
+ Utilizzando la catena di provider delle credenziali predefinita *(scelta consigliata)*.
+ Utilizzando un provider di credenziali o catena di provider specifica (o creando la propria).
+ Fornisci tu stesso le credenziali temporanee nel codice.

## Utilizzo della catena di provider delle credenziali predefinita
<a name="credentials-default"></a>

[Quando inizializzate un nuovo client di servizio senza fornire alcun argomento, AWS SDK per Java tenta di trovare credenziali temporanee utilizzando la *catena di fornitori di credenziali predefinita* implementata dalla classe Default. AWSCredentials ProviderChain](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/auth/DefaultAWSCredentialsProviderChain.html) La catena di provider delle credenziali predefinita cerca le credenziali in questo ordine:

1.  **Variabili di ambiente** -`AWS_ACCESS_KEY_ID`, or, e`AWS_SECRET_KEY`. `AWS_SECRET_ACCESS_KEY` `AWS_SESSION_TOKEN` AWS SDK per Java utilizza la [EnvironmentVariableCredentialsProvider](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/auth/EnvironmentVariableCredentialsProvider.html)classe per caricare queste credenziali.

1.  **Proprietà del sistema Java** -`aws.accessKeyId`, `aws.secretKey` (ma non`aws.secretAccessKey`), e`aws.sessionToken`. li AWS SDK per Java utilizza [SystemPropertiesCredentialsProvider](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/auth/SystemPropertiesCredentialsProvider.html)per caricare queste credenziali.

1.  **Credenziali Web Identity Token** dall'ambiente o dal contenitore.

1.  **Il file di profili di credenziali predefinito**, in genere situato in `~/.aws/credentials` (la posizione può variare in base alla piattaforma) e condiviso da molti utenti AWS SDKs e da. AWS CLI AWS SDK per Java Utilizza il [ProfileCredentialsProvider](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/auth/profile/ProfileCredentialsProvider.html)per caricare queste credenziali.

   È possibile creare un file di credenziali utilizzando il `aws configure` AWS CLI comando fornito da oppure modificarlo con un editor di testo. Per informazioni sul formato del file delle credenziali, consulta Formato del file [AWS delle credenziali](#credentials-file-format).

1.  **Credenziali del contenitore Amazon ECS**: caricate da Amazon ECS se la variabile `AWS_CONTAINER_CREDENTIALS_RELATIVE_URI` di ambiente è impostata. Le AWS SDK per Java utilizza per caricare queste [ContainerCredentialsProvider](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/auth/ContainerCredentialsProvider.html)credenziali. È possibile specificare l'indirizzo IP per questo valore.

1.  **Credenziali del profilo di istanza**: utilizzate sulle istanze EC2 e fornite tramite il Amazon EC2 servizio di metadati. Le AWS SDK per Java utilizza per caricare queste [InstanceProfileCredentialsProvider](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/auth/InstanceProfileCredentialsProvider.html)credenziali. È possibile specificare l'indirizzo IP per questo valore.
**Nota**  
Le credenziali del profilo di istanza vengono utilizzate solo se non `AWS_CONTAINER_CREDENTIALS_RELATIVE_URI` sono impostate. Per ulteriori informazioni, consulta [EC2ContainerCredentialsProviderWrapper](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/auth/EC2ContainerCredentialsProviderWrapper.html).

### Imposta credenziali temporanee
<a name="setting-credentials"></a>

Per poter utilizzare le credenziali AWS temporanee, devono essere impostate in *almeno una delle* posizioni precedenti. Per informazioni sull'impostazione delle credenziali, consulta i seguenti argomenti:
+ Per specificare le credenziali nell'*ambiente* o nel file dei *profili di credenziali* predefinito, vedere. [Configurare le credenziali temporanee](setup-credentials.md#setup-credentials-setting)
+ Per impostare *proprietà del sistema* Java, consulta il tutorial sulle [proprietà del sistema](http://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html) nel sito Web dei *tutorial Java* ufficiale.
+ Per configurare e utilizzare *le credenziali del profilo di istanza* con le tue istanze EC2, consulta [Using IAM Roles to Grant Access to Resources](java-dg-roles.md) on. AWS Amazon EC2

### Imposta un profilo di credenziali alternativo
<a name="setting-an-alternate-credentials-profile"></a>

 AWS SDK per Java Utilizza il profilo *predefinito* per impostazione predefinita, ma esistono modi per personalizzare il profilo proveniente dal file delle credenziali.

È possibile utilizzare la variabile AWS di ambiente Profile per modificare il profilo caricato dall'SDK.

*Ad esempio, su Linux, macOS o Unix è necessario eseguire il comando seguente per modificare il profilo in MyProfile.*

```
export AWS_PROFILE="myProfile"
```

In Windows si utilizzerebbe quanto segue.

```
set AWS_PROFILE="myProfile"
```

L'impostazione della variabile di `AWS_PROFILE` ambiente influisce sul caricamento delle credenziali per tutti gli strumenti AWS SDKs e strumenti ufficialmente supportati (inclusi i AWS CLI e i AWS Tools for Windows PowerShell). Per modificare solo il profilo di un'applicazione Java, potete `aws.profile` invece utilizzare la proprietà di sistema.

**Nota**  
La variabile di ambiente prevale sulla proprietà di sistema.

### Imposta una posizione alternativa per il file delle credenziali
<a name="setting-an-alternate-credentials-file-location"></a>

 AWS SDK per Java Carica automaticamente le credenziali AWS temporanee dalla posizione predefinita del file delle credenziali. Tuttavia, puoi anche specificare il percorso impostando la variabile di ambiente `AWS_CREDENTIAL_PROFILES_FILE` con il percorso completo al file delle credenziali.

È possibile utilizzare questa funzionalità per modificare temporaneamente la posizione in cui AWS SDK per Java cerca il file delle credenziali (ad esempio, impostando questa variabile con la riga di comando). In alternativa, puoi impostare la variabile di ambiente nell'ambiente utente o di sistema per modificarla a livello di utente o di sistema.

#### Per ignorare il percorso del file delle credenziali predefinito
<a name="w3aab9c15b9c11b7b1"></a>
+ Imposta la variabile di `AWS_CREDENTIAL_PROFILES_FILE` ambiente sulla posizione del file delle AWS credenziali.
  + Su Linux, macOS o Unix, usa:

    ```
    export AWS_CREDENTIAL_PROFILES_FILE=path/to/credentials_file
    ```
  + In Windows, usa:

    ```
    set AWS_CREDENTIAL_PROFILES_FILE=path/to/credentials_file
    ```

### `Credentials`formato di file
<a name="credentials-file-format"></a>

Seguendo le [istruzioni riportate nella configurazione di base](signup-create-iam-user.md#setup-temp-creds) di questa guida, il file delle credenziali dovrebbe avere il seguente formato di base.

```
[default]
aws_access_key_id=<value from AWS access portal>
aws_secret_access_key=<value from AWS access portal>
aws_session_token=<value from AWS access portal>

[profile2]
aws_access_key_id=<value from AWS access portal>
aws_secret_access_key=<value from AWS access portal>
aws_session_token=<value from AWS access portal>
```

Il nome del profilo è specificato tra parentesi quadre (ad esempio, `[default]`), seguito dai campi configurabili nel profilo come coppie chiave-valore. Nel `credentials` file possono essere presenti più profili, che possono essere aggiunti o modificati selezionando `aws configure --profile PROFILE_NAME ` il profilo da configurare.

È possibile specificare campi aggiuntivi`metadata_service_timeout`, ad esempio e`metadata_service_num_attempts`. Questi non sono configurabili con la CLI: è necessario modificare il file manualmente se si desidera utilizzarli. Per ulteriori informazioni sul file di configurazione e sui campi disponibili, vedere [Configurazione di AWS Command Line Interface nella Guida per l'](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)utente. AWS Command Line Interface 

### Caricare le credenziali
<a name="loading-credentials"></a>

Dopo aver impostato le credenziali temporanee, l'SDK le carica utilizzando la catena di provider di credenziali predefinita.

A tale scopo, create un'istanza di un Servizio AWS client senza fornire esplicitamente le credenziali al builder, come segue.

```
AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
                       .withRegion(Regions.US_WEST_2)
                       .build();
```

## Specificate un fornitore di credenziali o una catena di fornitori
<a name="credentials-specify-provider"></a>

Puoi specificare un provider delle credenziali diverso dalla catena di provider delle credenziali *predefinita* utilizzando il generatore client.

Fornisci un'istanza di un provider di credenziali o di una catena di provider a un client builder che accetta un'interfaccia [AWSCredentialsProvider](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/auth/AWSCredentialsProvider.html) come input. Nell'esempio seguente viene mostrato come utilizzare specificatamente le credenziali *ambiente*.

```
AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
                       .withCredentials(new EnvironmentVariableCredentialsProvider())
                       .build();
```

[Per l'elenco completo dei provider di credenziali e delle catene di provider AWS SDK per Java forniti, consulta **All Known Implementation** Classes in Provider. AWSCredentials](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/auth/AWSCredentialsProvider.html)

**Nota**  
È possibile utilizzare questa tecnica per fornire provider di credenziali o catene di provider create utilizzando il proprio provider di credenziali che implementa l'`AWSCredentialsProvider`interfaccia o sottoclassando la classe. [AWSCredentialsProviderChain](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/auth/AWSCredentialsProviderChain.html)

## Specificate esplicitamente le credenziali temporanee
<a name="credentials-explicit"></a>

Se la catena di credenziali predefinita o un provider o una catena di fornitori specifici o personalizzati non funzionano per il codice, puoi impostare le credenziali fornite in modo esplicito. Se hai recuperato credenziali temporanee utilizzando AWS STS, usa questo metodo per specificare le credenziali di accesso. AWS 

1. Crea un'istanza della [BasicSessionCredentials](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/auth/BasicSessionCredentials.html)classe e forniscile la chiave di AWS accesso, la chiave AWS segreta e il token di AWS sessione che l'SDK utilizzerà per la connessione.

1. Crea un [AWSStaticCredentialsProvider](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/auth/AWSStaticCredentialsProvider.html)con l'oggetto. `AWSCredentials`

1. Configurare il generatore client con `AWSStaticCredentialsProvider` e creare il client.

Di seguito è riportato un esempio di :

```
BasicSessionCredentials awsCreds = new BasicSessionCredentials("access_key_id", "secret_key_id", "session_token");
AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
                        .withCredentials(new AWSStaticCredentialsProvider(awsCreds))
                        .build();
```

## Ulteriori informazioni
<a name="more-info"></a>
+  [Iscriviti AWS e crea un utente IAM](signup-create-iam-user.md) 
+  [Configura AWS le credenziali e la regione per lo sviluppo](setup-credentials.md) 
+  [Utilizzo dei ruoli IAM per concedere l'accesso alle AWS risorse su Amazon EC2](java-dg-roles.md) 