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 haben, das auf einer der folgenden Plattformen gehostet wird.

Das Repository kann öffentlich oder privat sein. Sie müssen dieses Git-Repository über die CloudFormation Connections-Konsole mit diesem 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. Diese Vorlage wird von der Stack Deployment-Datei referenziert.

Git Sync Dienst Rolle

Die Git-Synchronisierung erfordert eine IAM-Rolle. Sie können eine IAM-Rolle für Ihren Stack erstellen lassen, wenn Sie die Git-Synchronisierung konfigurieren, oder Sie können eine vorhandene 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 Rolle des Git-Sync-Dienstes

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.

JSON
{ "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 erstellen, um die Vertrauensbeziehung zu definieren.

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

Wir empfehlen Ihnen, die Zustandsschlüssel aws:SourceArn und aws:SourceAccount zu verwenden, um sich vor dem Problem der verwechselten Stellvertreter zu schützen. Das Quellkonto ist Ihre Konto-ID und der Quell-ARN ist der ARN der Verbindung im CodeConnectionsDienst, mit der Sie eine Verbindung CloudFormation zu Ihrem Git-Repository herstellen können.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "CfnGitSyncTrustPolicy", "Effect": "Allow", "Principal": { "Service": "cloudformation.sync.codeconnections.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnLike": { "aws:SourceArn": "arn:aws:codeconnections:us-east-1:123456789012:connection/EXAMPLE64-8aad-4d5d-8878-dfcab0bc441f" } } } ] }

Weitere Informationen zum Confused-Deputy-Problem finden Sie Serviceübergreifende Confused-Deputy-Prävention.

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 zu erstellen 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 Einrichtungsprozesses der Git-Synchronisierung 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

Auch wenn die Änderungssatzberechtigungen (cloudformation:CreateChangeSet,,cloudformation:DeleteChangeSet,cloudformation:DescribeChangeSet cloudformation:ExecuteChangeSet) für die reine Konsolennutzung nicht unbedingt erforderlich sind, werden sie empfohlen, um die vollständige Stack-Inspektion und-Verwaltungsfunktionen zu ermöglichen.

Das folgende Beispiel einer IAM-Richtlinie enthält die Benutzerberechtigungen, die für die Einrichtung der Git-Synchronisierung über die Konsole erforderlich sind.

JSON
{ "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 codeconnections:CreatePullRequestForResourceenthält, wird möglicherweise eine Warnung in der IAM-Konsole angezeigt, die besagt, 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.