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.
IAM-Tutorial: Verwenden Sie eine AWS CloudFormation Vorlage, um einen SAML Identity Provider (IdP) und eine SAML-Verbund-IAM-Rolle zu erstellen
Um sich mit dem SAML-Verbund und seinen Funktionen vertraut zu machen, verwenden Sie eine AWS CloudFormation Vorlage, um einen SAML Identity Provider (IdP) und die zugehörige föderierte IAM-Rolle einzurichten. In diesem Tutorial erfahren Sie, wie Sie beide Ressourcen zusammen in einem einzigen Stapel erstellen.
Die Vorlage erstellt einen SAML-IdP, der für den Verbundzugriff auf AWS Ressourcen verwendet werden kann, zusammen mit einer IAM-Rolle, die dem SAML-Anbieter vertraut. Benutzer, die von Ihrem externen IdP authentifiziert wurden, können diese Rolle für den Zugriff auf AWS Ressourcen übernehmen.
Die bereitgestellten Ressourcen bestehen aus den folgenden Ressourcen:
-
Ein SAML-IdP, der mit dem Metadatendokument Ihres IdP konfiguriert ist.
-
Eine föderierte IAM-Rolle, die dem SAML-IdP vertraut und von authentifizierten Benutzern übernommen werden kann.
-
Konfigurierbare verwaltete Richtlinien, die an die Rolle angehängt werden können, um bestimmte Berechtigungen zu gewähren.
Voraussetzungen
In diesem Tutorial wird davon ausgegangen, dass Folgendes bereits vorhanden ist:
-
Python 3.6 oder höher ist auf Ihrem lokalen Computer installiert, um den Python-Befehl auszuführen, der in diesem Tutorial zum Formatieren der SAML-Metadaten-XML-Datei Ihres IdP verwendet wird.
-
Ein SAML-Metadatendokument von Ihrem externen IdP, das als XML-Datei gespeichert wurde.
Erstellen Sie einen SAML-IdP und eine Rolle mit AWS CloudFormation
Um den SAML-IdP und die Verbundrolle zu erstellen, erstellen Sie eine CloudFormation Vorlage und verwenden sie, um einen Stack zu erstellen, der beide Ressourcen enthält.
Erstellen der -Vorlage
Erstellen Sie zunächst die Vorlage. CloudFormation
-
Klicken Sie in Vorlage diesem Abschnitt auf der Registerkarte JSON oder YAML auf das Kopiersymbol, um den Inhalt der Vorlage zu kopieren.
-
Fügen Sie den Inhalt der Vorlage in eine neue Datei ein.
-
Speichern Sie die Datei lokal.
Erstellen Sie den -Stack
Verwenden Sie als Nächstes die Vorlage, die Sie gespeichert haben, um einen CloudFormation Stack bereitzustellen.
-
Öffnen Sie die AWS CloudFormation Konsole unter https://console.aws.amazon.com/cloudformation
. -
Wählen Sie auf der Seite Stacks im Menü Stack erstellen die Option Mit neuen Ressourcen (Standard) aus.
-
Geben Sie die Vorlage an:
-
Wählen Sie unter Voraussetzung die Option Eine bestehende Vorlage auswählen aus.
-
Wählen Sie unter Vorlage angeben die Option Vorlagendatei hochladen aus.
-
Wählen Sie Datei auswählen, navigieren Sie zur Vorlagendatei und wählen Sie sie aus.
-
Wählen Sie Weiter aus.
-
-
Geben Sie die folgenden Stack-Details an:
-
Geben Sie einen Stacknamen ein.
-
Denn Sie können dieses Feld leer lassen IdentityProviderName, um automatisch einen Namen basierend auf dem Stacknamen zu generieren, oder einen benutzerdefinierten Namen für Ihren SAML-IdP eingeben.
Beispiel: oder
CompanyIdP
EnterpriseSSO
-
Für IdentityProviderSAMLMetadataDocument müssen Sie Ihre SAML-Metadaten-XML-Datei als eine einzelne Zeile formatieren, bevor Sie sie in dieses Feld einfügen. Dies ist erforderlich, da die CloudFormation Konsole erfordert, dass XML-Inhalt als eine einzelne Zeile formatiert wird, wenn er über Konsolenparameter übergeben wird.
Verwenden Sie den folgenden Python-Befehl, um Ihre XML-Datei neu zu formatieren:
python3 -c "import sys, re; content=open(sys.argv[1]).read(); print(re.sub(r'>\s+<', '><', content.replace('\n', '').replace('\r', '').strip()))"
saml-metadata.xml
Anmerkung
Das SAML-Metadatendokument des IdP muss als einzelne Zeile für die Eingabe von Konsolenparametern formatiert werden. Der Python-Befehl entfernt Zeilenumbrüche und zusätzliche Leerzeichen, um das erforderliche Format zu erstellen und gleichzeitig den gesamten ursprünglichen Inhalt und die ursprüngliche Struktur beizubehalten.
Kopieren Sie die Ausgabe des Python-Befehls und fügen Sie sie in das Feld IdentityProviderSAMLMetadataDokument ein.
Beispiel für ein formatiertes SAML-Metadatendokument (abgekürzt):
<?xml version="1.0" encoding="UTF-8"?><md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" entityID="https://portal.sso.example.com/saml/assertion/CompanyIdP"><md:IDPSSODescriptor WantAuthnRequestsSigned="false" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol"><md:KeyDescriptor use="signing"><ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#"><ds:X509Data><ds:X509Certificate>MIIDXTCCAkWgAwIBAgIJAJC1HiIAZAiIMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV...</ds:X509Certificate></ds:X509Data></ds:KeyInfo></md:KeyDescriptor><md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://portal.sso.example.com/saml/logout/CompanyIdP"/><md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:persistent</md:NameIDFormat><md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://portal.sso.example.com/saml/assertion/CompanyIdP"/></md:IDPSSODescriptor></md:EntityDescriptor>
-
Denn Sie können dieses Feld leer lassen RoleName, um automatisch einen Namen basierend auf dem Stacknamen zu generieren, oder einen benutzerdefinierten Namen für die föderierte IAM-Rolle eingeben.
Beispiel: oder
SAML-Developer-Access
SAML-ReadOnly-Role
-
Akzeptieren Sie für andere Parameter die Standardwerte oder geben Sie Ihre eigenen Werte ein, die Ihren Anforderungen entsprechen:
-
IdentityProviderAddPrivateKey- Optionaler privater Schlüssel zum Entschlüsseln von SAML-Assertionen
-
IdentityProviderAssertionEncryptionMode- Verschlüsselungsmodus für SAML-Assertionen
Beispielwerte:
Allowed
,, oder lassen Sie das Feld leerRequired
, wenn keine Verschlüsselung erforderlich ist -
RoleSessionDuration- Maximale Sitzungsdauer in Sekunden (3600-43200, Standard 7200)
Beispiel:
14400
(4 Stunden) -
RolePermissionsBoundary- Optionaler ARN einer Berechtigungsgrenzrichtlinie
Beispiel:
arn:aws:iam::123456789012:policy/DeveloperBoundary
-
RolePath— Pfad für die IAM-Rolle (Standard ist/)
Beispiel:
/saml-roles/
-
RoleManagedPolicy1-5 — Optional können bis ARNs zu 5 verwaltete Richtlinien angehängt werden
Beispiel für RoleManagedPolicy 1:
arn:aws:iam::aws:policy/ReadOnlyAccess
Beispiel für RoleManagedPolicy 2:
arn:aws:iam::123456789012:policy/CustomPolicy
-
-
Wählen Sie Weiter aus.
-
-
Konfigurieren Sie die Stack-Optionen:
-
Wählen Sie unter Optionen für Stack-Fehler die Option Alle neu erstellten Ressourcen löschen aus.
Anmerkung
Wenn Sie diese Option wählen, wird Ihnen möglicherweise verhindert, dass Ihnen Ressourcen in Rechnung gestellt werden, deren Löschrichtlinie vorsieht, dass sie auch dann beibehalten werden, wenn die Stack-Erstellung fehlschlägt.
-
Akzeptieren Sie alle anderen Standardwerte.
-
Markieren Sie unter Funktionen das Kästchen, um zu bestätigen, dass CloudFormation dadurch IAM-Ressourcen in Ihrem Konto erstellt werden könnten.
-
Wählen Sie Weiter aus.
-
-
Überprüfen Sie die Stack-Details und wählen Sie Senden aus.
AWS CloudFormation erstellt den Stapel. Sobald die Stack-Erstellung abgeschlossen ist, sind die Stack-Ressourcen einsatzbereit. Sie können den Tab Ressourcen auf der Stack-Detailseite verwenden, um die Ressourcen anzuzeigen, die in Ihrem Konto bereitgestellt wurden.
Der Stack gibt die folgenden Werte aus, die Sie auf der Registerkarte Ausgaben einsehen können:
-
RoleARN: Der ARN der erstellten IAM-Rolle (z. B.
arn:aws:iam::123456789012:role/SAML-Developer-Access
oderarn:aws:iam::123456789012:role/stack-name-a1b2c3d4
wenn ein automatisch generierter Name verwendet wird). -
IdentityProviderARN: Der ARN des erstellten SAML-IdP (zum Beispiel
arn:aws:iam::123456789012:saml-provider/CompanyIdP
).
Sie benötigen beide, ARNs wenn Sie Ihren IdP so konfigurieren, dass er die entsprechenden SAML-Attribute für die Rollenübernahme sendet.
Testen Sie den SAML-Verbund
Sobald der SAML-IdP und die Verbundrolle erstellt wurden, können Sie das Verbund-Setup testen.
-
Öffnen Sie unter https://console.aws.amazon.com/iam/
die IAM-Konsole. -
Wählen Sie im Navigationsbereich Identitätsanbieter.
Sie sollten Ihren neu erstellten SAML-IdP in der Liste sehen.
-
Wählen Sie den IdP-Namen, um seine Details anzuzeigen.
Auf der IdP-Detailseite können Sie das SAML-Metadatendokument und andere Konfigurationsdetails sehen.
-
Wählen Sie im Navigationsbereich Rollen.
-
Suchen Sie Ihre neu erstellte Verbundrolle und wählen Sie sie aus.
Auf der Seite mit den Rollendetails können Sie die Vertrauensrichtlinie sehen, die es dem SAML-IdP ermöglicht, diese Rolle zu übernehmen.
-
Wählen Sie die Registerkarte Vertrauensbeziehungen, um die Vertrauensrichtlinie zu überprüfen.
Die Vertrauensrichtlinie sollte zeigen, dass dem SAML-IdP vertraut wird, diese Rolle zu übernehmen, vorausgesetzt, dass die SAML-Zielgruppe ()
SAML:aud
übereinstimmt.https://signin.aws.amazon.com/saml
Aufräumen: Ressourcen löschen
Als letzten Schritt löschen Sie den Stapel und die darin enthaltenen Ressourcen.
-
Öffnen Sie die AWS CloudFormation Konsole.
-
Wählen Sie auf der Seite Stacks den aus der Vorlage erstellten Stack aus, wählen Sie Löschen und bestätigen Sie dann Löschen.
CloudFormation initiiert das Löschen des Stacks und aller darin enthaltenen Ressourcen.
CloudFormation Details zur Vorlage
Ressourcen
Mit der AWS CloudFormation Vorlage für dieses Tutorial werden die folgenden Ressourcen in Ihrem Konto erstellt:
-
AWS::IAM::SAMLProvider
: Ein SAML-IdP, der Vertrauen zwischen AWS und Ihrem externen IdP herstellt. -
AWS::IAM::Role
: Eine föderierte IAM-Rolle, die von Benutzern übernommen werden kann, die über den SAML-IdP authentifiziert wurden.
Konfiguration
Die Vorlage enthält die folgenden konfigurierbaren Parameter:
-
IdentityProviderName- Name des SAML-IdP (leer lassen für den automatisch generierten Namen)
-
IdentityProviderSAMLMetadataDokument — SAML-Metadatendokument von Ihrem IdP (erforderlich)
-
IdentityProviderAddPrivateKey- Optionaler privater Schlüssel zum Entschlüsseln von SAML-Assertionen
-
IdentityProviderAssertionEncryptionMode- Verschlüsselungsmodus für SAML-Assertionen
-
RoleName- Name der IAM-Rolle (leer lassen für den automatisch generierten Namen)
-
RolePath— Pfad für die IAM-Rolle (Standard/)
-
RolePermissionsBoundary- Optionaler ARN der Grenzrichtlinie für Berechtigungen
-
RoleSessionDuration- Maximale Sitzungsdauer in Sekunden (3600-43200, Standard 7200)
-
RoleManagedPolicy1-5 — Optional können bis zu 5 ARNs verwaltete Richtlinien angehängt werden
CloudFormation Vorlage
Speichern Sie den folgenden JSON- oder YAML-Code als separate Datei, um ihn als CloudFormation Vorlage für dieses Tutorial zu verwenden.