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