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.
Temas
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.
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.