Partilhar via


Proteger recursos do Azure Quantum com bloqueios do Azure Resource Manager (ARM)

A Microsoft recomenda bloquear todas as áreas de trabalho do Azure Quantum e contas de armazenamento ligadas com um bloqueio de recursos do Azure Resource Manager (ARM) para evitar a eliminação acidental ou maliciosa. Por exemplo, os professores podem querer impedir que os estudantes modifiquem os SKUs do fornecedor, mas continuar a permitir que utilizem blocos de notas e submetam trabalhos.

Existem dois tipos de bloqueios de recursos do ARM:

  • Um bloqueio CannotDelete impede que os utilizadores eliminem um recurso, mas permite ler e modificar a respetiva configuração.
  • Um bloqueio ReadOnly impede que os utilizadores modifiquem a configuração de um recurso (incluindo eliminá-la), mas permite ler a respetiva configuração. Para obter mais informações sobre bloqueios de recursos, veja Bloquear recursos para evitar alterações inesperadas.

Nota

Se já utilizar um modelo arm ou Bicep para gerir as áreas de trabalho do Azure Quantum, pode adicionar os procedimentos neste artigo aos modelos existentes.

A tabela seguinte mostra as configurações de bloqueio de recursos recomendadas para implementar numa área de trabalho do Azure Quantum.

Recurso Tipo de bloqueio Notas
Área de trabalho Eliminar Impede que a área de trabalho seja eliminada.
Área de trabalho Só de leitura Impede quaisquer modificações à área de trabalho, incluindo adições ou eliminações de fornecedores, ao mesmo tempo que permite que os utilizadores criem e eliminem blocos de notas e submetam tarefas. Para modificar os fornecedores quando este bloqueio está definido, tem de remover o bloqueio de recursos, fazer as alterações e, em seguida, reimplementar o bloqueio.
Conta de armazenamento Eliminar Impede que a conta de armazenamento seja eliminada.

Devem ser evitadas as seguintes configurações:

Importante

Definir os seguintes bloqueios do ARM pode fazer com que a área de trabalho funcione incorretamente.

Recurso Tipo de bloqueio Notas
Conta de armazenamento Só de leitura Definir um bloqueio de recursos só de leitura na conta de armazenamento pode causar falhas com a criação da área de trabalho, a interface do Jupyter Notebooks e a submissão e obtenção de tarefas.
Subscrição principal da área de trabalho ou do grupo de recursos principal da área de trabalho ou conta de armazenamento Só de leitura Quando um bloqueio de recurso é aplicado a um recurso principal, todos os recursos nesse elemento principal herdam o mesmo bloqueio, incluindo os recursos criados numa data posterior. Para um controlo mais granular, os bloqueios de recursos devem ser aplicados diretamente ao nível do recurso.

Pré-requisitos

Tem de ser Proprietário ou Administrador de Acesso de Utilizador de um recurso para aplicar bloqueios de recursos do ARM. Para obter mais informações, veja Funções incorporadas do Azure.

Implementação da linha de comandos

Precisará de Azure PowerShell ou da CLI do Azure para implementar o bloqueio. Se utilizar a CLI do Azure, tem de ter a versão mais recente. Para obter as instruções de instalação, consulte:

Importante

Se ainda não utilizou a CLI do Azure com o Azure Quantum, siga os passos na secção Configuração do ambiente para adicionar a quantum extensão e registar o espaço de nomes do Azure Quantum.

Iniciar sessão no Azure

Depois de instalar a CLI do Azure ou Azure PowerShell, certifique-se de que inicia sessão pela primeira vez. Escolha um dos seguintes separadores e execute os comandos da linha de comandos correspondentes para iniciar sessão no Azure:

az login

Se tiver várias subscrições do Azure, selecione a subscrição com os recursos que pretende bloquear. Substitua pelo SubscriptionName nome da subscrição ou ID da subscrição. Por exemplo,

az account set --subscription "Azure subscription 1"

Criar um bloqueio de recurso do ARM

Quando implementa um bloqueio de recurso, especifica um nome para o bloqueio, o tipo de bloqueio e informações adicionais sobre o recurso. Estas informações podem ser copiadas e coladas a partir da home page do recurso no portal do Azure Quantum.

az lock create \
    --name <lock> \
    --resource-group <resource-group> \
    --resource <workspace> \
    --lock-type CanNotDelete \
    --resource-type Microsoft.Quantum/workspaces

  • name: um nome descritivo para o bloqueio
  • resource-group: o nome do grupo de recursos principal.
  • recurso: o nome do recurso ao quais aplicar o bloqueio.
  • lock-type: o tipo de bloqueio a aplicar, CanNotDelete ou ReadOnly.
  • resource-type: o tipo do target recurso.

Por exemplo, para criar um bloqueio CanNotDelete numa área de trabalho:

az lock create \
    --name ArmLockWkspDelete \
    --resource-group armlocks-resgrp \
    --resource armlocks-wksp \
    --lock-type CanNotDelete \
    --resource-type Microsoft.Quantum/workspaces

Se for bem-sucedido, o Azure devolve a configuração de bloqueio no formato 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"
}

Para criar um bloqueio ReadOnly numa área de trabalho:

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"
}

Para criar um bloqueio CanNotDelete numa conta de armazenamento:

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"
}

Ver e eliminar bloqueios

Para ver ou eliminar bloqueios:

Para obter mais informações, veja az lock reference (referência az lock).

Ver todos os bloqueios numa subscrição

az lock list

Ver todos os bloqueios numa área de trabalho

az lock list \
    --resource-group armlocks-resgrp \
    --resource-name armlocks-wksp  \
    --resource-type Microsoft.Quantum/workspaces

Ver todos os bloqueios de todos os recursos num grupo de recursos

az lock list --resource-group armlocks-resgrp

Ver as propriedades de um único bloqueio

az lock show \
    --name ArmLockStoreDelete \
    --resource-group armlocks-resgrp \
    --resource-name armlocksstorage \
    --resource-type  Microsoft.Storage/storageAccounts

Eliminar um bloqueio

az lock delete \
    --name ArmLockStoreDelete \
    --resource-group armlocks-resgrp \
    --resource-name armlocksstorage \
    --resource-type  Microsoft.Storage/storageAccounts

Se a eliminação for efetuada com êxito, o Azure não devolverá uma mensagem. Para verificar a eliminação, pode executar az lock list.

Passos seguintes