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.
Rubriques
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.
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:CreateChangeSet
cloudformation: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.