Pré-requisitos para sincronizar pilhas com um repositório Git usando o Git sync - AWS CloudFormation

Pré-requisitos para sincronizar pilhas com um repositório Git usando o Git sync

Antes de sincronizar uma pilha do CloudFormation com o repositório Git, verifique se os requisitos a seguir são atendidos.

Repositório Git

É necessário ter um repositório Git hospedado em uma das plataformas a seguir.

O repositório pode ser público ou privado. Será necessário conectar esse repositório Git ao CloudFormation por meio do console do Connections.

Modelo do CloudFormation

O repositório Git deve conter um arquivo de modelo do CloudFormation verificado na ramificação que você pretende conectar com a sincronização do Git. Esse modelo será referenciado pelo arquivo de implantação da pilha.

Perfil de serviço de sincronização do Git

A sincronização do Git requer um perfil do IAM. É possível optar por criar um perfil do IAM para a pilha ao configurar a sincronização do Git ou usar um perfil existente.

nota

Um perfil do IAM gerado automaticamente aplica permissões somente à pilha para a qual o perfil é gerado. Para reutilizar um perfil do IAM gerado automaticamente, é necessário editar o perfil para a nova pilha.

Permissões necessárias para o perfil de serviço de sincronização do Git

O perfil do IAM fornecido para a sincronização do Git requer as permissões a seguir.

  • cloudformation:CreateChangeSet

  • cloudformation:DeleteChangeSet

  • cloudformation:DescribeChangeSet

  • cloudformation:DescribeStackEvents

  • cloudformation:DescribeStacks

  • cloudformation:ExecuteChangeSet

  • cloudformation:ListChangeSets

  • cloudformation:ValidateTemplate

  • events:PutRule

  • events:PutTargets

nota

As permissões necessárias, citadas anteriormente, são adicionadas automaticamente aos perfis do IAM gerados pelo Git Sync.

O exemplo de perfil do IAM apresentado a seguir inclui as permissões de pré-requisitos para o 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": "*" } ] }

Política de confiança

Você deve fornecer a política de confiança apresentada a seguir ao criar o perfil para definir a relação de confiança.

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

Permissões do IAM para usuários do console

Para configurar com sucesso a sincronização do Git por meio do console do CloudFormation, os usuários finais também devem receber permissões por meio do IAM.

As permissões codeconnections a seguir são necessárias para criar e gerenciar a conexão com seu repositório do Git.

  • 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

Os usuários do console também devem ter as permissões do cloudformation a seguir para visualizar e gerenciar pilhas durante o processo de configuração da sincronização do Git.

  • cloudformation:CreateChangeSet

  • cloudformation:DeleteChangeSet

  • cloudformation:DescribeChangeSet

  • cloudformation:DescribeStackEvents

  • cloudformation:DescribeStacks

  • cloudformation:ExecuteChangeSet

  • cloudformation:GetTemplate

  • cloudformation:ListChangeSets

  • cloudformation:ListStacks

  • cloudformation:ValidateTemplate

nota

Embora as permissões do conjunto de alterações (cloudformation:CreateChangeSet, cloudformation:DeleteChangeSet, cloudformation:DescribeChangeSet, cloudformation:ExecuteChangeSet) possam não ser estritamente necessárias para uso somente no console, elas são recomendadas para habilitar os recursos completos de inspeção e gerenciamento da pilha.

O exemplo de política do IAM a seguir inclui as permissões do usuário necessárias para configurar a sincronização do Git via 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

Ao criar uma política do IAM que inclua as permissões codeconnections:CreateForcedTargetSync e codeconnections:CreatePullRequestForResource, é possível ver um aviso no console do IAM informando que essas ações não existem. Esse aviso pode ser ignorado e a política ainda será criada com sucesso. Essas permissões são necessárias para determinadas operações de sincronização do Git, apesar de não serem reconhecidas pelo console do IAM.