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.