View a markdown version of this page

Stellen Sie temporäre Anmeldeinformationen bereit für AWS SDK für Java - AWS SDK für Java 1.x

Der Support für AWS SDK für Java Version 1.x endete am 31. Dezember 2025. Wir empfehlen Ihnen, auf den zu migrieren, AWS SDK for Java 2.x um weiterhin neue Funktionen, Verfügbarkeitsverbesserungen und Sicherheitsupdates zu erhalten.

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.

Stellen Sie temporäre Anmeldeinformationen bereit für AWS SDK für Java

Um Anfragen an zu stellen Amazon Web Services, müssen Sie AWS temporäre Anmeldeinformationen angeben AWS SDK für Java , die der beim Aufrufen der Dienste verwenden kann. Dafür können Sie eine der folgenden Möglichkeiten auswählen:

  • Verwenden Sie die standardmäßige Anbieterkette von Anmeldeinformationen (empfohlen).

  • Nutzen Sie einen bestimmten Anbieter bzw. eine Anbieterkette von Anmeldeinformationen (oder erstellen Sie Ihren eigenen).

  • Geben Sie die temporären Anmeldeinformationen selbst im Code ein.

Verwenden der standardmäßigen Anbieterkette von Anmeldeinformationen

Wenn Sie einen neuen Service-Client ohne Angabe von Argumenten initialisieren, AWS SDK für Java versucht der, temporäre Anmeldeinformationen mithilfe der von der Klasse implementierten Standard-Anbieterkette für Anmeldeinformationen zu finden. DefaultAWSCredentialsProviderChain Die standardmäßige Anbieterkette von Anmeldeinformationen sucht in dieser Reihenfolge nach Anmeldeinformationen:

  1. Umgebungsvariablen -AWS_ACCESS_KEY_ID, AWS_SECRET_KEY oderAWS_SECRET_ACCESS_KEY, und. AWS_SESSION_TOKEN Der AWS SDK für Java verwendet die EnvironmentVariableCredentialsProvider Klasse, um diese Anmeldeinformationen zu laden.

  2. Java-Systemeigenschaften -aws.accessKeyId, aws.secretKey (aber nichtaws.secretAccessKey), undaws.sessionToken. Der AWS SDK für Java verwendet den SystemPropertiesCredentialsProvider, um diese Anmeldeinformationen zu laden.

  3. Web-Identitätstoken-Anmeldeinformationen aus der Umgebung oder dem Container.

  4. Die Standarddatei mit Profilen für Anmeldeinformationen. Sie befindet sich in der Regel unter ~/.aws/credentials (der Speicherort kann je nach Plattform variieren) und wird von vielen AWS SDKs und von gemeinsam genutzt. AWS CLI Der AWS SDK für Java verwendet den, um diese ProfileCredentialsProvider Anmeldeinformationen zu laden.

    Sie können eine Datei mit den Anmeldeinformationen erstellen, indem Sie den aws configure Befehl von verwenden AWS CLI, oder Sie können sie erstellen, indem Sie die Datei mit einem Texteditor bearbeiten. Informationen zum Dateiformat für Anmeldeinformationen finden Sie unter Dateiformat für AWS Anmeldeinformationen.

  5. Amazon ECS-Container-Anmeldeinformationen — werden aus dem Amazon ECS geladen, wenn die Umgebungsvariable gesetzt AWS_CONTAINER_CREDENTIALS_RELATIVE_URI ist. Der AWS SDK für Java verwendet den ContainerCredentialsProvider, um diese Anmeldeinformationen zu laden. Sie können die IP-Adresse für diesen Wert angeben.

  6. Anmeldeinformationen für das Instanzprofil — werden auf EC2-Instances verwendet und über den Amazon EC2 Metadatendienst bereitgestellt. Der AWS SDK für Java verwendet den InstanceProfileCredentialsProvider, um diese Anmeldeinformationen zu laden. Sie können die IP-Adresse für diesen Wert angeben.

    Anmerkung

    Instance-Profil-Anmeldeinformationen werden nur verwendet, wenn AWS_CONTAINER_CREDENTIALS_RELATIVE_URI nicht gesetzt ist. Weitere Informationen finden Sie unter EC2ContainerCredentialsProviderWrapper.

Legen Sie temporäre Anmeldeinformationen fest

Um AWS temporäre Anmeldeinformationen verwenden zu können, müssen sie an mindestens einem der oben genannten Speicherorte festgelegt werden. Weitere Informationen über das Festlegen von Anmeldeinformationen finden Sie in den folgenden Themen:

Legen Sie ein alternatives Anmeldeinformationsprofil fest

Das AWS SDK für Java verwendet standardmäßig das Standardprofil, es gibt jedoch Möglichkeiten, anzupassen, welches Profil aus der Datei mit den Anmeldeinformationen stammt.

Sie können die Umgebungsvariable AWS Profile verwenden, um das vom SDK geladene Profil zu ändern.

Unter Linux, macOS oder Unix würden Sie beispielsweise den folgenden Befehl ausführen, um das Profil in MyProfile zu ändern.

export AWS_PROFILE="myProfile"

Verwenden Sie unter Windows folgende Variante:

set AWS_PROFILE="myProfile"

Das Setzen der AWS_PROFILE Umgebungsvariablen wirkt sich auf das Laden der Anmeldeinformationen für alle offiziell unterstützten AWS SDKs und Tools aus (einschließlich der AWS CLI und der). AWS Tools for Windows PowerShell Um nur das Profil für eine Java-Anwendung zu ändern, können Sie stattdessen die Systemeigenschaft aws.profile verwenden.

