Proteggere le risorse di Azure Quantum con blocchi di Azure Resource Manager (ARM)
Microsoft consiglia di bloccare tutte le aree di lavoro di Azure Quantum e gli account di archiviazione collegati con un blocco delle risorse di Azure Resource Manager (ARM) per impedire l'eliminazione accidentale o dannosa. Ad esempio, i professori potrebbero voler impedire agli studenti di modificare gli SKU del provider, ma permettere loro di usare comunque i notebook e inviare operazioni.
Esistono due tipi di blocchi delle risorse arm:
- Un CannotDelete blocco impedisce agli utenti di eliminare una risorsa, ma consente la lettura e la modifica della configurazione.
- Un blocco ReadOnly impedisce agli utenti di modificare la configurazione di una risorsa (inclusa l'eliminazione), ma consente di leggere la configurazione. Per altre informazioni sui blocchi delle risorse, vedere Bloccare le risorse per evitare modifiche impreviste.
Nota
Se si usa già un modello arm o Bicep per gestire le aree di lavoro di Azure Quantum, è possibile aggiungere le procedure descritte in questo articolo ai modelli esistenti.
Configurazioni di blocco consigliate
La tabella seguente illustra le configurazioni di blocco delle risorse consigliate da distribuire per un'area di lavoro di Azure Quantum.
Risorsa | Tipo di blocco | Note |
---|---|---|
Spazio di lavoro | Cancella | Impedisce l'eliminazione dell'area di lavoro. |
Spazio di lavoro | Sola lettura | Impedisce eventuali modifiche all'area di lavoro, incluse aggiunte o eliminazioni di provider, consentendo comunque agli utenti di creare ed eliminare notebook e inviare processi. Per modificare i provider quando questo blocco è impostato, è necessario rimuovere il blocco della risorsa, apportare le modifiche, quindi ridistribuire il blocco. |
Account di archiviazione | Cancella | Impedisce l'eliminazione dell'account di archiviazione. |
È consigliabile evitare le configurazioni seguenti:
Importante
L'impostazione dei blocchi ARM seguenti può causare il funzionamento non corretto dell'area di lavoro.
Risorsa | Tipo di blocco | Note |
---|---|---|
Account di archiviazione | Sola lettura | L'impostazione di un blocco di risorse di sola lettura nell'account di archiviazione può causare errori durante la creazione dell'area di lavoro, l'interfaccia Jupyter Notebooks e l'invio e il recupero di processi. |
Sottoscrizione principale dell'area di lavoro o gruppo di risorse principale dell'area di lavoro o account di archiviazione. | Sola lettura | Quando un blocco di risorse viene applicato a una risorsa padre, tutte le risorse in tale elemento padre ereditano lo stesso blocco, incluse le risorse create in un secondo momento. Per un controllo più granulare, i blocchi delle risorse devono essere applicati direttamente a livello di risorsa. |
Prerequisiti
È necessario essere un proprietario o un amministratore dell'accesso utenti di una risorsa per applicare i blocchi delle risorse ARM. Per altre informazioni, vedere Ruoli predefiniti di Azure.
Distribuzione dalla riga di comando
Per distribuire il blocco, sono necessari Azure PowerShell o Azure CLI. Se si usa l'interfaccia della riga di comando di Azure, è necessario avere la versione più recente. Per le istruzioni di installazione, vedere:
Importante
Se in precedenza non è stata usata l'interfaccia della riga di comando di Azure con Azure Quantum, seguire la procedura descritta nella sezione configurazione dell'ambiente per aggiungere l'estensione quantum
e registrare lo spazio dei nomi di Azure Quantum.
Accedere ad Azure
Dopo aver installato l'interfaccia della riga di comando di Azure o Azure PowerShell, assicurati di effettuare l'accesso per la prima volta. Scegliere una delle schede seguenti ed eseguire i comandi della riga di comando corrispondenti per accedere ad Azure:
az login
Se si hanno più sottoscrizioni di Azure, selezionare la sottoscrizione con le risorse da bloccare. Sostituire SubscriptionName
con il nome della sottoscrizione o l'ID della sottoscrizione. Ad esempio:
az account set --subscription "Azure subscription 1"
Creare un blocco delle risorse di Resource Manager
Quando si distribuisce un blocco di risorse, si specifica un nome per il blocco, il tipo di blocco e informazioni aggiuntive sulla risorsa. Queste informazioni possono essere copiate e incollate dalla home page della risorsa nel portale di Azure Quantum.
az lock create \
--name <lock> \
--resource-group <resource-group> \
--resource <workspace> \
--lock-type CanNotDelete \
--resource-type Microsoft.Quantum/workspaces
- nome: un nome descrittivo per il lucchetto
- resource-group: nome del gruppo di risorse padre.
- resource: nome della risorsa a cui applicare il blocco.
- lock-type: Il tipo di blocco da applicare, CanNotDelete o ReadOnly.
- resource-type: tipo della risorsa target.
Ad esempio, per creare un CanNotDelete blocco in un'area di lavoro:
az lock create \
--name ArmLockWkspDelete \
--resource-group armlocks-resgrp \
--resource armlocks-wksp \
--lock-type CanNotDelete \
--resource-type Microsoft.Quantum/workspaces
In caso di esito positivo, Azure restituisce la configurazione del blocco in 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"
}
Per creare un blocco Solo lettura in un'area di lavoro:
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"
}
Per creare un blocco CanNotDelete in un account di archiviazione:
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"
}
Visualizzazione ed eliminazione di blocchi
Per visualizzare o eliminare blocchi:
Per altre informazioni, vedere az lock reference.
Visualizzare tutti i lucchetti in una sottoscrizione
az lock list
Visualizzare tutti i lucchetti in un'area di lavoro
az lock list \
--resource-group armlocks-resgrp \
--resource-name armlocks-wksp \
--resource-type Microsoft.Quantum/workspaces
Visualizzare tutti i blocchi per tutte le risorse in un gruppo di risorse
az lock list --resource-group armlocks-resgrp
Visualizzare le proprietà di un singolo lucchetto
az lock show \
--name ArmLockStoreDelete \
--resource-group armlocks-resgrp \
--resource-name armlocksstorage \
--resource-type Microsoft.Storage/storageAccounts
Eliminare un blocco
az lock delete \
--name ArmLockStoreDelete \
--resource-group armlocks-resgrp \
--resource-name armlocksstorage \
--resource-type Microsoft.Storage/storageAccounts
Se l'eliminazione ha esito positivo, Azure non restituisce un messaggio. Per verificare l'eliminazione, è possibile eseguire az lock list
.