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.
- JSON
-
-
{
"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.
Especifique el ARN completo del rol de ejecución de tareas o el reemplazo del rol de tareas.
- JSON
-
-
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "iam:PassRole",
"Resource": [
"arn:aws:iam::111122223333
: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.
-
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:
- JSON
-
-
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": "events.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
-
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-trust-policy.json
-
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
Inicie sesión en AWS Management Console y abra la consola IAM en https://console.aws.amazon.com/iam/.
-
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.
-
En la parte superior de la página, seleccione Crear política.
-
En la sección Editor de políticas, seleccione la opción JSON.
-
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>"]
}
]
}
-
Elija Siguiente.
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.
-
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.
-
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 acerca de cómo asociar la política al rol, consulte Actualización de los permisos de un rol en la Guía del usuario de AWS Identity and Access Management.
- AWS CLI
Sustituya cada entrada del usuario
por información propia.
-
Cree un archivo denominado ev-iam-passrole.json
con el siguiente contenido.
JSON
- JSON
-
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "iam:PassRole",
"Resource": [
"arn:aws:iam::111122223333
:role/ecsTaskExecutionRole_or_TaskRole_name
"
]
}
]
}
-
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
-
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'
-
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