不少客户一直在想提升其Azure订阅的安全性。想保护一些资源免遭意外删除,好比,NSG的规则不会被意外的更改。为了实现这一点,咱们通常会推荐他们使用Azure管理锁。Azure管理锁有两种不一样的级别,分别为“Read-Only”和“Delete”。安全
CanNotDelete(Delete): 是指受权用户仍然具备对资源的读取和修改访问权限,但没法删除资源。(这取决于用户的角色)ide
Read-Only(Read-Only):指受权用户只能读取资源。他们将不能修改或删除资源。此锁相似于将全部受权用户限制为Reader角色。3d
咱们能够在订阅级别、资源组级别或单个资源上应用锁。若是在订阅级别设置了锁,订阅中的全部资源(包括稍后添加的资源)都继承相同的锁。资源组级别也是如此。blog
说到这里可能就会有朋友要问什么角色能够建立或删除资源锁:要建立或删除管理锁,咱们必须具备访问权限Microsoft.Authorization/*或Microsoft.Authorization/locks/*操做权限。在内置角色中,只有全部者和用户访问管理员被授予这些操做。继承
建立资源锁的方式有不少,能够在使用ARM模板建立资源时建立锁,也可使用Azure 门户或PowerShell建立锁。下面我将向你们展现Portal方法和PowerShell方法。ip
使用Azure Portal建立资源锁:资源
导航到要添加锁定的资源,资源组或订阅。在“设置”刀片下点击“锁”:get
点击“添加”:cmd
键入“锁定名”称并选择锁定级别(删除或只读),输入说明。而后单击肯定。it
建立完成之后以下图所示:
若是要删除锁定,能够单击省略号“...”并单击选项中的“删除”:
使用PowerShell建立资源锁
要锁定资源组,可使用如下cmdlet。只要确保您更改顶部的变量以匹配资源便可。咱们还能够将Lock Level更改成Read-Only
$LockName = "DemoLock"
$RGName ="PBI-RG"
New-AzureRmResourceLock -LockName $LockName -LockLevel CanNotDelete -ResourceGroupName $RGName
可使用如下cmdlet删除资源组上的锁。
聊了这么多相信你们已经知道了什么是资源锁,以及如何使用PowerShell和门户建立和删除它们。经过使用锁,咱们能够设置额外的防御,以防止意外或恶意更改/删除Azure资源。