Come creare un insieme di credenziali delle chiavi di Azure e criteri di accesso all'insieme di credenziali usando un modello di Resource Manager
Azure Key Vault è un servizio cloud che offre un archivio sicuro per i segreti, quali chiavi, password, certificati e così via. Questo articolo descrive il processo di distribuzione di un modello di Azure Resource Manager (modello di ARM) per creare un insieme di credenziali delle chiavi.
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.
Prerequisiti
Per seguire la procedura descritta in questo articolo:
- Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.
Creare un modello di Resource Manager di Key Vault
Il modello seguente illustra un modo di base per creare un insieme di credenziali delle chiavi. Alcuni valori sono specificati nel modello.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"keyVaultName": {
"type": "string",
"metadata": {
"description": "Specifies the name of the key vault."
}
},
"skuName": {
"type": "string",
"defaultValue": "Standard",
"allowedValues": [
"Standard",
"Premium"
],
"metadata": {
"description": "Specifies whether the key vault is a standard vault or a premium vault."
}
}
},
"resources": [
{
"type": "Microsoft.KeyVault/vaults",
"apiVersion": "2019-09-01",
"name": "[parameters('keyVaultName')]",
"location": "[resourceGroup().location]",
"properties": {
"enabledForDeployment": "false",
"enabledForDiskEncryption": "false",
"enabledForTemplateDeployment": "false",
"tenantId": "[subscription().tenantId]",
"accessPolicies": [],
"sku": {
"name": "[parameters('skuName')]",
"family": "A"
},
"networkAcls": {
"defaultAction": "Allow",
"bypass": "AzureServices"
}
}
}
]
}
Per altre informazioni sulle impostazioni dei modelli di Key Vault, vedere Informazioni di riferimento sul modello di Resource Manager di Key Vault.
Importante
Se un modello viene ridistribuito, tutti i criteri di accesso esistenti nell'insieme di credenziali delle chiavi verranno sovrascritti. È consigliabile popolare la proprietà accessPolicies
con i criteri di accesso esistenti per evitare di perdere l'accesso all'insieme di credenziali delle chiavi.
Aggiungere un criterio di accesso a un modello di Resource Manager di Key Vault
È possibile distribuire i criteri di accesso a un insieme di credenziali delle chiavi esistente senza ridistribuire l'intero modello di insieme di credenziali delle chiavi. Il modello seguente illustra un modo di base per creare criteri di accesso:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"keyVaultName": {
"type": "string",
"metadata": {
"description": "Specifies the name of the key vault."
}
},
"objectId": {
"type": "string",
"metadata": {
"description": "Specifies the object ID of a user, service principal or security group in the Azure Active Directory tenant for the vault. The object ID must be unique for the list of access policies. Get it by using Get-AzADUser or Get-AzADServicePrincipal cmdlets."
}
},
"keysPermissions": {
"type": "array",
"defaultValue": [
"list"
],
"metadata": {
"description": "Specifies the permissions to keys in the vault. Valid values are: all, encrypt, decrypt, wrapKey, unwrapKey, sign, verify, get, list, create, update, import, delete, backup, restore, recover, and purge."
}
},
"secretsPermissions": {
"type": "array",
"defaultValue": [
"list"
],
"metadata": {
"description": "Specifies the permissions to secrets in the vault. Valid values are: all, get, list, set, delete, backup, restore, recover, and purge."
}
},
"certificatePermissions": {
"type": "array",
"defaultValue": [
"list"
],
"metadata": {
"description": "Specifies the permissions to certificates in the vault. Valid values are: all, create, delete, update, deleteissuers, get, getissuers, import, list, listissuers, managecontacts, manageissuers, recover, backup, restore, setissuers, and purge."
}
}
},
"resources": [
{
"type": "Microsoft.KeyVault/vaults/accessPolicies",
"name": "[concat(parameters('keyVaultName'), '/add')]",
"apiVersion": "2019-09-01",
"properties": {
"accessPolicies": [
{
"tenantId": "[subscription().tenantId]",
"objectId": "[parameters('objectId')]",
"permissions": {
"keys": "[parameters('keysPermissions')]",
"secrets": "[parameters('secretsPermissions')]",
"certificates": "[parameters('certificatePermissions')]"
}
}
]
}
}
]
}
Per ulteriori informazioni sulle impostazioni dei modelli di Key Vault, vedere Informazioni di riferimento sul modello di Resource Manager di Key Vault.
Altri modelli di Resource Manager di Key Vault
Sono disponibili altri modelli di Resource Manager per gli oggetti Key Vault:
Segreti | Chiavi | Certificati |
---|---|---|
N/D | N/D |
Altri modelli di Key Vault sono disponibili qui: Informazioni di riferimento su Resource Manager di Key Vault.
Distribuire i modelli
È possibile usare il portale di Azure per distribuire i modelli precedenti usando l'opzione Crea un modello personalizzato nell'editor come descritto di seguito: Distribuire risorse da un modello personalizzato.
È anche possibile salvare i modelli precedenti in file e usare questi comandi: New-AzResourceGroupDeployment e az deployment group create:
New-AzResourceGroupDeployment -ResourceGroupName ExampleGroup -TemplateFile key-vault-template.json
az deployment group create --resource-group ExampleGroup --template-file key-vault-template.json
Pulire le risorse
Se si prevede di continuare con le guide introduttive e le esercitazioni successive, è possibile lasciare queste risorse. Quando le risorse non sono più necessarie, eliminare il gruppo di risorse. Se si elimina il gruppo, vengono eliminati anche l'insieme di credenziali delle chiavi e le risorse correlate. Per eliminare il gruppo di risorse usando l'interfaccia della riga di comando di Azure o Azure PowerShell, completare questa procedura:
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."
Risorse
- Leggere una panoramica di Azure Key Vault.
- Per altre informazioni, vedere Gestione risorse di Azure.
- Vedere Panoramica della sicurezza di Azure Key Vault