Verwenden Sie einen bestimmten Anbieter für Anmeldeinformationen - AWS SDK for Java 2.x

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.

Verwenden Sie einen bestimmten Anbieter für Anmeldeinformationen

Der SDK verwendet Anbieter von Anmeldeinformationen zum Abrufen, Verwalten und Bereitstellen von Anmeldeinformationen (wie Zugriffsschlüssel und Sitzungstoken), die für den Zugriff erforderlich sind. AWS-Services

Anbieter von Anmeldeinformationen vereinfachen das Abrufen von Anmeldeinformationen aus verschiedenen Quellen, implementieren bewährte Sicherheitsmethoden und unterstützen flexible Authentifizierungsstrategien in allen Umgebungen AWS .

Geben Sie einen Anbieter für Anmeldeinformationen an

Um die standardmäßige Anbieterkette für Anmeldeinformationen zu umgehen, geben Sie an, welchen Anbieter von Anmeldeinformationen ein Dienstclient verwenden soll. Wenn Sie einen bestimmten Anbieter für Anmeldeinformationen angeben, wird der Vorgang der Überprüfung verschiedener Standorte SDK übersprungen, wodurch die Zeit für die Erstellung eines Dienstclients geringfügig reduziert wird.

Wenn Sie beispielsweise Ihre Standardkonfiguration mithilfe von Umgebungsvariablen festlegen, geben Sie der credentialsProvider Methode im Service Client Builder ein EnvironmentVariableCredentialsProviderObjekt an, wie im folgenden Codeausschnitt dargestellt:

Region region = Region.US_WEST_2; DynamoDbClient ddb = DynamoDbClient.builder() .region(region) .credentialsProvider(EnvironmentVariableCredentialsProvider.create()) .build();

Eine vollständige Liste der Anbieter von Anmeldeinformationen und Anbieterketten finden Sie in der Referenz für unter Alle bekannten Implementierungsklassen. API AwsCredentialsProvider

Anmerkung

Sie können auch Ihren eigenen Anbieter für Anmeldeinformationen oder eigene Anbieterketten verwenden, indem Sie die AwsCredentialsProvider Schnittstelle implementieren.

Konfigurieren Sie einen Anbieter für Anmeldeinformationen

Als Beispiel für die Konfiguration einer Implementierung eines Anbieters für Anmeldeinformationen möchten Sie möglicherweise einen Hintergrundthread SDK verwenden, um Anmeldeinformationen vorab abzurufen (im Voraus abzurufen), bevor sie ablaufen. Auf diese Weise können Sie den blockierenden Anruf vermeiden, der neue Anmeldeinformationen abruft.

Das folgende Beispiel zeigt ein Beispiel, StsAssumeRoleCredentialsProvider das einen erstellt, der einen Hintergrundthread verwendet, um Anmeldeinformationen vorab abzurufen, indem die asyncCredentialUpdateEnabled Eigenschaft im Builder true auf gesetzt wird:

S3Client s3Client = S3Client.builder() .credentialsProvider(StsAssumeRoleCredentialsProvider.builder() .asyncCredentialUpdateEnabled(true) .stsClient(StsClient.create()) .refreshRequest(r -> r .roleArn("arn:aws:iam::111122223333:role/S3-listbuckets-only-role") .roleSessionName("test-temp-session") .durationSeconds(900)) .build()) .build();

Wenn Sie eine Operation on s3Client zum ersten Mal aufrufen, AssumeRoleRequest wird eine an die AWS Security Token Service () gesendet. STS STSgibt temporäre Anmeldeinformationen zurück, die 15 Minuten (900 Sekunden) gültig sind. Die s3Client Instanz verwendet die zwischengespeicherten Anmeldeinformationen, bis sie vor Ablauf der 15 Minuten aktualisiert werden müssen. Standardmäßig wird SDK versucht, neue Anmeldeinformationen für eine neue Sitzung zwischen 5 Minuten und 1 Minute vor Ablauf der aktuellen Sitzung abzurufen. Das Pre-Fetch-Fenster kann mithilfe der Eigenschaften prefetchTime und staleTime konfiguriert werden.

Sie können die folgenden Anbieter für sitzungsbasierte Anmeldeinformationen auf ähnliche Weise konfigurieren:

  • StsWebIdentityTokenFileCredentialsProvider

  • StsGetSessionTokenCredentialsProvider

  • StsGetFederationTokenCredentialsProvider

  • StsAssumeRoleWithWebIdentityCredentialsProvider

  • StsAssumeRoleWithSamlCredentialsProvider

  • StsAssumeRoleCredentialsProvider

  • DefaultCredentialsProvider(wenn es an einen Anbieter für Anmeldeinformationen delegiert, der Sitzungen verwendet)

  • ProcessCredentialsProvider

  • WebIdentityTokenFileCredentialsProvider

  • ContainerCredentialsProvider

  • InstanceProfileCredentialsProvider