Como executar automaticamente operações em instâncias do EC2 em resposta a eventos no AWS Health
Você pode automatizar ações em resposta aos eventos programados para suas instâncias do EC2. Quando AWS Health envia um evento para sua conta AWS, sua regra do EventBridge pode então invocar alvos, como documentos de automação de AWS Systems Manager, para automatizar ações em seu nome.
Por exemplo, quando um evento de retiro de instância do Amazon EC2 for programado para um Amazon Elastic Block Store (Amazon EBS) suportado por uma instancia EC2, AWS Health enviará o tipo de evento de AWS_EC2_PERSISTENT_INSTANCE_RETIREMENT_SCHEDULED
para o seu AWS Health Dashboard. Quando sua regra detecta esse tipo de evento, você pode automatizar a parada e o início da instância. Assim, você não precisa realizar essas ações manualmente.
nota
Para automatizar as ações das instâncias do Amazon EC2, as instâncias dever ser geridas pelo Systems Manager.
Para obter mais informações, consulte Automatizar o Amazon EC2 usando o EventBridge no Guia do usuário do Amazon EC2.
Pré-requisitos
Você deve criar uma política AWS Identity and Access Management (IAM), criar um perfil do IAM e atualizar a política de confiança da função antes de criar uma regra.
Siga esse procedimento para criar uma política gerenciada pelo cliente para seu perfil. Essa política concede permissão ao perfil para realizar ações para você. Esse procedimento usa o editor de política do JSON no console do IAM.
Para criar uma política do IAM
Faça login no AWS Management Console e abra o console do IAM em https://console.aws.amazon.com/iam/
. -
No painel de navegação, escolha Políticas.
-
Escolha Criar política.
-
Escolha a guia JSON.
-
Copie o JSON a seguir e substitua o JSON padrão no 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
" } ] }-
No parâmetro
Resource
, para o nome do recurso da Amazon (ARN), insira a sua ID da conta da AWS. -
Você também pode substituir o nome da função ou usar o padrão. Este exemplo usa
AutomationEVRole
.
-
-
Escolha Próximo: tags.
-
(Opcional) É possível usar tags como pares de chave-valor para adicionar metadados à política.
-
Escolha Próximo: revisar.
-
Na página Revisar política, insira um Nome, como
AutomationEVRolePolicy
e uma Descrição opcional. -
Revise a página Resumo para ver as permissões que a política permite e, em seguida, escolha Criar política. Quando estiver satisfeito com a política, escolha Criar política.
Essa política define as ações que o perfil pode realizar. Para obter mais informações, consulte a seção Como criar políticas do IAM (console) no Guia do usuário do IAM.
Após criar a política, crie um perfil do IAM e anexe a política a esse perfil.
Para criar uma função para um serviço da AWS
Faça login no AWS Management Console e abra o console do IAM em https://console.aws.amazon.com/iam/
. -
No painel de navegação, escolha Funções e Criar função.
-
Em Selecionar tipo de entidade confiável, selecione AWS serviço .
-
Escolha EC2 para o serviço que você deseja que assuma essa função.
-
Escolha Próximo: permissões.
-
Insira o nome da política que você criou, como
AutomationEVRolePolicy
, e então marque a caixa de seleção ao lado da política. -
Escolha Próximo: tags.
-
(Opcional) Para adicionar metadados ao perfil, use tags como pares de chave-valor.
-
Escolha Próximo: revisar.
-
Em Nome da função, insira
AutomationEVRole
. Esse nome deve ser o mesmo nome que aparece no ARN da política do IAM que você criou. -
(Opcional) Em Descrição da função, digite uma descrição para a função.
-
Revise a função e escolha Criar função.
Para obter mais informações, consulte Criar um perfil para um AWS serviço no Guia do usuário do IAM.
Por último, você pode atualizar a política de confiança para a função que você criou. Você deve concluir esse procedimento para poder escolher essa função no console do EventBridge.
Para atualizar a política de confiança de uma função
Faça login no AWS Management Console e abra o console do IAM em https://console.aws.amazon.com/iam/
. -
No painel de navegação, escolha Perfis.
-
Na lista de funções da sua conta da AWS, escolha o nome da função que você criou, como
AutomationEVRole
. -
Escolha a guia Relacionamentos de confiança e, em seguida, selecione Editar relacionamento de confiança.
-
Para Documento de política, copie o JSON a seguir, remova a política padrão e cole o JSON copiado em seu lugar.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "ssm.amazonaws.com", "events.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
-
Escolha Update Trust Policy.
Para obter mais informações, consulte Modificar uma política de confiança de função (console) no Guia do usuário do IAM.
Para criar uma regra do EventBridge
Siga este procedimento para criar uma regra no console do EventBridge para que você possa automatizar a parada e o início das instâncias do EC2 que estão programadas para serem desativadas.
Para criar uma regra para ações automatizadas do EventBridge for Systems Manager
Abra o console do Amazon EventBridge em https://console.aws.amazon.com/events/
. -
No painel de navegação, em Eventos, escolha Regras.
-
Na página Criar regra, insira um Nome e Descrição para sua regra.
-
Em Definir padrão, escolha Padrão de evento e escolha Padrão predefinido por serviço.
-
Para Provedor de serviços, escolha AWS.
-
Em Nome do serviço, selecione Integridade.
-
Para Tipo de evento, escolha Eventos de integridade específicos.
-
Selecione os serviços específicos e então selecione EC2.
-
Escolha as categorias de tipos de eventos específicos e, em seguida, scheduledChange.
-
Escolha os códigos de tipos de eventos específicos e, em seguida, escolha o código do tipo de evento.
Por exemplo, para instâncias suportadas pelo Amazon EC2 EBS, escolha.
Para instâncias baseadas em armazenamento de instâncias do Amazon EC2, escolhaAWS_EC2_PERSISTENT_INSTANCE_RETIREMENT_SCHEDULED
.AWS_EC2_INSTANCE_RETIREMENT_SCHEDULED
-
Escolha Qualquer recurso.
O Padrão de evento terá aparência semelhante ao exemplo a seguir.
{ "source": [ "aws.health" ], "detail-type": [ "AWS Health Event" ], "detail": { "service": [ "EC2" ], "eventTypeCategory": [ "scheduledChange" ], "eventTypeCode": [ "AWS_EC2_PERSISTENT_INSTANCE_RETIREMENT_SCHEDULED" ] } }
-
Adicione o destino do documento de automação do gerenciador de sistema. Em Selecionar destinos para Destino, escolha Automação SSM.
-
Para Documento, escolha
AWS-RestartEC2Instance
. -
Expanda Configurar parâmetros de automação e selecione Transformador de entrada.
-
Para o campo Caminho de entrada, insira
.{"Instances":"$.resources"}
-
Para o segundo campo, insira
.{"InstanceId": <Instances>}
-
Escolha Usar função existente e, em seguida, selecione o perfil do IAM que você criou, como
AutomationEVRole
.O destino deve ser como o exemplo a seguir.
nota
Se você não tiver um perfil do IAM existente com as permissões necessárias do EC2 e do Systems Manager e o relacionamento confiável, sua função não aparecerá na lista. Para ter mais informações, consulte Pré-requisitos.
-
Escolha Criar.
Se ocorrer um evento em sua conta que corresponda à sua regra, o EventBridge enviará o evento para seu alvo especificado.