Logik für die kontenübergreifende Richtlinienauswertung - AWS Identity and Access Management

Logik für die kontenübergreifende Richtlinienauswertung

Sie können einem Auftraggeber in einem Konto gestatten, auf Ressourcen in einem zweiten Konto zuzugreifen. Dies wird als kontenübergreifender Zugriff bezeichnet. Wenn Sie kontenübergreifenden Zugriff zulassen, wird das Konto, in dem der Auftraggeber existiert, als vertrauenswürdiges-Konto bezeichnet. Das Konto, in dem die Ressource existiert, ist das vertrauende Konto.

Um den kontenübergreifenden Zugriff zu ermöglichen, weisen Sie eine ressourcenbasierte Richtlinie für die freizugebende Ressource zu. Sie müssen außerdem eine identitätsbasierte Richtlinie für die Identität zuweisen, die in der Anforderung als Prinzipal fungiert. Die ressourcenbasierte Richtlinie im vertrauenden Konto muss den Auftraggeber des vertrauenswürdigen Kontos angeben, der Zugriff auf die Ressource hat. Sie können das gesamte Konto oder seine IAM-Benutzer, AWS STS-Verbundbenutzerprinzipale, IAM-Rollen oder Sitzungen mit angenommener Rolle angeben. Sie können auch einen AWS-Service als Auftraggeber angeben. Weitere Informationen finden Sie unter So legen Sie einen Prinzipal fest.

Die identitätsbasierte Richtlinie des Auftraggebers muss den angeforderten Zugriff auf die Ressource im vertrauenden Service zulassen. Sie können dies tun, indem Sie die ARN der Ressource angeben.

In können Sie eine ressourcenbasierte Richtlinie einer IAM-Rolle zuordnen, um Auftraggeber in anderen Konten diese Rolle übernehmen zu lassen. Die ressourcenbasierte Richtlinie der Rolle wird als Rollenvertrauensrichtlinie bezeichnet. Nach dem Übernehmen dieser Rolle können die zugelassenen Auftraggeber die resultierenden temporären Anmeldeinformationen verwenden, um auf mehrere Ressourcen in Ihrem Konto zuzugreifen. Dieser Zugriff wird in der identitätsbasierten Berechtigungsrichtlinie der Rolle definiert. Informationen darüber, wie sich das Zulassen von kontenübergreifendem Zugriff mit Rollen von dem Zulassen von kontenübergreifendem Zugriff mit anderen ressourcenbasierten Richtlinien unterscheidet, finden Sie unter Kontoübergreifender Zugriff auf Ressourcen in IAM.

Wichtig

Andere Services können sich auf die Richtlinienauswertungslogik auswirken. Beispielsweise unterstützt AWS Organizations Service-Kontrollrichtlinien und Ressourcen-Kontrollrichtlinien, die auf Prinzipale und Ressourcen in einem oder mehreren Konten angewendet werden können. AWS Resource Access Manager unterstützt Richtlinienfragmente, die steuern, welche Aktionen die Prinzipale auf für sie gemeinsam genutzten Ressourcen ausführen dürfen.

Festlegen, ob eine kontenübergreifende Anforderung zulässig ist

Bei kontenübergreifenden Anforderungen muss der Anforderer in der vertrauenswürdigen AccountA eine identitätsbasierte Richtlinie haben. Diese Richtlinie muss ihnen gestatten, eine Anforderung an die Ressource in der vertrauenden zu stellen AccountB. Zusätzlich muss die ressourcenbasierte Richtlinie in AccountB dem Anforderer in AccountA den Zugriff auf die Ressource gestatten.

Wenn Sie eine kontenübergreifende Anforderung stellen, führt AWS zwei Auswertungen durch. AWS wertet die Anforderung im vertrauenswürdigen Konto und im vertrauenden Konto. Weitere Informationen darüber, wie eine Anforderung innerhalb eines einzelnen Kontos ausgewertet wird, finden Sie unter So wertet die Logik des AWS-Durchsetzungscodes Anfragen zum Gewähren oder Verweigern des Zugriffs aus. Die Anforderung ist nur dann zulässig, wenn beide Auswertungen eine Entscheidung von zurückgeben Allow.

Kontoübergreifende Auswertung
  1. Wenn ein Auftraggeber in einem Konto eine Anforderung für den Zugriff auf eine Ressource in einem anderen Konto stellt, ist dies eine kontenübergreifende Anforderung.

  2. Der anfordernde Auftraggeber ist im vertrauenswürdigen Konto () vorhanden. (AccountA). Wenn AWS dieses Konto auswertet, prüft es die identitätsbasierte Richtlinie und alle Richtlinien, die eine identitätsbasierte Richtlinie einschränken können. Weitere Informationen finden Sie unter Auswerten von identitätsbasierten Richtlinien mit Berechtigungsgrenzen.

  3. Die angeforderte Ressource ist im vertrauenden Konto () vorhanden. (AccountB). Wenn AWS dieses Konto auswertet, prüft es die ressourcenbasierte Richtlinie, die der angeforderten Ressource zugeordnet ist, sowie alle Richtlinien, die eine ressourcenbasierte Richtlinie einschränken können. Weitere Informationen finden Sie unter Auswerten identitätsbasierter Richtlinien mit ressourcenbasierten Richtlinien.

  4. AWS lässt die Anforderung nur zu, wenn beide Kontorichtlinienbewertungen die Anforderung zulassen.

