Gestire l'insieme di credenziali delle chiavi tramite l'interfaccia della riga di comandoManage Key Vault using CLI

Usare questa esercitazione per imparare a usare l'insieme di credenziali delle chiavi di Azure per creare un contenitore finalizzato (insieme di credenziali) in Azure.Use this tutorial to help you get started with Azure Key Vault to create a hardened container (a vault) in Azure. L'insieme di credenziali delle chiavi di Azure viene usato per archiviare e gestire chiavi crittografiche e segreti.Azure Key vault is used to store and manage cryptographic keys and secrets. In questo articolo vengono fornite istruzioni dettagliate su come usare l'interfaccia della riga di comando multipiattaforma di Azure per creare un insieme di credenziali.This article walks you through the process of using Azure Cross-Platform Command-Line Interface to create a vault. L'insieme di credenziali verrà quindi usato per eseguire diverse operazioni comuni.You will then interact with the vault to perform various common operations.

L'insieme di credenziali delle chiavi di Azure è disponibile nella maggior parte delle aree.Azure Key Vault is available in most regions. Per altre informazioni, vedere la pagina Insieme di credenziali delle chiavi - Prezzi.For more information, see the Key Vault pricing page.

Tempo previsto per il completamento: 20 minutiEstimated time to complete: 20 minutes

Nota

Questa esercitazione non fornisce istruzioni su come scrivere l'applicazione Azure inclusa in uno dei passaggi.This tutorial does not include instructions on how to write the Azure application that one of the steps includes. Lo scopo di questa applicazione di esempio è mostrare come un'applicazione può essere autorizzata a usare una chiave o un segreto archiviato nell'insieme di credenziali delle chiavi.This sample application is used to show how an application can be authorized to use a key or secret stored in the key vault. Questo articolo è incentrato sulla configurazione dell'insieme di credenziali delle chiavi di Azure tramite l'interfaccia della riga di comando multipiattaforma.This article focuses on configuring Azure Key Vault using the Cross-Platform Command-Line Interface. Per le istruzioni relative ad Azure PowerShell, vedere questa esercitazione equivalente.For Azure PowerShell instructions, see this equivalent tutorial.

Per informazioni generali sull'insieme di credenziali di Azure, vedere Cos'è l'insieme di credenziali chiave di Azure?For overview information about Azure Key Vault, see What is Azure Key Vault?

PrerequisitiPrerequisites

Per completare l'esercitazione, sono necessari gli elementi seguenti:To complete this tutorial, you must have the following:

Risorse della Guida per l'interfaccia della riga di comando multipiattaforma di Microsoft AzureGetting help with Azure Cross-Platform Command-Line Interface

Questa esercitazione si presuppone che si abbia familiarità con l'interfaccia della riga di comando (Bash, terminal, prompt dei comandi)This tutorial assumes that you are familiar with the command-line interface (Bash, Terminal, Command prompt)

Il parametro --help o -h consente di visualizzare la Guida per specifici comandi.The --help or -h parameter can be used to view help for specific commands. In alternativa, è anche possibile utilizzare il formato azure help [comando] [opzioni] per ottenere le stesse informazioni.Alternately, The azure help [command] [options] format can also be used to return the same information. Ad esempio, tutti i comandi seguenti restituiranno le stesse informazioni:For example, the following commands all return the same information:

azure account set --help

azure account set -h

azure help account set

In caso di dubbi sui parametri necessari per un comando, fare riferimento alla Guida utilizzando --help, -h o azure help [comando].When in doubt about the parameters needed by a command, refer to help using --help, -h or azure help [command].

È consigliabile leggere anche le seguenti esercitazioni per acquisire familiarità con il modello di distribuzione Gestione risorse di Azure nell'interfaccia della riga di comando multipiattaforma di Azure:You can also read the following tutorials to get familiar with Azure Resource Manager deploymnent model in Azure Cross-Platform Command-Line Interface:

Connettersi alle sottoscrizioniConnect to your subscriptions

Accedere ad Azure usando il comando seguente:To log in into Azure by using the following command:

