Berechtigungen für GetFederationToken - AWS Identitäts- und Zugriffsverwaltung

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.

Berechtigungen für GetFederationToken

Der GetFederationToken Vorgang wird von einem IAM Benutzer aufgerufen und gibt temporäre Anmeldeinformationen für diesen Benutzer zurück. Diese Operation verbindet die Benutzer. Die dem Verbundbenutzer zugewiesenen Berechtigungen sind an einem von zwei Orten definiert:

  • Die Sitzungsrichtlinien, die als Parameter des GetFederationToken API Aufrufs übergeben wurden. (Dies ist am üblichsten.)

  • Eine ressourcenbasierte Richtlinie, in der der Name des Verbundbenutzers im Principal-Element der Richtlinie explizit aufgeführt wird. (Dies ist weniger üblich.)

Sitzungsrichtlinien sind erweiterte Richtlinien, die Sie als Parameter übergeben, wenn Sie eine temporäre Sitzung programmgesteuert erstellen. Wenn Sie eine verbundene Benutzersitzung erstellen und Sitzungsrichtlinien übergeben, sind die resultierenden Sitzungsberechtigungen eine Schnittmenge der identitätsbasierten Richtlinie des -Benutzers und der Sitzungsrichtlinien. Sie können mit der Sitzungsrichtlinie nicht mehr Berechtigungen erteilen, als durch die identitätsbasierte Richtlinie des Benutzers, der verbunden wird, zulässig sind.

In den meisten Fällen verfügen die resultierenden temporären Sicherheitsanmeldedaten über keine Berechtigungen, wenn Sie beim GetFederationToken API Anruf keine Richtlinie übergeben. Allerdings kann eine ressourcenbasierte Richtlinie zusätzliche Berechtigungen für die Sitzung bereitstellen. Sie können auf eine Ressource mit einer ressourcenbasierten Richtlinie zugreifen, die Ihre Sitzung als zulässigen Auftraggeber angibt.

Die folgenden Abbildungen zeigen eine visuelle Darstellung der Interaktion von Richtlinien, um die Berechtigungen für die von einem GetFederationToken-Aufruf zurückgegebenen temporären Anmeldeinformationen zu bestimmen.

IAM-Benutzer In den folgenden Abbildungen werden Häkchen angezeigt, die darauf hinweisen, dass Sitzungsberechtigungen die Schnittstelle zwischen der identitätsbasierten Richtlinie des Benutzers und den Sitzungsrichtlinien sind. Sitzungsberechtigungen können auch die Schnittmenge zwischen den identitätsbasierten Richtlinien des Benutzers und den ressourcenbasierten Richtlinien sein.

Beispiel: Zuweisen von Berechtigungen mit GetFederationToken

Sie können die GetFederationToken API Aktion mit verschiedenen Arten von Richtlinien verwenden. Nachfolgend sind einige Beispiele aufgeführt.

Dem IAM Benutzer zugeordnete Richtlinie

In diesem Beispiel verfügen Sie über eine browserbasierte Clientanwendung, die sich auf zwei Backend-Web-Services stützt. Ein Backend-Service ist Ihr eigener Authentifizierungsserver, der Ihr eigenes Identitätssystem zum Authentifizieren der Clientanwendung verwendet. Der andere Backend-Service ist ein AWS -Service, der einige Funktionalitäten der Clientanwendung bereitstellt. Die Clientanwendung wird von Ihrem Server authentifiziert und Ihr Server erstellt die entsprechende Berechtigungsrichtlinie oder ruft sie ab. Ihr Server ruft dann die GetFederationToken API auf, um temporäre Sicherheitsanmeldedaten abzurufen, und gibt diese Anmeldeinformationen an die Client-Anwendung zurück. Die Client-Anwendung kann dann mit den temporären Sicherheitsanmeldedaten direkt Anfragen an den AWS Dienst richten. Diese Architektur ermöglicht es der Client-Anwendung, AWS Anfragen zu stellen, ohne langfristige AWS Anmeldeinformationen einzubetten.

Ihr Authentifizierungsserver ruft den GetFederationToken API mit den langfristigen Sicherheitsanmeldedaten eines IAM Benutzers mit dem Namen token-app auf. Die langfristigen IAM Benutzeranmeldedaten verbleiben jedoch auf Ihrem Server und werden niemals an den Client verteilt. Die folgende Beispielrichtlinie ist an den token-app IAM Benutzer angehängt und definiert die umfassendsten Berechtigungen, die Ihre Verbundbenutzer (Clients) benötigen. Beachten Sie, dass die Berechtigung sts:GetFederationToken für den Authentifizierungsservice erforderlich ist, damit die temporären Anmeldeinformationen für die Verbundbenutzer abgerufen werden können.

Anmerkung

AWS stellt eine Java-Beispielanwendung für diesen Zweck bereit, die Sie hier herunterladen können: Token Vending Machine for Identity Registration — Beispiel für eine Java-Webanwendung.

Beispielrichtlinie, die einem IAM Benutzer zugewiesen isttoken-app, der aufruft GetFederationToken
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:GetFederationToken", "Resource": "*" }, { "Effect": "Allow", "Action": "dynamodb:ListTables", "Resource": "*" }, { "Effect": "Allow", "Action": "sqs:ReceiveMessage", "Resource": "*" }, { "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "*" }, { "Effect": "Allow", "Action": "sns:ListSubscriptions", "Resource": "*" } ] }

