使用 Azure Resource Manager (ARM) 鎖定來保護 Azure Quantum 資源
Microsoft 建議使用 Azure Resource Manager (ARM) 資源鎖定來鎖定所有 Azure Quantum 工作區和連結的儲存體帳戶,以避免意外或惡意刪除。 例如,教授可能會想要限制學生修改提供者 SKU,但仍讓他們能夠使用筆記本並提交作業。
ARM 資源鎖定有兩種類型:
- CannotDelete鎖定可防止使用者刪除資源,但允許讀取和修改其設定。
- ReadOnly鎖定可防止使用者修改資源的設定 (包括刪除) ,但允許讀取其設定。 如需資源鎖定的詳細資訊,請參閱 鎖定資源以防止非預期的變更。
注意
如果您已經使用 ARM 或 Bicep 範本來管理 Azure Quantum 工作區,您可以將本文中的程式新增至現有的範本。
建議的鎖定組態
下表顯示針對 Azure Quantum 工作區部署的建議資源鎖定組態。
資源 | 鎖定類型 | 備註 |
---|---|---|
工作區 | 刪除 | 防止刪除工作區。 |
工作區 | 唯讀 | 防止對工作區進行任何修改,包括新增或刪除提供者,同時仍允許使用者建立和刪除筆記本和提交作業。 若要在設定此鎖定時修改提供者,您需要 移除資源鎖定、進行變更,然後重新部署鎖定。 |
儲存體帳戶 | 刪除 | 防止刪除儲存體帳戶。 |
應避免下列設定:
重要
設定下列 ARM 鎖定可能會導致工作區運作不正確。
資源 | 鎖定類型 | 備註 |
---|---|---|
儲存體帳戶 | 唯讀 | 在儲存體帳戶上設定唯讀資源鎖定可能會導致工作區建立失敗、Jupyter Notebooks 介面,以及提交和擷取作業。 |
工作區或儲存體帳戶之工作區或父資源群組的父訂用帳戶 | 唯讀 | 將資源鎖定套用至父資源時,該父系下的所有資源都會繼承相同的鎖定,包括稍後建立的資源。 如需更細微的控制,應該直接在資源層級套用資源鎖定。 |
必要條件
您必須是資源的 擁有者 或 使用者存取管理員 ,才能套用 ARM 資源鎖定。 如需詳細資訊,請參閱 Azure 內建角色。
命令列部署
您需要Azure PowerShell或 Azure CLI 來部署鎖定。 如果您使用 Azure CLI,則必須擁有最新版本。 如需安裝指示,請參閱:
重要
如果您之前尚未搭配 Azure Quantum 使用 Azure CLI,請遵循 環境設定 一節中的步驟來新增 quantum
延伸模組並註冊 Azure Quantum 命名空間。
登入 Azure
安裝 Azure CLI 或Azure PowerShell之後,請確定您第一次登入。 選擇下列其中一個索引標籤,並執行對應的命令列命令以登入 Azure:
az login
如果您有多個 Azure 訂用帳戶,請選取您想要鎖定資源的訂用帳戶。 以您的訂用帳戶名稱或訂用帳戶識別碼取代 SubscriptionName
。 例如
az account set --subscription "Azure subscription 1"
建立 ARM 資源鎖定
當您部署資源鎖定時,您可以指定鎖定的名稱、鎖定類型,以及資源的其他資訊。 這項資訊可以從 Azure Quantum 入口網站中的資源首頁複製並貼上。
az lock create \
--name <lock> \
--resource-group <resource-group> \
--resource <workspace> \
--lock-type CanNotDelete \
--resource-type Microsoft.Quantum/workspaces
- name:鎖定的描述性名稱
- resource-group:父資源群組的名稱。
- resource:要套用鎖定的資源名稱。
- lock-type:要套用的鎖定類型, 可以是 CanNotDelete 或 ReadOnly。
- resource-type:資源的類型 target 。
例如,若要在工作區上建立 CanNotDelete 鎖定:
az lock create \
--name ArmLockWkspDelete \
--resource-group armlocks-resgrp \
--resource armlocks-wksp \
--lock-type CanNotDelete \
--resource-type Microsoft.Quantum/workspaces
如果成功,Azure 會以 JSON 格式傳回鎖定組態:
{
"id": "/subscriptions/<ID>/resourcegroups/armlocks-resgrp/providers/Microsoft.Quantum/workspaces/armlocks-wksp/providers/Microsoft.Authorization/locks/ArmLockWkspDelete",
"level": "CanNotDelete",
"name": "ArmLockWkspDelete",
"notes": null,
"owners": null,
"resourceGroup": "armlocks-resgrp",
"type": "Microsoft.Authorization/locks"
}
若要在工作區上建立 ReadOnly 鎖定:
az lock create \
--name ArmLockWkspRead \
--resource-group armlocks-resgrp \
--resource armlocks-wksp \
--lock-type ReadOnly \
--resource-type Microsoft.Quantum/workspaces
{
"id": "/subscriptions/<ID>/resourcegroups/armlocks-resgrp/providers/Microsoft.Quantum/workspaces/armlocks-wksp/providers/Microsoft.Authorization/locks/ArmLockWkspRead",
"level": "ReadOnly",
"name": "ArmLockWkspRead",
"notes": null,
"owners": null,
"resourceGroup": "armlocks-resgrp",
"type": "Microsoft.Authorization/locks"
}
若要在儲存體帳戶上建立 CanNotDelete 鎖定:
az lock create \
--name ArmLockStoreDelete \
--resource-group armlocks-resgrp \
--resource armlocksstorage \--lock-type CanNotDelete \
--resource-type Microsoft.Storage/storageAccounts
{
"id": "/subscriptions/<ID>/resourcegroups/armlocks-resgrp/providers/Microsoft.Storage/storageAccounts/armlocksstorage/providers/Microsoft.Authorization/locks/ArmLockStoreDelete",
"level": "CanNotDelete",
"name": "ArmLockStoreDelete",
"notes": null,
"owners": null,
"resourceGroup": "armlocks-resgrp",
"type": "Microsoft.Authorization/locks"
}
檢視和刪除鎖定
若要檢視或刪除鎖定:
如需詳細資訊,請參閱 az lock reference。
檢視訂用帳戶中的所有鎖定
az lock list
檢視工作區中的所有鎖定
az lock list \
--resource-group armlocks-resgrp \
--resource-name armlocks-wksp \
--resource-type Microsoft.Quantum/workspaces
檢視資源群組中所有資源的所有鎖定
az lock list --resource-group armlocks-resgrp
檢視單一鎖定的屬性
az lock show \
--name ArmLockStoreDelete \
--resource-group armlocks-resgrp \
--resource-name armlocksstorage \
--resource-type Microsoft.Storage/storageAccounts
刪除鎖定
az lock delete \
--name ArmLockStoreDelete \
--resource-group armlocks-resgrp \
--resource-name armlocksstorage \
--resource-type Microsoft.Storage/storageAccounts
如果刪除成功,Azure 不會傳回訊息。 若要確認刪除,您可以執行 az lock list
。