View a markdown version of this page

Anbieter von Prozessinformationen - AWS SDKs und Tools

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.

Anbieter von Prozessinformationen

Anmerkung

Hilfe zum Verständnis des Layouts von Einstellungsseiten oder zur Interpretation der nachfolgenden Tabelle „Unterstützung durch AWS SDKs und Tools“ finden Sie unter. Die Einstellungsseiten dieses Handbuchs verstehen

SDKs bieten eine Möglichkeit, die Kette der Anbieter von Anmeldeinformationen für benutzerdefinierte Anwendungsfälle zu erweitern. Dieser Anbieter kann verwendet werden, um benutzerdefinierte Implementierungen bereitzustellen, z. B. zum Abrufen von Anmeldeinformationen aus einem lokalen Anmeldeinformationsspeicher oder zur Integration mit Ihrem lokalen Identifikationsanbieter.

Beispielsweise verwendet IAM Roles Anywhere, credential_process um temporäre Anmeldeinformationen im Namen Ihrer Anwendung abzurufen. Informationen zur Konfiguration credential_process für diese Verwendung finden Sie unterAuthentifizierung AWS SDKs und Tools mit IAM Roles Anywhere.

Wichtig

credential_processMit dieser Einstellung wird ein externes Programm auf Ihrem System ausgeführt, um Anmeldeinformationen abzurufen. Stellen Sie sicher, dass Sie dem in dieser Einstellung angegebenen Programm vertrauen, da jeder, der Schreibzugriff auf Ihre gemeinsam genutzte config Datei hat, den ausgeführten Befehl ändern kann. Schützen Sie Ihre config Datei mit Dateisystemberechtigungen, die für Ihr Betriebssystem geeignet sind.

Anmerkung

Im Folgenden wird eine Methode zur Beschaffung von Anmeldeinformationen aus einem externen Prozess beschrieben. Diese Methode kann verwendet werden, wenn Sie Software außerhalb von AWS ausführen. Wenn Sie auf einer AWS Rechenressource aufbauen, verwenden Sie andere Anbieter für Anmeldeinformationen. Wenn Sie diese Option verwenden, sollten Sie sicherstellen, dass die Konfigurationsdatei so gesperrt wie möglich ist, indem Sie bewährte Sicherheitsmethoden für Ihr Betriebssystem verwenden. Vergewissern Sie sich, dass Ihr benutzerdefiniertes Tool für Anmeldeinformationen keine geheimen Informationen speichertStdErr, da die SDKs diese Informationen erfassen und protokollieren AWS CLI können, sodass sie möglicherweise unbefugten Benutzern zugänglich sind.

Konfigurieren Sie diese Funktion mithilfe der folgenden Optionen:

credential_process- Einstellung für gemeinsam genutzte AWS config Dateien

Gibt einen externen Befehl an, den das SDK oder Tool in Ihrem Namen ausführt, um die zu verwendenden Anmeldeinformationen zu generieren oder abzurufen. Die Einstellung gibt den Namen eines an program/command , den das SDK aufruft. Wenn das SDK den Prozess aufruft, wartet es darauf, dass der Prozess JSON-Daten in den Prozess schreibt. stdout Der benutzerdefinierte Anbieter muss Informationen in einem bestimmten Format zurückgeben. Diese Informationen enthalten die Anmeldeinformationen, die das SDK oder Tool verwenden kann, um Sie zu authentifizieren.

Anmerkung

Der Anbieter von Prozessanmeldeinformationen ist Teil von. Machen Sie sich mit der Kette der Anbieter von Anmeldeinformationen vertraut Der Anbieter von Prozessanmeldeinformationen wird jedoch erst nach mehreren anderen Anbietern aus dieser Reihe überprüft. Wenn Sie also möchten, dass Ihr Programm die Anmeldeinformationen dieses Anbieters verwendet, müssen Sie andere gültige Anmeldeinformationsanbieter aus Ihrer Konfiguration entfernen oder ein anderes Profil verwenden. Anstatt sich darauf zu verlassen, dass die Kette der Anmeldeinformationsanbieter automatisch ermittelt, welcher Anbieter gültige Anmeldeinformationen zurückgibt, können Sie alternativ die Verwendung des Anbieters für die Verarbeitung von Anmeldeinformationen im Code angeben. Sie können die Quellen für Anmeldeinformationen direkt angeben, wenn Sie Service-Clients erstellen.

Angabe des Pfads zum Programm für Anmeldeinformationen

