Microsoft Azure

[Microsoft Azure] Auditoria de criação de objetos por e-mail – Parte03


auditoria03

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 (https://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.

image

Preencha os campos da seguinte forma Name (Nome do RunBook), Runbook type (Tipo de script que será armazenado, selecione Powershell), por fim Create.

image

Após a criação do RunBook será direcionado para a tela abaixo:

image

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

image

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.

image

Após a execução do script:

image

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.

image

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

image

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

image

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.

image

image

Qualquer problema no fluxo ou script entre em contato.

Abraços,
Erick Albuquerque

Microsoft Azure
[Microsoft Azure] Auditoria de criação de objetos por e-mail – Parte02
Microsoft Azure
[Microsoft Azure] Auditoria de criação de objetos por e-mail – Parte01
IIS
[Microsoft Azure] Instalando e configurando o FTP Server no Microsoft Azure