Olá pessoal, no último post explicamos como criar e remover resource groups utilizando o powershell e o Azure Cli. Caso ainda não tenha lido, acesse este link.
No post atual, vamos explicar como utilizar o Azure resource lock para proteger os recursos e grupos de recursos no Azure de remoção acidental no Azure.
O que é o Resource Lock?
O Azure Resource Lock tem a função de proteger os grupos de recursos e recursos de remoção acidental, bloqueando a alteração desdes de duas maneiras: “CanNotDelete” e “ReadOnly“.
Criando um Lock em um resource group no Portal do Azure
Vamos mostrar abaixo como criar um lock em um grupo de recursos utilizando o portal do Azure:
No portal do Azure, acesse o menu Resource groups.

Clique no Resource group e navegue no menu à esquerda até encontrar o botão Locks.
Clique no botão Add para adicionar um lock no resource group selecionado.


Para ilustrar, estou criando um Lock do tipo Read-Only com o nome “Rg-ReadOnly”.

Vamos agora tentar deletar o grupo de recursos “rsg-lab-rgl” que acabamos de proteger com o Lock.
Clique em “Overview” e “Delete resource group“.

Ao tentar deletar o resource group que está protegido por um lock, é exibida uma mensagem informando da proteção e ao clicar na mensagem você é redirecionado para o lock que está protegendo esse recurso de uma remoção.

Removendo um lock usando o portal
Para desbloquear a remoção de um resource ou resource group usando o portal, selecione o recurso que deseja remover a proteção, clique no menu à direita do lock e em Delete.

Após remover o lock do resource group, será possível remover o item que antes estava protegido.
Criando locks através do powershell
Vamos agora criar um lock de grupo de recursos utilizando o powershell. Com o comando abaixo estou criando um lock de nome Lock-ps para o grupo de recursos rg-lab-locks com uma breve descrição do motivo da proteção no campo notes (opcional).
Nota: Caso não tenha ainda o módulo do Azure para powershell, acesse este link onde explico como instalar o módulo do Azure no powershell e conectar no Azure.
Abra o powershell, se conecte no Azure e execute o comando abaixo:
New-AzResourceLock -LockLevel CanNotDelete -LockNotes "Lock pelo powershell" -LockName "Lock-ps" -ResourceGroupName "rg-lab-locks"

Sintaxe: New-AzResourceLock -LockLevel “CanNotDelete ou ReadOnly” -LockNotes “nota de observação” -LockName “nome do lock” -ResourceGroupName “nome do grupo de recurso”
Vamos criar um lock no recurso de storage que provisionei para ilustrar essa atividade. Vou executar o comando abaixo para criar um lock de bloqueio de deleção desse recurso:
New-AzResourceLock -LockLevel CanNotDelete -LockNotes "lock de recurso em ps" -LockName "storslock" -ResourceName "stolablock" -ResourceType "Microsoft.Storage/storageAccounts" -ResourceGroupName "rg-lab-locks"

Sintaxe: New-AzResourceLock -LockLevel “CanNotDelete ou ReadOnly” -LockNotes “nota de observação” -LockName “nome do lock” -ResourceName “nome do recurso”
Ao tentar remover o recurso de storage criado, recebo a mensagem de que não é possível remover pois existe um lock protegendo esse recurso de remoção.

Para mais informações sobre as opções de comandos de lock de recursos no Azure, acesse esse link.
Identificando os locks existentes
Para identificar os locks existentes na subscription, execute o comando “get-azresourcelock”.

Removendo locks usando powershell
Para remover um lock usando o powershell, vamos coletar o Lockid e gravar em uma variável chamada $lockid, utilizando o comando abaixo:
$lockid = (Get-AzResourceLock -ResourceGroupName rg-lab-locks).Lockid

Para remover o lock utilizando a variável, execute o comando abaixo:
Remove-AzResourceLock -Lockid $lockid

Resumo
Hoje abordamos o Azure resource lock que possibilita a proteção dos recursos e grupos de recursos de remoção ou alteração indevida.
No próximo post, vamos falar sobre controle de acesso ao recurso utilizando o Access Control (IAM), que permite ao administrador controlar os acessos aos recursos no Azure.
Gostaram do post? Curtam e compartilhem.
Tem alguma sugestão ou observação, comente.
[ ]’s
Ulysses Neves
