Защита ресурсов Azure Quantum с помощью блокировок Azure Resource Manager (ARM)
Корпорация Майкрософт рекомендует блокировать все рабочие области Azure Quantum и связанные учетные записи хранения с помощью блокировки ресурсов Azure Resource Manager (ARM), чтобы предотвратить случайное или намеренное удаление злоумышленником вашей учетной записи хранения. Например, преподаватели могут запретить учащимся изменять номера SKU поставщиков, но по-прежнему разрешать им использовать записные книжки и отправлять задания.
Существует два типа блокировки ресурсов ARM.
- Блокировка CannotDelete запрещает пользователям удалять ресурс, но позволяет считывать и изменять его конфигурацию.
- Блокировка ReadOnly запрещает пользователям изменять конфигурацию ресурса (включая удаление), но позволяет считывать его конфигурацию. Дополнительные сведения о блокировках ресурсов см. в статье о блокировке ресурсов для предотвращения непредвиденных изменений.
Примечание
Если вы уже используете шаблон ARM или Bicep для управления рабочими областями Azure Quantum, вы можете добавить процедуры, описанные в этой статье, в существующие шаблоны.
Рекомендуемые конфигурации блокировки
В следующей таблице приведены рекомендуемые конфигурации блокировки ресурсов для развертывания для рабочей области Azure Quantum.
Ресурс | Тип блокировки | Примечания |
---|---|---|
Рабочая область | Удалить | Запрещает удаление рабочей области. |
Рабочая область | Только для чтения | Запрещает любые изменения в рабочей области, включая добавление или удаление поставщиков, при этом разрешает пользователям создавать и удалять записные книжки и отправлять задания. Чтобы изменить поставщиков при установленной блокировке, необходимо удалить блокировку ресурса, внести изменения, а затем повторно развернуть блокировку. |
Учетная запись хранения | Удалить | Запрещает удаление учетной записи хранения. |
Следует избегать следующих конфигураций:
Важно!
Установка следующих блокировок ARM может привести к неправильному функционированию рабочей области.
Ресурс | Тип блокировки | Примечания |
---|---|---|
Учетная запись хранения | Только для чтения | Установка блокировки ресурсов только для чтения в учетной записи хранения может привести к сбоям при создании рабочей области, функционировании интерфейса Jupyter Notebook и отправке и извлечении заданий. |
Родительская подписка рабочей области или родительская группа ресурсов рабочей области или учетной записи хранения | Только для чтения | Если блокировка ресурса применяется к родительскому ресурсу, все ресурсы в этом родительском элементе наследуют одну и ту же блокировку, включая ресурсы, созданные позднее. Для более детального управления блокировки ресурсов следует применять непосредственно на уровне ресурса. |
Предварительные требования
Для применения блокировок ресурсов ARM необходимо быть владельцем или администратором доступа пользователей. Дополнительные сведения см. в статье Встроенные роли Azure.
Развертывание из командной строки
Для развертывания блокировки потребуется либо Azure PowerShell, либо Azure CLI. При использовании Azure CLI необходимо иметь последнюю версию. Ознакомьтесь с инструкциями по установке:
Важно!
Если вы до этого не использовали Azure CLI с Azure Quantum, выполните действия, описанные в разделе Настройка среды, чтобы добавить расширение 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.
Просмотр всех блокировок в подписке
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
.