lacework-global-645
Set Resource Locks for Mission-Critical Azure Resources (Manual)
Profile Applicability
• Level 2
Description
Resource Manager Locks provide a way for administrators to lock down Azure resources to prevent deletion of, or modifications to, a resource. These locks sit outside of the Role-Based Access Controls (RBAC) hierarchy and, when applied, place restrictions on the resource for all users. These locks are very useful when there is an important resource in a subscription that users should not be able to delete or change. Locks can help prevent accidental and malicious changes or deletion.
Rationale
As an administrator, it may be necessary to lock a subscription, resource group, or resource to prevent other users in the organization from accidentally deleting or modifying critical resources. The lock level can be set to to CanNotDelete
or ReadOnly
to achieve this purpose.
CanNotDelete
means authorized users can still read and modify a resource, but they cannot delete the resource.ReadOnly
means authorized users can read a resource, but they cannot delete or update the resource. Applying this lock is similar to restricting all authorized users to the permissions granted by the Reader role.
Impact
There can be unintended outcomes of locking a resource. Applying a lock to a parent service will cause it to be inherited by all resources within. Conversely, applying a lock to a resource may not apply to connected storage, leaving it unlocked. Please see the documentation for further information.
Audit
From Azure Portal
- Navigate to the specific Azure Resource or Resource Group
- Click on
Locks
- Ensure the lock is defined with name and description, type as
CanNotDelete
orReadOnly
as appropriate.
From Azure CLI
Review the list of all locks set currently:
az lock list --resource-group <resourcegroupname> --resource-name <resourcename> --namespace <Namespace> --resource-type <type> --parent ""
From Azure Powershell
Run the following command to list all resources.
Get-AzResource
For each resource, run the following command to check for Resource Locks.
Get-AzResourceLock -ResourceName <Resource Name> -ResourceType <Resource Type> -ResourceGroupName <Resource Group Name>
Review the output of the Properties
setting. Compliant settings will have the CanNotDelete
or ReadOnly
value.
Remediation
From Azure Portal
- Navigate to the specific Azure Resource or Resource Group.
- For each mission-critical resource, click Locks.
- Click Add.
- Give the lock a name and a description, then select the type, Read-only or Delete as appropriate.
- Click OK.
From Azure CLI
To lock a resource, provide the name of the resource, its resource type, and its resource group name:
az lock create --name <LockName> --lock-type <CanNotDelete/Read-only> --resource-group <resourceGroupName> --resource-name <resourceName> --resource-type <resourceType>
From Azure Powershell
Get-AzResourceLock -ResourceName <Resource Name> -ResourceType <Resource Type> -ResourceGroupName <Resource Group Name> -Locktype <CanNotDelete/Read-only>
References
https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-lock-resources
https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-manager-subscription-governance#azure-resource-locks
https://docs.microsoft.com/en-us/azure/governance/blueprints/concepts/resource-locking
https://docs.microsoft.com/en-us/security/benchmark/azure/security-controls-v3-asset-management#am-4-limit-access-to-asset-management