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

Rol de IAM de EventBridge de Amazon ECS

Para poder usar las tareas programadas de Amazon ECS con las reglas y los destinos de EventBridge, el servicio de EventBridge necesita varios permisos para ejecutar tareas de Amazon ECS en su nombre. Estos permisos los proporciona el rol de IAM de EventBridge (ecsEventsRole).

La política AmazonEC2ContainerServiceEventsRole se muestra a continuación.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["ecs:RunTask"], "Resource": ["*"] }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": ["*"], "Condition": { "StringLike": {"iam:PassedToService": "ecs-tasks.amazonaws.com"} } }, { "Effect": "Allow", "Action": "ecs:TagResource", "Resource": "*", "Condition": { "StringEquals": { "ecs:CreateAction": ["RunTask"] } } } ] }

Si las tareas programadas requieren el uso del rol de ejecución de tareas, un rol de tarea o una cancelación del rol de tarea, debe agregar permisos iam:PassRole para cada rol de ejecución de tareas, rol de tarea o cancelación del rol de tarea al rol de IAM de EventBridge. Para obtener más información sobre el rol de ejecución de tareas, consulte Rol de IAM de ejecución de tareas de Amazon ECS.

nota

Especifique el ARN completo del rol de ejecución de tareas o el reemplazo del rol de tareas.

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

Puede optar por dejar que AWS Management Console cree el rol de EventBridge por usted cuando configure una tarea programada. Para obtener más información, consulte Uso de Programador de Amazon EventBridge para programar tareas de Amazon ECS .

Creación del rol de EventBridge

Sustituya cada entrada del usuario por información propia.

  1. Cree un archivo con el nombre eventbridge-trust-policy.json, que contenga la política de confianza que se va a utilizar para el rol de IAM. El archivo debe contener lo siguiente:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. Utilice el siguiente comando para crear un rol de IAM con el nombre ecsEventsRole mediante la política de confianza que se creó en el paso anterior.

    aws iam create-role \ --role-name ecsEventsRole \ --assume-role-policy-document file://eventbridge-policy.json
  3. Adjunte la política administrada de AWS AmazonEC2ContainerServiceEventsRole al rol ecsEventsRole con el siguiente comando.

    aws iam attach-role-policy \ --role-name ecsEventsRole \ --policy-arn arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceEventsRole

También puede usar el flujo de trabajo de política de confianza personalizada de la consola de IAM (https://console.aws.amazon.com/iam/) para crear el rol. Para obtener instrucciones, consulte Creating a role using custom trust policies (console) en la Guía del usuario de IAM.

Asociación de una política al rol ecsEventsRole

Puede utilizar los siguientes procedimientos para agregar permisos para el rol de ejecución de tareas al rol de IAM de EventBridge.

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 AWS Management Console Management Console y abra la consola 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/<ecsTaskExecutionRole_or_TaskRole_name>"] } ] }
  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, adjúntela al rol de EventBridge. 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 ev-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/<ecsTaskExecutionRole_or_TaskRole_name>"] } ] }
  2. Utilice el siguiente comando de la AWS CLI para crear la política de IAM con el archivo de documento de política de JSON.

    aws iam create-policy \ --policy-name eventsTaskExecutionPolicy \ --policy-document file://ev-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==`eventsTaskExecutionPolicy`].Arn'
  4. Utilice el siguiente comando para adjuntar la política al rol de IAM de EventBridge mediante el ARN de la política.

    aws iam attach-role-policy \ --role-name ecsEventsRole \ --policy-arn arn:aws:iam:111122223333:aws:policy/eventsTaskExecutionPolicy