azure login -u username -p password

Se invece si vuole accedere digitando in modo interattivoor if you want to log in by typing interactively

azure login

Se si dispone di più sottoscrizioni e se ne vuole specificare una in particolare da usare per l'insieme di credenziali delle chiavi di Azure, digitare quanto segue per visualizzare le sottoscrizioni per il proprio account:If you have multiple subscriptions and want to specify a specific one to use for Azure Key Vault, type the following to see the subscriptions for your account:

azure account list

Quindi, per specificare la sottoscrizione da usare, digitare.Then, to specify the subscription to use, type:

azure account set <subscription name>

Per altre informazioni sulla configurazione dell'interfaccia della riga di comando multipiattaforma di Azure, vedere Installare e configurare l'interfaccia della riga di comando multipiattaforma di Azure.For more information about configuring Azure Cross-Platform Command-Line Interface, see How to Install and Configure Azure Cross-Platform Command-Line Interface.

Passare all'uso di Gestione risorse di AzureSwitch to using Azure Resource Manager

Poiché per l'insieme di credenziali delle chiavi è necessario Gestione risorse di Azure, digitare quanto segue per passare alla modalità Gestione risorse di Azure:The Key Vault requires Azure Resource Manager, so type the following to switch to Azure Resource Manager mode:

azure config mode arm

Creare un nuovo gruppo di risorseCreate a new resource group

Quando si usa Gestione risorse di Azure, tutte le risorse correlate vengono create in un gruppo di risorse.When using Azure Resource Manager, all related resources are created inside a resource group. Per questa esercitazione si creerà un nuovo gruppo di risorse denominato 'ContosoResourceGroup'.We will create a new resource group 'ContosoResourceGroup' for this tutorial.

azure group create 'ContosoResourceGroup' 'East Asia'

Il primo parametro è il nome del gruppo di risorse e il secondo è la posizione.The first parameter is resource group name and the second parameter is the location. Per la posizione usare il comando azure location list per identificare come si specifica una posizione alternativa a quella di questo esempio.For location, use the command azure location list to identify how to specify an alternative location to the one in this example. Se servono altre informazioni, digitare: azure help locationIf you need more information, type: azure help location

Registrare il provider di risorse dell'insieme di credenziali delle chiaviRegister the Key Vault resource provider

Verificare che il provider di risorse dell'insieme di credenziali delle chiavi sia registrato nella sottoscrizione:Make sure that Key Vault resource provider is registered in your subscription:

azure provider register Microsoft.KeyVault

Quest'operazione deve essere eseguita una volta sola per ogni sottoscrizione.This only needs to be done once per subscription.

Creare un insieme di credenziali delle chiaviCreate a key vault

Usare il comando azure keyvault create per creare un insieme di credenziali delle chiavi.Use the azure keyvault create command to create a key vault. Questo script ha tre parametri obbligatori: un nome del gruppo di risorse, un nome dell'insieme di credenziali delle chiavi e la località geografica.This script has three mandatory parameters: a resource group name, a key vault name, and the geographic location.

ad esempio:For example:

  • Se si usa ContosoKeyVault come nome dell'insieme di credenzialiIf you use the vault name of ContosoKeyVault
  • ContosoResourceGroup come nome del gruppo di risorseThe resource group name of ContosoResourceGroup
  • Stati Uniti orientali come località digitare:The location of East Asia type:
azure keyvault create --vault-name 'ContosoKeyVault' --resource-group 'ContosoResourceGroup' --location 'East Asia'

L'output di questo comando mostra le proprietà dell'insieme di credenziali delle chiavi appena creato.The output of this command shows properties of the key vault that you've just created. Le due proprietà più importanti sono:The two most important properties are:

  • Name: nell'esempio corrisponde a ContosoKeyVault.Name: In the example this is ContosoKeyVault. Questo nome verrà usato per altri cmdlet di insieme di credenziali delle chiavi.You will use this name for other Key Vault cmdlets.
  • vaultUri: nell'esempio corrisponde a https://contosokeyvault.vault.azure.net.vaultUri: In the example this is https://contosokeyvault.vault.azure.net. Le applicazioni che usano l'insieme di credenziali tramite l'API REST devono usare questo URI.Applications that use your vault through its REST API must use this URI.

