

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Laden Sie Anmeldeinformationen von einem externen Prozess mit dem AWS SDK for Java 2.x
<a name="credentials-process"></a>

**Warnung**  
Im Folgenden wird eine Methode zur Beschaffung temporärer Anmeldeinformationen aus einem externen Prozess beschrieben. Dies kann potenziell gefährlich sein, gehen Sie also vorsichtig vor. Wir empfehlen, dass Sie, wenn möglich, andere Anbieter von Anmeldeinformationen verwenden. Wenn Sie diese Option verwenden, empfehlen wir Ihnen, sicherzustellen, dass die `config` Datei so gesperrt wie möglich ist. Verwenden Sie dabei die bewährten Sicherheitsmethoden für Ihr Betriebssystem.   
Stellen Sie sicher, dass Ihr Tool für benutzerdefinierte Anmeldeinformationen keine geheimen Informationen in das System schreibt`StdErr`. SDKs und AWS CLI kann solche Informationen erfassen und protokollieren, wodurch sie möglicherweise unbefugten Benutzern zugänglich gemacht werden.

Mit dem SDK for Java 2.x können Sie temporäre Anmeldeinformationen von einem externen Prozess für benutzerdefinierte Anwendungsfälle abrufen. Es gibt zwei Möglichkeiten, diese Funktionalität zu konfigurieren.

## Verwenden Sie die `credential_process` Einstellung
<a name="credentials-credential_process"></a>

Wenn Sie über eine Methode verfügen, die temporäre Anmeldeinformationen bereitstellt, können Sie sie integrieren, indem Sie die `credential_process` Einstellung als Teil einer Profildefinition in der `config` Datei hinzufügen. Der von Ihnen angegebene Wert muss den vollständigen Pfad zur Befehlsdatei enthalten. Wenn der Dateipfad Leerzeichen enthält, müssen Sie ihn in Anführungszeichen setzen.

Das SDK ruft den Befehl genau wie angegeben auf und liest dann JSON-Daten aus`stdout`. 

Die folgenden Beispiele zeigen die Verwendung dieser Einstellung für Dateipfade ohne Leerzeichen und Dateipfade mit Leerzeichen.

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

**Keine Leerzeichen im Dateipfad**  

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

**Leerzeichen im Dateipfad**  

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

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

**Keine Leerzeichen im Dateipfad**  

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

**Leerzeichen im Dateipfad**  

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

------

Der folgende Codeausschnitt zeigt, wie ein Dienstclient erstellt wird, der die temporären Anmeldeinformationen verwendet, die als Teil des genannten Profils definiert sind. `process-credential-profile`

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

Ausführliche Informationen zur Verwendung eines externen Prozesses als Quelle für temporäre Anmeldeinformationen finden Sie im [Abschnitt Prozessanmeldeinformationen im Referenzhandbuch](https://docs.aws.amazon.com/sdkref/latest/guide/feature-process-credentials.html) AWS SDKs und im Tools-Referenzhandbuch.

## Verwenden Sie ein `ProcessCredentialsProvider`
<a name="credentials-procredprovider"></a>

Als Alternative zur Verwendung von Einstellungen in der `config` Datei können Sie die SDKs verwenden, `[ProcessCredentialsProvider](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/auth/credentials/ProcessCredentialsProvider.html)` um temporäre Anmeldeinformationen mithilfe von Java zu laden. 

Die folgenden Beispiele zeigen verschiedene Versionen der Spezifizierung eines externen Prozesses mithilfe von `ProcessCredentialsProvider` und der Konfiguration eines Service-Clients, der die temporären Anmeldeinformationen verwendet.

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

**Keine Leerzeichen im Dateipfad**  

```
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();
```

**Leerzeichen im Dateipfad**  

```
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 ]

**Keine Leerzeichen im Dateipfad**  

```
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();
```

**Leerzeichen im Dateipfad**  

```
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();
```

------

## Verwenden Sie IAM Roles Anywhere für die Authentifizierung
<a name="credentials-iam-roles-anywhere"></a>

Mit [IAM Roles Anywhere](https://docs.aws.amazon.com/rolesanywhere/latest/userguide/introduction.html) können Sie temporäre AWS Anmeldeinformationen für Workloads abrufen, die außerhalb von ausgeführt werden. AWS-Service AWS Es ermöglicht den sicheren Zugriff auf AWS Ressourcen aus lokalen oder anderen Cloud-Umgebungen.

Bevor Sie Anfragen mit IAM Roles Anywhere authentifizieren können, müssen Sie zunächst die erforderlichen Informationen sammeln und das [Credential](https://docs.aws.amazon.com/rolesanywhere/latest/userguide/credential-helper.html) Helper-Tool herunterladen. Folgen Sie den Anweisungen „[Erste Schritte](https://docs.aws.amazon.com/rolesanywhere/latest/userguide/getting-started.html)“ im IAM Roles Anywhere-Benutzerhandbuch, um die erforderlichen Artefakte zu erstellen. 

Das SDK for Java verfügt nicht über einen speziellen Anbieter für Anmeldeinformationen, um temporäre Anmeldeinformationen von IAM Roles Anywhere abzurufen. Sie können jedoch das Credential Helper-Tool zusammen mit einer der Optionen verwenden, um [Anmeldeinformationen von einem externen Prozess abzurufen](#credentials-process).

### Verwenden Sie die `credential_process` Einstellung in einem Profil
<a name="credentials-iam-roles-anywhere-config"></a>

Der folgende Ausschnitt in der gemeinsam genutzten AWS Konfigurationsdatei zeigt ein Profil mit dem Namen`roles_anywhere`, das die Einstellung verwendet: `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
```

Sie müssen den rot angezeigten Text durch Ihre Werte ersetzen, nachdem Sie alle Artefakte zusammengestellt haben. Das erste Element in der Einstellung,`aws_signing_helper`, ist die ausführbare Datei des Credential Helper-Tools und `credential-process` ist der Befehl.

Wenn Sie einen Service-Client für die Verwendung des `roles_anywhere` Profils konfigurieren (wie im folgenden Code gezeigt), speichert das SDK die temporären Anmeldeinformationen im Cache und aktualisiert sie, bevor sie ablaufen:

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

### Konfigurieren Sie ein `ProcessCredentialsProvider`
<a name="credentials-iam-roles-anywhere-process"></a>

Wie im Folgenden gezeigt, können Sie einen reinen Code-Ansatz mit folgenden `ProcessCredentialsProvider` Profileinstellungen verwenden:

```
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();
```

Ersetzen Sie den rot angezeigten Text durch Ihre Werte, nachdem Sie alle Artefakte zusammengestellt haben. 