Voraussetzungen für die Synchronisierung von Stacks mit einem Git-Repository mithilfe von Git Sync - 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.

Voraussetzungen für die Synchronisierung von Stacks mit einem Git-Repository mithilfe von Git Sync

Bevor Sie einen CloudFormation Stack mit Ihrem Git-Repository synchronisieren, stellen Sie sicher, dass die folgenden Anforderungen erfüllt sind.

Git-Repository

Sie müssen ein Git-Repository auf einer der folgenden Plattformen gehostet haben.

Das Repository kann öffentlich oder privat sein. Sie müssen dieses Git-Repository über die CloudFormation Connections-Konsole verbinden.

CloudFormation Vorlage

Ihr Git-Repository muss eine CloudFormation Vorlagendatei enthalten, die in den Branch eingecheckt ist, den Sie mit Git Sync verbinden möchten. Auf diese Vorlage wird in der Stack-Deployment-Datei verwiesen.

Git-Sync-Dienstrolle

Git Sync erfordert eine IAM-Rolle. Du kannst wählen, ob bei der Konfiguration von Git Sync eine IAM-Rolle für deinen Stack erstellt werden soll, oder du kannst eine bestehende Rolle verwenden.

Anmerkung

Eine automatisch generierte IAM-Rolle wendet Berechtigungen nur auf den Stack an, für den die Rolle generiert wurde. Um eine automatisch generierte IAM-Rolle wiederzuverwenden, müssen Sie die Rolle für den neuen Stack bearbeiten.

Erforderliche Berechtigungen für die Git-Sync-Dienstrolle

Die IAM-Rolle, die Sie für Git Sync bereitstellen, erfordert die folgenden Berechtigungen.

  • cloudformation:CreateChangeSet

  • cloudformation:DeleteChangeSet

  • cloudformation:DescribeChangeSet

  • cloudformation:DescribeStackEvents

  • cloudformation:DescribeStacks

  • cloudformation:ExecuteChangeSet

  • cloudformation:ListChangeSets

  • cloudformation:ValidateTemplate

  • events:PutRule

  • events:PutTargets

Anmerkung

Die oben genannten erforderlichen Berechtigungen werden automatisch zu den von Git Sync generierten IAM-Rollen hinzugefügt.

Die folgende Beispiel-IAM-Rolle enthält die erforderlichen Berechtigungen für Git Sync.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "SyncToCloudFormation", "Effect": "Allow", "Action": [ "cloudformation:CreateChangeSet", "cloudformation:DeleteChangeSet", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "cloudformation:GetTemplate", "cloudformation:ListChangeSets", "cloudformation:ListStacks", "cloudformation:ValidateTemplate" ], "Resource": "*" }, { "Sid": "PolicyForManagedRules", "Effect": "Allow", "Action": [ "events:PutRule", "events:PutTargets" ], "Resource": "*", "Condition": { "StringEquals": { "events:ManagedBy": ["cloudformation.sync.codeconnections.amazonaws.com"] } } }, { "Sid": "PolicyForDescribingRule", "Effect": "Allow", "Action": "events:DescribeRule", "Resource": "*" } ] }

Vertrauensrichtlinie

Sie müssen die folgende Vertrauensrichtlinie angeben, wenn Sie die Rolle zur Definition der Vertrauensbeziehung erstellen.

JSON
{ "Version": "2012-10-17", "Statement": [ { "Sid": "CfnGitSyncTrustPolicy", "Effect": "Allow", "Principal": { "Service": "cloudformation.sync.codeconnections.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

IAM-Berechtigungen für Konsolenbenutzer

Um Git Sync erfolgreich über die CloudFormation Konsole einzurichten, müssen Endbenutzern auch Berechtigungen über IAM erteilt werden.

Die folgenden codeconnections Berechtigungen sind erforderlich, um die Verbindung zu Ihrem Git Repository herzustellen und zu verwalten.

  • codeconnections:CreateRepositoryLink

  • codeconnections:CreateSyncConfiguration

  • codeconnections:DeleteRepositoryLink

  • codeconnections:DeleteSyncConfiguration

  • codeconnections:GetRepositoryLink

  • codeconnections:GetSyncConfiguration

  • codeconnections:ListRepositoryLinks

  • codeconnections:ListSyncConfigurations

  • codeconnections:ListTagsForResource

  • codeconnections:TagResource

  • codeconnections:UntagResource

  • codeconnections:UpdateRepositoryLink

  • codeconnections:UpdateSyncBlocker

  • codeconnections:UpdateSyncConfiguration

  • codeconnections:UseConnection

Konsolenbenutzer müssen außerdem über die folgenden cloudformation Berechtigungen verfügen, um Stacks während des Git-Sync-Einrichtungsprozesses anzeigen und verwalten zu können.

  • cloudformation:CreateChangeSet

  • cloudformation:DeleteChangeSet

  • cloudformation:DescribeChangeSet

  • cloudformation:DescribeStackEvents

  • cloudformation:DescribeStacks

  • cloudformation:ExecuteChangeSet

  • cloudformation:GetTemplate

  • cloudformation:ListChangeSets

  • cloudformation:ListStacks

  • cloudformation:ValidateTemplate

Anmerkung

Für die ausschließliche Nutzung auf der Konsole sind Berechtigungen für Änderungssätze (cloudformation:CreateChangeSetcloudformation:DeleteChangeSetcloudformation:DescribeChangeSet,,,cloudformation:ExecuteChangeSet) möglicherweise nicht unbedingt erforderlich, es wird jedoch empfohlen, die Funktionen zur vollständigen Überprüfung und Verwaltung des Stacks zu aktivieren.

Die folgende Beispiel-IAM-Richtlinie umfasst die Benutzerberechtigungen, die für die Einrichtung von Git Sync über die Konsole erforderlich sind.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CodeConnectionsPermissions", "Effect": "Allow", "Action": [ "codeconnections:CreateRepositoryLink", "codeconnections:CreateSyncConfiguration", "codeconnections:DeleteRepositoryLink", "codeconnections:DeleteSyncConfiguration", "codeconnections:GetRepositoryLink", "codeconnections:GetSyncConfiguration", "codeconnections:ListRepositoryLinks", "codeconnections:ListSyncConfigurations", "codeconnections:ListTagsForResource", "codeconnections:TagResource", "codeconnections:UntagResource", "codeconnections:UpdateRepositoryLink", "codeconnections:UpdateSyncBlocker", "codeconnections:UpdateSyncConfiguration", "codeconnections:UseConnection", "codeconnections:CreateForcedTargetSync", "codeconnections:CreatePullRequestForResource" ], "Resource": "*" }, { "Sid": "CloudFormationConsolePermissions", "Effect": "Allow", "Action": [ "cloudformation:CreateChangeSet", "cloudformation:DeleteChangeSet", "cloudformation:DescribeChangeSet", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:ExecuteChangeSet", "cloudformation:GetTemplate", "cloudformation:ListChangeSets", "cloudformation:ListStacks", "cloudformation:ValidateTemplate" ], "Resource": "*" } ] }
Anmerkung

Wenn Sie eine IAM-Richtlinie erstellen, die die Berechtigungen codeconnections:CreateForcedTargetSync und enthältcodeconnections:CreatePullRequestForResource, wird in der IAM-Konsole möglicherweise eine Warnung angezeigt, dass diese Aktionen nicht existieren. Diese Warnung kann ignoriert werden, und die Richtlinie wird trotzdem erfolgreich erstellt. Diese Berechtigungen sind für bestimmte Git-Synchronisierungsvorgänge erforderlich, obwohl sie von der IAM-Konsole nicht erkannt werden.