L'account Azure ora è autorizzato a eseguire qualsiasi operazione su questo insieme di credenziali delle chiavi.Your Azure account is now authorized to perform any operations on this key vault. Nessun altro lo è ancora.As yet, nobody else is.

Aggiungere una chiave o un segreto all'insieme di credenziali delle chiaviAdd a key or secret to the key vault

Per usare l'insieme di credenziali delle chiavi di Azure per creare automaticamente una chiave protetta tramite software, eseguire il comando azure key create e digitare quanto segue:If you want Azure Key Vault to create a software-protected key for you, use the azure key create command, and type the following:

azure keyvault key create --vault-name 'ContosoKeyVault' --key-name 'ContosoFirstKey' --destination software

Tuttavia, se si ha una chiave esistente in un file con estensione PEM salvato come file locale in un file denominato softkey.pem che si vuole caricare nell'insieme di credenziali delle chiavi di Azure, digitare il comando seguente per importare la chiave dal file PEM che protegge la chiave tramite software nel servizio dell'insieme di credenziali delle chiavi:However, if you have an existing key in a .pem file saved as local file in a file named softkey.pem that you want to upload to Azure Key Vault, type the following to import the key from the .PEM file, which protects the key by software in the Key Vault service:

azure keyvault key import --vault-name 'ContosoKeyVault' --key-name 'ContosoFirstKey' --pem-file './softkey.pem' --password 'PaSSWORD' --destination software

A questo punto è possibile fare riferimento alla chiave creata o caricata nell'insieme di credenziali delle chiavi di Azure, usando il relativo URI.You can now reference the key that you created or uploaded to Azure Key Vault, by using its URI. Usare https://ContosoKeyVault.vault.azure.net/keys/ContosoFirstKey per ottenere sempre la versione corrente e usare https://ContosoKeyVault.vault.azure.net/keys/ContosoFirstKey/cgacf4f763ar42ffb0a1gca546aygd87 per ottenere questa versione specifica.Use https://ContosoKeyVault.vault.azure.net/keys/ContosoFirstKey to always get the current version, and use https://ContosoKeyVault.vault.azure.net/keys/ContosoFirstKey/cgacf4f763ar42ffb0a1gca546aygd87 to get this specific version.

Per aggiungere un segreto all'insieme di credenziali, ovvero una password denominata SQLPassword con il valore Pa$$w0rd per l'insieme di credenziali delle chiavi, digitare quanto segue:To add a secret to the vault, which is a password named SQLPassword and that has the value of Pa$$w0rd to Azure Key Vault, type the following:

azure keyvault secret set --vault-name 'ContosoKeyVault' --secret-name 'SQLPassword' --value 'Pa$$w0rd'

È ora possibile fare riferimento a questa password aggiunta nell'insieme di credenziali delle chiavi di Azure, usando il relativo URI.You can now reference this password that you added to Azure Key Vault, by using its URI. Usare https://ContosoVault.vault.azure.net/secrets/SQLPassword per ottenere sempre la versione corrente e usare https://ContosoVault.vault.azure.net/secrets/SQLPassword/90018dbb96a84117a0d2847ef8e7189d per ottenere questa versione specifica.Use https://ContosoVault.vault.azure.net/secrets/SQLPassword to always get the current version, and use https://ContosoVault.vault.azure.net/secrets/SQLPassword/90018dbb96a84117a0d2847ef8e7189d to get this specific version.

Ora si può visualizzare la chiave o il segreto appena creato:Let's view the key or secret that you just created:

  • Per visualizzare la chiave, digitare: azure keyvault key list --vault-name 'ContosoKeyVault'To view your key, type: azure keyvault key list --vault-name 'ContosoKeyVault'
  • Per visualizzare il segreto, digitare: azure keyvault secret list --vault-name 'ContosoKeyVault'To view your secret, type: azure keyvault secret list --vault-name 'ContosoKeyVault'

