Condividi tramite


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:

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

Passaggi successivi