Conditions préalables à la synchronisation des piles avec un dépôt Git à l'aide de Git sync - AWS CloudFormation

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Conditions préalables à la synchronisation des piles avec un dépôt Git à l'aide de Git sync

Avant de synchroniser une CloudFormation pile avec votre dépôt Git, vérifiez que les conditions suivantes sont remplies.

Référentiel Git

Vous devez disposer d'un dépôt Git hébergé sur l'une des plateformes suivantes.

Le référentiel peut être public ou privé. Vous devrez connecter ce dépôt Git via CloudFormation la console Connections.

CloudFormation modèle

Votre dépôt Git doit contenir un fichier CloudFormation modèle enregistré dans la branche à laquelle vous souhaitez vous connecter avec Git sync. Ce modèle sera référencé par le fichier de déploiement de la pile.

Rôle du service de synchronisation Git

Git sync nécessite un rôle IAM. Vous pouvez choisir de créer un rôle IAM pour votre stack lorsque vous configurez Git Sync, ou d'utiliser un rôle existant.

Note

Un rôle IAM généré automatiquement applique des autorisations uniquement à la pile pour laquelle le rôle est généré. Pour réutiliser un rôle IAM généré automatiquement, vous devez modifier le rôle pour la nouvelle pile.

Autorisations requises pour le rôle de service de synchronisation Git

Le rôle IAM que vous fournissez pour Git sync nécessite les autorisations suivantes.

  • cloudformation:CreateChangeSet

  • cloudformation:DeleteChangeSet

  • cloudformation:DescribeChangeSet

  • cloudformation:DescribeStackEvents

  • cloudformation:DescribeStacks

  • cloudformation:ExecuteChangeSet

  • cloudformation:ListChangeSets

  • cloudformation:ValidateTemplate

  • events:PutRule

  • events:PutTargets

Note

Les autorisations requises ci-dessous sont automatiquement ajoutées aux rôles IAM générés par la synchronisation Git.

L’exemple de rôle IAM suivant inclut les autorisations prérequises pour la synchronisation Git.

{ "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": "*" } ] }

Stratégie d’approbation

Vous devez fournir la politique de confiance suivante lorsque vous créez le rôle afin de définir la relation de confiance.

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

Nous vous recommandons d'utiliser les clés de condition aws:SourceArn et aws:SourceAccount pour vous protéger contre le problème de l'adjoint confus. Le compte source est votre identifiant de compte et l'ARN source est l'ARN de la connexion au CodeConnectionsservice qui permet de se connecter CloudFormation à votre dépôt Git.

{ "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" } } } ] }

Pour de plus amples informations sur le problème de l’adjoint confus, veuillez consulter Prévention du problème de l’adjoint confus entre services.

Autorisations IAM pour les utilisateurs de console

Pour configurer correctement Git Sync via la CloudFormation console, les utilisateurs finaux doivent également disposer d'autorisations via IAM.

Les codeconnections autorisations suivantes sont requises pour créer et gérer la connexion à votre Git référentiel.

  • 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

Les utilisateurs de la console doivent également disposer des cloudformation autorisations suivantes pour afficher et gérer les piles pendant le processus de configuration de Git Sync.

  • cloudformation:CreateChangeSet

  • cloudformation:DeleteChangeSet

  • cloudformation:DescribeChangeSet

  • cloudformation:DescribeStackEvents

  • cloudformation:DescribeStacks

  • cloudformation:ExecuteChangeSet

  • cloudformation:GetTemplate

  • cloudformation:ListChangeSets

  • cloudformation:ListStacks

  • cloudformation:ValidateTemplate

Note

Bien que les autorisations relatives aux modifications définies (cloudformation:CreateChangeSetcloudformation:DeleteChangeSet,cloudformation:DescribeChangeSet,,cloudformation:ExecuteChangeSet) ne soient pas strictement requises pour une utilisation sur console uniquement, elles sont recommandées pour activer les fonctionnalités d'inspection et de gestion complètes de la pile.

L'exemple de politique IAM suivant inclut les autorisations utilisateur nécessaires pour configurer Git Sync via la console.

{ "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": "*" } ] }
Note

Lorsque vous créez une politique IAM qui inclut codeconnections:CreateForcedTargetSync les autorisationscodeconnections:CreatePullRequestForResource, vous pouvez voir un avertissement dans la console IAM indiquant que ces actions n'existent pas. Cet avertissement peut être ignoré et la politique sera toujours créée avec succès. Ces autorisations sont requises pour certaines opérations de synchronisation Git même si elles ne sont pas reconnues par la console IAM.