Ejecución automática de operaciones en instancias de EC2 en respuesta a eventos de AWS Health
Puede automatizar acciones que respondan a eventos programados para las instancias Amazon EC2. Cuando AWS Health envía un evento a su cuenta de AWS, su regla de EventBridge puede invocar destinos, como documentos de automatización de AWS Systems Manager, para automatizar acciones en su nombre.
Por ejemplo, si está programada un retiro de instancia de Amazon EC2 para una instancia EC2 respaldada por Amazon Elastic Block Store (Amazon EBS), AWS Health enviará el tipo de evento de AWS_EC2_PERSISTENT_INSTANCE_RETIREMENT_SCHEDULED
a su panel de control de AWS Health. Cuando la regla detecte este tipo de evento, podrá automatizar la detención y el inicio de la instancia. De esta forma, no tiene que realizar estas acciones manualmente.
nota
Para automatizar acciones para sus instancias Amazon EC2, las instancias deben estar administradas por el Administrador de Sistemas.
Para obtener más información, consulte Automatización de Amazon EC2 con EventBridge en la Guía del usuario de Amazon EC2.
Requisitos previos
Debe crear una política de (IAM) AWS Identity and Access Management, crear un rol de IAM y actualizar la política de confianza del rol antes de poder crear una regla.
Siga este procedimiento para crear una política administrada por el cliente para su rol. Esta política da al rol permiso para llevar a cabo acciones en su nombre. Este procedimiento usa el editor de políticas JSON en la consola de IAM.
Para crear una política de IAM
Inicie sesión en la AWS Management Console y abra la consola de IAM en https://console.aws.amazon.com/iam/
. -
En el panel de navegación, seleccione Policies (Políticas).
-
Elija Create Policy (Crear política).
-
Seleccione la pestaña JSON.
-
Copie la siguiente JSON y luego sustituya la JSON por defecto en el editor.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:StartInstances", "ec2:StopInstances", "ec2:DescribeInstanceStatus" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "ssm:*" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "sns:Publish" ], "Resource": [ "arn:aws:sns:*:*:Automation*" ] }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::
123456789012
:role/AutomationEVRole
" } ] }-
En el parámetro
Resource
, para el Nombre de recurso de Amazon (ARN), introduzca su ID de cuenta de AWS. -
También puede sustituir el nombre del rol o usar el predeterminado. En este ejemplo se utiliza
AutomationEVRole.
-
-
Elija Siguiente: etiquetas.
-
(Opcional) Puede usar etiquetas como pares clave-valor para agregar metadatos a la política.
-
Elija Siguiente: Revisar.
-
En la página Revisar política, ingrese un nombre, como
AutomationEVRolePolicy
y una descripción opcional. -
Revise la página Resumen para ver los permisos que permite la política. Si está satisfecho con su política, seleccione Crear política.
Esta política define las acciones que puede llevar a cabo el rol. Para obtener más información, consulte Creación de políticas de IAM (Consola) en la Guía del usuario de IAM.
Después de crear esta política, debe crear el rol de IAM y, a continuación, asociar la política a ese rol.
Para crear un rol para un servicio de AWS
Inicie sesión en AWS Management Console Management Console y abra la consola IAM en https://console.aws.amazon.com/iam/
. -
En el panel de navegación, seleccione Roles y luego seleccione Crear rol.
-
En Seleccionar el tipo de entidad de confianza, elija Servicio de AWS.
-
Elija EC2 para el servicio que desea permitir que asuma este rol.
-
Elija Siguiente: permisos.
-
Introduzca el nombre de la política que ha creado, como
AutomationEVRolePolicy
, y luego seleccione la casilla contigua a la política. -
Elija Siguiente: etiquetas.
-
(Opcional) Puede usar etiquetas como valores clave-valor para agregar metadatos al rol.
-
Elija Siguiente: Revisar.
-
En Nombre del rol, escriba
AutomationEVRole
. Este nombre debe ser el mismo que aparece en el ARN de la política de IAM que ha creado. -
(Opcional) En Role description (Descripción del rol), ingrese una descripción para el rol.
-
Revise el rol y, a continuación, seleccione Crear rol.
Para obtener más información, consulte Creación de un rol para un servicio de AWS en la Guía del usuario de IAM.
Por último, puede actualizar la política de confianza para el rol que ha creado. Debe completar este procedimiento para poder elegir este rol en la consola de EventBridge.
Para actualizar la política de confianza de el rol
Inicie sesión en AWS Management Console Management Console y abra la consola IAM en https://console.aws.amazon.com/iam/
. -
Seleccione Roles en el panel de navegación.
-
En la lista de roles de su cuenta de AWS, elija el nombre del rol que ha creado, como
AutomationEVRole
. -
Elija la pestaña Relaciones de confianza y, a continuación, Editar relación de confianza.
-
En el documento de política, copie la siguiente JSON, elimine la política predeterminada y pegue la JSON copiada en su lugar.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "ssm.amazonaws.com", "events.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
-
Elija Actualizar política de confianza.
Para obtener más información, consulte Modificación de una política de confianza de rol (consola) en la Guía del usuario de IAM.
Creeción de reglas para EventBridge
Siga este procedimiento para crear una regla en la consola de EventBridge y poder automatizar la parada y el inicio de las instancias de EC2 cuya retirada está programada.
Creación de una regla en EventBridge para acciones automatizadas de Systems Manager
Abra la consola de Amazon EventBridge en https://console.aws.amazon.com/events/
. -
En el panel de navegación, en Events (Eventos), elija Rules (Reglas).
-
En la página Crear regla, escriba un nombre y una descripción para su regla.
-
En Define pattern (Definir patrón) elija Event pattern (Patrón de eventos), a continuación, elija Pre-defined pattern by service (Patrón predeterminado por servicio).
-
En Proveedor de servicios, elija AWS.
-
En Nombre de servicio, elija Estado.
-
En Tipo de evento, elija Eventos de estado específicos.
-
Elija Servicios específicos y, a continuación, EC2.
-
Elija Categorías de tipo de evento específicas y, a continuación, elija scheduledChange.
-
Elija Código o códigos de tipos de evento específicos y, a continuación, elija el código del tipo de evento.
Por ejemplo, para las instancias respaldadas por Amazon EC2 EBS, elija
. Para instancias respaldadas por el almacén de instancias Amazon EC2, elijaAWS_EC2_PERSISTENT_INSTANCE_RETIREMENT_SCHEDULED
.AWS_EC2_INSTANCE_RETIREMENT_SCHEDULED
-
Elija Add resource (Agregar recurso).
Su Patrón del evento será similar al ejemplo siguiente.
{ "source": [ "aws.health" ], "detail-type": [ "AWS Health Event" ], "detail": { "service": [ "EC2" ], "eventTypeCategory": [ "scheduledChange" ], "eventTypeCode": [ "AWS_EC2_PERSISTENT_INSTANCE_RETIREMENT_SCHEDULED" ] } }
-
Agregue el destino del documento de Systems Manager Automation. En Seleccionar destinos, para Destino, elija SSM Automation.
-
En Document (Documento), elija
AWS-RestartEC2Instance
. -
Expanda Configurar parámetros de automatización y, a continuación, seleccione Transformador de entrada.
-
Para el campo Ruta de entrada, introduzca
.{"Instances":"$.resources"}
-
Para el segundo campo, introduzca
.{"InstanceId": <Instances>}
-
Elija Usar el rol existente y, a continuación, elija el rol de IAM que creó, como
AutomationEVRole
.El destino debería ser similar al siguiente ejemplo:
nota
Si no tiene un rol de IAM existente con los permisos de EC2 y Systems Manager necesarios y una relación de confianza, su rol no aparecerá en la lista. Para obtener más información, consulte Requisitos previos.
-
Seleccione Crear.
Si se produce un evento en su cuenta que coincide con su regla, EventBridge enviará el evento al destino que haya usted especificado.