Die vorstehende Richtlinie gewährt dem IAM Benutzer mehrere Berechtigungen. Doch diese Richtlinie allein erteilt dem Verbundbenutzer keinerlei Berechtigungen. Wenn dieser IAM Benutzer aufruft GetFederationToken und keine Richtlinie als Parameter des API Aufrufs weitergibt, hat der daraus resultierende Verbundbenutzer keine effektiven Berechtigungen.

Als Parameter übergebene Sitzungsrichtlinie

Die gängigste Methode, um sicherzustellen, dass dem Verbundbenutzer die entsprechenden Berechtigungen zugewiesen werden, besteht darin, Sitzungsrichtlinien im GetFederationToken API Anruf zu übergeben. Um das vorherige Beispiel weiter zu erläutern, stellen Sie sich vor, dass GetFederationToken der Aufruf mit den Anmeldeinformationen des IAM Benutzers token-app erfolgt. Stellen Sie sich dann vor, dass die folgende Sitzungsrichtlinie als Parameter des API Aufrufs übergeben wird. Der resultierende Verbundbenutzer verfügt über die Berechtigung zum Auflisten der Inhalte des Amazon S3-Buckets mit dem Namen productionapp. Der Benutzer kann die Amazon S3-Aktionen GetObject, PutObject und DeleteObject für Elemente im productionapp-Bucket nicht ausführen.

Dem Verbundbenutzer werden diese Berechtigungen zugewiesen, da die Berechtigungen die Schnittmenge der IAM Benutzerrichtlinien und der von Ihnen übergebenen Sitzungsrichtlinien bilden.

Der Verbundbenutzer konnte außer in AmazonSNS, AmazonSQS, Amazon DynamoDB oder in einem anderen S3-Bucket keine Aktionen ausführen. productionapp Diese Aktionen werden verweigert, obwohl diese Berechtigungen dem IAM Benutzer erteilt wurden, der mit dem Anruf verknüpft ist. GetFederationToken

Beispiel für eine Sitzungsrichtlinie, die als GetFederationToken API Aufrufparameter übergeben wurde
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["s3:ListBucket"], "Resource": ["arn:aws:s3:::productionapp"] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject" ], "Resource": ["arn:aws:s3:::productionapp/*"] } ] }

Ressourcenbasierte Richtlinien

Einige AWS Ressourcen unterstützen ressourcenbasierte Richtlinien, und diese Richtlinien bieten einen weiteren Mechanismus, um einem Verbundbenutzer direkt Berechtigungen zu erteilen. Nur einige AWS Dienste unterstützen ressourcenbasierte Richtlinien. Amazon S3 hat beispielsweise Buckets, Amazon SNS hat Themen und Amazon SQS hat Warteschlangen, denen Sie Richtlinien zuordnen können. Eine Liste aller Services, die ressourcenbasierte Richtlinien unterstützen, finden Sie unter AWS Dienste, die funktionieren mit IAM. Überprüfen Sie die Spalte "Ressourcenbasierte Richtlinien" der Tabellen. Sie können ressourcenbasierte Richtlinien verwenden, um einem Verbundbenutzer Berechtigungen direkt zuzuweisen. Geben Sie dazu den Amazon-Ressourcennamen (ARN) des Verbundbenutzers im Principal Element der ressourcenbasierten Richtlinie an. Das folgende Beispiel veranschaulicht diesen Vorgang und ist eine Erweiterung der vorherigen Beispiele, wobei ein S3-Bucket mit dem Namen productionapp verwendet wird.

Die folgende ressourcenbasierte Richtlinie wird dem Bucket angefügt. Diese Bucket-Richtlinie gewährt der Verbundbenutzerin mit dem Namen Carol Zugriff auf den Bucket. Wenn die zuvor beschriebene Beispielrichtlinie an den token-app IAM Benutzer angehängt wird, ist die Verbundbenutzerin namens Carol berechtigt, die s3:DeleteObject Aktionen s3:GetObjects3:PutObject, und für den genannten Bucket auszuführen. productionapp Dies gilt auch dann, wenn keine Sitzungsrichtlinie als Parameter des Aufrufs übergeben wurde. GetFederationToken API Dies liegt daran, dass in diesem Fall der Verbundbenutzerin mit dem Namen Carol durch die folgende ressourcenbasierte Richtlinie explizit Berechtigungen erteilt worden sind.

Denken Sie daran, dass einem Verbundbenutzer nur dann Berechtigungen erteilt werden, wenn diese Berechtigungen sowohl dem Benutzer als auch dem IAM Verbundbenutzer ausdrücklich erteilt werden. Sie können auch (innerhalb des Kontos) durch eine ressourcenbasierte Richtlinie gewährt werden, die den Verbundbenutzer im Principal-Element der Richtlinie ausdrücklich benennt, wie im folgenden Beispiel.

Beispiel Bucket-Richtlinie, die dem Verbundbenutzer Zugriffsberechtigungen erteilt
{ "Version": "2012-10-17", "Statement": { "Principal": {"AWS": "arn:aws:sts::account-id:federated-user/Carol"}, "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject" ], "Resource": ["arn:aws:s3:::productionapp/*"] } }

Weitere Informationen über das Auswerten von Richtlinien finden Sie unter Logik der Richtlinienevaluierung.