Compartilhar via


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

A Microsoft recomenda bloquear todas as suas contas de armazenamento e workspaces do Azure Quantum com um bloqueio de recursos do ARM para impedir exclusão acidental ou mal-intencionada. Por exemplo, os professores podem querer impedir que os alunos modifiquem SKUs do provedor, mas ainda permitem que eles usem notebooks e enviem trabalhos.

Há dois tipos de bloqueios de recursos do ARM:

  • Um bloqueio CannotDelete impede que os usuários excluam um recurso, mas permite ler e modificar sua configuração.
  • Um bloqueio ReadOnly impede que os usuários modifiquem a configuração de um recurso (incluindo a sua exclusão), mas permite a leitura de sua configuração. Para obter mais informações sobre os bloqueios de recursos, veja Bloquear recursos para evitar alterações inesperadas.

Observação

Se você já usar um modelo do ARM ou Bicep para gerenciar seus workspaces do Azure Quantum, poderá adicionar os procedimentos neste artigo aos modelos existentes.

A tabela a seguir mostra as configurações de bloqueio de recursos recomendadas a serem implantadas em um workspace do Azure Quantum.

Recurso Tipo de bloqueio Observações
Workspace Excluir Impede que o workspace seja excluído.
Workspace Somente leitura Impede modificações no workspace, incluindo adições ou exclusões de provedores, ao mesmo tempo em que permite que os usuários criem e excluam notebooks e enviem trabalhos. Para modificar provedores quando esse bloqueio estiver definido, você precisa remover o bloqueio de recursos, fazer suas alterações e reimplantar o bloqueio.
Conta de armazenamento Excluir Impede que a conta de armazenamento seja excluída.

As seguintes configurações devem ser evitadas:

Importante

Definir os bloqueios do ARM a seguir pode fazer com que o workspace funcione incorretamente.

Recurso Tipo de bloqueio Observações
Conta de armazenamento Somente leitura Definir um bloqueio de recurso somente leitura na conta de armazenamento pode causar falhas com a criação do workspace, a interface do Jupyter Notebooks e no envio e busca de trabalhos.
Assinatura pai do workspace ou do grupo de recursos pai da conta de armazenamento ou workspace Somente leitura Quando um bloqueio de recurso é aplicado a um recurso pai, todos os recursos sob esse pai herdam o mesmo bloqueio, incluindo os recursos criados posteriormente. Para um controle mais granular, os bloqueios de recursos devem ser aplicados diretamente no nível do recurso.

Pré-requisitos

Você deve ser um proprietário ou Administrador de Acesso do Usuário de um recurso para aplicar bloqueios de recursos do ARM. Para obter mais informações, veja Funções internas do Azure.

Implantação de linha de comando

Você precisará do Azure PowerShell ou da CLI do Azure para implantar o bloqueio. Se você usar CLI do Azure, precisará ter a versão mais recente. Para obter as instruções de instalação, confira:

Importante

Se você nunca usou a CLI do Azure com o Azure Quantum, siga as etapas na seção Configuração de ambiente para adicionar a extensão quantum e registrar o namespace do Azure Quantum.

Entrar no Azure

Depois de instalar a CLI do Azure ou Azure PowerShell, entre pela primeira vez. Escolha uma das seguintes guias e execute os comandos de linha de comando correspondentes para entrar no Azure:

az login

Se tiver várias assinaturas do Azure, selecione a assinatura com os recursos que você deseja bloquear. Substitua SubscriptionName pelo nome de sua assinatura ou ID da assinatura. Por exemplo,

az account set --subscription "Azure subscription 1"

Criar um bloqueio de recursos do ARM

Ao implantar um bloqueio de recurso, você especifica um nome para o bloqueio, o tipo de bloqueio e informações adicionais sobre o recurso. Essas informações podem ser copiadas e coladas 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

  • nome: um nome descritivo para o bloqueio
  • grupo de recursos: o nome do grupo de recursos pai.
  • recurso: o nome do recurso ao qual aplicar o bloqueio.
  • tipo de bloqueio: o tipo de bloqueio a ser aplicado, CanNotDelete ou ReadOnly.
  • tipo de recurso: o tipo do target recurso.

Por exemplo, para criar um bloqueio CanNotDelete em um workspace:

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

Se tiver êxito, o Azure retornará 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 em um workspace:

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

Exibição e exclusão de bloqueios

Para exibir ou excluir bloqueios:

Para obter mais informações, confira a referência az lock.

Exibir todos os bloqueios em uma assinatura

az lock list

Exibir todos os bloqueios em um workspace

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

Exibir todos os bloqueios para todos os recursos em um grupo de recursos

az lock list --resource-group armlocks-resgrp

Exibir as propriedades de um único bloqueio

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

Excluir um bloqueio

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

Se a exclusão for bem-sucedida, o Azure não retornará uma mensagem. Para verificar a exclusão, você pode executar az lock list.

Próximas etapas