View a markdown version of this page

Selbstverwaltete Berechtigungen erteilen - AWS CloudFormation

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.

Selbstverwaltete Berechtigungen erteilen

Dieses Thema enthält Anweisungen zum Erstellen der IAM-Servicerollen, die für die kontoübergreifende Bereitstellung AWS-Regionen mit selbstverwalteten Berechtigungen erforderlich sind. StackSets Diese Rollen sind erforderlich, um eine vertrauenswürdige Beziehung zwischen dem Konto, StackSet von dem Sie das Formular verwalten, und dem Konto, für das Sie Stack-Instances bereitstellen, herzustellen. Mithilfe dieses Berechtigungsmodells StackSets können Sie die Bereitstellung für alle AWS-Konto Benutzer durchführen, für die Sie über die Berechtigungen zum Erstellen einer IAM-Rolle verfügen.

Um dienstverwaltete Berechtigungen zu verwenden, lesen Sie stattdessen Aktivieren Sie den vertrauenswürdigen Zugriff .

Self-managed Überblick über die Berechtigungen

Bevor Sie eine StackSet mit selbstverwalteten Berechtigungen erstellen, müssen Sie in jedem Konto IAM-Servicerollen erstellt haben.

Die grundlegenden Schritte sind:

  1. Ermitteln Sie, welches AWS-Konto das Administratorkonto ist.

    StackSets werden in diesem Administratorkonto erstellt. Ein Zielkonto ist das Konto, in dem Sie einzelne Stacks erstellen, die zu einem StackSet gehören.

  2. Bestimmen Sie, wie Sie die Berechtigungen für den StackSet strukturieren möchten.

    Die einfachste (und freizügigste) Berechtigungskonfiguration besteht darin, dass Sie allen Benutzern und Gruppen im Administratorkonto die Möglichkeit geben, alle über dieses Konto StackSets verwalteten Berechtigungen zu erstellen und zu aktualisieren. Wenn Sie eine feinere Kontrolle benötigen, können Sie Berechtigungen einrichten, die Folgendes angeben:

    • Welche Benutzer und Gruppen können in welchen StackSet Zielkonten Operationen ausführen?

    • Welche Ressourcen Benutzer und Gruppen in ihre aufnehmen können StackSets.

    • Welche StackSet Operationen bestimmte Benutzer und Gruppen ausführen können.

  3. Erstellen Sie die erforderlichen IAM-Servicerollen in Ihrem Administrator- und Ziel-Konto, um die gewünschten Berechtigungen zu definieren.

    Konkret sind die beiden erforderlichen Rollen:

    • AWSCloudFormationStackSetAdministrationRole— Diese Rolle wird dem Administratorkonto zugewiesen.

    • AWSCloudFormationStackSetExecutionRole— Diese Rolle wird allen Konten zugewiesen, in denen Sie Stack-Instances erstellen.

Geben Sie allen Benutzern des Administratorkontos die Berechtigung, Stapel in allen Zielkonten zu verwalten

In diesem Abschnitt erfahren Sie, wie Sie Berechtigungen einrichten, damit alle Benutzer und Gruppen des Administratorkontos StackSet Vorgänge in allen Zielkonten ausführen können. Es führt Sie durch die Erstellung der erforderlichen IAM-Service-Rollen in Ihren Administrator- und Zielkonten. Jeder, der über das Administratorkonto verfügt, kann dann beliebige Stapel für alle Zielkonten erstellen, aktualisieren oder löschen.

Durch die Strukturierung von Berechtigungen auf diese Weise übernehmen Benutzer keine Administratorrolle, wenn sie eine erstellen oder aktualisieren StackSet.

Wichtig

Auch wenn Sie den AdministrationRoleARN Parameter nicht angeben, UpdateStackSet muss der IAM-Principal, der anruftCreateStackSet, über die iam:PassRole Berechtigung für die AWSCloudFormationStackSetAdministrationRole Rolle verfügen. CloudFormation benötigt diese Berechtigung, um die Standard-Administratorrolle in Ihrem Namen zu verwenden.