Registrare un'applicazione con Azure Active DirectoryRegister an application with Azure Active Directory

Questo passaggio di solito viene eseguito da uno sviluppatore, su un computer separato.This step would usually be done by a developer, on a separate computer. Anche se non è specifico dell'insieme di credenziali delle chiavi di Azure, viene incluso qui per completezza.It is not specific to Azure Key Vault but is included here, for completeness.

Importante

Per completare l'esercitazione, l'account, l'insieme di credenziali e l'applicazione in cui si registrerà questo passaggio devono essere tutti nella stessa istanza di Azure Active Directory.To complete the tutorial, your account, the vault, and the application that you will register in this step must all be in the same Azure Active directory.

Le applicazioni che usano un insieme di credenziali delle chiavi devono eseguire l'autenticazione con un token di Azure Active Directory.Applications that use a key vault must authenticate by using a token from Azure Active Directory. A tale scopo, il proprietario dell'applicazione deve innanzitutto registrare l'applicazione in Azure Active Directory.To do this, the owner of the application must first register the application in their Azure Active Directory. Al termine della registrazione, il proprietario dell'applicazione ottiene i valori seguenti:At the end of registration, the application owner gets the following values:

  • ID applicazioneAn Application ID
  • Chiave di autenticazione, detta anche segreto condivisoAn authentication key (also known as the shared secret).

L'applicazione deve presentare entrambi questi valori ad Azure Active Directory, per ottenere un token.The application must present both these values to Azure Active Directory, to get a token. La configurazione dell'applicazione per eseguire questa operazione dipende dall'applicazione.How the application is configured to do this depends on the application. Per l'applicazione di esempio per l'insieme di credenziali delle chiavi, il proprietario dell'applicazione imposta questi valori nel file app.config.For the Key Vault sample application, the application owner sets these values in the app.config file.

