Complete a 3 Question Survey and Earn a re:Post Badge
Help improve AWS Support Official channel in re:Post and share your experience - complete a quick three-question survey to earn a re:Post badge!
Wie gewähre ich meinen Active Directory-Benutzern Zugriff auf die API oder AWS CLI mit AD FS?
Ich habe den Zugriff auf die AWS-Managementkonsole für meine Active Directory-Benutzer mithilfe eines Verbunds konfiguriert. Ich möchte Benutzern den gleichen Zugriff auf das AWS Command Line Interface (AWS CLI) mithilfe von Active Directory-Verbundsdiensten (Active Directory Federation Services, AD FS) gewähren.
Kurzbeschreibung
Wenn du SAML 2.0-Verbundbenutzern den Zugriff auf die AWS-Managementkonsole gewährst, müssen Benutzer, die den programmatischen Zugriff benötigen, dennoch über einen Zugriffsschlüssel und einen geheimen Schlüssel verfügen.
Um die Zugangsschlüssel-ID und den geheimen Zugriffsschlüssel für einen AWS Identity and Access Management (IAM, Identitäts- und Zugriffsmanagement)-Benutzer abzurufen, gehe wie folgt vor:
- Konfiguriere die AWS CLI.
- Rufe temporäre Anmeldeinformationen für Verbundbenutzer ab, um auf die AWS CLI zuzugreifen.
Bevor du einem Verbundbenutzer Zugriff gewähren kannst, gehe wie folgt vor:
- Aktiviere den Verbund zu AWS mithilfe von Windows Active Directory, AD FS und SAML 2.0.
- Verwende Version 3.1.31.0 oder höher der AWS Tools für PowerShell. Du kannst auch v2.36 oder höher (stabile Version) des AWS-SDK für Python auf deiner Workstation installieren.
- Verwende eine minimale Anmeldeinformationsdatei .aws/credentials.
**Hinweis:**Diese Lösung ist nicht kompatibel, wenn du die Multi-Faktor-Authentifizierung (MFA) für deine Verzeichnisbenutzer aktiviert hast.
Behebung
Wenn dein Identitätsanbieter (IDP) so konfiguriert ist, dass er mit Integrated Windows Authentication (IWA), NTLM oder Kerberos (Standard für AD FS 2.0) funktioniert, findest du weitere Informationen unter Lösung 1. Wenn dein IDP für die Verwendung mit formularbasierter Authentifizierung (Standard für AD FS 3.0 und 4.0) konfiguriert ist, findest du weitere Informationen unter Lösung 2.
Hinweis: Wenn du beim Ausführen von AWS-CLI-Befehlen Fehlermeldungen erhältst, stelle sicher, dass du die neueste Version der AWS-CLI verwendest.
PowerShell für AD FS mit IWA (PowerShell 2.0)
- Importiere das Windows PowerShell-Modul, indem du den folgenden Befehl ausführst:
> Import-Module "C:\Program Files (x86)\AWS Tools\PowerShell\AWSPowerShell\AWSPowerShell.psd1"
- Lege eine Variable für deinen AD FS-Endpunkt fest, indem du einen Befehl ähnlich dem folgenden ausführst:
> $Endpoint = 'https://adfs.example.com/adfs/ls/IdpInitiatedSignOn.aspx?loginToRp=urn:amazon:webservices'
Hinweis: Dazu gehören die vollständige URL deiner AD FS-Anmeldeseite und der Uniform Resource Name (URN) für die Anmeldung für AWS.
- Lege den SAML-Endpunkt fest, indem du einen Befehl ausführst, der dem folgenden ähnelt:
> $EndpointName = Set-AWSSamlEndpoint -Endpoint "$Endpoint" -StoreAs 'ADFS-Login' -AuthenticationType NTLM
Hinweis: Standardmäßig ist der AD FS 2.0-AuthenticationType auf NTLM festgelegt. Wenn du im vorherigen Cmdlet-Beispiel für AWS Tools keinen Wert für AuthenticationType angibst, verwendet AWS Tools standardmäßig Kerberos.
- Verwende die gespeicherten Endpunkteinstellungen, um dich beim AD FS-IDP zu authentifizieren und eine Liste von Rollen abzurufen, die der Benutzer dann mithilfe einer der folgenden Methoden annehmen kann:
Verwende die Anmeldeinformationen des Benutzers, der derzeit an der Workstation angemeldet ist.
> Set-AWSSamlRoleProfile -StoreAs 'SAMLUser' -EndpointName $EndpointName
-oder-
Gib die Anmeldeinformationen eines Active Directory-Benutzers an.
> $Credential = Get-Credential -Message "Enter the domain credentials for the endpoint" > Set-AWSSamlRoleProfile -EndpointName $EndpointName -NetworkCredential $credential -StoreAs 'SAMLUser'
- Wenn mehrere Rollen verfügbar sind, wirst du aufgefordert, die Rolle auszuwählen, die du übernehmen möchtest. Gib das alphabetische Zeichen in deine Terminalsitzung ein, das dem folgenden ähnelt:
SAMLUser[A] A - 123456789012:role/ADFS-DevAdmin [B] B - 123456789012:role/ADFS-DevReadOnly [?] Help (default is "A"): A
6. Bestätige, dass Benutzer mit den Verbundanmeldeinformationen und dem angegebenen Profil auf die AWS CLI zugreifen können, indem du einen Befehl ausführst, der dem folgenden ähnelt:
Get-IAMSAMLProviderList -ProfileName SAMLUser
Python für AD FS mit formularbasierter Authentifizierung (Standard für AD FS 3.0 und 4.0)
- Installiere die folgenden Module in Python:
pip install --upgrade boto beautifulsoup4 requests
-
Implementiere eine allgemeine Lösung für den föderierten API/CLI-Zugriff mithilfe von SAML 2.0 und lade dann das Skript aus Schritt 4 dieses verlinkten Blogposts herunter.
-
Öffne das Skript und stelle deine bevorzugte Region und dein bevorzugtes Ausgabeformat ein. Ersetze adfs.example.com durch deine URL und gib dann den vollqualifizierten Domainnamen (FQDN) deines AD FS-Servers ein.
region = 'eu-west-1' outputformat = 'json' awsconfigfile = '/.aws/credentials' idpentryurl = 'https://adfs.example.com/adfs/ls/IdpInitiatedSignOn.aspx?loginToRp=urn:amazon:webservices'
Hinweis: Wenn du einen anderen Dateipfad für deine AWS-Anmeldeinformationsdatei hast, gib den Dateipfad an.
- Speichere deine Änderungen, führe die Datei aus und fülle dann die folgenden Felder aus, sobald sie angezeigt werden:
bob@Ubuntu64:~$ ./working_samlapi.py Username: bob@example.com Password: *********** Please choose the role you would like to assume: [ 0 ]: arn:aws:iam::123456789012:role/ADFS-DevAdmin [ 1 ]: arn:aws:iam::123456789012:role/ADFS-DevReadOnly Selection: 0 ---------------------------------------------------------------- Your new access key pair has been stored in the AWS configuration file /home/ec2-user/.aws/credentials under the saml profile. Note that it will expire at 2018-03-14T14:57:45Z. After this time, you may safely rerun this script to refresh your access key pair. To use this credential, call the AWS CLI with the --profile option (e.g. aws --profile saml ec2 describe-instances). ----------------------------------------------------------------
5. Nachdem du die Verbindung erfolgreich hergestellt hast, führe Befehle mit dem neu konfigurierten SAML-Profil aus, indem du den Parameter --profile in den Befehlen verwendest.
bob@Ubuntu64:~$ aws iam list-saml-providers --profile saml { "SAMLProviderList": [ { "CreateDate": "2018-03-14T13:28:24Z", "ValidUntil": "2118-03-14T13:28:23Z", "Arn": "arn:aws:iam::123456789012:saml-provider/adfs" } ] }
Ähnliche Informationen
Konfiguration des Identitätsverbunds mit den AWS Tools für PowerShell
