Konfigurieren der Authentifizierung von IAM Identity Center mit der AWS CLI - AWS Command Line Interface

Konfigurieren der Authentifizierung von IAM Identity Center mit der AWS CLI

In diesem Thema finden Sie Anleitungen zur Konfiguration der AWS CLI mit AWS IAM Identity Center (IAM Identity Center), um Anmeldeinformationen zum Ausführen von AWS CLI-Befehlen abzurufen. Es gibt hauptsächlich zwei Möglichkeiten, Benutzer mit IAM Identity Center zu authentifizieren, um Anmeldeinformationen zum Ausführen von AWS CLI-Befehlen über die config-Datei abzurufen:

  • (Empfohlen) Konfiguration des SSO-Token-Anbieters.

  • Nicht aktualisierbare Legacy-Konfiguration.

Informationen zur Verwendung der Bearer-Authentifizierung, bei der keine Konto-ID und Rolle verwendet werden, finden Sie unter Einrichtung für die Verwendung der AWS CLI mit CodeCatalyst im Amazon-CodeCatalyst-Benutzerhandbuch.

Anmerkung

Eine Anleitung zur Verwendung von IAM Identity Center mit AWS CLI-Befehlen finden Sie unter Tutorial: Verwenden von IAM Identity Center zur Ausführung von Amazon-S3-Befehlen in der AWS CLI.

Topics

Voraussetzungen

Folgen Sie den Anweisungen unter Erste Schritte im AWS IAM Identity Center-Benutzerhandbuch. Dieser Prozess aktiviert IAM Identity Center, erstellt einen Administratorbenutzer und fügt einen entsprechenden Berechtigungssatz mit der geringsten Berechtigung hinzu.

Anmerkung

Erstellen Sie einen Berechtigungssatz, der Berechtigungen mit der geringsten Berechtigung anwendet. Wir empfehlen, den vordefinierten PowerUserAccess-Berechtigungssatz zu verwenden, es sei denn, Ihr Arbeitgeber hat zu diesem Zweck einen benutzerdefinierten Berechtigungssatz erstellt.

Verlassen Sie das Portal und melden Sie sich erneut an, um Ihre AWS-Konten, Details zum programmgesteuerten Zugriff und Optionen für Administrator oder PowerUserAccess zu sehen. Wählen Sie PowerUserAccess aus, wenn Sie mit dem SDK arbeiten.

Melden Sie sich über das Portal Ihres Identitätsanbieters bei AWS an. Wenn Ihr Cloud-Administrator Ihnen PowerUserAccess (Entwickler-)Berechtigungen erteilt hat, sehen Sie die AWS-Konten, auf die Sie Zugriff haben, und Ihren Berechtigungssatz. Neben dem Namen Ihres Berechtigungssatzes sehen Sie Optionen für den manuellen oder programmgesteuerten Zugriff auf die Konten mithilfe dieses Berechtigungssatzes.

Benutzerdefinierte Implementierungen können zu unterschiedlichen Erfahrungen führen, z. B. zu unterschiedlichen Namen von Berechtigungssätzen. Wenn Sie sich nicht sicher sind, welchen Berechtigungssatz Sie verwenden sollen, wenden Sie sich an Ihr IT-Team.

Melden Sie sich über Ihr AWS-Zugriffsportal bei AWS an. Wenn Ihr Cloud-Administrator Ihnen PowerUserAccess (Entwickler-)Berechtigungen erteilt hat, sehen Sie die AWS-Konten, auf die Sie Zugriff haben, und Ihren Berechtigungssatz. Neben dem Namen Ihres Berechtigungssatzes sehen Sie Optionen für den manuellen oder programmgesteuerten Zugriff auf die Konten mithilfe dieses Berechtigungssatzes.

Wenden Sie sich an Ihr IT-Team, um Hilfe zu erhalten.

