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 contenuto 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 blocco di codice o di comando. Quando si seleziona Prova, il codice o il comando non viene copiato automaticamente in Cloud Shell. Screenshot che mostra un esempio di Prova per Azure Cloud Shell.
Passare a https://shell.azure.com o selezionare il pulsante Avvia Cloud Shell per aprire Cloud Shell nel browser. Pulsante per avviare Azure Cloud Shell.
Selezionare il pulsante Cloud Shell nella barra dei menu nell'angolo in alto a destra del portale di Azure. Screenshot che mostra il pulsante Cloud Shell nel portale di Azure

Per usare Azure Cloud Shell:

  1. Avviare Cloud Shell.

  2. Selezionare il pulsante Copia in un blocco di codice (o in un blocco di comando) 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 o selezionando CMD+MAIUSC+V in macOS.

  4. Premere 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 il comando az keyvault role assignment create per assegnare un ruolo Managed HSM Crypto User all'utente identificato dal nome dell'entità utente user2@contoso.comper 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 il comando az keyvault role assignment create per assegnare un ruolo Managed HSM Crypto User identificato dal nome dell'entità utente user2@contoso.com 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 il comando az keyvault role definition create per un ruolo denominato Ruolo personalizzato 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 il comando az keyvault role definition create 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 il comando az keyvault role definition show 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 il comando az keyvault role definition update per aggiornare un ruolo denominato Ruolo personalizzato 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 il comando az keyvault role definition delete 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

Non è possibile eliminare i ruoli predefiniti. Quando vengono eliminati ruoli personalizzati, tutte le assegnazioni di ruolo che usano tale ruolo personalizzato diventano inattivi.

Passaggi successivi