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.
SAML2.0-Föderation
AWS unterstützt den Identitätsverbund mit SAML2.0 (Security Assertion Markup Language 2.0)
Der IAM-Verbund unterstützt die folgenden Anwendungsfälle:
-
Verbundzugriff, der es einem Benutzer oder einer Anwendung in Ihrer Organisation ermöglicht, Operationen aufzurufen AWS API. Dieser Anwendungsfall wird im folgenden Abschnitt behandelt. Sie verwenden eine SAML Assertion (als Teil der Authentifizierungsantwort), die in Ihrer Organisation generiert wird, um temporäre Sicherheitsanmeldeinformationen abzurufen. Dieses Szenario ähnelt anderen Verbundszenarien, die IAM unterstützt werden, z. B. den unter Temporäre Sicherheitsnachweise anfordern und OIDCföderation beschriebenen. Die Version SAML 2.0 IdPs in Ihrer Organisation verarbeitet jedoch viele Details zur Laufzeit, um Authentifizierungs- und Autorisierungsprüfungen durchzuführen.
-
Webbasiertes Single Sign-On (SSO) für den AWS Management Console von Ihrem Unternehmen aus. Benutzer können sich bei einem Portal in Ihrer Organisation anmelden, das von einem SAML 2.0-kompatiblen IdP gehostet wird, eine Option auswählen, zu der sie wechseln AWS möchten, und zur Konsole weitergeleitet werden, ohne zusätzliche Anmeldeinformationen angeben zu müssen. Sie können einen SAML Drittanbieter-IdP verwenden, um SSO Zugriff auf die Konsole herzustellen, oder Sie können einen benutzerdefinierten IdP erstellen, um Ihren externen Benutzern den Konsolenzugriff zu ermöglichen. Weitere Informationen zum Erstellen eines benutzerdefinierten Identitätsanbieters finden Sie unter Benutzerdefinierten Identity Broker-Zugriff auf die AWS Konsole aktivieren.
Themen
- Verwenden Sie einen SAML basierten Verbund für den Zugriff auf API AWS
- Überblick über die Konfiguration eines SAML 2.0-basierten Verbunds
- Überblick über die Rolle, die den SAML föderierten Zugriff auf Ihre Ressourcen ermöglicht AWS
- Eindeutige Identifizierung von Benutzern in einem SAML basierten Verbund
- Erstellen Sie einen SAML Identitätsanbieter in IAM
- Konfigurieren Sie Ihren SAML 2.0-IdP mit dem Vertrauen der Vertrauensperson und dem Hinzufügen von Ansprüchen
- Integrieren Sie SAML-Lösungsanbieter von Drittanbietern mit AWS
- SAMLAssertionen für die Authentifizierungsantwort konfigurieren
- Aktivieren des Zugriffs von SAML 2.0-Verbundbenutzern auf AWS Management Console
- Eine SAML Antwort in Ihrem Browser anzeigen
Verwenden Sie einen SAML basierten Verbund für den Zugriff auf API AWS
Gehen wir davon aus, Sie möchten Mitarbeitern die Möglichkeit bieten, Daten von ihren Computern in einen Sicherungsordner zu kopieren. Sie erstellen eine Anwendung, die Benutzer auf ihrem Computer ausführen können. Am Backend liest und schreibt die Anwendung Objekte in einen Amazon S3 S3-Bucket. Benutzer haben keinen direkten Zugriff auf AWS. Stattdessen wird der folgende Prozess verwendet:
-
Ein Benutzer in Ihrer Organisation verwendet eine Client-App, um eine Authentifizierung vom Identitätsanbieter Ihrer Organisation anzufordern.
-
Der Identitätsanbieter authentifiziert den Benutzer anhand des Identitätsspeichers Ihrer Organisation.
-
Der IdP erstellt eine SAML Assertion mit Informationen über den Benutzer und sendet die Assertion an die Client-App.
-
Die Client-App ruft die auf AWS STS
AssumeRoleWithSAML
APIund übergibt die ARN des SAML Anbieters, die ARN der Rolle, die übernommen werden soll, und die SAML Assertion von IdP. -
Die API Antwort an die Client-App enthält temporäre Sicherheitsanmeldedaten.
-
Die Client-App verwendet die temporären Sicherheitsanmeldedaten, um Amazon S3 API S3-Operationen aufzurufen.
Überblick über die Konfiguration eines SAML 2.0-basierten Verbunds
Bevor Sie den SAML 2.0-basierten Verbund wie im vorherigen Szenario und Diagramm beschrieben verwenden können, müssen Sie den IdP Ihrer Organisation und Sie so konfigurieren, AWS-Konto dass sie sich gegenseitig vertrauen. Der allgemeine Prozess für die Konfiguration dieses Vertrauens wird in den folgenden Schritten beschrieben. In Ihrer Organisation müssen Sie über einen IdP verfügen, der SAML 2.0 unterstützt, z. B. Microsoft Active Directory Federation Service (AD FS, Teil von Windows Server), Shibboleth oder einen anderen kompatiblen 2.0-Anbieter. SAML
Anmerkung
Um die Ausfallsicherheit des Verbunds zu verbessern, empfehlen wir Ihnen, Ihren IdP und den AWS
Verbund so zu konfigurieren, dass mehrere SAML Anmeldeendpunkte unterstützt werden. Einzelheiten finden Sie im AWS Sicherheitsblogartikel How to use regional SAML
Richten Sie den IdP Ihrer Organisation ein und vertrauen Sie AWS sich gegenseitig
-
Registrieren Sie sich AWS als Service Provider (SP) beim IdP Ihrer Organisation. Verwenden Sie das SAML Metadaten-Dokument von
https://
region-code
.signin.aws.amazon.com/static/saml-metadata.xmlFür eine Liste möglicher
region-code
Werte finden Sie in der Spalte Region unter AWS Anmelde-Endpunkte.Sie können optional das SAML Metadatendokument von verwenden.
https://signin.aws.amazon.com/static/saml-metadata.xml
-
Mithilfe des IdP Ihrer Organisation generieren Sie eine entsprechende XML Metadatendatei, in der Ihr IdP als IAM Identitätsanbieter beschrieben werden kann. AWS Sie muss den Namen des Ausstellers, ein Erstellungsdatum, ein Ablaufdatum und Schlüssel enthalten, anhand derer die Authentifizierungsantworten (Assertionen) Ihrer Organisation validiert werden AWS können.
-
In der IAM Konsole erstellen Sie einen SAML Identitätsanbieter. Im Rahmen dieses Vorgangs laden Sie das SAML Metadatendokument hoch, die vom IdP in Ihrer Organisation in erstellt wurden. Schritt 2 Weitere Informationen finden Sie unter Erstellen Sie einen SAML Identitätsanbieter in IAM.
-
In IAM erstellen Sie eine oder mehrere IAM Rollen. In der Vertrauensrichtlinie der Rolle legen Sie den SAML Anbieter als Prinzipal fest, wodurch eine Vertrauensbeziehung zwischen Ihrer Organisation und hergestellt wird AWS. Die Berechtigungsrichtlinie der Rolle legt fest, wozu die Benutzer in Ihrer Organisation in AWS berechtigt sind. Weitere Informationen finden Sie unter Eine Rolle für einen externen Identitätsanbieter (Federation) erstellen.
Anmerkung
SAMLIDPsDie in einer Rolle verwendete Vertrauensrichtlinie muss sich in demselben Konto befinden, in dem sich die Rolle befindet.
-
Im IdP Ihrer Organisation definieren Sie Assertionen, die Benutzer oder Gruppen in Ihrer Organisation den IAM Rollen zuordnen. Beachten Sie, dass verschiedene Benutzer und Gruppen in Ihrer Organisation möglicherweise unterschiedlichen IAM Rollen zugeordnet werden. Die genauen Schritte zur Durchführung des Mappings hängen davon ab, welche Identitätsanbieter Sie verwenden. Im früheren Szenario eines Amazon S3-Ordners für Benutzer ist es möglich, dass alle Benutzer derselben Rolle zugeordnet werden, die Amazon S3-Berechtigungen bieten. Weitere Informationen finden Sie unter SAMLAssertionen für die Authentifizierungsantwort konfigurieren.
Wenn Ihr IdP SSO die AWS Konsole aktiviert, können Sie die maximale Dauer der Konsolensitzungen konfigurieren. Weitere Informationen finden Sie unter Aktivieren des Zugriffs von SAML 2.0-Verbundbenutzern auf AWS Management Console.
-
In der Anwendung, die Sie erstellen, rufen Sie die auf und übergeben ihr die Angaben ARN des SAML Anbieters AWS Security Token Service
AssumeRoleWithSAML
API, in dem Sie sie erstellt haben, die der RolleSchritt 3, ARN von der Sie annehmen sollen, dass Sie sie erstellt habenSchritt 4, und die SAML Assertion über den aktuellen Benutzer, die Sie von Ihrem IdP erhalten. AWS stellt sicher, dass die Anfrage zur Übernahme der Rolle von dem IdP stammt, auf den im SAML Anbieter verwiesen wird.Weitere Informationen finden Sie AssumeRoleWithSAMLin der AWS Security Token Service APIReferenz.
-
Wenn die Anfrage erfolgreich ist, API gibt der einen Satz temporärer Sicherheitsanmeldedaten zurück, an die Ihre Anwendung signierte Anfragen richten kann AWS. Ihre Anwendung hat Informationen über den aktuellen Benutzer und kann auf benutzerspezifische Ordner in Amazon S3 zugreifen, wie im vorherigen Szenario beschrieben.
Überblick über die Rolle, die den SAML föderierten Zugriff auf Ihre Ressourcen ermöglicht AWS
Die Rolle oder Rollen, die Sie in erstellen, IAM definieren, in welchen Bereichen Verbundbenutzer aus Ihrer Organisation Zugriff haben. AWS Wenn Sie die Vertrauensrichtlinie für die Rolle erstellen, geben Sie den SAML Anbieter an, den Sie zuvor erstellt haben, als. Principal
Sie können die Vertrauensrichtlinie zusätzlich mit a einschränkenCondition
, sodass nur Benutzer, die bestimmten SAML Attributen entsprechen, auf die Rolle zugreifen können. Sie können beispielsweise festlegen, dass nur Benutzer, deren SAML Zugehörigkeit staff
(wie unter https://openidp.feide.no bestätigt) angegeben ist, auf die Rolle zugreifen dürfen, wie in der folgenden Beispielrichtlinie veranschaulicht wird:
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": {"Federated": "arn:aws:iam::
account-id
:saml-provider/ExampleOrgSSOProvider"}, "Action": "sts:AssumeRoleWithSAML", "Condition": { "StringEquals": { "saml:aud": "https://signin.aws.amazon.com/saml", "saml:iss": "https://openidp.feide.no" }, "ForAllValues:StringLike": {"saml:edupersonaffiliation": ["staff"]} } }] }
Anmerkung
SAMLIDPsDie in einer Rolle verwendete Vertrauensrichtlinie muss sich in demselben Konto befinden, in dem sich die Rolle befindet.
Weitere Informationen zu den SAML Schlüsseln, die Sie in einer Richtlinie einchecken können, finden Sie unterVerfügbare Schlüssel für den SAML basierten AWS STS Verbund.
Sie können unter https://
regionale Endpunkte für das region-code
.signin.aws.amazon.com/static/saml-metadata.xmlsaml:aud
-Attribut einfügen. Eine Liste der möglichen region-code
Werte finden Sie in der Spalte Region unter AWS Anmelde-Endpunkte.
Für die Berechtigungsrichtlinie in der Rolle geben Sie Berechtigungen wie bei jeder anderen Rolle auch an. Wenn Benutzer aus Ihrer Organisation beispielsweise Amazon Elastic Compute Cloud-Instances verwalten dürfen, müssen Sie EC2 Amazon-Aktionen in der Berechtigungsrichtlinie ausdrücklich zulassen, z. B. die Aktionen in der von Amazon EC2FullAccess verwalteten Richtlinie.
Eindeutige Identifizierung von Benutzern in einem SAML basierten Verbund
Wenn Sie Zugriffsrichtlinien in erstellenIAM, ist es oft nützlich, Berechtigungen auf der Grundlage der Benutzeridentität angeben zu können. Für Benutzer, die mit einem Verbund verbunden wurdenSAML, möchte eine Anwendung beispielsweise Informationen in Amazon S3 speichern und dabei eine Struktur wie die folgende verwenden:
myBucket/app1/user1
myBucket/app1/user2
myBucket/app1/user3
Sie können den Bucket (myBucket
) und den Ordner (app1
) über die Amazon S3 S3-Konsole oder die erstellen AWS CLI, da es sich um statische Werte handelt. Die benutzerspezifischen Ordner (user1
, user2
,
user3
usw.) muss jedoch mithilfe von Code zur Laufzeit erstellt werden, da der Wert, der den Benutzer identifiziert, erst bekannt wird, wenn sich der Benutzer das erste Mal über den Verbundprozess anmeldet.
Um Richtlinien zu schreiben, die als Teil eines Ressourcennamens auf benutzerspezifische Details verweisen, muss die Benutzeridentität in SAML Schlüsseln verfügbar sein, die in Richtlinienbedingungen verwendet werden können. Die folgenden Schlüssel sind für den SAML 2.0-basierten Verbund zur Verwendung in Richtlinien verfügbar. IAM Sie können die von den folgenden Schlüsseln zurückgegebenen Werte verwenden, um eindeutige Benutzerkennungen für Ressourcen wie Amazon S3-Ordner zu erstellen.
-
saml:namequalifier
. Ein Hashwert, der auf der Verkettung desIssuer
Antwortwerts (saml:iss
) und einer Zeichenfolge mit derAWS
Konto-ID und dem Anzeigenamen (dem letzten Teil vonARN) des SAML Anbieters in basiert. IAM Die Verkettung der Konto-ID und des Anzeigenamens des SAML Anbieters steht Richtlinien als Schlüssel zur Verfügung. IAMsaml:doc
Die Konto-ID und der Name des Anbieters müssen durch ein '/' getrennt werden, wie in "123456789012/anbieter_name". Weitere Informationen finden Sie imsaml:doc
-Schlüssel unter Verfügbare Schlüssel für den SAML basierten AWS STS Verbund.Die Kombination aus
NameQualifier
undSubject
kann verwendet werden, um einen Verbundbenutzer eindeutig zu identifizieren. Die folgende Pseudocode zeigt, wie dieser Wert berechnet wird. In diesem FallSHA1
steht der Pseudocode für+
Verkettung, für eine Funktion, die mit SHA -1 einen Message Digest erzeugt, und für eine Funktion, die eine Base-64-kodierteBase64
Version der Hashausgabe erzeugt.Base64 ( SHA1 ( "https://example.com/saml" + "123456789012" + "/MySAMLIdP" ) )
Weitere Hinweise zu den Richtlinienschlüsseln, die für den basierten Verbund verfügbar sind, finden Sie unter. SAML Verfügbare Schlüssel für den SAML basierten AWS STS Verbund
-
saml:sub
(string). Dies ist der Betreff des Antrags, der einen Wert enthält, der einen einzelnen Benutzer innerhalb einer Organisation eindeutig identifiziert (zum Beispiel_cbb88bf52c2510eabe00c1642d4643f41430fe25e3
). -
saml:sub_type
(string). Bei diesem Schlüssel kann es sich umpersistent
transient
, oder um die vollständigenFormat
URINameID
ElementeSubject
und handeln, die in Ihrer SAML Assertion verwendet wurden. Der Wertpersistent
gibt an, dass der Wert insaml:sub
für einen Benutzer derselbe für alle Sessions ist. Wenn der Werttransient
lautet, hat der Benutzer einen anderensaml:sub
-Wert für jede Sitzung. Weitere Informationen zumNameID
-Attribut desFormat
-Elements finden Sie unter SAMLAssertionen für die Authentifizierungsantwort konfigurieren.
Das folgende Beispiel zeigt eine Berechtigungsrichtlinie, die die oben genannten Schlüssel verwendet, um Berechtigungen für einen benutzerspezifischen Ordner in Amazon S3 zu gewähren. Die Richtlinie geht davon aus, dass die Amazon S3-Objekte mit einem Präfix identifiziert werden, das sowohl saml:namequalifier
als auch saml:sub
enthält. Beachten Sie, dass das Condition
-Element einen Test umfasst, um sicherzustellen, dass saml:sub_type
auf persistent
festgelegt ist. Wenn er auf transient
festgelegt ist, kann der saml:sub
-Wert für den Benutzer für jede Sitzung unterschiedlich sein und die Kombination der Werte sollte nicht verwendet werden, um benutzerspezifische Ordner zu identifizieren.
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::exampleorgBucket/backup/${saml:namequalifier}/${saml:sub}", "arn:aws:s3:::exampleorgBucket/backup/${saml:namequalifier}/${saml:sub}/*" ], "Condition": {"StringEquals": {"saml:sub_type": "persistent"}} } }
Weitere Informationen zum Mapping von Zusicherungen aus dem Identitätsanbieter zu Richtlinienschlüsseln finden Sie unter SAMLAssertionen für die Authentifizierungsantwort konfigurieren.