Nachdem Sie Zugriff auf IAM Identity Center erhalten haben, erfassen Sie Ihre Informationen für IAM Identity Center, indem Sie wie folgt vorgehen:

  1. Sammeln Sie Ihre SSO Region- und SSO Start URL-Werte, die Sie für die Ausführung von aws configure sso benötigen.

    1. Wählen Sie in Ihrem AWS-Zugriffsportal den Berechtigungssatz aus, den Sie für die Entwicklung verwenden. Klicken Sie dann auf den Link Zugriffsschlüssel.

    2. Wählen Sie im Dialogfeld Anmeldeinformationen abrufen die Registerkarte aus, die Ihrem Betriebssystem entspricht.

    3. Wählen Sie die Methode Anmeldeinformationen für IAM Identity Center aus, um die Werte für SSO Start URL und SSO Region abzurufen.

  2. Alternativ können Sie ab Version 2.22.0 die Aussteller-URL anstelle der Start-URL verwenden. Die Aussteller-URL befindet sich in der AWS IAM Identity Center-Konsole an einem der folgenden Orte:

    • Auf der Dashboard-Seite finden Sie die Aussteller-URL in der Einstellungsübersicht.

    • Auf der Seite Einstellungen finden Sie die Aussteller-URL in den Einstellungen für die Identitätsquelle.

  3. Informationen dazu, welcher Bereichswert registriert werden soll, finden Sie unter OAuth 2.0-Zugriffsbereiche im IAM Identity Center-Benutzerhandbuch.

Konfigurieren Ihres Profils mit dem aws configure sso-Assistenten

So konfigurieren Sie ein Profil für IAM Identity Center für Ihre AWS CLI:
  1. Führen Sie den Befehl aws configure sso in Ihrem bevorzugten Terminal aus.

    (Recommended) IAM Identity Center

    Erstellen Sie einen Sitzungsnamen. Geben Sie Ihre Start-URL oder die Aussteller-URL für IAM Identity Center, die AWS-Region, in der das Verzeichnis für IAM Identity Center gehostet wird, und den Registrierungsbereich an.

    $ aws configure sso SSO session name (Recommended): my-sso SSO start URL [None]: https://my-sso-portal.awsapps.com/start SSO region [None]: us-east-1 SSO registration scopes [None]: sso:account:access

    Die Autorisierung mit Proof Key for Code Exchange (PKCE) wird ab Version 2.22.0 der AWS CLI standardmäßig verwendet und muss auf Geräten mit einem Browser genutzt werden. Um die Geräteautorisierung weiterhin zu verwenden, fügen Sie die Option --use-device-code hinzu.

    $ aws configure sso --use-device-code
    Legacy IAM Identity Center

    Überspringen Sie den Sitzungsnamen und geben Sie Ihre Start-URL für IAM Identity Center sowie die AWS-Region an, in der sich das Identity-Center-Verzeichnis befindet.

    $ aws configure sso SSO session name (Recommended): SSO start URL [None]: https://my-sso-portal.awsapps.com/start SSO region [None]:us-east-1
  2. Die AWS CLI versucht, Ihren Standardbrowser für den Anmeldevorgang mit Ihrem Konto in IAM Identity Center zu starten. Während dieses Vorgangs werden Sie möglicherweise aufgefordert, der AWS CLI Zugriff auf Ihre Daten zu gewähren. Da die AWS CLI auf dem SDK für Python aufbaut, können Berechtigungsnachrichten Variationen des Namens botocore enthalten.

    • Wenn die AWS CLI den Browser nicht öffnen kann, werden je nach Art der von Ihnen verwendeten Autorisierung Anleitungen zum manuellen Starten des Anmeldevorgangs angezeigt.

      PKCE authorization

      Die Autorisierung mit Proof Key for Code Exchange (PKCE) wird ab Version 2.22.0 der AWS CLI standardmäßig verwendet. Die angezeigte URL ist eine eindeutige URL, beginnend mit: https://oidc.us-east-1.amazonaws.com/authorize.

      PKCE-Autorisierungs-URLs müssen auf demselben Gerät geöffnet werden, auf dem Sie sich anmelden. Sie müssen außerdem für ein Gerät mit einem Browser verwendet werden.

      Attempting to automatically open the SSO authorization page in your default browser. If the browser does not open or you wish to use a different device to authorize the request, open the following URL: https://oidc.us-east-1.amazonaws.com/authorize?<abbreviated>
      Device authorization

      Die OAuth 2.0-Geräteautorisierung wird von allen Versionen der AWS CLI verwendet, die älter als 2.22.0 sind. Sie können diese Methode in neueren Versionen mit der Option --use-device-code aktivieren.

      Geräteautorisierungs-URLs müssen nicht auf demselben Gerät geöffnet werden, auf dem Sie sich anmelden. Sie können außerdem für ein Gerät mit oder ohne Browser verwendet werden.

      If the browser does not open or you wish to use a different device to authorize this request, open the following URL: https://device.sso.us-west-2.amazonaws.com/ Then enter the code: QCFK-N451
  3. Wählen Sie das zu verwendende AWS-Konto aus der angezeigten Liste aus. Wenn Sie berechtigt sind, nur ein Konto zu verwenden, wählt die AWS CLI dieses Konto automatisch aus und überspringt die Eingabeaufforderung.

    There are 2 AWS accounts available to you. > DeveloperAccount, developer-account-admin@example.com (123456789011) ProductionAccount, production-account-admin@example.com (123456789022)
  4. Wählen Sie die zu verwendende IAM-Rolle aus der angezeigten Liste aus. Wenn für das ausgewählte Konto nur eine Rolle verfügbar ist, wählt die AWS CLI automatisch diese Rolle aus und überspringt die Eingabeaufforderung.

    Using the account ID 123456789011 There are 2 roles available to you. > ReadOnly FullAccess
  5. Geben Sie das Standardausgabeformat, die Standard-AWS-Region für das Senden von Befehlen und einen Namen für das Profil an. Wenn Sie default als Profilnamen angeben, wird dieses Profil als Standardprofil verwendet. Im folgenden Beispiel gibt der Benutzer eine Standardregion, ein Standardausgabeformat und den Namen des Profils ein.

    Default client Region [None]: us-west-2<ENTER> CLI default output format (json if not specified) [None]: json<ENTER> Profile name [123456789011_ReadOnly]: my-dev-profile<ENTER>
  6. Eine abschließende Meldung beschreibt die abgeschlossene Profilkonfiguration. Sie können dieses Profil nun verwenden, um Anmeldeinformationen anzufordern. Verwenden Sie den aws sso login-Befehl, um die Anmeldeinformationen, die zum Ausführen von Befehlen erforderlich sind, anzufordern und abzurufen. Detaillierte Anweisungen finden Sie unter Anmelden für eine Sitzung in IAM Identity Center.

