Rol de IAM de CodeDeploy de Amazon ECS - Amazon Elastic Container Service

Rol de IAM de CodeDeploy de Amazon ECS

Para poder utilizar el tipo de implementación azul/verde de CodeDeploy con Amazon ECS, el servicio de CodeDeploy necesita permisos para actualizar el servicio de Amazon ECS en su nombre. Estos permisos los proporciona el rol de IAM de CodeDeploy (ecsCodeDeployRole).

nota

Los usuarios también necesitan permisos para utilizar CodeDeploy; estos permisos se describen en Permisos de IAM necesarios.

Se proporcionan dos políticas administradas. Para obtener más información, consulte lo siguiente en la Guía de referencia de políticas administradas de AWS:

Creación del rol de CodeDeploy

Puede utilizar los siguientes procedimientos para crear un rol de CodeDeploy para Amazon ECS.

AWS Management Console
Creación del rol de servicio para CodeDeploy (consola de IAM)
  1. Inicie sesión en la AWS Management Console y abra la consola de IAM en https://console.aws.amazon.com/iam/.

  2. En el panel de navegación de la consola de IAM, seleccione Roles y, a continuación, elija Crear rol.

  3. En Tipo de entidad de confianza, elija Servicio de AWS.

  4. En Servicio o caso de uso, seleccione CodeDeploy y, a continuación, seleccione el caso de uso CodeDeploy: ECS.

  5. Elija Siguiente.

  6. En la sección Asociar la política de permisos, asegúrese de que esté seleccionada la política AWSCodeDeployRoleForECS.

  7. Elija Siguiente.

  8. En Nombre del rol, ingrese ecsCodeDeployRole.

  9. Revise el rol y, a continuación, elija Crear rol.

AWS CLI

Sustituya cada entrada del usuario por información propia.

  1. Cree un archivo con el nombre codedeploy-trust-policy.json, que contenga la política de confianza que se va a utilizar para el rol de IAM de CodeDeploy.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": ["codedeploy.amazonaws.com"] }, "Action": "sts:AssumeRole" } ] }
  2. Cree un rol de IAM con el nombre ecsCodedeployRole, que utilice la política de confianza creada en el paso anterior.

    aws iam create-role \ --role-name ecsCodedeployRole \ --assume-role-policy-document file://codedeploy-trust-policy.json
  3. Adjunte la política administrada AWSCodeDeployRoleForECS o AWSCodeDeployRoleForECSLimited al rol ecsTaskRole.

    aws iam attach-role-policy \ --role-name ecsCodedeployRole \ --policy-arn arn:aws::iam::aws:policy/AWSCodeDeployRoleForECS
    aws iam attach-role-policy \ --role-name ecsCodedeployRole \ --policy-arn arn:aws::iam::aws:policy/AWSCodeDeployRoleForECSLimited

Cuando las tareas de su servicio necesitan un rol de ejecución de tareas, debe agregar el permiso iam:PassRole para cada rol de ejecución de tareas o anular el rol de tarea del rol CodeDeploy como una política.

Permisos de rol de ejecución de tareas

Cuando las tareas de su servicio necesitan un rol de ejecución de tareas, debe agregar el permiso iam:PassRole para cada rol de ejecución de tareas o anular el rol de tarea del rol CodeDeploy como una política. Para obtener más información, consulte Rol de IAM de ejecución de tareas de Amazon ECS y Rol de IAM de tarea de Amazon ECS. A continuación, asocie esa política al rol CodeDeploy.

Creación de la política

AWS Management Console
Utilización del editor de política de JSON para la creación de una política
  1. Inicie sesión en la AWS Management Console y abra la consola de IAM en https://console.aws.amazon.com/iam/.

  2. En el panel de navegación de la izquierda, elija Políticas.

    Si es la primera vez que elige Políticas, aparecerá la página Welcome to Managed Policies (Bienvenido a políticas administradas). Elija Comenzar.

  3. En la parte superior de la página, seleccione Crear política.

  4. En la sección Editor de políticas, seleccione la opción JSON.

  5. Ingrese el siguiente documento de política JSON:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": ["arn:aws:iam::<aws_account_id>:role/<ecsCodeDeployRole>"] } ] }
  6. Elija Siguiente.

    nota

    Puede alternar entre las opciones Visual y JSON del editor en todo momento. No obstante, si realiza cambios o selecciona Siguiente en la opción Visual del editor, es posible que IAM reestructure la política, con el fin de optimizarla para el editor visual. Para obtener más información, consulte Reestructuración de política en la Guía del usuario de IAM.

  7. En la página Revisar y crear, introduzca el Nombre de la política y la Descripción (opcional) para la política que está creando. Revise los Permisos definidos en esta política para ver los permisos que concede la política.

  8. Elija Crear política para guardar la nueva política.

Después de crear la política, adjunte la política al rol de CodeDeploy. Para obtener información sobre cómo adjuntar la política al rol, consulte Modificación de una política de permisos de rol (consola) en la Guía del usuario de AWS Identity and Access Management.

AWS CLI

Sustituya cada entrada del usuario por información propia.

  1. Cree un archivo denominado blue-green-iam-passrole.json con el siguiente contenido.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": ["arn:aws:iam::<aws_account_id>:role/<ecsCodeDeployRole>"] } ] }
  2. Utilice el siguiente comando de la para crear la política de IAM con el archivo de documento de política de JSON.

    aws iam create-policy \ --policy-name cdTaskExecutionPolicy \ --policy-document file://blue-green-iam-passrole.json
  3. Recupere el ARN de la política de IAM que creó mediante el siguiente comando.

    aws iam list-policies --scope Local --query 'Policies[?PolicyName==`cdTaskExecutionPolicy`].Arn'
  4. Utilice el siguiente comando para adjuntar la política al rol de IAM de CodeDeploy.

    aws iam attach-role-policy \ --role-name ecsCodedeployRole \ --policy-arn arn:aws:iam:111122223333:aws:policy/cdTaskExecutionPolicy