Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Azure Key Vault è un servizio cloud che fornisce un archivio sicuro per i segreti, ad esempio chiavi, password e certificato. Questa guida di avvio rapido illustra il processo di distribuzione di un modello di Azure Resource Manager per creare un insieme di credenziali delle chiavi e una chiave.
Un modello di Azure Resource Manager è un file JSON (JavaScript Object Notation) che definisce l'infrastruttura e la configurazione del progetto. Il modello utilizza la sintassi dichiarativa. Si descrive la distribuzione prevista senza scrivere la sequenza di comandi di programmazione necessari per creare la distribuzione.
Se il tuo ambiente soddisfa i prerequisiti e hai familiarità con l'uso dei modelli ARM, seleziona il pulsante Distribuisci in Azure. Il modello verrà aperto nel portale di Azure.
Prerequisiti
Per completare questo articolo:
- Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.
- L'utente deve avere assegnato un ruolo predefinito di Azure, si consiglia il ruolo contributor. Fare clic qui per altre informazioni
Rivedere il modello
Il modello usato in questo avvio rapido proviene dai modelli di avvio rapido di Azure.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.42.1.51946",
"templateHash": "9113739717796369919"
}
},
"parameters": {
"vaultName": {
"type": "string",
"metadata": {
"description": "The name of the key vault to be created."
}
},
"keyName": {
"type": "string",
"metadata": {
"description": "The name of the key to be created."
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "The location of the resources."
}
},
"skuName": {
"type": "string",
"defaultValue": "standard",
"allowedValues": [
"standard",
"premium"
],
"metadata": {
"description": "The SKU of the vault to be created."
}
},
"keyType": {
"type": "string",
"defaultValue": "RSA",
"allowedValues": [
"EC",
"EC-HSM",
"RSA",
"RSA-HSM"
],
"metadata": {
"description": "The JsonWebKeyType of the key to be created."
}
},
"keyOps": {
"type": "array",
"defaultValue": [],
"metadata": {
"description": "The permitted JSON web key operations of the key to be created."
}
},
"keySize": {
"type": "int",
"defaultValue": 2048,
"metadata": {
"description": "The size in bits of the key to be created."
}
},
"curveName": {
"type": "string",
"defaultValue": "",
"allowedValues": [
"",
"P-256",
"P-256K",
"P-384",
"P-521"
],
"metadata": {
"description": "The JsonWebKeyCurveName of the key to be created."
}
}
},
"resources": [
{
"type": "Microsoft.KeyVault/vaults",
"apiVersion": "2023-07-01",
"name": "[parameters('vaultName')]",
"location": "[parameters('location')]",
"properties": {
"enableRbacAuthorization": true,
"enableSoftDelete": true,
"softDeleteRetentionInDays": 90,
"enablePurgeProtection": true,
"enabledForDeployment": false,
"enabledForDiskEncryption": false,
"enabledForTemplateDeployment": false,
"tenantId": "[subscription().tenantId]",
"sku": {
"name": "[parameters('skuName')]",
"family": "A"
},
"networkAcls": {
"defaultAction": "Allow",
"bypass": "AzureServices"
}
}
},
{
"type": "Microsoft.KeyVault/vaults/keys",
"apiVersion": "2023-07-01",
"name": "[format('{0}/{1}', parameters('vaultName'), parameters('keyName'))]",
"properties": {
"kty": "[parameters('keyType')]",
"keyOps": "[parameters('keyOps')]",
"keySize": "[parameters('keySize')]",
"curveName": "[parameters('curveName')]"
},
"dependsOn": [
"[resourceId('Microsoft.KeyVault/vaults', parameters('vaultName'))]"
]
}
],
"outputs": {
"proxyKey": {
"type": "object",
"value": "[reference(resourceId('Microsoft.KeyVault/vaults/keys', parameters('vaultName'), parameters('keyName')), '2023-07-01')]"
},
"location": {
"type": "string",
"value": "[parameters('location')]"
},
"name": {
"type": "string",
"value": "[parameters('vaultName')]"
},
"resourceGroupName": {
"type": "string",
"value": "[resourceGroup().name]"
},
"resourceId": {
"type": "string",
"value": "[resourceId('Microsoft.KeyVault/vaults', parameters('vaultName'))]"
}
}
}
Nel modello sono definite due risorse:
- Microsoft.KeyVault/vaults: creare un insieme di credenziali di Azure Key Vault.
- Microsoft. KeyVault/vaults/keys: creare una chiave dell'insieme di credenziali delle chiavi.
Il modello crea il Key Vault con l'autorizzazione Azure RBAC abilitata. Ciò significa che l'insieme di credenziali usa il controllo degli accessi in base al ruolo di Azure (Azure RBAC) per l'autorizzazione del piano dati, anziché i criteri di accesso.
Altri esempi di modelli di Azure Key Vault sono disponibili in Modelli di avvio rapido di Azure.
Parametri del modello
| Parametro | Description |
|---|---|
| vaultName | Nome del nuovo Key Vault. Deve essere univoco a livello globale all'interno del namespace vault.azure.net. |
| Keyname | Nome della chiave da creare nell'insieme di credenziali. |
| ubicazione | Area di Azure per le risorse. Il valore predefinito è la posizione del gruppo di risorse. |
| skuName | SKU del vault.
standard (impostazione predefinita) o premium. |
| keyType | Tipo di chiave da creare. Uno di RSA, RSA-HSM, EC, EC-HSM. Il valore predefinito è RSA. Vedere JsonWebKeyType. |
| Keysize | Dimensioni in bit della chiave (solo RSA). Il valore predefinito è 2048. |
| curveName | Nome della curva ellittica (solo chiavi EC). Uno di P-256, P-256K, P-384, P-521. Vedere JsonWebKeyCurveName. |
| keyOps | Operazioni consentite della chiave Web JSON per la chiave , ad esempio ["sign","verify","encrypt","decrypt","wrapKey","unwrapKey"]. La matrice vuota (impostazione predefinita) consente tutte le operazioni. |
Implementare il modello
Selezionare l'immagine seguente per accedere a Azure e aprire un modello. Il modello crea un Key Vault e una chiave.
Selezionare o immettere i valori seguenti. A meno che non sia specificato, usare il valore predefinito.
- Sottoscrizione: selezionare una sottoscrizione di Azure.
- Gruppo di risorse: selezionare Crea nuovo, immettere un nome univoco per il gruppo di risorse e quindi selezionare OK.
- Area: selezionare una località. Ad esempio Stati Uniti centrali.
-
Nome dell'insieme di credenziali: immettere un nome per l'insieme di credenziali delle chiavi, che deve essere univoco a livello globale all'interno del namespace
vault.azure.net. - Nome della chiave: immetti un nome per la chiave che memorizzi nell'insieme di credenziali.
- Nome SKU: selezionare Standard o Premium. Il valore predefinito è standard.
- Tipo di chiave: selezionare un tipo di chiave. Il valore predefinito è RSA.
- Dimensioni chiave: immettere una dimensione della chiave (chiavi RSA). Il valore predefinito è 2048.
- Nome della curva: per le chiavi EC, selezionare una curva. Lasciare vuoto per le chiavi RSA.
Selezionare Rivedi e crea e quindi Crea. Dopo aver distribuito correttamente l'insieme di credenziali delle chiavi e la chiave, viene visualizzata una notifica.
È anche possibile usare Azure PowerShell, il interfaccia della riga di comando di Azure o l'API REST per distribuire il modello. Per informazioni su altri metodi di distribuzione, vedere Modelli di distribuzione.
Assegnare un ruolo RBAC di Key Vault
L'insieme di credenziali creato da questo modello usa il controllo degli accessi in base al ruolo di Azure per l'autorizzazione. Per accedere alle chiavi tramite il piano dati, ad esempio usando il interfaccia della riga di comando di Azure o Azure PowerShell, è necessario assegnare a se stessi un ruolo appropriato.
Ottenere l'ID oggetto utente Microsoft Entra:
az ad signed-in-user show --query id -o tsvAssegnare il ruolo Key Vault Crypto Officer a se stessi nel key vault:
echo "Enter your key vault name:" && read keyVaultName && az role assignment create --role "Key Vault Crypto Officer" \ --assignee-object-id $(az ad signed-in-user show --query id -o tsv) \ --scope $(az keyvault show --name $keyVaultName --query id -o tsv)Note
La propagazione delle assegnazioni di ruolo potrebbe richiedere un minuto o due.
Esaminare le risorse distribuite
È possibile usare il portale di Azure per controllare l'insieme di credenziali delle chiavi e la chiave. In alternativa, usare l'interfaccia della riga di comando di Azure o lo script di Azure PowerShell seguente per elencare la chiave creata.
echo "Enter your key vault name:" &&
read keyVaultName &&
az keyvault key list --vault-name $keyVaultName &&
echo "Press [ENTER] to continue ..."
La creazione di una chiave con un modello di ARM è diversa dalla creazione della chiave tramite il piano dati
Creazione di una chiave tramite ARM
È possibile creare nuove chiavi solo. Non è possibile aggiornare le chiavi esistenti, né creare nuove versioni delle chiavi esistenti. Se la chiave esiste già, la chiave esistente viene recuperata dall'archiviazione e usata (non si verificheranno operazioni di scrittura).
Per poter usare questa API, il chiamante deve disporre dell'autorizzazione per l'azione di controllo degli accessi in base al ruolo "Microsoft.KeyVault/vaults/keys/write". Il ruolo predefinito "Collaboratore di Key Vault" è sufficiente, poiché autorizza tutte le azioni di controllo degli accessi in base al ruolo di Azure che corrispondono al modello "Microsoft.KeyVault/*".
API esistente (creazione della chiave tramite piano dati)
- È possibile creare nuove chiavi, aggiornare le chiavi esistenti e creare nuove versioni delle chiavi esistenti.
- Il chiamante deve essere autorizzato a usare questa API. Se per l'insieme di credenziali è abilitato Azure RBAC, il chiamante deve disporre della DataAction di Azure RBAC "Microsoft.KeyVault/vaults/keys/create/action".
Pulire le risorse
Altre guide introduttive e esercitazioni su Key Vault si basano su questa guida introduttiva. Se prevedi di continuare a lavorare con le guide introduttive e i tutorial successivi, potresti voler lasciare queste risorse intatte. Quando non è più necessario, elimina il gruppo di risorse, eliminando così il Key Vault e le risorse correlate. Per eliminare il gruppo di risorse con l'interfaccia della riga di comando di Azure oppure con Azure PowerShell:
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."
Note
L'eliminazione del gruppo di risorse elimina anche l'insieme di credenziali delle chiavi, ma quest'ultimo entra quindi in uno stato di eliminazione temporanea e rimane recuperabile per il periodo di conservazione (90 giorni per impostazione predefinita). Il nome dell'insieme di credenziali rimane riservato a livello globale durante tale periodo e, poiché la protezione dall'eliminazione è abilitata, l'insieme di credenziali non può essere eliminato in anticipo. Per gli insiemi di credenziali delle chiavi standard, gli insiemi di credenziali eliminati temporaneamente non comportano addebiti. Per altre informazioni, vedere Panoramica dell'eliminazione temporanea di Key Vault.
Passaggi successivi
In questa guida di avvio rapido sono stati creati un insieme di credenziali delle chiavi e una chiave con un modello di Resource Manager ed è stata convalidata la distribuzione. Per altre informazioni su Key Vault e Azure Resource Manager, vedere questi articoli.
- Leggi un' Panoramica di Azure Key Vault
- Vedere altre informazioni su Azure Resource Manager
- Vedere Panoramica della sicurezza di Key Vault