Administración de roles de Managed HSM
Nota:
Key Vault admite dos tipos de recursos: almacenes y HSM administrados. Este artículo trata sobre los HSM administrados. Si desea obtener información sobre cómo administrar un almacén, consulte Administración de Key Vault mediante la CLI de Azure.
Para obtener información general sobre los HSM administrados, consulte ¿Qué es HSM administrado?. Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
En este artículo se muestra cómo administrar roles para un plano de datos de HSM administrado. Consulte Control de acceso de HSM administrado para obtener información sobre el modelo de control de acceso de HSM administrado.
Para permitir que una entidad de seguridad (como un usuario, una entidad de servicio, un grupo o una identidad administrada) realice operaciones del plano de datos del HSM administrado, se le debe asignar un rol que permita realizar esas operaciones. Por ejemplo, si desea permitir que una aplicación realice una operación de firma mediante una clave, se le debe asignar un rol que contenga "Microsoft.KeyVault/managedHSM/keys/sign/action" como una de las acciones de datos. Un rol se puede asignar a un ámbito específico. El RBAC local de Managed HSM admite dos ámbitos: todo HSM (/
o /keys
) y por clave (/keys/<keyname>
).
Para obtener una lista de todos los roles integrados de HSM administrado y las operaciones que permiten, consulte Roles integrados de HSM administrado.
Prerrequisitos
Para usar los comandos de la CLI de Azure, debe tener los siguientes elementos:
- Una suscripción a Microsoft Azure. Si no tiene una, puede registrarse para una evaluación gratuita.
- La CLI de Azure, versión 2.25.0 o posterior. Ejecute
az --version
para encontrar la versión. Si necesita instalarla o actualizarla, consulte Instalación de la CLI de Azure. - Un HSM administrado en la suscripción. Consulte Quickstart: Aprovisionamiento y activación de un HSM administrado mediante la CLI de Azure para aprovisionar y activar un HSM administrado.
Azure Cloud Shell
En Azure se hospeda Azure Cloud Shell, un entorno de shell interactivo que puede utilizar mediante el explorador. Puede usar Bash o PowerShell con Cloud Shell para trabajar con los servicios de Azure. Puede usar los comandos preinstalados de Cloud Shell para ejecutar el código de este artículo sin tener que instalar nada en su entorno local.
Para iniciar Azure Cloud Shell:
Opción | Ejemplo o vínculo |
---|---|
Seleccione Pruébelo en la esquina superior derecha de un bloque de código o de comandos. Solo con seleccionar Pruébelo no se copia automáticamente el código o comando en Cloud Shell. | |
Vaya a https://shell.azure.com o seleccione el botón Iniciar Cloud Shell para abrir Cloud Shell en el explorador. | |
Seleccione el botón Cloud Shell en la barra de menús de la esquina superior derecha de Azure Portal. |
Para usar Azure Cloud Shell:
Inicie Cloud Shell.
Seleccione el botón Copiar en un bloque de código (o bloque de comandos) para copiar el código o comando.
Pegue el código o comando en la sesión de Cloud Shell. Para ello, seleccione Ctrl+Mayús+V en Windows y Linux, o bien seleccione Cmd+Mayús+V en macOS.
Seleccione Enter para ejecutar el código o comando.
Inicio de sesión en Azure
Para iniciar sesión en Azure mediante la CLI puede escribir:
az login
Para más información sobre las opciones de inicio de sesión mediante la CLI, consulte Inicio de sesión con la CLI de Azure.
Creación de una nueva asignación de roles
Asignación de roles para todas las claves
Use el comando az keyvault role assignment create
para asignar un rol de Managed HSM Crypto User al usuario identificado por el nombre principal de usuario user2@contoso.com para todas las claves (ámbito /keys
) de ContosoHSM.
az keyvault role assignment create --hsm-name ContosoMHSM --role "Managed HSM Crypto User" --assignee user2@contoso.com --scope /keys
Asignación de roles para una clave específica
Use el comando az keyvault role assignment create
para asignar un rol de Managed HSM Crypto User al usuario identificado por el nombre principal de usuario user2@contoso.com para una clave específica llamada myrsakey.
az keyvault role assignment create --hsm-name ContosoMHSM --role "Managed HSM Crypto User" --assignee user2@contoso.com --scope /keys/myrsakey
Enumeración de las asignaciones de roles existentes
Use az keyvault role assignment list
para enumerar las asignaciones de roles.
Todas las asignaciones de roles del ámbito / (opción predeterminada cuando no se especifica --scope) para todos los usuarios (opción predeterminada cuando no se especifica --assignee).
az keyvault role assignment list --hsm-name ContosoMHSM
Todas las asignaciones de roles en el nivel de HSM para el usuario específico user1@contoso.com .
az keyvault role assignment list --hsm-name ContosoMHSM --assignee user@contoso.com
Nota:
Cuando el ámbito es / (o /keys), el comando list enumera únicamente todas las asignaciones de roles en el nivel superior y no muestra las asignaciones de roles en el nivel de clave individual.
Todas las asignaciones de roles para el usuario específico user2@contoso.com para la clave específica myrsakey.
az keyvault role assignment list --hsm-name ContosoMHSM --assignee user2@contoso.com --scope /keys/myrsakey
Una asignación de roles específica para el rol Managed HSM Crypto Officer para el usuario específico user2@contoso.com para la clave específica myrsakey.
az keyvault role assignment list --hsm-name ContosoMHSM --assignee user2@contoso.com --scope /keys/myrsakey --role "Managed HSM Crypto Officer"
Eliminación de una asignación de roles
Use el comando az keyvault role assignment delete
para eliminar un rol de Managed HSM Crypto Officer asignado al usuario user2@contoso.com para la clave myrsakey2.
az keyvault role assignment delete --hsm-name ContosoMHSM --role "Managed HSM Crypto Officer" --assignee user2@contoso.com --scope /keys/myrsakey2
Enumeración de todas las definiciones de roles disponibles
Use el comando az keyvault role definition list
para enumerar todas las definiciones de roles.
az keyvault role definition list --hsm-name ContosoMHSM
Creación de una nueva definición de roles
HSM administrado tiene varios roles integrados (predefinidos) que son útiles para los escenarios de uso más comunes. Puede definir su propio rol con una lista de acciones específicas que el rol puede realizar. A continuación, puede asignar este rol a las entidades de seguridad a fin de concederles el permiso para las acciones especificadas.
Use el comando az keyvault role definition create
para un rol denominado My Custom Role (Mi rol personalizado) mediante una cadena JSON.
az keyvault role definition create --hsm-name ContosoMHSM --role-definition '{
"roleName": "My Custom Role",
"description": "The description of the custom rule.",
"actions": [],
"notActions": [],
"dataActions": [
"Microsoft.KeyVault/managedHsm/keys/read/action"
],
"notDataActions": []
}'
Use el comando az keyvault role definition create
para un rol de un archivo denominado my-custom-role-definition.jsen que contenga la cadena JSON para una definición de rol. Vea el ejemplo anterior.
az keyvault role definition create --hsm-name ContosoMHSM --role-definition @my-custom-role-definition.json
Mostrar detalles de una definición de rol
Use el comando az keyvault role definition show
para ver los detalles de una definición de rol específica mediante el nombre (un GUID).
az keyvault role definition show --hsm-name ContosoMHSM --name xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Actualización de una definición de rol personalizado
Use el comando az keyvault role definition update
para actualizar un rol denominado My Custom Role (Mi rol personalizado) mediante una cadena JSON.
az keyvault role definition create --hsm-name ContosoMHSM --role-definition '{
"roleName": "My Custom Role",
"name": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"id": "Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/xxxxxxxx-
xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"description": "The description of the custom rule.",
"actions": [],
"notActions": [],
"dataActions": [
"Microsoft.KeyVault/managedHsm/keys/read/action",
"Microsoft.KeyVault/managedHsm/keys/write/action",
"Microsoft.KeyVault/managedHsm/keys/backup/action",
"Microsoft.KeyVault/managedHsm/keys/create"
],
"notDataActions": []
}'
Eliminación de definiciones de roles personalizadas
Use el comando az keyvault role definition delete
para ver los detalles de una definición de rol específica mediante el nombre (un GUID).
az keyvault role definition delete --hsm-name ContosoMHSM --name xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Nota:
Los roles integrados no se pueden eliminar. Cuando se eliminan los roles personalizados, todas las asignaciones de roles que utilizan ese rol personalizado quedan inactivas.
Pasos siguientes
- Consulte la información general sobre el control de acceso basado en rol de Azure (Azure RBAC).
- Consulte un tutorial sobre la Administración de roles de HSM administrado.
- Obtenga más información sobre el modelo de control de acceso de HSM administrado.
- Consulte todos los roles integrados de RBAC local de HSM administrado.