Gestione dei ruoli del modulo di protezione hardware gestito

Nota

Key Vault supporta due tipi di risorsa: insiemi di credenziali e moduli di protezione hardware gestiti. Questo articolo riguarda il modulo di protezione hardware gestito. Per informazioni su come gestire un insieme di credenziali, vedere Gestire Key Vault con l'interfaccia della riga di comando di Azure.

Per una panoramica del modulo di protezione hardware gestito, vedere Che cos'è il modulo di protezione hardware gestito?. Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.

Questo articolo illustra come gestire i ruoli per un piano dati del modulo di protezione hardware gestito. Per informazioni sul modello di controllo di accesso del modulo di protezione hardware gestito, vedere Controllo di accesso del modulo di protezione hardware gestito.

Per consentire a un'entità di sicurezza, ad esempio un utente, un'entità servizio, un gruppo o un'identità gestita, di eseguire operazioni del piano dati del modulo di protezione hardware gestito, è necessario assegnare all'entità un ruolo che consenta l'esecuzione di tali operazioni. Se, ad esempio, si vuole consentire a un'applicazione di eseguire un'operazione di firma usando una chiave, è necessario assegnare all'applicazione un ruolo che includa "Microsoft.KeyVault/managedHSM/keys/sign/action" tra le azioni dati. Un ruolo può essere assegnato a un ambito specifico. Il controllo degli accessi in base al ruolo locale del modulo di protezione hardware gestito supporta due ambiti, a livello di modulo di protezione hardware (/ o /keys) e per chiave (/keys/<keyname>).

Per un elenco di tutti i ruoli predefiniti del modulo di protezione hardware gestito e delle relative operazioni consentite, vedere Ruoli predefiniti del modulo di protezione hardware gestito.

Prerequisiti

Per usare i comandi dell'interfaccia della riga di comando di Azure in questo articolo, sono necessari gli elementi seguenti:

Azure Cloud Shell

Azure Cloud Shell è un ambiente di shell interattivo ospitato in Azure e usato tramite il browser. È possibile usare Bash o PowerShell con Cloud Shell per usare i servizi di Azure. È possibile usare i comandi preinstallati di Cloud Shell per eseguire il codice in questo articolo, senza dover installare alcun elemento nell'ambiente locale.

Per avviare Azure Cloud Shell:

Opzione Esempio/Collegamento
Selezionare Prova nell'angolo superiore destro di un codice o di un blocco di comandi. Selezionando Prova non viene copiato automaticamente il codice o il comando in Cloud Shell. Screenshot that shows an example of Try It for Azure Cloud Shell.
Passare a https://shell.azure.com o selezionare il pulsante Avvia Cloud Shell per aprire Cloud Shell nel browser. Button to launch Azure Cloud Shell.
Selezionare il pulsante Cloud Shell nella barra dei menu nell'angolo in alto a destra del portale di Azure. Screenshot that shows the Cloud Shell button in the Azure portal

Per usare Azure Cloud Shell:

  1. Avviare Cloud Shell.

  2. Selezionare il pulsante Copia in un blocco di codice (o blocco di comandi) per copiare il codice o il comando.

  3. Incollare il codice o il comando nella sessione di Cloud Shell selezionando CTRL+MAIUSC+V in Windows e Linux oppure selezionando CMD+MAIUSC+V in macOS.

  4. Selezionare INVIO per eseguire il codice o il comando.

Accedere ad Azure

Per accedere ad Azure usando l'interfaccia della riga di comando è possibile digitare:

az login

Per altre informazioni sulle opzioni di accesso con l'interfaccia della riga di comando, vedere Accedere con l'interfaccia della riga di comando di Azure

Creare una nuova assegnazione di ruolo

Assegnare ruoli per tutte le chiavi

Usare az keyvault role assignment create il comando per assegnare un ruolo utente di crittografia del modulo di protezione hardware gestito all'utente identificato dal nome user2@contoso.com dell'entità utente per tutte le chiavi (ambito /keys) in ContosoHSM.

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

Assegnare il ruolo per una chiave specifica

Usare az keyvault role assignment create il comando per assegnare un ruolo crypto utente del modulo di protezione hardware gestito all'utente identificato dal nome user2@contoso.com dell'entità utente per una chiave specifica denominata myrsakey.

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

Elencare le assegnazioni di ruolo esistenti

Usare az keyvault role assignment list per elencare le assegnazioni di ruolo.

Tutte le assegnazioni di ruolo nell'ambito / (impostazione predefinita quando non è specificato alcun valore per --scope) per tutti gli utenti (impostazione predefinita quando non è specificato alcun valore per --assignee)

az keyvault role assignment list --hsm-name ContosoMHSM

Tutte le assegnazioni di ruolo a livello del modulo di protezione hardware per un utente specifico user1@contoso.com.

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

Nota

Quando scope è / (o /keys) il comando list elenca solo tutte le assegnazioni di ruolo al livello superiore e non mostra le assegnazioni di ruolo a livello di chiave individuale.

Tutte le assegnazioni di ruolo per un utente specifico user2@contoso.com per una chiave specifica myrsakey.

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

Un'assegnazione di ruolo specifica per il ruolo Managed HSM Crypto Officer per un utente specifico user2@contoso.com per una chiave specifica myrsakey

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

Eliminare un'assegnazione di ruolo

Usare il comando az keyvault role assignment delete per eliminare un ruolo Managed HSM Crypto Officer assegnato all'utente user2@contoso.com per la chiave myrsakey2.

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

Elencare tutte le definizioni del ruolo disponibili

Usare il comando az keyvault role definition list per elencare tutte le definizioni del ruolo.

az keyvault role definition list --hsm-name ContosoMHSM

Creare una nuova definizione di ruolo

Il modulo di protezione hardware gestito include diversi ruoli predefiniti (predefiniti) utili per gli scenari di utilizzo più comuni. È possibile definire il proprio ruolo con un elenco di azioni specifiche che il ruolo può eseguire. È quindi possibile assegnare questo ruolo alle entità per concedere loro l'autorizzazione alle azioni specificate.

Usare az keyvault role definition create il comando per un ruolo denominato My Custom Role usando una stringa 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": []
}'

Usare az keyvault role definition create il comando per un ruolo da un file denominato my-custom-role-definition.json contenente la stringa JSON per una definizione di ruolo. Vedere l'esempio precedente.

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

Visualizzare i dettagli di una definizione di ruolo

Usare az keyvault role definition show il comando per visualizzare i dettagli di una definizione di ruolo specifica usando il nome (GUID).

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

Aggiornare una definizione di ruolo personalizzata

Usare az keyvault role definition update il comando per aggiornare un ruolo denominato My Custom Role usando una stringa 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": []
        }'

Elimina la definizione del ruolo personalizzata

Usare az keyvault role definition delete il comando per visualizzare i dettagli di una definizione di ruolo specifica usando il nome (GUID).

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

Nota

I ruoli predefiniti non possono essere eliminati. Quando vengono eliminati ruoli personalizzati, tutte le assegnazioni di ruolo che usano tale ruolo personalizzato diventano inattivi.

Passaggi successivi