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.
Configurações de bloqueio recomendadas
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
.