Protección de recursos de Azure Quantum con bloqueos de Azure Resource Manager (ARM)
Microsoft recomienda bloquear todas las áreas de trabajo de Azure Quantum y todas las cuentas de almacenamiento vinculadas con un bloqueo de recursos de Azure Resource Manager (ARM) a fin de impedir su eliminación accidental o malintencionada. Por ejemplo, es posible que los profesores quieran impedir que los alumnos modifiquen las SKU del proveedor, pero aún así permitirles usar cuadernos y enviar trabajos.
Hay dos tipos de bloqueos de recursos de ARM:
- Un bloqueo CannotDelete impide que los usuarios eliminen un recurso, pero permite leer y modificar su configuración.
- Un bloqueo ReadOnly impide que los usuarios modifiquen la configuración de un recurso (y lo eliminen), pero permite leer su configuración. Para más información sobre los bloqueos de recursos, consulte Bloqueo de recursos para impedir cambios inesperados.
Nota
Si ya usa una plantilla de ARM o Bicep para administrar las áreas de trabajo de Azure Quantum, puede agregar los procedimientos de este artículo a las plantillas existentes.
Configuraciones de bloqueo recomendadas
En la tabla siguiente se muestran las configuraciones de bloqueo de recursos recomendadas para implementar en un área de trabajo de Azure Quantum.
Recurso | Tipo de bloqueo | Notas |
---|---|---|
Área de trabajo | Eliminar | Impide que se elimine el área de trabajo. |
Área de trabajo | Solo lectura | Impide cualquier modificación en el área de trabajo, como agregar o eliminar proveedores, al tiempo que permite a los usuarios crear y eliminar cuadernos y enviar trabajos. Para modificar los proveedores cuando se establece este bloqueo, debe quitar el bloqueo de recursos, realizar los cambios y volver a implementar el bloqueo. |
Cuenta de almacenamiento | Eliminar | Impide que se elimine la cuenta de almacenamiento. |
Se deben evitar las siguientes configuraciones:
Importante
Establecer los siguientes bloqueos de ARM puede hacer que el área de trabajo no funcione correctamente.
Recurso | Tipo de bloqueo | Notas |
---|---|---|
Cuenta de almacenamiento | Solo lectura | Establecer un bloqueo de recursos de solo lectura en la cuenta de almacenamiento puede provocar errores en la creación del área de trabajo, la interfaz de Jupyter Notebook y el envío y la captura de trabajos. |
Suscripción primaria del área de trabajo o el grupo de recursos primario del área de trabajo o la cuenta de almacenamiento | Solo lectura | Cuando se aplica un bloqueo de recursos a un recurso primario, todos los recursos de ese elemento primario heredan el mismo bloqueo, incluidos los recursos creados en una fecha posterior. Para aplicar un control más detallado, los bloqueos de recursos se deben aplicar directamente en el nivel de recurso. |
Requisitos previos
Debe ser propietario o administrador de acceso de usuarios de un recurso para aplicar bloqueos de recursos de ARM. Para más información, consulte Roles integrados en Azure.
Implementación desde la línea de comandos
Necesita Azure PowerShell o la CLI de Azure para implementar el bloqueo. Si usa la CLI de Azure, debe tener la versión más reciente. Para obtener instrucciones de instalación, consulte:
Importante
Si no ha usado antes la CLI de Azure con Azure Quantum, siga los pasos descritos en la sección Configuración del entorno para agregar la extensión quantum
y registrar el espacio de nombres de Azure Quantum.
Inicio de sesión en Azure
Después de instalar la CLI de Azure o Azure PowerShell, asegúrese de iniciar sesión por primera vez. Elija una de las pestañas siguientes y ejecute los comandos de línea de comandos correspondientes para iniciar sesión en Azure:
az login
Si tiene varias suscripciones de Azure, seleccione la suscripción que contiene los recursos que desea bloquear. Reemplace SubscriptionName
por el nombre o el id. de la suscripción. Por ejemplo,
az account set --subscription "Azure subscription 1"
Creación de un bloqueo de recursos de ARM
Al implementar un bloqueo de recursos, debe especificar un nombre para el bloqueo, el tipo de bloqueo e información adicional sobre el recurso. Esta información se puede copiar y pegar desde la página principal del recurso en el portal de Azure Quantum.
az lock create \
--name <lock> \
--resource-group <resource-group> \
--resource <workspace> \
--lock-type CanNotDelete \
--resource-type Microsoft.Quantum/workspaces
- name: escriba un nombre descriptivo para el bloqueo.
- resource-group: nombre del grupo de recursos primario.
- resource: nombre del recurso al que se va a aplicar el bloqueo.
- lock-type: el tipo de bloqueo que se va a aplicar, que puede ser canNotDelete o ReadOnly.
- resource-type: el tipo del target recurso.
Por ejemplo, para crear un bloqueo CanNotDelete en un área de trabajo:
az lock create \
--name ArmLockWkspDelete \
--resource-group armlocks-resgrp \
--resource armlocks-wksp \
--lock-type CanNotDelete \
--resource-type Microsoft.Quantum/workspaces
Si todo es correcto, Azure devuelve la configuración de bloqueo en 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 crear un bloqueo ReadOnly en un área de trabajo:
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 crear un bloqueo CanNotDelete en una cuenta de almacenamiento:
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"
}
Visualización y eliminación de bloqueos
Para ver o eliminar bloqueos:
Para más información, consulte la referencia de az lock.
Visualización de todos los bloqueos de una suscripción
az lock list
Visualización de todos los bloqueos de un área de trabajo
az lock list \
--resource-group armlocks-resgrp \
--resource-name armlocks-wksp \
--resource-type Microsoft.Quantum/workspaces
Visualización de todos los bloqueos de todos los recursos de un grupo de recursos
az lock list --resource-group armlocks-resgrp
Visualización de las propiedades de un único bloqueo
az lock show \
--name ArmLockStoreDelete \
--resource-group armlocks-resgrp \
--resource-name armlocksstorage \
--resource-type Microsoft.Storage/storageAccounts
Eliminación de un bloqueo
az lock delete \
--name ArmLockStoreDelete \
--resource-group armlocks-resgrp \
--resource-name armlocksstorage \
--resource-type Microsoft.Storage/storageAccounts
Si la eliminación se realiza correctamente, Azure no devuelve ningún mensaje. Para comprobar la eliminación, puede ejecutar az lock list
.