[Microsoft Azure] Auditoria de criação de objetos por e-mail – Parte03
Chegamos ao último artigo da série “Auditoria de criação de objetos por e-mail”, caso você chegou até aqui e não leu os dois primeiros artigos, acesse aqui Parte 01 e Parte 02.
Vamos lá!
Acesse o portal novo (//portal.azure.com), navegue até Automation, selecione a conta que criamos > Overview > Runbook > clique em add a runbooks
OBS: O RunBook é basicamente um JOB onde será armazenado um script que será executado manualmente ou através de um scheduler.
Preencha os campos da seguinte forma Name (Nome do RunBook), Runbook type (Tipo de script que será armazenado, selecione Powershell), por fim Create.
Após a criação do RunBook será direcionado para a tela abaixo:
Esse espaço é onde vamos trabalhar com o script que vai rodar todos os dias de manhã para enviar o relatório de objetos criados no dia anterior.
Copie e Cole o script abaixo:
———————————————–
#Armazena o conteúdo da “credential” auditoria_azure dentro da váriavel $AutomationCredential
$AutomationCredential = ‘auditoria_azure’ #Guarda os dados de login/senha dentro da váriavel $cred
$Cred = Get-AutomationPSCredential -Name $AutomationCredential #Autentica no portal ASM e ARM
#Sign in on Portal ASM and ARM
Add-AzureAccount -Credential $Cred
Login-AzureRmAccount -Credential $Cred #Guarda todas subscriptions dentro da váriavel $Assinaturas
$Assinaturas = Get-AzureRmSubscription | select SubscriptionName #Laço de repetição para armazenar todos os objetos criados do dia anterior, é feito um filtro em “deployments” selecionando algumas informações e por fim tabulando os dados e armazenando dentro da variável $objeto
$Lista = foreach($Assinatura in $Assinaturas = $Assinaturas -replace “@{SubscriptionName=”,”” -replace “.$”)
{ $Subscription = Set-AzureRmContext -SubscriptionName $Assinatura
$Objeto = Get-AzureRmLog -StartTime (Get-Date).AddDays(-1) | Where-Object { $_.OperationName -like “*deployments*” } | Select ResourceGroupName, Caller, EventTimestamp, Authorization, $Assinatura | Format-List
$Objeto
}
#Todos objetos armazenado na variável $Lista é armazenado também dentro do arquivo NovosObjetos.txt
$Lista >> NovosObjetos.txt
#Envia e-mail com o arquivo anexo!
[string]$corpoemail = “Em anexo os objetos criados no último dia.”
$data = (Get-Date).ToString()
$assunto = “Objetos Criados – Azure – ” + $data
#Eu estou enviando e-mail com o relatório a partir do Office 365, dessa forma é necessário fazer a autenticação via TLS, utilize um e-mail valido, altere os campos em negrito com e-mail e senha
$secpasswd = ConvertTo-SecureString “SUASENHA” -AsPlainText -Force
$mycreds = New-Object System.Management.Automation.PSCredential (“seuemail@seudominio.com.br”, $secpasswd)
Send-MailMessage -To erick.albuquerque@hotmail.com -SmtpServer “smtp.office365.com” -Credential $mycreds -UseSsl $assunto -Port “587” -Body $corpoemail -From seuemail@seudominio.com.br -BodyAsHtml -Attachments NovosObjetos.txt
———————————————–
Clique em Save e em seguida Publish
Após executar o Publish, vai retornar para a janela do Runbook que criamos no passo anterior, para testar o script clique em Start e acompanhe o resultado na janela ao lado.
Após a execução do script:
Caso tivesse ocorrido algum erro poderiamos clicar em “Errors” e analisar o que ocorreu durante a execução.
Agora que o script executou com sucesso, verifique o e-mail que deixamos configurado no script e o arquivo anexo.
No arquivo anexo tem algumas informações:
1: Nome da Subscription
2: Demais opções
- ResourceGroupName: Nome do RG
- Conta de quem criou o objeto
- EventTimestamp: Dia e Horário de quando o objeto foi criado
- … e demais iténs
OBS: É possível customizar o script e acrescentar mais parâmetros, se necessário.
Para finalizar o artigo, é interessante que todo esse fluxo aconteça automaticamente, para isso vamos configurar o Scheduler.
Dentro do Runbook que criamos selecione Schedules e depois clique em Add a schedule
Clique em “Link a schedule to your runbook” > Create a new schedule > Preencha as informações em New Schedule > Create
As configurações que fizemos foi para executar o script todos os dias as 7:00:00 AM, com recorrência de 1 vêz ao dia e para nunca expirar. Se necessitar executar mais vezes pode ser feito manualmente ou alterar a configuração que fizemos no Schedule.
Qualquer problema no fluxo ou script entre em contato.
Abraços,
Erick Albuquerque
Comments