Die folgende Beispielrichtlinie gewährt die erforderliche Berechtigung:

{ "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::account-id:role/AWSCloudFormationStackSetAdministrationRole" }
Jeder Benutzer im Administratorkonto kann dann nach dem Einrichten einer Vertrauensbeziehung jedes Konto StackSet in den Zielkonten erstellen.
Administrator account

Erstellen Sie im Administratorkonto eine IAM-Rolle mit dem Namen AWSCloudFormationStackSetAdministrationRole.

Sie können dies tun, indem Sie einen Stack aus der CloudFormation Vorlage erstellen, die unter verfügbar ist. https://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/AWSCloudFormationStackSetAdministrationRole.yml

Beispiel Beispiel für eine Berechtigungsrichtlinie

Die mit der vorangegangenen Vorlage erstellte Administrationsrolle enthält die folgende Berechtigungsrichtlinie.

{ "Version":"2012-10-17", "Statement": [ { "Action": [ "sts:AssumeRole" ], "Resource": [ "arn:aws:iam::*:role/AWSCloudFormationStackSetExecutionRole" ], "Effect": "Allow" } ] }
Beispiel Beispiel Treuhandvertrag 1

Die vorangehende Vorlage enthält auch die folgende Vertrauensrichtlinie, die dem Dienst die Berechtigung zur Verwendung der Administrationsrolle und der mit der Rolle verbundenen Berechtigungen erteilt.

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "cloudformation.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Beispiel Beispiel Treuhandvertrag 2

Wenn Sie Stack-Instances in einem Zielkonto bereitstellen möchten, das sich in einer Region befindet, die standardmäßig deaktiviert ist, müssen Sie auch den regionalen Dienstprinzipal für diese Region angeben. Jede standardmäßig deaktivierte Region verfügt über einen eigenen regionalen Service-Prinzipal.

Die folgende Beispiel-Vertrauensrichtlinie gewährt dem Dienst die Berechtigung zur Verwendung der Administrationsrolle in der Region Asien-Pazifik (Hongkong) (ap-east-1), einer Region, die standardmäßig deaktiviert ist.

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "cloudformation.amazonaws.com", "cloudformation.ap-east-1.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

Weitere Informationen finden Sie unter Bereiten Sie sich auf die Ausführung von StackSet Vorgängen vor AWS-Regionen , die standardmäßig deaktiviert sind. Eine Liste der Regionalcodes finden Sie unter Regionale Endpunkte in der Allgemeine AWS-Referenz Anleitung.

Target accounts

Erstellen Sie in jedem Zielkonto eine Servicerolle mit dem Namen AWSCloudFormationStackSetExecutionRole, der dem Administratorkonto vertraut. Die Rolle muss genau diesen Namen haben. Sie können dies tun, indem Sie einen Stapel aus der CloudFormation Vorlage erstellen, die unter verfügbar ist. https://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/AWSCloudFormationStackSetExecutionRole.yml Wenn Sie diese Vorlage verwenden, werden Sie aufgefordert, die Konto-ID des Administratorkontos anzugeben, mit dem Ihr Zielkonto eine Vertrauensbeziehung haben muss.

Wichtig

Beachten Sie, dass diese Vorlage Administratorzugriff gewährt. Nachdem Sie die Vorlage verwendet haben, um eine Zielkonto-Ausführungsrolle zu erstellen, müssen Sie die Berechtigungen in der Richtlinienanweisung auf die Arten von Ressourcen beschränken, die Sie verwenden StackSets.

Für die Zielkonto-Servicerolle sind Berechtigungen erforderlich, um alle in Ihrer CloudFormation Vorlage angegebenen Vorgänge ausführen zu können. Wenn Ihre Vorlage beispielsweise einen S3-Bucket erstellt, benötigen Sie Berechtigungen zum Erstellen neuer Objekte für S3. Ihr Zielkonto benötigt immer vollständige CloudFormation -Berechtigungen, darunter die Berechtigungen zum Erstellen, Aktualisieren, Löschen und Beschreiben von Stacks.