Per la procedura dettagliata per registrare un'applicazione in Azure Active Directory, vedere l'articolo Integrazione di applicazioni con Azure Active Directory o Usare il portale per creare un'applicazione Azure Active Directory e un'entità servizio che possano accedere alle risorse. Per registrare l'applicazione in Azure Active Directory:For detailed steps on registering an application with Azure Active Directory you should review the article titled Integrating applications with Azure Active Directory or Use portal to create an Azure Active Directory application and service principal that can access resources To register the application in Azure Active Directory:

  1. Accedere al portale di Azure.Sign in to the Azure portal.
  2. Fare clic su Registrazioni per l'app a sinistra.On the left, click App registrations. Se la voce Registrazioni per l'app non viene visualizzata, fare clic su Altri servizi per cercarla.If you don't see app registrations you click on more services and find it there.
    >[!NOTE] È necessario selezionare la stessa directory che contiene la sottoscrizione di Azure con cui è stato creato l'insieme di credenziali delle chiavi.You must select the same directory that contains the Azure subscription with which you created your key vault.
  3. Fare clic su Registrazione nuova applicazione.Click New application registration.
  4. Nel pannello Crea specificare un nome per l'applicazione e quindi selezionare Applicazione Web e/o API Web (impostazione predefinita) e specificare l'URL di accesso per l'applicazione Web.On the Create blade provide a name for your application, and then select WEB APPLICATION AND/OR WEB API (the default) and specify the SIGN-ON URL for your web application. Se al momento non si hanno queste informazioni, per questo passaggio si può specificare qualsiasi valore, ad esempio http://test1.contoso.com.If you don't have this information at this time, you can make it up for this step (for example, you could specify http://test1.contoso.com ). Non è importante se questi siti esistono.It does not matter if these sites exist.

    Registrazione nuova applicazione

  5. Selezionare il pulsante Create .Click the Create button.

  6. Al termine della registrazione dell'app, verrà visualizzato l'elenco delle app registrate.When the app registration is completed you can see the list of registered apps. Trovare l'app appena registrata e fare clic su di essa.Find the app that you just registered and click on it.
  7. Fare clic sul pannello App registrata e copiare l'ID applicazione.Click on the Registered app blade copy the Application ID
  8. Fare clic su Tutte le impostazioni.Click on All settings
  9. Nel pannello Impostazioni fare clic su chiavi.On the Settings blade click on keys
  10. Digitare una descrizione nella casella Descrizione chiave, selezionare una durata e quindi fare clic su SALVA.Type in a description in the Key description box and select a duration, and then click SAVE. La pagina viene aggiornata e mostra un valore chiave.The page refreshes and now shows a key value.
  11. Le informazioni di ID applicazione e Chiave verranno usate nel passaggio successivo per impostare le autorizzazioni per l'insieme di credenziali.You will use the Application ID and the Key information in the next step to set permissions on your vault.

Autorizzare l'applicazione a usare la chiave o il segretoAuthorize the application to use the key or secret

Per autorizzare l'accesso da parte dell'applicazione alla chiave o al segreto nell'insieme di credenziali, usare:To authorize the application to access the key or secret in the vault, use:

azure keyvault set-policy

Ad esempio, se il nome dell'insieme di credenziali è ContosoKeyVault e l'applicazione che si desidera autorizzare ha un ID client 8f8c4bbd-485b-45fd-98f7-ec6300b7b4ed e si vuole autorizzare l'applicazione a decrittografare e firmare con le chiavi dell'insieme di credenziali, eseguire quanto segue:For example, if your vault name is ContosoKeyVault and the application you want to authorize has a client ID of 8f8c4bbd-485b-45fd-98f7-ec6300b7b4ed, and you want to authorize the application to decrypt and sign with keys in your vault, then run the following:

azure keyvault set-policy --vault-name 'ContosoKeyVault' --spn 8f8c4bbd-485b-45fd-98f7-ec6300b7b4ed --perms-to-keys '[\"decrypt\",\"sign\"]'

Nota

Se si eseguono prompt dei comandi di Windows, sostituire le virgolette singole con virgolette doppie e aggiungere il carattere di escape prima delle virgolette doppie interne.If you are running on Windows command prompt, you should replace single quotes with double quotes, and also escape the internal double quotes. Ad esempio: "["decrypt","sign"]".For example: "["decrypt","sign"]".

Se si desidera autorizzare la stessa applicazione per la lettura di tutti i segreti nell'insieme di credenziali, eseguire le seguenti operazioni:If you want to authorize that same application to read secrets in your vault, run the following:

azure keyvault set-policy --vault-name 'ContosoKeyVault' --spn 8f8c4bbd-485b-45fd-98f7-ec6300b7b4ed --perms-to-secrets '[\"get\"]'

Per usare un modulo di protezione hardwareIf you want to use a hardware security module (HSM)

Per una maggiore sicurezza, è possibile importare o generare le chiavi in moduli di protezione hardware (HSM) che rimangono sempre entro il limite HSM.For added assurance, you can import or generate keys in hardware security modules (HSMs) that never leave the HSM boundary. I moduli di protezione hardware sono certificati per FIPS 140-2 livello 2.The HSMs are FIPS 140-2 Level 2 validated. Se questo requisito non è applicabile, saltare questa sezione e andare a Eliminare l'insieme di credenziali delle chiavi e le chiavi e i segreti associati.If this requirement doesn't apply to you, skip this section and go to Delete the key vault and associated keys and secrets.

Per creare queste chiavi HSM protette, è necessaria una sottoscrizione all'insieme di credenziali che supporti le chiavi HSM protette.To create these HSM-protected keys, you must have a vault subscription that supports HSM-protected keys.

Quando si crea l'insieme di credenziali, aggiungere il parametro 'sku':When you create the keyvault, add the 'sku' parameter:

azure azure keyvault create --vault-name 'ContosoKeyVaultHSM' --resource-group 'ContosoResourceGroup' --location 'East Asia' --sku 'Premium'

È possibile aggiungere a questo insieme di credenziali chiavi protette tramite software (come illustrato in precedenza) e chiavi HSM protette.You can add software-protected keys (as shown earlier) and HSM-protected keys to this vault. Per creare una chiave HSM protetta, impostare il parametro Destination su 'HSM':To create an HSM-protected key, set the Destination parameter to 'HSM':

azure keyvault key create --vault-name 'ContosoKeyVaultHSM' --key-name 'ContosoFirstHSMKey' --destination 'HSM'

È possibile usare il comando seguente per importare una chiave da un file con estensione PEM nel computer.You can use the following command to import a key from a .pem file on your computer. Questo comando importa la chiave nei moduli HSM nel servizio dell'insieme di credenziali delle chiavi:This command imports the key into HSMs in the Key Vault service:

azure keyvault key import --vault-name 'ContosoKeyVaultHSM' --key-name 'ContosoFirstHSMKey' --pem-file '/.softkey.pem' --destination 'HSM' --password 'PaSSWORD'

Il comando successivo importa un pacchetto "bring your own key" (BYOK).The next command imports a “bring your own key" (BYOK) package. Ciò consente di generare la chiave nel modulo HSM locale e di trasferirlo in moduli HSM nel servizio dell'insieme di credenziali delle chiavi, senza che la chiave esca dal limite HSM:This lets you generate your key in your local HSM, and transfer it to HSMs in the Key Vault service, without the key leaving the HSM boundary:

azure keyvault key import --vault-name 'ContosoKeyVaultHSM' --key-name 'ContosoFirstHSMKey' --byok-file './ITByok.byok' --destination 'HSM'

Per istruzioni più dettagliate su come generare questo pacchetto BYOK, vedere Come usare chiavi HSM protette con l'insieme di credenziali delle chiavi di Azure.For more detailed instructions about how to generate this BYOK package, see How to use HSM-Protected Keys with Azure Key Vault.

Eliminare l'insieme di credenziali delle chiavi e le chiavi e i segreti associatiDelete the key vault and associated keys and secrets

Se l'insieme di credenziali delle chiavi e la chiave o il segreto associato non sono più necessari, è possibile eliminare l'insieme di credenziali delle chiavi usando il comando azure keyvault delete:If you no longer need the key vault and the key or secret that it contains, you can delete the key vault by using the azure keyvault delete command:

azure keyvault delete --vault-name 'ContosoKeyVault'

In alternativa, è possibile eliminare l'intero gruppo di risorse di Azure, che include l'insieme di credenziali delle chiavi e tutte le altre risorse incluse in quel gruppo:Or, you can delete an entire Azure resource group, which includes the key vault and any other resources that you included in that group:

azure group delete --name 'ContosoResourceGroup'

Altri comandi dell'interfaccia della riga di comando multipiattaforma di AzureOther Azure Cross-Platform Command-line Interface Commands

Altri comandi che potrebbero essere utili per la gestione dell'insieme di credenziali delle chiavi di Azure.Other commands that you might useful for managing Azure Key Vault.

Questo comando ottiene una visualizzazione tabulare di tutte le chiavi e le proprietà selezionate:This command lists a tabular display of all keys and selected properties:

azure keyvault key list --vault-name 'ContosoKeyVault'

Questo comando visualizza un elenco completo di proprietà per la chiave specificata:This command displays a full list of properties for the specified key:

azure keyvault key show --vault-name 'ContosoKeyVault' --key-name 'ContosoFirstKey'

Questo comando ottiene una visualizzazione tabulare di tutti nomi dei segreti e tutte le proprietà selezionate:This command lists a tabular display of all secret names and selected properties:

azure keyvault secret list --vault-name 'ContosoKeyVault'

Ecco un esempio di come rimuovere una chiave specifica:Here's an example of how to remove a specific key:

azure keyvault key delete --vault-name 'ContosoKeyVault' --key-name 'ContosoFirstKey'

Ecco un esempio di come rimuovere un segreto specifico:Here's an example of how to remove a specific secret:

azure keyvault secret delete --vault-name 'ContosoKeyVault' --secret-name 'SQLPassword'

Passaggi successiviNext steps