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

Die GetFederationToken-Operation wird von einem IAM-Benutzer aufgerufen und gibt temporäre Anmeldedaten für diesen Benutzer zurück. Diese Operation verbindet die Benutzer. Die einer AWS STS Verbundbenutzersitzung zugewiesenen Berechtigungen werden an einer von zwei Stellen definiert:

  • In den Sitzungsrichtlinien, die als Parameter im API-Aufruf GetFederationToken übergeben werden. (Dies ist am üblichsten.)

  • Eine ressourcenbasierte Richtlinie, die die AWS STS Verbundbenutzersitzung explizit im Principal Element der Richtlinie benennt. (Dies ist weniger üblich.)

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

Wenn Sie also keine Richtlinie mit dem GetFederationToken-API-Aufruf übergeben, verfügen die resultierenden temporären Sicherheitsanmeldedaten über keine Berechtigungen. 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: Die folgenden Abbildungen zeigen Häkchen, um anzuzeigen, dass es sich bei den Sitzungsberechtigungen um die Schnittmenge aus der identitätsbasierten Richtlinie des Benutzers und den Sitzungsrichtlinien handelt. Sitzungsberechtigungen können auch die Schnittmenge aus identitätsbasierten Richtlinien und ressourcenbasierten Richtlinien des Benutzers 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.

Zum IAM-Benutzer angefügte 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. Der Server ruft dann das GetFederationToken-API auf, um temporäre Anmeldeinformationen zu erhalten und diese Anmeldeinformationen zur Clientanwendung zurückzugeben. Die Client-Anwendung kann dann mit den temporären Sicherheitsanmeldedaten Anfragen direkt an den AWS Dienst richten. Diese Architektur ermöglicht es der Client-Anwendung, AWS Anfragen zu stellen, ohne langfristige AWS Anmeldeinformationen einzubetten.

Der Authentifizierungsserver ruft die GetFederationToken-API mit den langfristigen Sicherheitsanmeldedaten eines IAM-Benutzers mit dem Namen token-app auf. Die langfristigen IAM-Benutzeranmeldedaten bleiben jedoch auf Ihrem Server und werden unter keinen Umständen an den Client weitergegeben. Die folgende Beispielrichtlinie ist an den token-app IAM-Benutzer angehängt und definiert die umfassendsten Berechtigungen, die Ihre AWS STS Verbundbenutzer (Clients) benötigen. Beachten Sie, dass die sts:GetFederationToken Berechtigung erforderlich ist, damit Ihr Authentifizierungsdienst temporäre Sicherheitsanmeldeinformationen für die AWS STS Verbundbenutzer abrufen kann.

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.

Beispiel Die dem IAM-Benutzer token-app angefügte Richtlinie, die GetFederationToken aufruft
JSON
{ "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 obige Richtlinie erteilt dem IAM-Benutzer mehrere Berechtigungen. Diese Richtlinie allein gewährt dem AWS STS Verbundbenutzer jedoch keine Berechtigungen. Wenn dieser IAM-Benutzer eine Richtlinie als Parameter des API-Aufrufs aufruft GetFederationToken und sie nicht weitergibt, hat der daraus resultierende AWS STS Verbundbenutzer keine effektiven Berechtigungen.

Als Parameter übergebene Sitzungsrichtlinie

Die gängigste Methode, um sicherzustellen, dass dem AWS STS Verbundbenutzer die entsprechenden Berechtigungen zugewiesen werden, besteht darin, Sitzungsrichtlinien im GetFederationToken API-Aufruf zu übergeben. Aufbauend auf dem vorherigen Beispiel nehmen wir an, das GetFederationToken mit den Anmeldedaten des IAM-Benutzers token-app aufgerufen wird. Angenommen, die folgende Sitzungsrichtlinie wird als Parameter des API-Aufrufs übergeben. Der daraus resultierende AWS STS Verbundbenutzer hat die Berechtigung, den Inhalt des genannten productionapp Amazon S3 S3-Buckets aufzulisten. 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-Benutzerberechtigungen und der Sitzungsrichtlinien bilden, die Sie übergeben.

Der AWS STS Verbundbenutzer konnte außer in Amazon SNS, Amazon SQS, Amazon DynamoDB oder in einem anderen S3-Bucket keine Aktionen ausführen. productionapp Diese Aktionen werden abgelehnt, auch wenn diese Berechtigungen dem IAM-Benutzer erteilt werden, der mit dem GetFederationToken-Aufruf verknüpft ist.

Beispiel Als Parameter im API-Aufruf GetFederationToken übergebene Sitzungsrichtlinie
JSON
{ "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. AWS STS Nur einige AWS Dienste unterstützen ressourcenbasierte Richtlinien. Amazon S3 verfügt beispielsweise über Buckets, Amazon SNS über Themen und Amazon SQS über Warteschlangen, denen Sie Richtlinien zuordnen können. Eine Liste aller Services, die ressourcenbasierte Richtlinien unterstützen, finden Sie unter AWS Dienste, die mit IAM funktionieren. Überprüfen Sie die Spalte "Ressourcenbasierte Richtlinien" der Tabellen. Sie können ressourcenbasierte Richtlinien verwenden, um einem Verbundbenutzer direkt Berechtigungen zuzuweisen. AWS STS Geben Sie dazu den Amazon-Ressourcennamen (ARN) des AWS STS 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 ermöglicht einem AWS STS Verbundbenutzer namens Carol den Zugriff auf den Bucket. Wenn die zuvor beschriebene Beispielrichtlinie an den token-app IAM-Benutzer angehängt wird, ist der AWS STS Verbundbenutzer namens Carol berechtigt, die s3:DeleteObject Aktionen s3:GetObjects3:PutObject, und für den genannten Bucket auszuführen. productionapp Dies gilt auch, wenn keine Sitzungsrichtlinie als Parameter im API-Aufruf GetFederationToken übergeben wird. Das liegt daran, dass in diesem Fall dem AWS STS Verbundbenutzer namens Carol durch die folgende ressourcenbasierte Richtlinie ausdrücklich Berechtigungen erteilt wurden.

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

Beispiel Bucket-Richtlinie, die dem Verbundbenutzer Zugriffsberechtigungen erteilt
JSON
{ "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.