Diese Schritte führen dazu, dass der sso-session-Abschnitt und das benannte Profil in der config-Datei erstellt werden, die wie folgt aussieht:

IAM Identity Center
[profile my-dev-profile] sso_session = my-sso sso_account_id = 123456789011 sso_role_name = readOnly region = us-west-2 output = json [sso-session my-sso] sso_region = us-east-1 sso_start_url = https://my-sso-portal.awsapps.com/start sso_registration_scopes = sso:account:access
Legacy IAM Identity Center
[profile my-dev-profile] sso_start_url = https://my-sso-portal.awsapps.com/start sso_region = us-east-1 sso_account_id = 123456789011 sso_role_name = readOnly region = us-west-2 output = json

Ausschließliches Konfigurieren des sso-session-Abschnitts mit dem aws configure sso-session-Assistenten

Anmerkung

Diese Konfiguration ist nicht mit dem älteren IAM Identity Center kompatibel.

Der aws configure sso-session-Befehl aktualisiert nur die sso-session-Abschnitte in der ~/.aws/config-Datei. Führen Sie den aws configure sso-session-Befehl aus und geben Sie die Start-URL oder Aussteller-URL Ihres IAM Identity Center sowie die AWS-Region an, in der das Verzeichnis für IAM Identity Center gehostet wird.

$ aws configure sso-session SSO session name: my-sso SSO start URL [None]: https://my-sso-portal.awsapps.com/start SSO region [None]: us-east-1 SSO registration scopes [None]: sso:account:access

Manuelle Konfiguration mithilfe der config-Datei

Die Konfigurationsinformationen für IAM Identity Center werden in der config-Datei gespeichert und können mit einem Texteditor bearbeitet werden. Um einem benannten Profil manuell Unterstützung für IAM Identity Center hinzuzufügen, müssen Sie der config-Datei Schlüssel und Werte hinzufügen.

Der sso-session-Abschnitt der config-Datei wird verwendet, um Konfigurationsvariablen für den Erwerb von SSO-Zugriffstoken zu gruppieren, die dann für den Erhalt von AWS-Anmeldeinformationen verwendet werden können. Die folgenden Einstellungen werden verwendet:

Sie definieren einen sso-session-Abschnitt und ordnen ihn einem Profil zu. Die Einstellungen sso_region und sso_start_url müssen innerhalb des sso-session-Abschnitts festgelegt werden. Normalerweise müssen sso_account_id und sso_role_name im profile-Abschnitt festgelegt werden, damit das SDK SSO-Anmeldeinformationen anfordern kann.

