Prerequisiti per sincronizzare gli stack con un repository Git utilizzando Git sync - AWS CloudFormation

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Prerequisiti per sincronizzare gli stack con un repository Git utilizzando Git sync

Prima di sincronizzare uno CloudFormation stack con il tuo repository Git, verifica che siano soddisfatti i seguenti requisiti.

Repository Git

È necessario disporre di un repository Git ospitato su una delle seguenti piattaforme.

Il repository può essere pubblico o privato. Dovrai connettere questo repository Git CloudFormation tramite la console Connections.

CloudFormation modello

Il tuo repository Git deve contenere un file CloudFormation modello archiviato nel ramo a cui intendi connetterti con Git sync. A questo modello farà riferimento il file di distribuzione dello stack.

Ruolo del servizio di sincronizzazione Git

La sincronizzazione Git richiede un ruolo IAM. Puoi scegliere di creare un ruolo IAM per il tuo stack quando configuri Git sync, oppure puoi usare un ruolo esistente.

Nota

Un ruolo IAM generato automaticamente applica le autorizzazioni solo allo stack per il quale viene generato. Per riutilizzare un ruolo IAM generato automaticamente, devi modificare il ruolo per il nuovo stack.

Autorizzazioni richieste per il ruolo del servizio di sincronizzazione Git

Il ruolo IAM fornito per la sincronizzazione Git richiede le seguenti autorizzazioni.

  • cloudformation:CreateChangeSet

  • cloudformation:DeleteChangeSet

  • cloudformation:DescribeChangeSet

  • cloudformation:DescribeStackEvents

  • cloudformation:DescribeStacks

  • cloudformation:ExecuteChangeSet

  • cloudformation:ListChangeSets

  • cloudformation:ValidateTemplate

  • events:PutRule

  • events:PutTargets

Nota

Le precedenti autorizzazioni richieste vengono aggiunte automaticamente ai ruoli IAM generati dalla sincronizzazione Git.

Il seguente esempio di ruolo IAM include le autorizzazioni di prerequisito necessarie per la sincronizzazione 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": "*" } ] }

Policy di attendibilità

È necessario fornire la seguente politica di fiducia quando si crea il ruolo per definire la relazione di fiducia.

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

Autorizzazioni IAM per gli utenti della console

Per configurare correttamente la sincronizzazione Git tramite la CloudFormation console, agli utenti finali devono essere concesse le autorizzazioni anche tramite IAM.

Le seguenti codeconnections autorizzazioni sono necessarie per creare e gestire la connessione al tuo Git repository.

  • 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

Gli utenti della console devono inoltre disporre delle seguenti cloudformation autorizzazioni per visualizzare e gestire gli stack durante il processo di configurazione di Git sync.

  • cloudformation:CreateChangeSet

  • cloudformation:DeleteChangeSet

  • cloudformation:DescribeChangeSet

  • cloudformation:DescribeStackEvents

  • cloudformation:DescribeStacks

  • cloudformation:ExecuteChangeSet

  • cloudformation:GetTemplate

  • cloudformation:ListChangeSets

  • cloudformation:ListStacks

  • cloudformation:ValidateTemplate

Nota

Anche se le autorizzazioni di modifica del set (cloudformation:CreateChangeSet,cloudformation:DeleteChangeSet,cloudformation:DescribeChangeSet,cloudformation:ExecuteChangeSet) potrebbero non essere strettamente necessarie per l'utilizzo solo su console, sono consigliate per abilitare funzionalità complete di ispezione e gestione dello stack.

Il seguente esempio di policy IAM include le autorizzazioni utente necessarie per configurare Git sync tramite 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": "*" } ] }
Nota

Quando crei una policy IAM che include le autorizzazioni codeconnections:CreateForcedTargetSync ecodeconnections:CreatePullRequestForResource, potresti visualizzare un avviso nella console IAM che indica che queste azioni non esistono. Questo avviso può essere ignorato e la policy verrà comunque creata correttamente. Queste autorizzazioni sono necessarie per determinate operazioni di sincronizzazione Git nonostante non siano riconosciute dalla console IAM.