Anmerkung

Die Umgebungsvariable hat Vorrang vor der Systemeigenschaft.

Legen Sie einen alternativen Speicherort für die Anmeldeinformationsdatei fest

Der AWS SDK für Java lädt AWS temporäre Anmeldeinformationen automatisch vom Standardspeicherort der Anmeldeinformationsdatei. Sie können jedoch auch den Speicherort angeben, indem Sie die Umgebungsvariable AWS_CREDENTIAL_PROFILES_FILE auf den vollständigen Pfad zur Anmeldeinformationsdatei setzen.

Sie können diese Funktion verwenden, um vorübergehend den Speicherort zu ändern, an dem AWS SDK für Java nach Ihrer Anmeldeinformationsdatei gesucht wird (z. B. indem Sie diese Variable über die Befehlszeile festlegen). Alternativ können Sie die Umgebungsvariable in Ihrer Benutzer- oder Systemumgebung setzen, um sie für den Benutzer oder systemweit zu ändern.

So überschreiben Sie den Standardspeicherort der Anmeldeinformationsdatei

  • Stellen Sie die AWS_CREDENTIAL_PROFILES_FILE Umgebungsvariable auf den Speicherort Ihrer AWS Anmeldeinformationsdatei ein.

    • Verwenden Sie unter Linux, macOS oder Unix:

      export AWS_CREDENTIAL_PROFILES_FILE=path/to/credentials_file
    • Verwenden Sie unter Windows:

      set AWS_CREDENTIAL_PROFILES_FILE=path/to/credentials_file

Dateiformat für Anmeldeinformationen

Wenn Sie den Anweisungen in der Grundkonfiguration dieses Handbuchs folgen, sollte Ihre Anmeldeinformationsdatei das folgende grundlegende Format haben.

[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>

Der Profilname wird in eckigen Klammern angegeben (zum Beispiel [default]), gefolgt von den konfigurierbaren Feldern in diesem Profil als Schlüssel-Wert-Paare. Ihre credentials Datei kann mehrere Profile enthalten, die Sie hinzufügen oder bearbeiten können, indem Sie das aws configure --profile PROFILE_NAME zu konfigurierende Profil auswählen.

Sie können zusätzliche Felder wie metadata_service_timeout und angebenmetadata_service_num_attempts. Diese können nicht mit der CLI konfiguriert werden. Sie müssen die Datei manuell bearbeiten, wenn Sie sie verwenden möchten. Weitere Informationen zur Konfigurationsdatei und den verfügbaren Feldern finden Sie unter Konfiguration der AWS Command Line Interface im AWS Command Line Interface Benutzerhandbuch.

Anmeldeinformationen laden

Nachdem Sie temporäre Anmeldeinformationen festgelegt haben, lädt das SDK sie mithilfe der standardmäßigen Anbieterkette für Anmeldeinformationen.

Dazu instanziieren Sie einen AWS-Service Client, ohne dem Builder explizit Anmeldeinformationen zur Verfügung zu stellen. Gehen Sie dazu wie folgt vor.

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

Geben Sie einen Anbieter oder eine Anbieterkette für Anmeldeinformationen an

Sie können einen Anmeldeinformationsanbieter angeben, der sich von der standardmäßigen Anbieterkette von Anmeldeinformationen unterscheidet. Verwenden Sie dazu den Client-Generator.

Sie stellen einem Client Builder eine Instanz eines Anmeldeinformationsanbieters oder einer Anbieterkette zur Verfügung, der eine AWSCredentialsProvider Schnittstelle als Eingabe verwendet. Das folgende Beispiel zeigt konkret, wie Sie Anmeldeinformationen der Umgebung nutzen.

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

Eine vollständige Liste der von uns AWS SDK für Java bereitgestellten Anbieter und Anbieterketten für Anmeldeinformationen finden Sie unter Alle bekannten Implementierungsklassen in. AWSCredentialsProvider

Anmerkung

Sie können diese Technik verwenden, um Anbieter von Anmeldeinformationen oder Anbieterketten bereitzustellen, die Sie mithilfe Ihres eigenen Anbieters für Anmeldeinformationen erstellen, der die AWSCredentialsProvider Schnittstelle implementiert, oder indem Sie der Klasse Unterklassen zuweisen. AWSCredentialsProviderChain

Geben Sie explizit temporäre Anmeldeinformationen an

Wenn die Standard-Anmeldeinformationen oder ein bestimmter oder benutzerdefinierter Anbieter oder eine Anbieterkette für Ihren Code nicht funktionieren, können Sie explizit angegebene Anmeldeinformationen festlegen. Wenn Sie temporäre Anmeldeinformationen mit abgerufen haben AWS STS, verwenden Sie diese Methode, um die Anmeldeinformationen für den AWS Zugriff anzugeben.

  1. Instanziieren Sie die BasicSessionCredentials Klasse und stellen Sie ihr den AWS Zugriffsschlüssel, den AWS geheimen Schlüssel und das AWS Sitzungstoken zur Verfügung, die das SDK für die Verbindung verwenden wird.

  2. Erstellen Sie eine AWSStaticCredentialsProvider mit dem AWSCredentials Objekt.

  3. Konfigurieren Sie den Client-Generator mit dem AWSStaticCredentialsProvider und erstellen Sie den Client.

Im Folgenden wird ein -Beispiel gezeigt.

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

Weitere Infos