Im folgenden Beispiel wird das SDK für die Anforderung von SSO-Anmeldeinformationen konfiguriert und es wird eine automatische Token-Aktualisierung unterstützt:

[profile dev] sso_session = my-sso sso_account_id = 111122223333 sso_role_name = SampleRole [sso-session my-sso] sso_region = us-east-1 sso_start_url = https://my-sso-portal.awsapps.com/start

Dadurch können sso-session-Konfigurationen zudem auch in mehreren Profilen wiederverwendet werden:

[profile dev] sso_session = my-sso sso_account_id = 111122223333 sso_role_name = SampleRole [profile prod] sso_session = my-sso sso_account_id = 111122223333 sso_role_name = SampleRole2 [sso-session my-sso] sso_region = us-east-1 sso_start_url = https://my-sso-portal.awsapps.com/start

sso_account_id und sso_role_name sind jedoch nicht für alle Szenarien der SSO-Token-Konfiguration erforderlich. Wenn Ihre Anwendung nur AWS-Services verwendet, die die Bearer-Authentifizierung unterstützen, sind herkömmliche AWS-Anmeldeinformationen nicht erforderlich. Bei der Bearer-Authentifizierung handelt es sich um ein HTTP-Authentifizierungsschema, das Sicherheitstoken, sogenannte Bearer-Token, verwendet. In diesem Szenario sind sso_account_id und sso_role_name nicht erforderlich. Im jeweiligen Leitfaden für Ihren AWS-Service können Sie nachlesen, ob die Autorisierung mit Bearer-Token unterstützt wird.

Darüber hinaus können Registrierungsbereiche als Teil von sso-session konfiguriert werden. Ein Bereich ist ein Mechanismus in OAuth 2.0, um den Zugriff einer Anwendung auf ein Benutzerkonto zu beschränken. Eine Anwendung kann einen oder mehrere Bereiche anfordern und das an die Anwendung ausgegebene Zugriffstoken ist auf die gewährten Bereiche beschränkt. Diese Bereiche definieren die Berechtigungen, die für die Autorisierung für den registrierten OIDC-Client angefordert werden, und die vom Client abgerufenen Zugriffstoken. Im folgenden Beispiel wird sso_registration_scopes so festgelegt, dass der Zugriff zum Auflisten von Konten/Rollen möglich ist:

[sso-session my-sso] sso_region = us-east-1 sso_start_url = https://my-sso-portal.awsapps.com/start sso_registration_scopes = sso:account:access

Das Authentifizierungs-Token wird auf der Festplatte unter dem Verzeichnis sso/cache mit einem Dateinamen zwischengespeichert, der auf dem Sitzungsnamen basiert.

Anmerkung

Die automatisierte Token-Aktualisierung wird bei Verwendung der nicht aktualisierbaren Legacy-Konfiguration nicht unterstützt. Wir empfehlen die Verwendung der SSO-Token-Konfiguration.

Um einem benannten Profil manuell Unterstützung für IAM Identity Center hinzuzufügen, müssen Sie der Profildefinition in der config-Datei die folgenden Schlüssel und Werte hinzufügen.

Sie können auch andere Schlüssel und Werte einschließen, die in der .aws/config-Datei gültig sind. Das folgende Beispiel ist ein Profil für IAM Identity Center:

[profile my-sso-profile] sso_start_url = https://my-sso-portal.awsapps.com/start sso_region = us-west-2 sso_account_id = 111122223333 sso_role_name = SSOReadOnlyRole region = us-west-2 output = json

Um Befehle ausführen zu können, müssen Sie zuerst Anmelden für eine Sitzung in IAM Identity Center verwenden, um Ihre temporären Anmeldeinformationen anzufordern und abzurufen.

Weitere Informationen zu den Dateien config und credentials finden Sie unter Einstellungen der Konfigurations- und Anmeldeinformationsdatei in der AWS CLI.

Anmelden für eine Sitzung in IAM Identity Center

Anmerkung

Während des Anmeldevorgangs werden Sie möglicherweise aufgefordert, der AWS CLI Zugriff auf Ihre Daten zu gewähren. Da die AWS CLI auf dem SDK für Python aufbaut, können Berechtigungsnachrichten Variationen des Namens botocore enthalten.

Um eine Reihe von Anmeldeinformationen für IAM Identity Center abzurufen und zwischenzuspeichern, führen Sie den folgenden Befehl für die AWS CLI aus, um Ihren Standardbrowser zu öffnen und Ihre Anmeldung bei IAM Identity Center zu überprüfen.

