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, certificati e altri segreti. Questa guida introduttiva è incentrata sul processo di distribuzione di un modello di Azure Resource Manager (modello ARM) per creare un Key Vault e un segreto.
Un modello Azure Resource Manager è un file JSON (JavaScript Object Notation) che definisce l'infrastruttura e la configurazione per il progetto. Il modello usa 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 si ha familiarità con l'uso dei modelli ARM, selezionare il pulsante Distribuisci su Azure. Il modello verrà aperto nel portale di Azure.
Prerequisiti
Per completare questo articolo:
- Se non si ha una sottoscrizione Azure, creare un account free prima di iniziare.
Rivedere il modello
Il modello usato in questa guida introduttiva è Azure Modelli di avvio rapido.
{
"$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": "10998800669048245550"
}
},
"parameters": {
"keyVaultName": {
"type": "string",
"metadata": {
"description": "Specifies the name of the key vault."
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Specifies the Azure location where the key vault should be created."
}
},
"enabledForDeployment": {
"type": "bool",
"defaultValue": false,
"metadata": {
"description": "Specifies whether Azure Virtual Machines are permitted to retrieve certificates stored as secrets from the key vault."
}
},
"enabledForDiskEncryption": {
"type": "bool",
"defaultValue": false,
"metadata": {
"description": "Specifies whether Azure Disk Encryption is permitted to retrieve secrets from the vault and unwrap keys."
}
},
"enabledForTemplateDeployment": {
"type": "bool",
"defaultValue": false,
"metadata": {
"description": "Specifies whether Azure Resource Manager is permitted to retrieve secrets from the key vault."
}
},
"tenantId": {
"type": "string",
"defaultValue": "[subscription().tenantId]",
"metadata": {
"description": "Specifies the Azure Active Directory tenant ID that should be used for authenticating requests to the key vault. Get it by using Get-AzSubscription cmdlet."
}
},
"skuName": {
"type": "string",
"defaultValue": "standard",
"allowedValues": [
"standard",
"premium"
],
"metadata": {
"description": "Specifies whether the key vault is a standard vault or a premium vault."
}
},
"secretsObject": {
"type": "secureObject",
"metadata": {
"description": "Specifies all secrets {\"secretName\":\"\",\"secretValue\":\"\"} wrapped in a secure object."
}
}
},
"resources": [
{
"type": "Microsoft.KeyVault/vaults",
"apiVersion": "2023-07-01",
"name": "[parameters('keyVaultName')]",
"location": "[parameters('location')]",
"properties": {
"enabledForDeployment": "[parameters('enabledForDeployment')]",
"enabledForTemplateDeployment": "[parameters('enabledForTemplateDeployment')]",
"enabledForDiskEncryption": "[parameters('enabledForDiskEncryption')]",
"enableRbacAuthorization": true,
"tenantId": "[parameters('tenantId')]",
"enableSoftDelete": true,
"softDeleteRetentionInDays": 90,
"enablePurgeProtection": true,
"sku": {
"name": "[parameters('skuName')]",
"family": "A"
},
"networkAcls": {
"defaultAction": "Allow",
"bypass": "AzureServices"
}
}
},
{
"copy": {
"name": "secrets",
"count": "[length(parameters('secretsObject').secrets)]"
},
"type": "Microsoft.KeyVault/vaults/secrets",
"apiVersion": "2023-07-01",
"name": "[format('{0}/{1}', parameters('keyVaultName'), parameters('secretsObject').secrets[copyIndex()].secretName)]",
"properties": {
"value": "[parameters('secretsObject').secrets[copyIndex()].secretValue]"
},
"dependsOn": [
"[resourceId('Microsoft.KeyVault/vaults', parameters('keyVaultName'))]"
]
}
],
"outputs": {
"location": {
"type": "string",
"value": "[parameters('location')]"
},
"name": {
"type": "string",
"value": "[parameters('keyVaultName')]"
},
"resourceGroupName": {
"type": "string",
"value": "[resourceGroup().name]"
},
"resourceId": {
"type": "string",
"value": "[resourceId('Microsoft.KeyVault/vaults', parameters('keyVaultName'))]"
}
}
}
Nel modello sono definite due risorse Azure:
-
Microsoft.KeyVault/vaults: creare un insieme di credenziali delle chiavi di Azure con l'autorizzazione di Azure RBAC abilitata (
enableRbacAuthorization: true), l'eliminazione temporanea abilitata e la protezione dall'eliminazione definitiva abilitata. -
Microsoft.KeyVault/vaults/secrets: creare uno o più segreti dell'insieme di credenziali, eseguendo l'iterazione sull'array
secretsObject.secretspassato al modello.
Poiché l'insieme di credenziali usa Azure RBAC per l'autorizzazione del piano dati, si concede l'accesso ai segreti assegnando un ruolo di Azure anziché configurare i criteri di accesso.
Altri esempi di modelli Azure Key Vault sono disponibili in Azure Modelli di avvio rapido.
Implementare il modello
Selezionare l'immagine seguente per accedere a Azure e aprire un modello. Il modello crea un insieme di credenziali delle chiavi e un segreto.
Selezionare o immettere i valori seguenti. A meno che non sia specificato, usare il valore predefinito.
Subscription: selezionare una sottoscrizione 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.
Key Vault Nome: immettere un nome per il key vault, che deve essere globalmente univoco all'interno dello spazio dei nomi
vault.azure.net. Questo nome è necessario nella sezione successiva quando si convalida la distribuzione.Nome SKU: selezionare Standard o Premium. Il valore predefinito è standard.
Oggetto Secrets: specificare i segreti da creare come oggetto JSON con una
secretsmatrice. Per esempio:{ "secrets": [ { "secretName": "adminpassword", "secretValue": "<your-secret-value>" } ] }Poiché Secrets Object è un
secureObjectparametro, il relativo valore non viene registrato o restituito dopo la distribuzione.
Selezionare Rivedi e crea e quindi Crea. Dopo che il Key Vault e il segreto sono stati distribuiti con successo, si riceve 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 sugli altri metodi di distribuzione, vedere Distribuire modelli.
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 ai segreti 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 tsvAssegna il ruolo Key Vault Secrets Officer a te stesso sul key vault:
echo "Enter your key vault name:" && read keyVaultName && az role assignment create --role "Key Vault Secrets 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 il segreto oppure usare lo script di interfaccia della riga di comando di Azure o Azure PowerShell seguente per elencare il segreto creato.
echo "Enter your key vault name:" &&
read keyVaultName &&
az keyvault secret list --vault-name $keyVaultName &&
echo "Press [ENTER] to continue ..."
Pulire le risorse
Altre guide introduttive ed esercitazioni relative a 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, eliminare il gruppo di risorse, che elimina il Key Vault e le risorse correlate. Per eliminare il gruppo di risorse usando interfaccia della riga di comando di Azure o 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 un segreto usando un modello di Resource Manager ed è stata convalidata la distribuzione. Per altre informazioni su Key Vault e Azure Resource Manager, continuare con gli articoli seguenti.
- Leggere una Panoramica di Azure Key Vault
- Altre informazioni su Azure Resource Manager
- Esaminare la panoramica della sicurezza Key Vault