Beispiel Beispiel Berechtigungsrichtlinie 1

Die mit dieser Vorlage erstellte Rolle aktiviert die folgende Richtlinie in einem Zielkonto.

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "*", "Resource": "*" } ] }
Beispiel Beispiel Berechtigungsrichtlinie 2

Das folgende Beispiel zeigt eine Richtlinienerklärung mit den Mindestberechtigungen für StackSets to work. Um Stacks in Zielkonten zu erstellen, die Ressourcen aus anderen Diensten als verwenden CloudFormation, müssen Sie diese Dienstaktionen und Ressourcen der AWSCloudFormationStackSetExecutionRole Richtlinienerklärung für jedes Zielkonto hinzufügen.

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:*" ], "Resource": "*" } ] }
Beispiel Beispiel für eine Treuhand-Police

Die folgende Vertrauensbeziehung wird durch die Vorlage erstellt. Die ID des Administratorkontos wird als admin_account_id angezeigt.

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": "sts:AssumeRole" } ] }

Sie können die Vertrauensbeziehung einer vorhandenen Ausführungsrolle für ein Zielkonto so konfigurieren, dass sie einer bestimmten Rolle im Administratorkonto vertraut. Wenn Sie die Rolle im Administratorkonto löschen und eine neue erstellen, um sie zu ersetzen, müssen Sie die Vertrauensstellungen Ihres Zielkontos mit der neuen Administratorkontorolle konfigurieren, die admin_account_id im vorherigen Beispiel dargestellt wird.

Richten Sie erweiterte Berechtigungsoptionen für StackSet Operationen ein

Wenn Sie eine genauere Kontrolle darüber benötigen StackSets , was Benutzer und Gruppen über ein einziges Administratorkonto erstellen, können Sie mithilfe von IAM-Rollen Folgendes angeben:

  • Welche Benutzer und Gruppen können StackSet Operationen in welchen Zielkonten ausführen.

  • Welche Ressourcen Benutzer und Gruppen in ihre aufnehmen können StackSets.

  • Welche StackSet Operationen bestimmte Benutzer und Gruppen ausführen können.

Steuern Sie, welche Benutzer StackSet Operationen in bestimmten Zielkonten ausführen können

Verwenden Sie benutzerdefinierte Administratorrollen, um zu steuern, welche Benutzer und Gruppen StackSet Operationen in welchen Zielkonten ausführen können. Möglicherweise möchten Sie steuern, welche Benutzer des Administratorkontos StackSet Vorgänge in welchen Zielkonten ausführen können. Dazu erstellen Sie eine Vertrauensstellung zwischen jedem Zielkonto und einer bestimmten benutzerdefinierten Verwaltungsrolle, anstatt die AWSCloudFormationStackSetAdministrationRole Servicerolle im Administratorkonto selbst zu erstellen. Anschließend aktivieren Sie bestimmte Benutzer und Gruppen für die Verwendung der benutzerdefinierten Administratorrolle bei der Ausführung von StackSet Vorgängen in einem bestimmten Zielkonto.

Sie können beispielsweise in Ihrem Administratorkonto die Rollen A und B erstellen. Rolle A erhält die Berechtigung zum Zugriff auf Zielkonto 1 über Konto 8. Rolle B erhält die Berechtigung zum Zugriff auf Zielkonto 9 über Konto 16.

Eine Vertrauensbeziehung zwischen einer benutzerdefinierten Verwaltungsrolle und Zielkonten, die es Benutzern ermöglicht, eine zu erstellen StackSet.

Zum Einrichten der erforderlichen Berechtigungen müssen Sie eine benutzerdefinierte Administratorrolle definieren, eine Servicerolle für das Zielkonto erstellen und Benutzern die Berechtigung gewähren, die benutzerdefinierte Administratorrolle bei der Ausführung von StackSet Vorgängen zu übergeben.