Der Wert der Einstellung ist eine Zeichenfolge, die einen Pfad zu einem Programm enthält, das das SDK oder das Entwicklungstool in Ihrem Namen ausführt:

  • Der Pfad und der Dateiname können nur aus den folgenden Zeichen bestehen: A-Z, a-z, 0-9, Bindestrich (-), Unterstrich (_), Punkt (.), Schrägstrich (/), umgekehrter Schrägstrich (\) und Leerzeichen.

  • Wenn der Pfad oder Dateiname ein Leerzeichen enthält, umgeben Sie den vollständigen Pfad und Dateinamen mit doppelten Anführungszeichen („ “).

  • Wenn ein Parametername oder ein Parameterwert ein Leerzeichen enthält, umgeben Sie dieses Element mit doppelten Anführungszeichen („ “). Umgeben Sie dabei nur den Namen oder den Wert, nicht beides.

  • Fügen Sie keine Umgebungsvariablen in die Zeichenfolgen ein. Schließen Sie beispielsweise $HOME oder nicht ein%USERPROFILE%.

  • Geben Sie den Basisordner nicht als an~. * Sie müssen entweder den vollständigen Pfad oder einen Basisdateinamen angeben. Wenn es einen Basisdateinamen gibt, versucht das System, das Programm in den durch die PATH Umgebungsvariable angegebenen Ordnern zu finden. Der Pfad variiert je nach Betriebssystem:

    Das folgende Beispiel zeigt, wie „credentials“ in der gemeinsam genutzten config Datei aktiviert ist. Linux/macOS

    credential_process = "/path/to/credentials.sh" parameterWithoutSpaces "parameter with spaces"

    Das folgende Beispiel zeigt die Einstellung von credentials _process in der gemeinsam genutzten Datei unter Windows. config

    credential_process = "C:\Path\To\credentials.cmd" parameterWithoutSpaces "parameter with spaces"
  • Kann in einem dedizierten Profil angegeben werden:

    [profile cred_process] credential_process = /Users/username/process.sh region = us-east-1

Gültige Ausgabe aus dem Programm für Anmeldeinformationen

Das SDK führt den Befehl wie im Profil angegeben aus und liest dann Daten aus dem Standardausgabestrom. Der von Ihnen angegebene Befehl, unabhängig davon, ob es sich um ein Skript oder ein Binärprogramm handelt, muss eine JSON-Ausgabe generierenSTDOUT, die der folgenden Syntax entspricht.

{ "Version": 1, "AccessKeyId": "an AWS access key", "SecretAccessKey": "your AWS secret access key", "SessionToken": "the AWS session token for temporary credentials", "Expiration": "RFC3339 timestamp for when the credentials expire", "AccountId": "the AWS account ID associated with these credentials" }
Anmerkung

Derzeit muss der Version-Schlüssel auf 1 gesetzt sein. Im Laufe der Zeit kann ein höherer Wert erforderlich sein, wenn sich die Struktur weiterentwickelt.

Der Expiration Schlüssel ist ein RFC3339-formatierter Zeitstempel. Wenn der Expiration Schlüssel in der Ausgabe des Tools nicht vorhanden ist, geht das SDK davon aus, dass es sich bei den Anmeldeinformationen um langfristige Anmeldeinformationen handelt, die nicht aktualisiert werden. Andernfalls werden die Anmeldeinformationen als temporäre Anmeldeinformationen betrachtet, und sie werden automatisch aktualisiert, indem der credential_process Befehl erneut ausgeführt wird, bevor die Anmeldeinformationen ablaufen.

Anmerkung

Das SDK speichert externe Prozessanmeldeinformationen nicht im Cache, wie es Anmeldeinformationen mit Rollenübernahme tut. Wenn Caching erforderlich ist, müssen Sie dies im externen Prozess implementieren.

Anmerkung

AccountIdist optional, sodass Anmeldeinformationen auch ohne sie funktionieren. Wenn Sie sie bereitstellen, wird jedoch eine optimierte Endpunktauflösung für Dienste ermöglicht, die sie unterstützen. Wenn das SDK weiß, zu welchem Konto die Anmeldeinformationen gehören, können bestimmte AWS Dienste kontospezifische Endpunkte verwenden. Beispielsweise kann Amazon S3 Anfragen an einen Endpunkt für den Kontobereich und nicht an den globalen Endpunkt weiterleiten. AccountIdAndernfalls muss sich das SDK auf andere Mechanismen verlassen, um das Konto zu ermitteln, andernfalls kann es kein kontobasiertes Endpunkt-Routing verwenden.

Der externe Prozess kann einen Rückgabecode ungleich Null zurückgeben, um anzuzeigen, dass beim Abrufen der Anmeldeinformationen ein Fehler aufgetreten ist.

Unterstützung von AWS SDKs und Tools

Die folgenden SDKs unterstützen die in diesem Thema beschriebenen Funktionen und Einstellungen. Alle teilweisen Ausnahmen werden vermerkt. Alle JVM-Systemeigenschaftseinstellungen werden von AWS SDK für Java and the AWS SDK für Kotlin only unterstützt.

SDK Unterstützt Hinweise oder weitere Informationen
AWS CLI   v2 Ja
SDK für C++ Ja
SDK für Go V2 (1.x) Ja
SDK für Go 1.x (V1) Ja Um die Einstellungen für gemeinsam genutzte config Dateien zu verwenden, müssen Sie das Laden aus der Konfigurationsdatei aktivieren; siehe Sitzungen.
SDK für Java 2.x Ja
SDK für Java 1.x Ja
SDK für 3.x JavaScript Ja
SDK für 2.x JavaScript Ja
SDK für Kotlin Ja
SDK für.NET 4.x Ja
SDK für.NET 3.x Ja
SDK für PHP 3.x Ja
SDK für Python (Boto3) Ja
SDK für Ruby 3.x Ja
SDK für Rust Ja
SDK für Swift Ja
Tools für PowerShell V5 Ja
Tools für V4 PowerShell Ja