Requisitos previos para sincronizar pilas con un repositorio de Git mediante la sincronización de Git - AWS CloudFormation

Requisitos previos para sincronizar pilas con un repositorio de Git mediante la sincronización de Git

Antes de sincronizar una pila de CloudFormation con su repositorio de Git, compruebe que se cumplan los siguientes requisitos.

Repositorio de Git

Debe tener un repositorio de Git alojado en una de las siguientes plataformas.

El repositorio puede ser público o privado. Deberá conectar este repositorio de Git a CloudFormation a través de la consola de Conexiones.

Plantilla de CloudFormation

El repositorio de Git debe contener un archivo de plantilla de CloudFormation verificado en la ramificación que pretende conectar con la sincronización de Git. El archivo de implementación de la pila hará referencia a esta plantilla.

Rol de servicio de sincronización de Git

La sincronización de Git requiere un rol de IAM. Puede elegir que se cree un rol de IAM para la pila al configurar la sincronización de Git o puede utilizar un rol existente.

nota

Un rol de IAM generado automáticamente solo aplica permisos a la pila para la que se generó el rol. Para volver a utilizar un rol de IAM generado automáticamente, debe editar el rol de la nueva pila.

Permisos necesarios para la creación de un rol de servicio de sincronización de Git

El rol de IAM que proporcione para la sincronización de Git requiere los siguientes permisos.

  • cloudformation:CreateChangeSet

  • cloudformation:DeleteChangeSet

  • cloudformation:DescribeChangeSet

  • cloudformation:DescribeStackEvents

  • cloudformation:DescribeStacks

  • cloudformation:ExecuteChangeSet

  • cloudformation:ListChangeSets

  • cloudformation:ValidateTemplate

  • events:PutRule

  • events:PutTargets

nota

Los permisos necesarios anteriores se agregan automáticamente a los roles de IAM que genera la sincronización de Git.

El siguiente ejemplo de rol de IAM incluye los permisos para la sincronización de 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": "*" } ] }

Política de confianza

Debe proporcionar la siguiente política de confianza a la hora de crear el rol para definir la relación de confianza.

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

Permisos de IAM para los usuarios de la consola

Para configurar correctamente la sincronización de Git a través de la consola CloudFormation, los usuarios finales también deben tener permisos a través de IAM.

Se requieren los siguientes permisos de codeconnections para crear y administrar la conexión a su repositorio 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

Los usuarios de la consola también deben tener los siguientes permisos de cloudformation para ver y administrar las pilas durante el proceso de configuración de la sincronización de Git.

  • cloudformation:CreateChangeSet

  • cloudformation:DeleteChangeSet

  • cloudformation:DescribeChangeSet

  • cloudformation:DescribeStackEvents

  • cloudformation:DescribeStacks

  • cloudformation:ExecuteChangeSet

  • cloudformation:GetTemplate

  • cloudformation:ListChangeSets

  • cloudformation:ListStacks

  • cloudformation:ValidateTemplate

nota

Aunque los permisos del conjunto de cambios (cloudformation:CreateChangeSet, cloudformation:DeleteChangeSet, cloudformation:DescribeChangeSet, cloudformation:ExecuteChangeSet) podrían no ser estrictamente necesarios para el uso exclusivo de la consola, se recomiendan para habilitar las capacidades de inspección y gestión del full stack.

El siguiente ejemplo de política de IAM incluye los permisos de usuario necesarios para configurar la sincronización de Git a través de la consola.

{ "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

Al crear una política de IAM que incluya los permisos codeconnections:CreateForcedTargetSync y codeconnections:CreatePullRequestForResource, es posible que usted vea una advertencia en la consola de IAM que indique que estas acciones no existen. Esta advertencia se puede ignorar y la política se seguirá creando correctamente. Estos permisos son necesarios para determinadas operaciones de sincronización de Git a pesar de que la consola de IAM no los reconozca.