Im Allgemeinen funktioniert das wie folgt, sobald Sie über die erforderlichen Berechtigungen verfügen: Beim Erstellen einer StackSet muss der Benutzer eine benutzerdefinierte Administratorrolle angeben. Der Benutzer benötigt die Berechtigung zum Übergeben der Rolle an CloudFormation. Darüber hinaus muss die benutzerdefinierte Administratorrolle eine Vertrauensbeziehung zu den für die angegebenen Zielkonten haben StackSet. CloudFormation erstellt die StackSet und ordnet ihr die benutzerdefinierte Administratorrolle zu. Beim Aktualisieren von a StackSet muss der Benutzer explizit eine benutzerdefinierte Administratorrolle angeben, auch wenn es sich um dieselbe benutzerdefinierte Administratorrolle handelt, die StackSet zuvor mit dieser Rolle verwendet wurde. CloudFormationverwendet diese Rolle, um den Stack zu aktualisieren, vorbehaltlich der oben genannten Anforderungen.

Administrator account
Beispiel Beispiel für eine Berechtigungsrichtlinie

Erstellen Sie für jede StackSet Rolle eine benutzerdefinierte Administratorrolle mit der Berechtigung, die Rolle beim Ausführen des Zielkontos zu übernehmen.

Der Name der Ausführungsrolle des Zielkontos muss in jedem Zielkonto derselbe sein. Wenn der Rollenname lautet AWSCloudFormationStackSetExecutionRole, wird er automatisch beim Erstellen einer StackSets verwendet StackSet. Wenn Sie einen benutzerdefinierten Rollennamen angeben, müssen Benutzer beim Erstellen einer Rolle den Namen der Ausführungsrolle angeben StackSet.

Erstellen Sie eine IAM-Dienstrolle mit einem benutzerdefinierten Namen und der folgenden Berechtigungsrichtlinie. custom_execution_roleBezieht sich in den folgenden Beispielen auf die Ausführungsrolle in den Zielkonten.

{ "Version":"2012-10-17", "Statement": [ { "Action": [ "sts:AssumeRole" ], "Resource": [ "arn:aws:iam::111122223333:role/custom_execution_role" ], "Effect": "Allow" } ] }

Wenn Sie mehrere Konten in einer einzigen Anweisung angeben möchten, trennen Sie diese durch Kommas.

"Resource": [ "arn:aws:iam::target_account_id_1:role/custom_execution_role", "arn:aws:iam::target_account_id_2:role/custom_execution_role" ]

Sie können alle Zielkonten angeben, indem Sie einen Platzhalter (*) anstelle einer Konto-ID verwenden.

"Resource": [ "arn:aws:iam::*:role/custom_execution_role" ]
Beispiel Beispiel Treuhandvertrag 1

Sie müssen eine Vertrauensrichtlinie für die Dienstrolle erstellen, um festzulegen, welche IAM-Principals die Rolle übernehmen können.

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "cloudformation.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Beispiel Beispiel Treuhandvertrag 2

Wenn Sie Stack-Instances in einem Zielkonto bereitstellen möchten, das sich in einer Region befindet, die standardmäßig deaktiviert ist, müssen Sie auch den regionalen Dienstprinzipal für diese Region angeben. Jede standardmäßig deaktivierte Region verfügt über einen eigenen regionalen Service-Prinzipal.

Die folgende Beispiel-Vertrauensrichtlinie gewährt dem Dienst die Berechtigung zur Verwendung der Administrationsrolle in der Region Asien-Pazifik (Hongkong) (ap-east-1), einer Region, die standardmäßig deaktiviert ist.

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "cloudformation.amazonaws.com", "cloudformation.ap-east-1.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

Weitere Informationen finden Sie unter Bereiten Sie sich auf die Ausführung von StackSet Vorgängen vor AWS-Regionen , die standardmäßig deaktiviert sind. Eine Liste der Regionalcodes finden Sie unter Regionale Endpunkte im AWS Allgemeinen Referenzhandbuch.

Beispiel Beispiel einer Pass-Rollen-Richtlinie

