Gestion du rôle HSM managé

Notes

Key Vault prend en charge deux types de ressources : les coffres et les HSM managés. Cet article concerne le HSM managé. Si vous souhaitez apprendre à gérer un coffre, consultez Gérer Key Vault à l’aide de l’interface de ligne de commande Azure.

Pour obtenir une vue d’ensemble de Managed HSM, consultez Qu’est-ce que Managed HSM ?. Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.

Cet article vous explique comment gérer les rôles pour un plan de données HSM managé. Pour en savoir plus sur le modèle de contrôle d’accès HSM managé, consultez Contrôle d’accès HSM managé.

Pour permettre à un principal de sécurité (par exemple un utilisateur, un principal du service, un groupe ou une identité managée) d’effectuer des opérations de plan de données HSM managé, il doit se voir attribuer un rôle qui autorise l’exécution de ces opérations. Par exemple, si vous souhaitez permettre à une application d’effectuer une opération de signature à l’aide d’une clé, elle doit recevoir un rôle contenant« Microsoft.KeyVault/managedHSM/keys/sign/action » comme l’une des actions de données. Un rôle peut être attribué au niveau d’une étendue spécifique. Le RBAC local HSM managé prend en charge deux étendues, à l’échelle du HSM (/ ou /keys) et par clé (/keys/<keyname>).

Pour obtenir la liste de tous les rôles intégrés au HSM managé et les opérations qu’ils autorisent, consultez Rôles intégrés au HSM managé.

Prérequis

Pour utiliser les commandes Azure CLI de cet article, vous devez disposer des éléments suivants :

Azure Cloud Shell

Azure héberge Azure Cloud Shell, un environnement d’interpréteur de commandes interactif que vous pouvez utiliser dans votre navigateur. Vous pouvez utiliser Bash ou PowerShell avec Cloud Shell pour utiliser les services Azure. Vous pouvez utiliser les commandes préinstallées Cloud Shell pour exécuter le code de cet article sans avoir à installer quoi que ce soit dans votre environnement local.

Pour démarrer Azure Cloud Shell :

Option Exemple/Lien
Sélectionnez Essayer dans le coin supérieur droite d’un bloc de codes ou de commandes. La sélection de Essayer ne copie pas automatiquement le code ni la commande dans Cloud Shell. Screenshot that shows an example of Try It for Azure Cloud Shell.
Accédez à https://shell.azure.com ou sélectionnez le bouton Lancer Cloud Shell pour ouvrir Cloud Shell dans votre navigateur. Button to launch Azure Cloud Shell.
Sélectionnez le bouton Cloud Shell dans la barre de menus en haut à droite du portail Azure. Screenshot that shows the Cloud Shell button in the Azure portal

Pour utiliser Azure Cloud Shell :

  1. Démarrez Cloud Shell.

  2. Sélectionnez le bouton Copier sur un bloc de codes (ou un bloc de commandes) pour copier le code ou la commande.

  3. Collez le code ou la commande dans la session Cloud Shell en sélectionnant Ctrl+Maj+V sur Windows et Linux ou en sélectionnant Cmd+Maj+V sur macOS.

  4. Sélectionnez Entrée pour exécuter le code ou la commande.

Connexion à Azure

Pour vous connecter à Azure à l’aide de l’interface CLI, vous pouvez taper la commande suivante :

az login

Pour plus d’informations sur les options de connexion via l’interface CLI, consultez Se connecter avec Azure CLI

Créer une attribution de rôle

Attribuer des rôles pour toutes les clés

Utilisez la commande az keyvault role assignment create pour attribuer un rôle Utilisateur du chiffrement du HSM managé à l’utilisateur identifié par le nom d’utilisateur principal user2@contoso.com pour toutes les clés (étendue /keys) de ContosoHSM.

az keyvault role assignment create --hsm-name ContosoMHSM --role "Managed HSM Crypto User" --assignee user2@contoso.com  --scope /keys

Affecter un rôle pour une clé spécifique

