Administración de identidades y accesos para AWS CodePipeline
AWS Identity and Access Management (IAM) es un Servicio de AWS que ayuda a los administradores a controlar de forma segura el acceso a los recursos de AWS. Los administradores de IAM controlan quién puede estar autenticado (ha iniciado sesión) y autorizado (tiene permisos) para utilizar recursos de CodePipeline. IAM es un Servicio de AWS que se puede utilizar sin cargo adicional.
Temas
- Público
- Autenticación con identidades
- Administración de acceso mediante políticas
- Cómo AWS CodePipeline funciona con IAM
- AWS CodePipeline ejemplos de políticas basadas en identidad de
- Ejemplos de políticas basadas en recursos de AWS CodePipeline
- Solución de problemas de identidades de AWS CodePipeline y accesos
- Referencia de permisos de CodePipeline
- Administrar el rol de servicio CodePipeline
Público
La forma en que utilice AWS Identity and Access Management (IAM) difiere en función del trabajo que realice en CodePipeline.
Usuario de servicio: si utiliza el servicio de CodePipeline para realizar su trabajo, su administrador le proporciona las credenciales y los permisos que necesita. A medida que utilice más características de CodePipeline para realizar su trabajo, es posible que necesite permisos adicionales. Entender cómo se administra el acceso puede ayudarlo a solicitar los permisos correctos al administrador. Si no puede acceder a una característica en CodePipeline, consulte Solución de problemas de identidades de AWS CodePipeline y accesos.
Administrador de servicio: si está a cargo de los recursos de CodePipeline de su empresa, es probable que tenga acceso completo a CodePipeline. El trabajo consiste en determinar a qué características y recursos de CodePipeline deben acceder los usuarios del servicio. Luego, debe enviar solicitudes a su administrador de IAM para cambiar los permisos de los usuarios de su servicio. Revise la información de esta página para conocer los conceptos básicos de IAM. Para obtener más información sobre cómo su empresa puede utilizar IAM con CodePipeline, consulte Cómo AWS CodePipeline funciona con IAM.
Administrador de IAM: si es un administrador de IAM, es posible que quiera conocer más detalles sobre cómo escribir políticas para administrar el acceso a CodePipeline. Para consultar ejemplos de políticas basadas en la identidad de CodePipeline que puede utilizar en IAM, consulte AWS CodePipeline ejemplos de políticas basadas en identidad de .
Autenticación con identidades
La autenticación es la manera de iniciar sesión en AWS mediante credenciales de identidad. Debe estar autenticado (haber iniciado sesión en AWS) como Usuario raíz de la cuenta de AWS, como un usuario de IAM o asumiendo un rol de IAM.
Puede iniciar sesión en AWS como una identidad federada mediante las credenciales proporcionadas a través de una fuente de identidad. AWS IAM Identity Center Los usuarios (del Centro de identidades de IAM), la autenticación de inicio de sesión único de su empresa y sus credenciales de Google o Facebook son ejemplos de identidades federadas. Al iniciar sesión como una identidad federada, su administrador habrá configurado previamente la federación de identidades mediante roles de IAM. Cuando accede a AWS mediante la federación, está asumiendo un rol de forma indirecta.
Según el tipo de usuario que sea, puede iniciar sesión en AWS Management Console o en el portal de acceso AWS. Para obtener más información sobre el inicio de sesión en AWS, consulte Cómo iniciar sesión en su Cuenta de AWS en la Guía del usuario de AWS Sign-In.
Si accede a AWS mediante programación, AWS proporciona un kit de desarrollo de software (SDK) y una interfaz de la línea de comandos (CLI) para firmar criptográficamente las solicitudes mediante el uso de las credenciales. Si no usa las herramientas de AWS, debe firmar las solicitudes. Para obtener más información sobre cómo usar el método recomendado para firmar las solicitudes usted mismo, consulte AWS Signature Version 4 para solicitudes de API en la Guía del usuario de IAM.
Independientemente del método de autenticación que use, es posible que deba proporcionar información de seguridad adicional. Por ejemplo, AWS le recomienda el uso de la autenticación multifactor (MFA) para aumentar la seguridad de su cuenta. Para obtener más información, consulte Autenticación multifactor en la AWS IAM Identity CenterGuía del usuario y AWS Autenticación multifactor en IAM en la Guía del usuario de IAM.
Usuario raíz de la cuenta de AWS
Cuando se crea una Cuenta de AWS, se comienza con una identidad de inicio de sesión que tiene acceso completo a todos los recursos y Servicios de AWS de la cuenta. Esta identidad recibe el nombre de usuario raíz de la Cuenta de AWS y se accede a ella iniciando sesión con el email y la contraseña que utilizó para crear la cuenta. Recomendamos encarecidamente que no utilice el usuario raíz para sus tareas diarias. Proteja las credenciales del usuario raíz y utilícelas solo para las tareas que solo el usuario raíz pueda realizar. Para ver la lista completa de las tareas que requieren que inicie sesión como usuario raíz, consulte Tareas que requieren credenciales de usuario raíz en la Guía del usuario de IAM.
Usuarios y grupos de IAM
Un usuario de IAM es una identidad de la Cuenta de AWSque dispone de permisos específicos para una sola persona o aplicación. Siempre que sea posible, recomendamos emplear credenciales temporales, en lugar de crear usuarios de IAM que tengan credenciales de larga duración como contraseñas y claves de acceso. No obstante, si tiene casos de uso específicos que requieran credenciales de larga duración con usuarios de IAM, recomendamos rotar las claves de acceso. Para más información, consulte Rotar las claves de acceso periódicamente para casos de uso que requieran credenciales de larga duración en la Guía del usuario de IAM.
Un grupo de IAM es una identidad que especifica un conjunto de usuarios de IAM. No puede iniciar sesión como grupo. Puede usar los grupos para especificar permisos para varios usuarios a la vez. Los grupos facilitan la administración de los permisos de grandes conjuntos de usuarios. Por ejemplo, podría tener un grupo cuyo nombre fuese IAMAdmins y conceder permisos a dicho grupo para administrar los recursos de IAM.
Los usuarios son diferentes de los roles. Un usuario se asocia exclusivamente a una persona o aplicación, pero la intención es que cualquier usuario pueda asumir un rol que necesite. Los usuarios tienen credenciales de larga duración permanentes; no obstante, los roles proporcionan credenciales temporales. Para obtener más información, consulte Casos de uso para usuarios de IAM en la Guía del usuario de IAM.
Roles de IAM
Un rol de IAM es una identidad de la Cuenta de AWSque dispone de permisos específicos. Es similar a un usuario de IAM, pero no está asociado a una determinada persona. Para asumir temporalmente un rol de IAM en la AWS Management Console, puede cambiar de un rol de usuario a un rol de IAM (consola). Puede asumir un rol llamando a una operación de la AWS CLI o de la API de AWS, o utilizando una URL personalizada. Para más información sobre los métodos para el uso de roles, consulte Métodos para asumir un rol en la Guía del usuario de IAM.
Los roles de IAM con credenciales temporales son útiles en las siguientes situaciones:
-
Acceso de usuario federado: para asignar permisos a una identidad federada, puede crear un rol y definir sus permisos. Cuando se autentica una identidad federada, se asocia la identidad al rol y se le conceden los permisos define el rol. Para obtener información acerca de roles para federación, consulte Creación de un rol para un proveedor de identidades de terceros en la Guía del usuario de IAM. Si utiliza IAM Identity Center, debe configurar un conjunto de permisos. IAM Identity Center correlaciona el conjunto de permisos con un rol en IAM para controlar a qué pueden acceder las identidades después de autenticarse. Para obtener información acerca de los conjuntos de permisos, consulte Conjuntos de permisos en la Guía del usuario de AWS IAM Identity Center.
-
Permisos de usuario de IAM temporales: un usuario de IAM puede asumir un rol de IAM para recibir temporalmente permisos distintos que le permitan realizar una tarea concreta.
-
Acceso entre cuentas: puede utilizar un rol de IAM para permitir que alguien (una entidad principal de confianza) de otra cuenta acceda a los recursos de la cuenta. Los roles son la forma principal de conceder acceso entre cuentas. No obstante, con algunos Servicios de AWS se puede adjuntar una política directamente a un recurso (en lugar de utilizar un rol como representante). Para obtener información acerca de la diferencia entre los roles y las políticas basadas en recursos para el acceso entre cuentas, consulte Acceso a recursos entre cuentas en IAM en la Guía del usuario de IAM.
-
Acceso entre servicios: algunos Servicios de AWS utilizan características de otros Servicios de AWS. Por ejemplo, cuando realiza una llamada en un servicio, es común que ese servicio ejecute aplicaciones en Amazon EC2 o almacene objetos en Amazon S3. Es posible que un servicio haga esto usando los permisos de la entidad principal, usando un rol de servicio o usando un rol vinculado a servicios.
-
Reenviar sesiones de acceso (FAS): cuando utiliza un rol o un usuario de IAM para llevar a cabo acciones en AWS, se le considera una entidad principal. Cuando utiliza algunos servicios, es posible que realice una acción que desencadene otra acción en un servicio diferente. FAS utiliza los permisos de la entidad principal para llamar a un Servicio de AWS, combinados con el Servicio de AWS solicitante para realizar solicitudes a servicios posteriores. Las solicitudes de FAS solo se realizan cuando un servicio recibe una solicitud que requiere interacciones con otros Servicios de AWS o recursos para completarse. En este caso, debe tener permisos para realizar ambas acciones. Para obtener información sobre las políticas a la hora de realizar solicitudes de FAS, consulte Reenviar sesiones de acceso.
-
Rol de servicio: un rol de servicio es un rol de IAM que adopta un servicio para realizar acciones en su nombre. Un administrador de IAM puede crear, modificar y eliminar un rol de servicio desde IAM. Para obtener más información, consulte Creación de un rol para delegar permisos a un Servicio de AWS en la Guía del usuario de IAM.
-
Rol vinculado a los servicios: un rol vinculado a servicios es un tipo de rol de servicio que está vinculado a un Servicio de AWS. El servicio puede asumir el rol para realizar una acción en su nombre. Los roles vinculados a servicios aparecen en la Cuenta de AWS y son propiedad del servicio. Un administrador de IAM puede ver, pero no editar, los permisos de los roles vinculados a servicios.
-
-
Aplicaciones que se ejecutan en Amazon EC2: puede utilizar un rol de IAM que le permita administrar credenciales temporales para las aplicaciones que se ejecutan en una instancia de EC2 y realizan solicitudes a la AWS CLI o a la API de AWS. Es preferible hacerlo de este modo a almacenar claves de acceso en la instancia de EC2. Para asignar un rol de AWS a una instancia de EC2 y ponerla a disposición de todas las aplicaciones, cree un perfil de instancia adjuntado a la instancia. Un perfil de instancia contiene el rol y permite a los programas que se ejecutan en la instancia de EC2 obtener credenciales temporales. Para más información, consulte Uso de un rol de IAM para conceder permisos a aplicaciones que se ejecutan en instancias Amazon EC2 en la Guía del usuario de IAM.
Administración de acceso mediante políticas
Para controlar el acceso en AWS, se crean políticas y se adjuntan a identidades o recursos de AWS. Una política es un objeto de AWS que, cuando se asocia a una identidad o un recurso, define sus permisos. AWS evalúa estas políticas cuando una entidad principal (sesión de rol, usuario o usuario raíz) realiza una solicitud. Los permisos en las políticas determinan si la solicitud se permite o se deniega. La mayoría de las políticas se almacenan en AWS como documentos JSON. Para obtener más información sobre la estructura y el contenido de los documentos de política JSON, consulte Información general de políticas JSON en la Guía del usuario de IAM.
Los administradores pueden utilizar las políticas JSON de AWS para especificar quién tiene acceso a qué. Es decir, qué entidad principal puede realizar acciones en qué recursos y en qué condiciones.
De forma predeterminada, los usuarios y los roles no tienen permisos. Un administrador de IAM puede crear políticas de IAM para conceder permisos a los usuarios para realizar acciones en los recursos que necesitan. A continuación, el administrador puede añadir las políticas de IAM a roles y los usuarios pueden asumirlos.
Las políticas de IAM definen permisos para una acción independientemente del método que se utilice para realizar la operación. Por ejemplo, suponga que dispone de una política que permite la acción iam:GetRole
. Un usuario con dicha política puede obtener información del usuario de la AWS Management Console, la AWS CLI o la API de AWS.
Políticas basadas en identidades
Las políticas basadas en identidad son documentos de políticas de permisos JSON que puede asociar a una identidad, como un usuario de IAM, un grupo de usuarios o un rol. Estas políticas controlan qué acciones pueden realizar los usuarios y los roles, en qué recursos y en qué condiciones. Para obtener más información sobre cómo crear una política basada en identidad, consulte Definición de permisos de IAM personalizados con políticas administradas por el cliente en la Guía del usuario de IAM.
Las políticas basadas en identidades pueden clasificarse además como políticas insertadas o políticas administradas. Las políticas insertadas se integran directamente en un único usuario, grupo o rol. Las políticas administradas son políticas independientes que puede adjuntar a varios usuarios, grupos y roles de su Cuenta de AWS. Las políticas administradas incluyen las políticas administradas de AWS y las políticas administradas por el cliente. Para más información sobre cómo elegir una política administrada o una política insertada, consulte Elección entre políticas administradas y políticas insertadas en la Guía del usuario de IAM.
Políticas basadas en recursos
Las políticas basadas en recursos son documentos de política JSON que se asocian a un recurso. Ejemplos de políticas basadas en recursos son las políticas de confianza de roles de IAM y las políticas de bucket de Amazon S3. En los servicios que admiten políticas basadas en recursos, los administradores de servicios pueden utilizarlos para controlar el acceso a un recurso específico. Para el recurso al que se asocia la política, la política define qué acciones puede realizar una entidad principal especificada en ese recurso y en qué condiciones. Debe especificar una entidad principal en una política en función de recursos. Las entidades principales pueden incluir cuentas, usuarios, roles, usuarios federados o Servicios de AWS.
Las políticas basadas en recursos son políticas insertadas que se encuentran en ese servicio. No se puede utilizar políticas de IAM administradas por AWS en una política basada en recursos.
Otros tipos de políticas
AWS admite otros tipos de políticas adicionales menos frecuentes. Estos tipos de políticas pueden establecer el máximo de permisos que los tipos de políticas más frecuentes le conceden.
-
Límites de permisos: un límite de permisos es una característica avanzada que le permite establecer los permisos máximos que una política basada en identidad puede conceder a una entidad de IAM (usuario o rol de IAM). Puede establecer un límite de permisos para una entidad. Los permisos resultantes son la intersección de las políticas basadas en la identidad de la entidad y los límites de permisos. Las políticas basadas en recursos que especifiquen el usuario o rol en el campo
Principal
no estarán restringidas por el límite de permisos. Una denegación explícita en cualquiera de estas políticas anulará el permiso. Para obtener más información sobre los límites de los permisos, consulte Límites de permisos para las entidades de IAM en la Guía del usuario de IAM. -
Políticas de control de servicio (SCP): las SCP son políticas de JSON que especifican los permisos máximos de una organización o una unidad organizativa en AWS Organizations. AWS Organizations es un servicio que le permite agrupar y administrar de manera centralizada varias Cuentas de AWS que posea su empresa. Si habilita todas las características en una empresa, entonces podrá aplicar políticas de control de servicio (SCP) a una o todas sus cuentas. Una SCP limita los permisos para las entidades de las cuentas de miembros, incluido cada Usuario raíz de la cuenta de AWS. Para obtener más información acerca de SCP y Organizations, consulte Políticas de control de servicios en la Guía del usuario de AWS Organizations.
-
Políticas de sesión: las políticas de sesión son políticas avanzadas que se pasan como parámetro cuando se crea una sesión temporal mediante programación para un rol o un usuario federado. Los permisos de la sesión resultantes son la intersección de las políticas basadas en identidades del rol y las políticas de la sesión. Los permisos también pueden proceder de una política en función de recursos. Una denegación explícita en cualquiera de estas políticas anulará el permiso. Para más información, consulte Políticas de sesión en la Guía del usuario de IAM.
Administrar el rol de servicio CodePipeline
Este rol de servicio de CodePipeline se configura con una o más políticas que controlan el acceso a los recursos de AWS que usa la canalización. Puede asociar más políticas a este rol, editar las que ya tiene asociadas o configurar políticas para otros roles de servicio de AWS. También puede asociar una política a un rol al configurar el acceso entre cuentas en su canalización.
importante
Si se modifica la instrucción de una política o se asocia otra política al rol, es posible que las canalizaciones dejen de funcionar. Asegúrese de conocer bien las consecuencias antes de modificar el rol de servicio de CodePipeline. Asegúrese de probar las canalizaciones después de implementar cualquier cambio en el rol de servicio.
nota
En la consola, los roles de servicio creados antes de septiembre de 2018 se crean con el nombre oneClick_AWS-CodePipeline-Service_
.ID-Number
Los roles de servicio creados después de septiembre de 2018 usan el formato de nombre de rol de servicio AWSCodePipelineServiceRole-
. Por ejemplo, en el caso de una canalización denominada Region
-Pipeline_Name
MyFirstPipeline
en eu-west-2
, la consola asigna un nombre al rol y a la política AWSCodePipelineServiceRole-eu-west-2-MyFirstPipeline
.
Eliminar permisos del rol de servicio de CodePipeline
Puede editar la instrucción del rol de servicio para quitar el acceso a los recursos que no use. Por ejemplo, si ninguna de sus canalizaciones incluye Elastic Beanstalk, puede editar la instrucción de política para quitar la sección que concede acceso a los recursos de Elastic Beanstalk.
Del mismo modo, si ninguna de sus canalizaciones incluye CodeDeploy, edite la instrucción de política para quitar la sección que concede acceso a los recursos de CodeDeploy:
{ "Action": [ "codedeploy:CreateDeployment", "codedeploy:GetApplicationRevision", "codedeploy:GetDeployment", "codedeploy:GetDeploymentConfig", "codedeploy:RegisterApplicationRevision" ], "Resource": "*", "Effect": "Allow" },
Añadir permisos al rol de servicio de CodePipeline
Debe actualizar su instrucción de política del rol de servicio con los permisos de Servicio de AWS que no se hayan incluido en la instrucción de política predeterminada del rol de servicio para poder usarlos en las canalizaciones.
Esto resulta de gran importancia si el rol de servicio que usa en sus canalizaciones se creó antes de que CodePipeline admitiera un Servicio de AWS.
En la siguiente tabla se muestra cuándo se añadió la compatibilidad con otros Servicios de AWS.
Servicio de AWS | Fecha de soporte de CodePipeline |
---|---|
Acción de Comandos | 3 de octubre de 2024 |
AWS CloudFormation | 30 de diciembre de 2020 |
Formato de artefacto de salida de clonación completa de CodeCommit | 11 de noviembre de 2020 |
Compilación por lotes de CodeBuild | 30 de julio de 2020 |
AWS AppConfig | 22 de junio de 2020 |
AWS Step Functions | 27 de mayo de 2020 |
Conexiones de AWS CodeStar | 18 de diciembre de 2019 |
Acción CodeDeployToECS |
27 de noviembre de 2018 |
Amazon ECR | 27 de noviembre de 2018 |
Service Catalog | 16 de octubre de 2018 |
AWS Device Farm | 19 de julio de 2018 |
Amazon ECS | 12 de diciembre de 2017 /Actualización para optar por la autorización de etiquetado el 21 de julio de 2017 |
CodeCommit | 18 de abril de 2016 |
AWS OpsWorks | 2 de junio de 2016 |
AWS CloudFormation | 3 de noviembre de 2016 |
AWS CodeBuild | 1 de diciembre de 2016 |
Elastic Beanstalk | Lanzamiento del servicio inicial |
Siga estos pasos para añadir permisos a un servicio compatible:
-
Inicie sesión en AWS Management Console Management Console y abra la consola IAM en https://console.aws.amazon.com/iam/
. -
En la consola de IAM, en el panel de navegación, elija Roles y seleccione su rol
AWS-CodePipeline-Service
en la lista de roles. -
En la pestaña Permisos, en Políticas en línea, en la fila de su política de rol de servicio, elija Editar política.
-
Añada los permisos necesarios en el cuadro Documento de política.
nota
Al crear políticas de IAM, siga los consejos de seguridad estándar de concesión de privilegios mínimos, es decir, conceder solo los permisos necesarios para realizar una tarea. Algunas llamadas a la API admiten los permisos basados en recursos y permiten limitar el acceso. Por ejemplo, en este caso, para limitar los permisos cuando se llama a
DescribeTasks
yListTasks
, puede sustituir el carácter comodín (*) por un ARN de recurso o por un ARN de recurso que contenga un carácter comodín (*). Para obtener más información acerca de la creación de un política que concede acceso con privilegios mínimos, consulte https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege.Por ejemplo, para admitir CodeCommit, añada lo siguiente a su instrucción de política:
{ "Effect": "Allow", "Action": [ "codecommit:GetBranch", "codecommit:GetCommit", "codecommit:UploadArchive", "codecommit:GetUploadArchiveStatus", "codecommit:CancelUploadArchive" ], "Resource": "
resource_ARN
" },Para admitir AWS OpsWorks, añada lo siguiente a su instrucción de política:
{ "Effect": "Allow", "Action": [ "opsworks:CreateDeployment", "opsworks:DescribeApps", "opsworks:DescribeCommands", "opsworks:DescribeDeployments", "opsworks:DescribeInstances", "opsworks:DescribeStacks", "opsworks:UpdateApp", "opsworks:UpdateStack" ], "Resource": "
resource_ARN
" },Para admitir AWS CloudFormation, añada lo siguiente a su instrucción de política:
{ "Effect": "Allow", "Action": [ "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cloudformation:CreateChangeSet", "cloudformation:DeleteChangeSet", "cloudformation:DescribeChangeSet", "cloudformation:ExecuteChangeSet", "cloudformation:SetStackPolicy", "cloudformation:ValidateTemplate", "iam:PassRole" ], "Resource": "
resource_ARN
" },Tenga en cuenta que el permiso
cloudformation:DescribeStackEvents
es opcional. Permite que la acción AWS CloudFormation muestre un mensaje de error más detallado. Puede revocar este permiso desde el rol de IAM si no quiere que los detalles de los recursos aparezcan en los mensajes de error de la canalización. Para obtener más información, consulte Referencia de acciones de implementación de AWS CloudFormation.Para admitir CodeBuild, añada lo siguiente a su instrucción de política:
{ "Effect": "Allow", "Action": [ "codebuild:BatchGetBuilds", "codebuild:StartBuild" ], "Resource": "
resource_ARN
" },nota
El soporte para compilaciones por lotes se agregó en una fecha posterior. Consulte el paso 11 para ver los permisos que se pueden añadir al rol de servicio para las compilaciones por lotes.
Para admitir AWS Device Farm, añada lo siguiente a su instrucción de política:
{ "Effect": "Allow", "Action": [ "devicefarm:ListProjects", "devicefarm:ListDevicePools", "devicefarm:GetRun", "devicefarm:GetUpload", "devicefarm:CreateUpload", "devicefarm:ScheduleRun" ], "Resource": "
resource_ARN
" },Para admitir Service Catalog, añada lo siguiente a su instrucción de política:
{ "Effect": "Allow", "Action": [ "servicecatalog:ListProvisioningArtifacts", "servicecatalog:CreateProvisioningArtifact", "servicecatalog:DescribeProvisioningArtifact", "servicecatalog:DeleteProvisioningArtifact", "servicecatalog:UpdateProduct" ], "Resource": "
resource_ARN
" }, { "Effect": "Allow", "Action": [ "cloudformation:ValidateTemplate" ], "Resource": "resource_ARN
" } -
Para admitir Amazon ECR, añada lo siguiente a su instrucción de política:
{ "Effect": "Allow", "Action": [ "ecr:DescribeImages" ], "Resource": "
resource_ARN
" }, -
A continuación se indican los permisos mínimos necesarios en Amazon ECS para crear canalizaciones con una acción de implementación de Amazon ECS.
{ "Effect": "Allow", "Action": [ "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:TagResource", "ecs:UpdateService" ], "Resource": "
resource_ARN
" },Puede optar por utilizar la autorización de etiquetado en Amazon ECS. Al suscribirse, debe otorgar los siguientes permisos:
ecs:TagResource
. Para obtener más información sobre cómo suscribirse y determinar si el permiso es obligatorio y si se aplica la autorización de etiquetas, consulte el Plazos de la autorización de etiquetado en la Guía para desarrolladores de Amazon Elastic Container Service.También debe añadir los permisos
iam:PassRole
para utilizar los rones de IAM en las tareas. Para obtener más información, consulte Rol de ejecución de tareas de Amazon ECS y Roles de IAM para tareas. Utilice la siguiente política:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": [ "arn:aws:iam::
aws_account_ID
:role/ecsTaskExecutionRole_or_TaskRole_name
" ] } ] } -
Para la acción
CodeDeployToECS
(implementaciones azul/verde), se muestran los permisos mínimos necesarios para crear canalizaciones con una acción de implementación azul/verde de Amazon ECS.{ "Effect": "Allow", "Action": [ "codedeploy:CreateDeployment", "codedeploy:GetDeployment", "codedeploy:GetApplication", "codedeploy:GetApplicationRevision", "codedeploy:RegisterApplicationRevision", "codedeploy:GetDeploymentConfig", "ecs:RegisterTaskDefinition", "ecs:TagResource" ], "Resource": "
resource_ARN
" },Puede optar por utilizar la autorización de etiquetado en Amazon ECS. Al suscribirse, debe otorgar los siguientes permisos:
ecs:TagResource
. Para obtener más información sobre cómo suscribirse y determinar si el permiso es obligatorio y si se aplica la autorización de etiquetas, consulte el Plazos de la autorización de etiquetado en la Guía para desarrolladores de Amazon Elastic Container Service.También debe añadir los permisos
iam:PassRole
para utilizar los rones de IAM en las tareas. Para obtener más información, consulte Rol de ejecución de tareas de Amazon ECS y Roles de IAM para tareas. Utilice la siguiente política:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": [ "arn:aws:iam::
aws_account_ID
:role/ecsTaskExecutionRole_or_TaskRole_name
" ] } ] }También puede añadir
ecs-tasks.amazonaws.com
a la lista de servicios con la condicióniam:PassedToService
, como se muestra en este ejemplo.{ "Statement": [ { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "
resource_ARN
", "Condition": { "StringEqualsIfExists": { "iam:PassedToService": [ "cloudformation.amazonaws.com", "elasticbeanstalk.amazonaws.com", "ec2.amazonaws.com", "ecs-tasks.amazonaws.com" ] } } }, -
En el caso de las conexiones de AWS CodeStar, el siguiente permiso es necesario para crear canalizaciones con un origen que utilice una conexión; por ejemplo, Bitbucket Cloud.
{ "Effect": "Allow", "Action": [ "codestar-connections:UseConnection" ], "Resource": "
resource_ARN
" },Para obtener más información sobre los permisos de IAM para las conexiones, consulte Referencia de permisos de conexiones.
-
A continuación se indican los permisos mínimos que se necesitan en
StepFunctions
para crear canalizaciones con una acción de invocación de Step Functions.{ "Effect": "Allow", "Action": [ "states:DescribeStateMachine", "states:DescribeExecution", "states:StartExecution" ], "Resource": "
resource_ARN
" }, -
A continuación se indican los permisos mínimos que se necesitan en
AppConfig
para crear canalizaciones con una acción de invocación de AWS AppCOnfig.{ "Effect": "Allow", "Action": [ "appconfig:StartDeployment", "appconfig:GetDeployment", "appconfig:StopDeployment" ], "Resource": "
resource_ARN
" }, -
Para admitir CodeBuild para compilaciones por lote, añada lo siguiente a su instrucción de política:
{ "Effect": "Allow", "Action": [ "codebuild:BatchGetBuildBatches", "codebuild:StartBuildBatch" ], "Resource": "
resource_ARN
" }, -
Para las acciones AWS CloudFormation de StackSets, se requieren los siguientes permisos mínimos.
-
Para la acción
CloudFormationStackSet
, añada lo siguiente a su instrucción de política:{ "Effect": "Allow", "Action": [ "cloudformation:CreateStackSet", "cloudformation:UpdateStackSet", "cloudformation:CreateStackInstances", "cloudformation:DescribeStackSetOperation", "cloudformation:DescribeStackSet", "cloudformation:ListStackInstances" ], "Resource": "
resource_ARN
" }, -
Para la acción
CloudFormationStackInstances
, añada lo siguiente a su instrucción de política:{ "Effect": "Allow", "Action": [ "cloudformation:CreateStackInstances", "cloudformation:DescribeStackSetOperation" ], "Resource": "
resource_ARN
" },
-
-
Para que CodeCommit admita la opción de clonación completa, añada lo siguiente a su instrucción de política:
{ "Effect": "Allow", "Action": [ "codecommit:GetRepository" ], "Resource": "
resource_ARN
" },nota
Para asegurarse de que su acción de CodeBuild puede usar la opción de clonación completa con una fuente de CodeCommit, también debe añadir el permiso
codecommit:GitPull
a la instrucción de política del rol de servicio CodeBuild de tu proyecto. -
A continuación se indican los permisos mínimos necesarios en para crear canalizaciones con una acción de implementación de
ElasticBeanstalk
.{ "Effect": "Allow", "Action": [ "elasticbeanstalk:*", "ec2:*", "elasticloadbalancing:*", "autoscaling:*", "cloudwatch:*", "s3:*", "sns:*", "cloudformation:*", "rds:*", "sqs:*", "ecs:*" ], "Resource": "
resource_ARN
" },nota
Debe sustituir los caracteres comodín de la política de recursos por los recursos de la cuenta a la que desee limitar el acceso. Para obtener más información acerca de la creación de un política que concede acceso con privilegios mínimos, consulte https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege.
-
Para una canalización que desee configurar para CloudWatch Logs, los siguientes son los permisos mínimos que debe añadir al rol de servicio de CodePipeline.
{ "Effect": "Allow", "Action": [ "logs:DescribeLogGroups", "logs:PutRetentionPolicy" ], "Resource": "
resource_ARN
" },nota
Debe sustituir los caracteres comodín de la política de recursos por los recursos de la cuenta a la que desee limitar el acceso. Para obtener más información acerca de la creación de un política que concede acceso con privilegios mínimos, consulte https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege.
-
Para admitir la acción de Comandos, añada lo siguiente a la declaración de la política:
{ "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "
resource_ARN
" },nota
Reduzca los permisos al nivel de recursos de la canalización a través de los permisos basados en recursos de la declaración de la política del rol de servicio. Para obtener más información, consulte la política de ejemplo en Permisos para las políticas de roles de servicio.
-
Elija Revisar política para asegurarse de que la política no contiene errores. Cuando la política no tenga errores, elija Aplicar política.