Sie benötigen außerdem eine IAM-Berechtigungsrichtlinie für Ihre IAM-Benutzer, die es dem Benutzer ermöglicht, die benutzerdefinierte Administratorrolle bei der Ausführung StackSet von Vorgängen zu übergeben. Weitere Informationen finden Sie unter Erteilen von Benutzerberechtigungen zur Übergabe einer Rolle an einen AWS -Service.

customized_admin_roleBezieht sich im folgenden Beispiel auf die Administratorrolle, die der Benutzer erfüllen muss.

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:GetRole", "iam:PassRole" ], "Resource": "arn:aws:iam::*:role/customized_admin_role" } ] }
Target accounts

Erstellen Sie in jedem Zielkonto eine Service-Rolle, die der benutzerdefinierten Administrationsrolle vertraut, die Sie mit diesem Konto verwenden möchten.

Für die Zielkontorolle sind Berechtigungen erforderlich, um alle in Ihrer CloudFormation Vorlage angegebenen Vorgänge ausführen zu können. Wenn Ihre Vorlage beispielsweise einen S3-Bucket erstellt, benötigen Sie Berechtigungen zum Erstellen neuer Objekte in S3. Ihr Zielkonto benötigt immer vollständige CloudFormation Berechtigungen, einschließlich der Berechtigungen zum Erstellen, Aktualisieren, Löschen und Beschreiben von Stacks.

Der Rollenname des Zielkontos muss in jedem Zielkonto derselbe sein. Wenn der Rollenname lautet AWSCloudFormationStackSetExecutionRole, wird er automatisch beim Erstellen einer StackSets StackSet verwendet. Wenn Sie einen benutzerdefinierten Rollennamen angeben, müssen Benutzer beim Erstellen einer Rolle den Namen der Ausführungsrolle angeben StackSet.

Beispiel Beispiel für eine Berechtigungsrichtlinie

Das folgende Beispiel zeigt eine Richtlinienanweisung mit den Mindestberechtigungen für StackSets to work. Um Stacks in Zielkonten zu erstellen, die Ressourcen aus anderen Diensten als verwenden CloudFormation, müssen Sie diese Dienstaktionen und Ressourcen zur Berechtigungsrichtlinie hinzufügen.

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:*" ], "Resource": "*" } ] }
Beispiel Beispiel für eine Treuhand-Police

Sie müssen die folgende Vertrauensrichtlinie angeben, wenn Sie die Rolle erstellen, um die Vertrauensbeziehung zu definieren.

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/customized_admin_role" }, "Action": "sts:AssumeRole" } ] }

Steuern Sie, welche Ressourcen Benutzer in bestimmte Bereiche aufnehmen können StackSets

Verwenden Sie benutzerdefinierte Ausführungsrollen, um zu steuern, welche Stack-Ressourcen Benutzer und Gruppen in ihre Ressourcen aufnehmen können StackSets. Beispielsweise möchten Sie vielleicht eine Gruppe einrichten, die nur S3-related Amazon-Ressourcen in die von StackSets ihnen erstellte Gruppe aufnehmen kann, während ein anderes Team nur DynamoDB-Ressourcen einbeziehen kann. Dazu erstellen Sie eine Vertrauensbeziehung zwischen der angepassten Administrationsrolle für jede Gruppe und einer angepassten Ausführungsrolle für jede Gruppe von Ressourcen. Die benutzerdefinierte Ausführungsrolle definiert, in welche Stack-Ressourcen aufgenommen werden können. StackSets Die benutzerdefinierte Verwaltungsrolle befindet sich im Administratorkonto, während sich die benutzerdefinierte Ausführungsrolle in jedem Zielkonto befindet, in dem Sie StackSets mithilfe der definierten Ressourcen erstellen möchten. Anschließend aktivieren Sie bestimmte Benutzer und Gruppen, um die benutzerdefinierte Administratorrolle bei der Ausführung StackSets von Vorgängen zu verwenden.

Sie können zum Beispiel benutzerdefinierte Administrationsrollen A, B und C im Administratorkonto erstellen. Benutzer und Gruppen mit der Berechtigung zur Verwendung von Rolle A können Stack-Ressourcen erstellen StackSets , die speziell in der benutzerdefinierten Ausführungsrolle X aufgeführt sind, nicht jedoch Ressourcen in den Rollen Y oder Z oder Ressourcen, die keiner Ausführungsrolle angehören.