Utilisez la commande az keyvault role assignment create pour attribuer un rôle Utilisateur du chiffrement du HSM managé à l’utilisateur identifié par le nom d’utilisateur principal user2@contoso.com pour une clé spécifique nommée myrsakey.

az keyvault role assignment create --hsm-name ContosoMHSM --role "Managed HSM Crypto User" --assignee user2@contoso.com  --scope /keys/myrsakey

Lister les attributions de rôles existantes

Utilisez az keyvault role assignment list pour lister les attributions de rôles.

Toutes les attributions de rôles au niveau de l’étendue / (valeur par défaut si aucune étendue n’est spécifiée) pour tous les utilisateurs (valeur par défaut quand aucun destinataire n’est spécifié)

az keyvault role assignment list --hsm-name ContosoMHSM

Toutes les attributions de rôles au niveau du HSM pour un utilisateur spécifique user1@contoso.com .

az keyvault role assignment list --hsm-name ContosoMHSM --assignee user@contoso.com

Notes

Quand la valeur de l’étendue est / (ou /keys), la commande list liste uniquement toutes les attributions de rôles au niveau supérieur et n’affiche pas les attributions de rôles au niveau des clés individuelles.

Toutes les attributions de rôles pour un utilisateur spécifique user2@contoso.com et une clé spécifique myrsakey.

az keyvault role assignment list --hsm-name ContosoMHSM --assignee user2@contoso.com --scope /keys/myrsakey

Une attribution de rôle spécifique pour le rôle Responsable du chiffrement du HSM managé pour un utilisateur spécifique user2@contoso.com et une clé spécifique myrsakey

az keyvault role assignment list --hsm-name ContosoMHSM --assignee user2@contoso.com --scope /keys/myrsakey --role "Managed HSM Crypto Officer"

Supprimer une attribution de rôle

Utilisez la commande az keyvault role assignment delete pour supprimer un rôle Responsable du chiffrement du HSM managé affecté à l’utilisateur user2@contoso.com pour la clé myrsakey2.

az keyvault role assignment delete --hsm-name ContosoMHSM --role "Managed HSM Crypto Officer" --assignee user2@contoso.com  --scope /keys/myrsakey2

Lister toutes les définitions de rôles disponibles

Utilisez la commande az keyvault role definition list pour lister toutes les définitions de rôles.

az keyvault role definition list --hsm-name ContosoMHSM

Créer une définition de rôle

Le module HSM managé a plusieurs rôles intégrés (prédéfinis) qui sont utiles pour les scénarios d’utilisation les plus courants. Vous pouvez définir votre propre rôle avec une liste d’actions spécifiques que celui-ci est autorisé à effectuer. Vous pouvez ensuite attribuer ce rôle à des principaux pour leur accorder l’autorisation sur les actions spécifiées.

Utilisez la commande az keyvault role definition create pour créer un rôle nommé My Custom Role avec une chaîne 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": []
}'

Utilisez la commande az keyvault role definition create pour créer un rôle à partir d’un fichier nommé my-custom-role-definition.json contenant la chaîne JSON d’une définition de rôle. Consultez l'exemple ci-dessus.

az keyvault role definition create --hsm-name ContosoMHSM --role-definition @my-custom-role-definition.json

Afficher les détails d’une définition de rôle

Utilisez la commande az keyvault role definition show pour afficher les détails d’une définition de rôle spécifique avec un nom (GUID).

az keyvault role definition show --hsm-name ContosoMHSM --name xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Mettre à jour une définition de rôle personnalisé

Utilisez la commande az keyvault role definition update pour mettre à jour un rôle nommé My Custom Role avec une chaîne 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": []
        }'

Supprimer la définition de rôle personnalisée

Utilisez la commande az keyvault role definition delete pour voir les détails d’une définition de rôle spécifique avec un nom (GUID).

az keyvault role definition delete --hsm-name ContosoMHSM --name xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Notes

Les rôles intégrés ne peuvent pas être supprimés. Quand des rôles personnalisés sont supprimés, toutes les attributions de rôles utilisant ce rôle personnalisé deviennent obsolètes.

Étapes suivantes