Das folgende Flussdiagramm veranschaulicht detaillierter, wie eine Entscheidung zur Richtlinienauswertung für eine kontoübergreifende Anforderung getroffen wird. Wiederum lässt AWS die Anforderung nur zu, wenn beide Kontorichtlinienauswertungen die Anforderung zulassen.

Detaillierte kontoübergreifende Richtlinienauswertung

Beispiel für kontenübergreifende Richtlinienauswertung

Das folgende Beispiel zeigt ein Szenario, in dem einer Rolle in einem Konto Berechtigungen durch eine ressourcenbasierte Richtlinie in einem zweiten Konto gewährt werden.

Angenommen, Carlos ist ein Entwickler mit einer IAM-Rolle mit dem Namen Demo im Konto 111111111111. Er möchte eine Datei im amzn-s3-demo-bucket-production-logs Amazon S3-Bucket im Konto 222222222222 speichern.

Nehmen Sie außerdem an, dass der Demo-IAM-Rolle die folgende Richtlinie zugeordnet ist.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowS3ListRead", "Effect": "Allow", "Action": "s3:ListAllMyBuckets", "Resource": "*" }, { "Sid": "AllowS3ProductionObjectActions", "Effect": "Allow", "Action": "s3:*Object*", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket-production/*" }, { "Sid": "DenyS3Logs", "Effect": "Deny", "Action": "s3:*", "Resource": [ "arn:aws:s3:::*log*", "arn:aws:s3:::*log*/*" ] } ] }

Die AllowS3ListRead-Anweisung in dieser Richtlinie erlaubt es Carlos, eine Liste aller Buckets in Amazon S3 anzuzeigen. Die AllowS3ProductionObjectActions-Anweisung gewährt Carlos Vollzugriff auf Objekte im amzn-s3-demo-bucket-production-Bucket.

Zusätzlich wird die folgende ressourcenbasierte Richtlinie (eine so genannte Bucket-Richtlinie) an den amzn-s3-demo-bucket-production-Bucket im Konto 222222222222 angehängt.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject*", "s3:PutObject*", "s3:ReplicateObject", "s3:RestoreObject" ], "Principal": { "AWS": "arn:aws:iam::111111111111:role/Demo" }, "Resource": "arn:aws:s3:::amzn-s3-demo-bucket-production/*" } ] }

Diese Richtlinie erlaubt der Rolle Demo, auf Objekte im Bucket amzn-s3-demo-bucket-production zuzugreifen. Die Rolle kann die Objekte im Bucket erstellen und bearbeiten, jedoch nicht löschen. Die Rolle kann den Bucket nicht selbst verwalten.

Wenn Carlos seine Anforderung sendet, eine Datei im Bucket amzn-s3-demo-bucket-production-logs zu speichern, bestimmt AWS, welche Richtlinien für die Anforderung gelten. In diesem Fall ist die der Demo-Rolle zugeordnete identitätsbasierte Richtlinie die einzige Richtlinie, die im Konto 111111111111 gilt. In Konto 222222222222 ist keine ressourcenbasierte Richtlinie für den amzn-s3-demo-bucket-production-logs-Bucket festgelegt. Wenn AWS das Konto 111111111111 auswertet, gibt es die Entscheidung Deny zurück. Das liegt daran, dass die DenyS3Logs-Anweisung in der identitätsbasierten Richtlinie den Zugriff auf alle Log-Buckets explizit verweigert. Weitere Informationen darüber, wie eine Anforderung innerhalb eines einzelnen Kontos ausgewertet wird, finden Sie unter So wertet die Logik des AWS-Durchsetzungscodes Anfragen zum Gewähren oder Verweigern des Zugriffs aus.

Da die Anforderung innerhalb eines der Konten explizit verweigert wird, besteht die endgültige Entscheidung darin, die Anforderung zu verweigern.

Anfrage an den Bucket amzn-s3-demo-bucket-production-logs

Nehmen wir an, dass Carlos dann seinen Fehler erkennt und versucht, die Datei in den Production-Bucket zu speichern. AWS prüft zunächst das Konto 111111111111, um festzustellen, ob die Anforderung zugelassen ist. Es gilt nur die identitätsbasierte Richtlinie, die die Anforderung zulässt. AWS prüft dann das Konto 222222222222. Nur die ressourcenbasierte Richtlinie, die dem Production-Bucket zugeordnet ist, gilt und lässt die Anforderung zu. Da beide Konten die Anforderung zulassen, besteht die endgültige Entscheidung darin, die Anforderung zuzulassen.

Anforderung an den Produktions-Bucket