Eine Vertrauensstellung zwischen einer benutzerdefinierten Administratorrolle und einer benutzerdefinierten Ausführungsrolle in Zielkonten, sodass Benutzer eine erstellen können StackSet.

Bei der Aktualisierung von a StackSet muss der Benutzer explizit eine benutzerdefinierte Administratorrolle angeben, auch wenn es sich um dieselbe benutzerdefinierte Administratorrolle handelt, die StackSet zuvor für diese Rolle verwendet wurde. CloudFormation führt das Update mithilfe der angegebenen benutzerdefinierten Administratorrolle durch, sofern der Benutzer über die entsprechenden Berechtigungen verfügt StackSet.

Entsprechend kann der Benutzer auch eine benutzerdefinierte Ausführungsrolle angeben. Wenn der Benutzer eine benutzerdefinierte Ausführungsrolle angibt, CloudFormation verwendet er diese Rolle, um den Stack zu aktualisieren, sofern die oben genannten Anforderungen erfüllt sind. Wenn der Benutzer keine benutzerdefinierte Ausführungsrolle angibt, CloudFormation führt das Update mithilfe der benutzerdefinierten Ausführungsrolle durch, die zuvor mit der verknüpft war StackSet, sofern der Benutzer über die entsprechenden Berechtigungen verfügt StackSet.

Administrator account

Erstellen Sie eine angepasste Administrationsrolle in Ihrem Administratorkonto, wie in Steuern Sie, welche Benutzer StackSet Operationen in bestimmten Zielkonten ausführen könnenbeschrieben. Fügen Sie eine Vertrauensbeziehung zwischen der benutzerdefinierten Administrationsrolle und den benutzerdefinierten Ausführungsrollen ein, die sie verwenden soll.

Beispiel Beispiel für eine Berechtigungsrichtlinie

Das folgende Beispiel ist eine Berechtigungsrichtlinie für beide Konten, die für das Zielkonto AWSCloudFormationStackSetExecutionRole definiert wurden, zusätzlich zu einer benutzerdefinierten Ausführungsrolle.

{ "Version":"2012-10-17", "Statement": [ { "Sid": "Stmt1487980684000", "Effect": "Allow", "Action": [ "sts:AssumeRole" ], "Resource": [ "arn:aws:iam::*:role/AWSCloudFormationStackSetExecutionRole", "arn:aws:iam::*:role/custom_execution_role" ] } ] }
Target accounts

Erstellen Sie in den Zielkonten, in denen Sie Ihre erstellen möchten StackSets, eine benutzerdefinierte Ausführungsrolle, die Berechtigungen für die Dienste und Ressourcen gewährt, in die Benutzer und Gruppen aufgenommen werden sollen StackSets.

Beispiel Beispiel für eine Berechtigungsrichtlinie

Das folgende Beispiel enthält die Mindestberechtigungen für StackSets sowie die Erlaubnis zum Erstellen von Amazon DynamoDB-Tabellen.

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "dynamoDb:createTable" ], "Resource": "*" } ] }
Beispiel Beispiel für eine Treuhand-Police

Sie müssen die folgende Vertrauensrichtlinie angeben, wenn Sie die Rolle erstellen, um die Vertrauensbeziehung zu definieren.

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/customized_admin_role" }, "Action": "sts:AssumeRole" } ] }

Richten Sie Berechtigungen für bestimmte Operationen ein StackSet

Darüber hinaus können Sie Berechtigungen einrichten, für die Benutzer und Gruppen bestimmte StackSet Operationen ausführen können, z. B. das Erstellen, Aktualisieren, Löschen StackSets oder Stapeln von Instanzen. Weitere Informationen finden Sie unter Aktionen, Ressourcen und Bedingungsschlüssel für CloudFormation in der Service-Autorisierungs-Referenz.

