

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

# Caricate le credenziali da un processo esterno utilizzando il AWS SDK for Java 2.x
<a name="credentials-process"></a>

**avvertimento**  
Di seguito viene descritto un metodo per ottenere credenziali temporanee da un processo esterno. Questo può essere potenzialmente pericoloso, quindi procedi con cautela. Ti consigliamo di utilizzare altri fornitori di credenziali, se possibile. Se utilizzi questa opzione, ti consigliamo di assicurarti che il `config` file sia il più protetto possibile utilizzando le migliori pratiche di sicurezza per il tuo sistema operativo.   
Assicurati che lo strumento per le credenziali personalizzate non scriva `StdErr` informazioni segrete su. SDKs e AWS CLI può acquisire e registrare tali informazioni, esponendole potenzialmente a utenti non autorizzati.

Con l'SDK for Java 2.x, puoi acquisire credenziali temporanee da un processo esterno per casi d'uso personalizzati. Esistono due modi per configurare questa funzionalità.

## Usa l'`credential_process`impostazione
<a name="credentials-credential_process"></a>

Se disponi di un metodo che fornisce credenziali temporanee, puoi integrarlo aggiungendo l'`credential_process`impostazione come parte di una definizione di profilo nel `config` file. Il valore specificato deve utilizzare il percorso completo del file di comando. Se il percorso del file contiene spazi, è necessario racchiuderlo tra virgolette.

L'SDK chiama il comando esattamente come indicato e quindi legge i dati JSON da. `stdout` 

Gli esempi seguenti mostrano l'uso di questa impostazione per percorsi di file senza spazi e percorsi di file con spazi.

------
#### [ Linux/macOS ]

**Nessuno spazio nel percorso del file**  

```
[profile process-credential-profile]
credential_process = /path/to/credential/file/credential_file.sh --custom-command custom_parameter
```

**Spazi nel percorso del file**  

```
[profile process-credential-profile]
credential_process = "/path/with/space to/credential/file/credential_file.sh" --custom-command custom_parameter
```

------
#### [ Windows ]

**Nessuno spazio nel percorso del file**  

```
[profile process-credential-profile]
credential_process = C:\Path\To\credentials.cmd --custom_command custom_parameter
```

**Spazi nel percorso del file**  

```
[profile process-credential-profile]
credential_process = "C:\Path\With Space To\credentials.cmd" --custom_command custom_parameter
```

------

Il seguente frammento di codice mostra come creare un client di servizio che utilizza le credenziali temporanee definite come parte del profilo denominato. `process-credential-profile`

```
Region region = Region.US_WEST_2;
S3Client s3Client = S3Client.builder()
      .region(region)
      .credentialsProvider(ProfileCredentialsProvider.create("process-credential-profile"))
      .build();
```

Per informazioni dettagliate sull'utilizzo di un processo esterno come fonte di credenziali temporanee, consultate la [sezione relativa alle credenziali di processo nella and Tools Reference](https://docs.aws.amazon.com/sdkref/latest/guide/feature-process-credentials.html) Guide. AWS SDKs 

## Utilizzate un `ProcessCredentialsProvider`
<a name="credentials-procredprovider"></a>

In alternativa all'utilizzo delle impostazioni nel `config` file, puoi utilizzare gli SDK `[ProcessCredentialsProvider](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/auth/credentials/ProcessCredentialsProvider.html)` per caricare le credenziali temporanee utilizzando Java. 

Gli esempi seguenti mostrano varie versioni di come specificare un processo esterno utilizzando `ProcessCredentialsProvider` e configurare un client di servizio che utilizza le credenziali temporanee.

------
#### [ Linux/macOS ]

**Nessuno spazio nel percorso del file**  

```
ProcessCredentialsProvider credentials = 
    ProcessCredentialsProvider
        .builder()
        .command("/path/to/credentials.sh optional_param1 optional_param2")
        .build();

S3Client s3 = S3Client.builder()
                      .region(Region.US_WEST_2)
                      .credentialsProvider(credentials)
                      .build();
```

**Spazi nel percorso del file**  

```
ProcessCredentialsProvider credentials = 
    ProcessCredentialsProvider
        .builder()
        .command("/path\\ with\\ spaces\\ to/credentials.sh optional_param1 optional_param2")
        .build();

S3Client s3 = S3Client.builder()
                      .region(Region.US_WEST_2)
                      .credentialsProvider(credentials)
                      .build();
```

------
#### [ Windows ]

