Поделиться через


Защита ресурсов 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.

Дальнейшие действия