Richten Sie globale Schlüssel ein, um Confused-Deputy-Probleme zu mindern.

Das Problem des verwirrten Stellvertreters ist ein Sicherheitsproblem, bei dem eine Entität, die keine Berechtigung zur Durchführung einer Aktion hat, eine privilegiertere Entität zur Durchführung der Aktion zwingen kann. AWS Außerdem kann der dienstübergreifende Identitätswechsel zu einem verwirrten Stellvertreterproblem führen. Cross-service Ein Identitätswechsel kann auftreten, wenn ein Dienst (der aufrufende Dienst) einen anderen Dienst (den aufgerufenen Dienst) anruft. Der Anruf-Service kann so manipuliert werden, dass er seine Berechtigungen verwendet, um auf die Ressourcen eines anderen Kunden zu reagieren, auf die er sonst nicht zugreifen dürfte. Um dies zu verhindern, AWS bietet Tools, mit denen Sie Ihre Daten für alle Dienste schützen können, deren Dienstprinzipale Zugriff auf Ressourcen in Ihrem Konto erhalten haben.

Wir empfehlen, in Ressourcenrichtlinien die Schlüssel aws:SourceArn und den aws:SourceAccount globalen Bedingungskontext zu verwenden, um die Berechtigungen einzuschränken, die CloudFormation StackSets einem anderen Dienst für die Ressource gewähren. Wenn Sie beide globalen Bedingungskontextschlüssel verwenden, müssen der aws:SourceAccount-Wert und das Konto im aws:SourceArn-Wert dieselbe Konto-ID verwenden, wenn sie in derselben Richtlinienanweisung verwendet werden.

Der effektivste Weg, um sich vor dem Confused-Deputy-Problem zu schützen, ist die Verwendung des globalen Bedingungskontext-Schlüssels aws:SourceArn mit dem vollständigen ARN der Ressource. Wenn Sie den vollständigen ARN der Ressource nicht kennen oder wenn Sie mehrere Ressourcen angeben, verwenden Sie den globalen Bedingungskontext-Schlüssel aws:SourceArn mit Platzhaltern (*) für die unbekannten Teile des ARN. Beispiel, arn:aws:cloudformation::123456789012:*. Verwenden Sie nach Möglichkeit aws:SourceArn, da es spezifischer ist. Verwenden Sie aws:SourceAccount nur wenn Sie den richtigen ARN oder das ARN-Muster nicht ermitteln können.

Wenn in Ihrem Administratorkonto die Administratorrolle StackSets übernimmt, werden Ihre StackSets Administratorkonto-ID und der StackSets Amazon-Ressourcenname (ARN) eingegeben. Sie können daher Bedingungen für die globalen Schlüssel aws:SourceAccount und aws:SourceArn in den Vertrauensbeziehungen definieren, um Confused-Deputy-Probleme zu vermeiden. Das folgende Beispiel zeigt, wie Sie die Kontextschlüssel aws:SourceArn und die aws:SourceAccount globalen Bedingungskontextschlüssel in verwenden können StackSets , um das verwirrte Stellvertreter-Problem zu vermeiden.

Administrator account
Beispiel Globale Schlüssel für aws: SourceAccount und aws: SourceArn

Definieren Sie bei der Verwendung StackSets die globalen Schlüssel aws:SourceAccount und aws:SourceArn in Ihrer AWSCloudFormationStackSetAdministrationRole Vertrauensrichtlinie, um verwirrende Stellvertreterprobleme zu vermeiden.

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "cloudformation.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnLike": { "aws:SourceArn": "arn:aws:cloudformation:*:111122223333:stackset/*" } } } ] }
Beispiel StackSets ARNs

Geben Sie Ihre zugehörigen StackSets ARNs für eine genauere Steuerung an.

JSON
JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "cloudformation.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333", "aws:SourceArn": [ "arn:aws:cloudformation:STACKSETS-REGION:111122223333:stackset/STACK-SET-ID-1", "arn:aws:cloudformation:STACKSETS-REGION:111122223333:stackset/STACK-SET-ID-2" ] } } } ] }