$ aws sso login --profile my-dev-profile SSO authorization page has automatically been opened in your default browser. Follow the instructions in the browser to complete this authorization request. Successfully logged into Start URL: https://my-sso-portal.awsapps.com/start

Ihre Anmeldeinformationen für die Sitzung in IAM Identity Center werden zwischengespeichert und von der AWS CLI verwendet, um AWS-Anmeldeinformationen für die im Profil angegebene IAM-Rolle sicher abzurufen.

Wenn die AWS CLI Ihren Browser nicht automatisch öffnen kann, werden je nach Art der von Ihnen verwendeten Autorisierung Anleitungen zum manuellen Starten des Anmeldevorgangs angezeigt.

PKCE authorization

Die Autorisierung mit Proof Key for Code Exchange (PKCE) wird ab Version 2.22.0 der AWS CLI standardmäßig verwendet. Die angezeigte URL ist eine eindeutige URL, beginnend mit: https://oidc.us-east-1.amazonaws.com/authorize.

PKCE-Autorisierungs-URLs müssen auf demselben Gerät geöffnet werden, auf dem Sie sich anmelden. Sie müssen außerdem für ein Gerät mit einem Browser verwendet werden.

Attempting to automatically open the SSO authorization page in your default browser. If the browser does not open or you wish to use a different device to authorize the request, open the following URL: https://oidc.us-east-1.amazonaws.com/authorize?<abbreviated>
Device authorization

Die OAuth 2.0-Geräteautorisierung wird von allen Versionen der AWS CLI verwendet, die älter als 2.22.0 sind. Sie können diese Methode in neueren Versionen mit der Option --use-device-code aktivieren.

Geräteautorisierungs-URLs müssen nicht auf demselben Gerät geöffnet werden, auf dem Sie sich anmelden. Sie können außerdem für ein Gerät mit oder ohne Browser verwendet werden.

If the browser does not open or you wish to use a different device to authorize this request, open the following URL: https://device.sso.us-west-2.amazonaws.com/ Then enter the code: QCFK-N451

Mit dem Parameter --sso-session des aws sso login-Befehls können Sie auch angeben, welches sso-session-Profil bei der Anmeldung verwendet werden soll. Die Option sso-session ist für ältere Versionen von IAM Identity Center nicht verfügbar.

$ aws sso login --sso-session my-dev-session

Ab der Version 2.22.0 ist die PKCE-Autorisierung die Standardeinstellung. Um die Geräteautorisierung für die Anmeldung zu verwenden, fügen Sie die Option --use-device-code hinzu.

$ aws sso login --profile my-dev-profile --use-device-code

Das Authentifizierungstoken wird auf der Festplatte unter dem Verzeichnis ~/.aws/sso/cache mit einem Dateinamen zwischengespeichert, der auf der sso_start_url basiert.

Ausführen eines Befehls mit Ihrem Profil für IAM Identity Center

Nach der Anmeldung können Sie Ihre Anmeldeinformationen verwenden, um AWS CLI-Befehle mit dem zugeordneten benannten Profil aufzurufen. Das folgende Beispiel zeigt einen Befehl mit Verwendung eines Profils:

$ aws sts get-caller-identity --profile my-dev-profile

Solange Sie beim IAM Identity Center angemeldet sind und diese zwischengespeicherten Anmeldeinformationen nicht abgelaufen sind, erneuert die AWS CLI abgelaufenen AWS-Anmeldeinformationen bei Bedarf automatisch. Wenn Ihre IAM–Identity-Center-Anmeldeinformationen jedoch ablaufen, müssen Sie sie explizit erneuern, indem Sie sich erneut bei Ihrem IAM–Identity-Center-Konto anmelden.

Abmelden von Ihren Sitzungen im IAM Identity Center

Wenn Sie Ihr Profil für IAM Identity Center nicht mehr verwenden, können Sie Ihre Anmeldeinformationen ablaufen lassen oder den folgenden Befehl ausführen, um Ihre zwischengespeicherten Anmeldeinformationen zu löschen.

$ aws sso logout Successfully signed out of all SSO profiles.

Fehlersuche

Wenn bei der Verwendung der AWS CLI Fehler auftreten, finden Sie unter Behebung von Fehlern für die AWS CLI Informationen zur Fehlerbehebung.

Zugehörige Ressourcen

Die folgenden zusätzlichen Ressourcen stehen zur Verfügung.