Share via


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:

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. Captura de pantalla que muestra un ejemplo de la opción Pruébelo para Azure Cloud Shell.
Vaya a https://shell.azure.com o seleccione el botón Iniciar Cloud Shell para abrir Cloud Shell en el explorador. Botón para iniciar Azure Cloud Shell.
Seleccione el botón Cloud Shell en la barra de menús de la esquina superior derecha de Azure Portal. Captura de pantalla que muestra el botón de Cloud Shell en Azure Portal

Para usar Azure Cloud Shell:

  1. Inicie Cloud Shell.

  2. Seleccione el botón Copiar en un bloque de código (o bloque de comandos) para copiar el código o comando.

  3. 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.

  4. 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