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
-
Installieren Sie die AWS CLI. Weitere Informationen finden Sie unter Installation oder Aktualisierung der neuesten Version von AWS CLI..
-
Sie benötigen zunächst Zugriff auf die SSO-Authentifizierung in IAM Identity Center. Wählen Sie eine der folgenden Methoden aus, um auf Ihre AWS-Anmeldeinformationen zuzugreifen.
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:
-
Sammeln Sie Ihre
SSO Region- undSSO Start URL-Werte, die Sie für die Ausführung vonaws configure ssobenötigen.-
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.
-
Wählen Sie im Dialogfeld Anmeldeinformationen abrufen die Registerkarte aus, die Ihrem Betriebssystem entspricht.
-
Wählen Sie die Methode Anmeldeinformationen für IAM Identity Center aus, um die Werte für
SSO Start URLundSSO Regionabzurufen.
-
-
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.
-
-
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:
-
Führen Sie den Befehl
aws configure ssoin Ihrem bevorzugten Terminal aus. -
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
botocoreenthalten.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.
-
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) -
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 ID123456789011There are 2 roles available to you. > ReadOnly FullAccess -
Geben Sie das Standardausgabeformat, die Standard-AWS-Region für das Senden von Befehlen und einen Namen für das Profil an. Wenn Sie
defaultals 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> -
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:
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:
-
(Erforderlich)
sso_start_url -
(Erforderlich)
sso_region
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:
[profiledev] sso_session =my-ssosso_account_id =111122223333sso_role_name =SampleRole[sso-sessionmy-sso] sso_region =us-east-1sso_start_url =https://my-sso-portal.awsapps.com/start
Dadurch können sso-session-Konfigurationen zudem auch in mehreren Profilen wiederverwendet werden:
[profiledev] sso_session =my-ssosso_account_id =111122223333sso_role_name =SampleRole[profileprod] sso_session =my-ssosso_account_id =111122223333sso_role_name =SampleRole2[sso-sessionmy-sso] sso_region =us-east-1sso_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-sessionmy-sso] sso_region =us-east-1sso_start_url =https://my-sso-portal.awsapps.com/startsso_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:
[profilemy-sso-profile] sso_start_url =https://my-sso-portal.awsapps.com/startsso_region =us-west-2sso_account_id =111122223333sso_role_name =SSOReadOnlyRoleregion =us-west-2output =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.
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-sessionmy-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 --profilemy-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 logoutSuccessfully 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.
-
Tutorial: Verwenden von IAM Identity Center zur Ausführung von Amazon-S3-Befehlen in der AWS CLI
-
Installation oder Aktualisierung der neuesten Version von AWS CLI.
-
Einstellungen der Konfigurations- und Anmeldeinformationsdatei in der AWS CLI
-
aws configure ssoin der Referenz zu AWS CLI Version 2 -
aws configure sso-sessionin der Referenz zu AWS CLI Version 2 -
aws sso loginin der Referenz zu AWS CLI Version 2 -
aws sso logoutin der Referenz zu AWS CLI Version 2 -
Einrichtung für die Verwendung der AWS CLI mit CodeCatalyst im Benutzerhandbuch zu Amazon CodeCatalyst
-
OAuth 2.0-Zugriffsbereiche im Benutzerhandbuch zu IAM Identity Center
-
Tutorials für die ersten Schritte im Benutzerhandbuch zu IAM Identity Center