Pentest | TechCruz #keepsecurity

Office Address

123/A, Miranda City Likaoli
Prikano, Dope

Phone Number

+0989 7876 9865 9
+(090) 8765 86543 85

AWS - Automatizando o Start/Stop das suas Instâncias EC2 com TAG

AWS - Automatizando o Start/Stop das suas Instâncias EC2 com TAG

Desligar uma instancia EC2 todos os dias das 00:00 até as 08:00, ou seja, não preciso da instancia ligada o dia todo. Para fazer isto de forma automática iremos utilizar uma função LAMBDA.

Neste exemplo temos as seguintes condições:

Instancia: poc-lambda

Ligar: 08:00 (No GMT -2 ) / Todos os dias

Desligar: 00:00 (No GMT -2 ) / Todos os dias

Os scripts utilizados neste tutorial estão disponíveis em meu Git:StartStopEc2

Vamos começar criando a função que ira dar um Start ou Stop na instancia.

Clique em “Create Function

Em “Name” preencha o nome da função (Para nosso teste, irei chamar de “Auto-StartStop”)

Em “Runtime” selecione “Python 3.8

Preencha o “Role Name” com o nome da Role (Para nosso teste, irei chamar de “Auto-StartStop-Role”)

Clique em Create Function.

Agora foi aberto uma janela, onde precisamos editar a ROLE que ira permitir a função LAMBDA ter acesso as instancias.

  • Clique em Configuration, Permissions e NomeRole

  • Na janela que abrir clique em Add Permission e Create Inline Policy

  • Em “Policy Name” preencha o nome da função (Para nosso teste, irei chamar de “Auto-StartStop-Policy”)

Clique em Create Policy

#Bora para o ToDo?

Precisamos agora copiar o script em Python para Ligar e Desligar a instancia que desejamos.

  • Clique em Code e Cole o codigo do arquivo StartStopInstaces.py (Git : StartStopEc2) e faça o Deploy.

  • Precisamos aumentar o Timeout para não haver quebra de tempo na execução do Script

  • Fazer o Deploy das alterações.

Bom, já temos a Rule, já temos a função, porem precisamos tornar as chamadas a esta função automáticas!

#Create Schedule

Clique em Events, Rules e Create Rule

Abaixo será aberto alguns campos:

  • Em “Rule name” preencha um nome para este evento (Para nosso teste, irei chamar de “chamada_00hrs”)

Em “Rule type” selecione “Recurring Schedule” e “Cron-Based schedule

  • Confira o timezone

Na próxima página, precisamos definir o gatilho de execução da Função Lambda.

  • Em target api, clique em AWS Lambda

Na lista Invoke, selesiona o função Lambda criada, versão 1.

No payload copiar o conteúdo do arquivo payload.json (Git : StartStopEc2)

Na próxima página, em RoleName defina o nome do Agendamento

Até aqui tudo bem né? Para criar o processo de start, é so reproduzir o #Create Schedule

Clique em Events, Rules e Create Rule

Em “Rule name” preencha um nome para este evento (Para nosso teste, irei chamar de “chamada_00hrs”)

Em “Rule type” selecione “Recurring Schedule” e “Cron-Based schedule

Confira o timezone

Em target api, clique em AWS Lambda

Na lista Invoke, selesiona o função Lambda criada, versão 1.

No payload copiar o conteúdo do arquivo payload.json (Git : StartStopEc2) **agora você tem que copiar o star.

Na próxima página, em RoleName defina o nome do Agendamento

E por último, Clique em “Save”:

Certifique-se de substituir a tag_key e tag_value pelas informações da tag que você deseja usar para filtrar as instâncias. O código acima liga ou desliga a instância EC2 ou RDS com base no estado atual da instância. Se a instância estiver em execução, ela será desligada. Caso contrário, ela será ligada. Se você quiser verificar o status da instância após a ligação ou desligação, pode usar o método describe_instances() para obter informações sobre a instância EC2 e o método describe_db_instances() para obter informações sobre a instância RDS.

Até a próxima.
Share: