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 AWSconfigDateien-
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.
stdoutDer 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
$HOMEoder 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 diePATHUmgebungsvariable angegebenen Ordnern zu finden. Der Pfad variiert je nach Betriebssystem:Das folgende Beispiel zeigt, wie „credentials“ in der gemeinsam genutzten
configDatei aktiviert ist. Linux/macOScredential_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.
configcredential_process ="C:\Path\To\credentials.cmd" parameterWithoutSpaces "parameter with spaces" -
Kann in einem dedizierten Profil angegeben werden:
[profilecred_process] credential_process =/Users/username/process.shregion =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 |