**Nessuno spazio nel percorso del file**  

```
ProcessCredentialsProvider credentials = 
    ProcessCredentialsProvider
        .builder()
        .command("C:\\Path\\To\\credentials.exe optional_param1 optional_param2")
        .build();

S3Client s3 = S3Client.builder()
                      .region(Region.US_WEST_2)
                      .credentialsProvider(credentials)
                      .build();
```

**Spazi nel percorso del file**  

```
ProcessCredentialsProvider credentials = 
    ProcessCredentialsProvider
        .builder()
        .command("\"C:\\Path\\With Spaces To\\credentials.exe\" optional_param1 optional_param2")
        .build();

S3Client s3 = S3Client.builder()
                      .region(Region.US_WEST_2)
                      .credentialsProvider(credentials)
                      .build();
```

------

## Usa IAM Roles Anywhere per l'autenticazione
<a name="credentials-iam-roles-anywhere"></a>

[IAM Roles Anywhere](https://docs.aws.amazon.com/rolesanywhere/latest/userguide/introduction.html) Servizio AWS ti consente di ottenere AWS credenziali temporanee per carichi di lavoro eseguiti al di fuori di. AWS Consente l'accesso sicuro alle AWS risorse da ambienti locali o altri ambienti cloud.

Prima di poter autenticare le richieste con IAM Roles Anywhere, devi prima raccogliere le informazioni richieste e scaricare lo strumento di supporto alle [credenziali](https://docs.aws.amazon.com/rolesanywhere/latest/userguide/credential-helper.html). Seguendo le istruzioni [introduttive](https://docs.aws.amazon.com/rolesanywhere/latest/userguide/getting-started.html) nella Guida per l'utente di IAM Roles Anywhere, puoi creare gli elementi necessari. 

L'SDK for Java non dispone di un provider di credenziali dedicato per recuperare credenziali temporanee da IAM Roles Anywhere, ma puoi utilizzare lo strumento di supporto delle credenziali insieme a una delle opzioni per recuperare le credenziali [da](#credentials-process) un processo esterno.

### Usa l'impostazione in un profilo `credential_process`
<a name="credentials-iam-roles-anywhere-config"></a>

Il seguente frammento del file di AWS configurazione condiviso mostra un profilo denominato `roles_anywhere` che utilizza l'impostazione: `credential_process`

```
[profile roles_anywhere]
credential_process = ./aws_signing_helper credential-process \
  --certificate /path/to/certificate \
  --private-key /path/to/private-key \
  --trust-anchor-arn arn:aws:rolesanywhere:region:account:trust-anchor/TA_ID \
  --profile-arn arn:aws:rolesanywhere:region:account:profile/PROFILE_ID \
  --role-arn arn:aws:iam::account:role/role-name-with-path
```

È necessario sostituire il testo mostrato in rosso con i valori dopo aver assemblato tutti gli artefatti. Il primo elemento dell'impostazione,`aws_signing_helper`, è l'eseguibile dello strumento di supporto alle credenziali ed `credential-process` è il comando.

Quando configuri un client di servizio per l'utilizzo del `roles_anywhere` profilo, come illustrato nel codice seguente, l'SDK memorizza nella cache le credenziali temporanee e le aggiorna prima della scadenza:

```
S3Client s3Client = S3Client.builder()
    .credentialsProvider(ProfileCredentialsProvider.builder()
        .profileName("roles_anywhere").build())
    .build();
```

### Configura un `ProcessCredentialsProvider`
<a name="credentials-iam-roles-anywhere-process"></a>

Come illustrato di seguito, puoi utilizzare un approccio basato solo sul codice con, `ProcessCredentialsProvider` anziché utilizzare le impostazioni del profilo:

```
ProcessCredentialsProvider processCredentialsProvider = ProcessCredentialsProvider.builder()
    .command("""
            ./aws_signing_helper credential-process \
            --certificate /path/to/certificate \
            --private-key /path/to/private-key \
            --trust-anchor-arn arn:aws:rolesanywhere:region:account:trust-anchor/TA_ID \
            --profile-arn arn:aws:rolesanywhere:region:account:profile/PROFILE_ID \
            --role-arn arn:aws:iam::account:role/role-name-with-path
        """).build();

S3Client s3Client = S3Client.builder()
    .credentialsProvider(processCredentialsProvider)
    .build();
```

Sostituisci il testo mostrato in rosso con i tuoi valori dopo aver assemblato tutti gli artefatti. 