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.
Tópicos
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.
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.
Recomendamos o uso das chaves de condição aws:SourceArn e aws:SourceAccount para se proteger contra o problema confused deputy. A conta de origem é o ID da sua conta e o ARN de origem é o ARN da conexão no serviço CodeConnections que permite que o CloudFormation se conecte ao repositório do Git.
Para obter mais informações sobre o problema confused deputy, veja Prevenção contra o ataque do “substituto confuso” em todos os serviços.
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.
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.