Blog
Domine a plataforma e otimize seus gastos!
Protegendo seus recursos de nuvem contra ações de delete acidentais
Fala galera, no post de hoje vamos falar sobre como podemos proteger nossos recursos de nuvem contra ações de delete ou updade acidentais, utilizando o lock.
Existem dois tipos de locks na Azure:
- CanNotDelete: Usuários podem ler ou fazer modificações no recurso, mas não podem deletá-lo;
- ReadOnly: Usuários não podem fazer modificações ou deletar o recurso de nuvem.
Além disso, o lock pode ser aplicado a subscriptions, resource group, ou um recurso específico. Vale comentar que existe o conceito de herança do lock: caso um lock seja aplicado, por exemplo ao grupo de recursos, todos os recursos presentes nesse grupo de recursos herdarão o mesmo lock.
Para esse post, vamos criar alguns locks em grupos de recursos e fazer alguns testes!
Primeiramente, iremos criar um lock diretamente pelo portal:
![](https://www.azurebrasil.cloud/content/images/2023/10/Group-1149-1.png)
Na aba de locks, vamos criar um do tipo Delete.
![](https://www.azurebrasil.cloud/content/images/2023/10/Group-1150.png)
Com o lock criado, vamos tentar deletar o grupo de recursos criado.
![](https://www.azurebrasil.cloud/content/images/2023/10/Group-1151.png)
![](https://www.azurebrasil.cloud/content/images/2023/10/Group-1152.png)
Podemos ver que a ação de delete não foi executada devido ao lock!
Outra forma bem legal de implementar o lock é através do bicep. Vamos criar um bicep module que criar um lock.
resource createRgLock 'Microsoft.Authorization/locks@2016-09-01' = {
name: 'rgLock'
properties: {
level: 'CanNotDelete'
notes: 'Resource group lock via bicep'
}
}
Agora já podemos criar um grupo de recurso e aplicar o module criado anteriormente, passando como scope, o grupo de recursos definido.
targetScope='subscription'
var rgName = 'rg-lock-bicep-eastus-prod'
var rgLocation = 'eastus'
resource resourceGroup 'Microsoft.Resources/resourceGroups@2022-09-01' = {
name: rgName
location: rgLocation
}
module rgLockModule './lockModule.bicep' = {
name: 'lockDeployment'
scope: az.resourceGroup(resourceGroup.name)
}
Nesse exemplo, vou fazer o deploy dos arquivos bicep via VS code.
![](https://www.azurebrasil.cloud/content/images/2023/10/Screen-Shot-2023-10-30-at-15.11.51.png)
![](https://www.azurebrasil.cloud/content/images/2023/10/Screen-Shot-2023-10-30-at-15.13.32.png)
Podemos ver que o grupo de recursos foi criado corretamente, juntamente com o lock.
Você já pode baixar o projeto por esse link, e não esquece de me seguir no LinkedIn!
Até a próxima, abraços!