Como criar uma política de acesso a cofre e cofre Azure utilizando um modelo de Gestor de RecursosHow to create an Azure key vault and vault access policy by using a Resource Manager template

Azure Key Vault é um serviço de nuvem que fornece uma loja segura para segredos como chaves, senhas e certificados.Azure Key Vault is a cloud service that provides a secure store for secrets like keys, passwords, and certificates. Este artigo descreve o processo de implantação de um modelo de Gestor de Recursos Azure (modelo ARM) para criar um cofre chave.This article describes the process for deploying an Azure Resource Manager template (ARM template) to create a key vault.

Um modelo do ARM é um ficheiro JavaScript Object Notation (JSON) que define a infraestrutura e a configuração do seu projeto.An ARM template is a JavaScript Object Notation (JSON) file that defines the infrastructure and configuration for your project. O modelo utiliza sintaxe declarativa.The template uses declarative syntax. Em sintaxe declarativa o programador descreve a implementação pretendida sem escrever a sequência de comandos de programação para criar a implementação.In declarative syntax, you describe your intended deployment without writing the sequence of programming commands to create the deployment.

Pré-requisitosPrerequisites

Para completar os passos deste artigo:To complete the steps in this article:

  • Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.If you don't have an Azure subscription, create a free account before you start.

Crie um modelo de gestor de recursos de cofre de chaveCreate a Key Vault Resource Manager template

O modelo a seguir mostra uma forma básica de criar um cofre chave.The following template shows a basic way to create a key vault. Alguns valores são especificados no modelo.Some values are specified in the template.

{
  "$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"
        }
      }
    }
  ]
}

Para obter mais informações sobre as definições do modelo do cofre de chaves, consulte a referência do modelo key Vault ARM.For more about Key Vault template settings, see Key Vault ARM template reference.

Importante

Se um modelo for redistribuído, quaisquer políticas de acesso existentes no cofre chave serão ultrapassadas.If a template is redeployed, any existing access policies in the key vault will be overridden. Recomendamos que preencha a accessPolicies propriedade com as políticas de acesso existentes para evitar perder o acesso ao cofre chave.We recommend that you populate the accessPolicies property with existing access policies to avoid losing access to the key vault.

Adicione uma política de acesso a um modelo de Gestor de Recursos de Cofre de ChaveAdd an access policy to a Key Vault Resource Manager template

Pode implementar políticas de acesso a um cofre de chaves existente sem recolocar todo o modelo do cofre de chaves.You can deploy access policies to an existing key vault without redeploying the entire key vault template. O modelo a seguir mostra uma forma básica de criar políticas de acesso:The following template shows a basic way to create access policies:

{
  "$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('certificatesPermissions')]"
            }
          }
        ]
      }
    }
  ]
}

Para obter mais informações sobre as definições do modelo do Cofre de Chaves, consulte a referência do modelo key Vault ARM.For more information about Key Vault template settings, see Key Vault ARM template reference.

Mais modelos de gestor de recursos de cofre de cofreMore Key Vault Resource Manager templates

Existem outros modelos de Gestor de Recursos disponíveis para objetos do Cofre chave:There are other Resource Manager templates available for Key Vault objects:

SegredosSecrets ChavesKeys CertificadosCertificates
N/DN/A N/DN/A

Pode encontrar mais modelos de Cofre chave aqui: referência do Gestor de Recursos do Cofre de Chaves.You can find more Key Vault templates here: Key Vault Resource Manager reference.

Implementar os modelosDeploy the templates

Pode utilizar o portal Azure para implementar os modelos anteriores utilizando o seu próprio modelo na opção de editor, conforme descrito aqui: Implementar recursos a partir de um modelo personalizado.You can use the Azure portal to deploy the preceding templates by using the Build your own template in editor option as described here: Deploy resources from a custom template.

Também pode guardar os modelos anteriores para ficheiros e utilizar estes comandos: New-AzResourceGroupDeployment e grupo de implementação az criar:You can also save the preceding templates to files and use these commands: New-AzResourceGroupDeployment and 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

Limpar os recursosClean up resources

Se planeia continuar com os rápidos e tutoriais subsequentes, pode deixar estes recursos no lugar.If you plan to continue with subsequent quickstarts and tutorials, you can leave these resources in place. Quando já não precisar dos recursos, elimine o grupo de recursos.When you don't need the resources any longer, delete the resource group. Se eliminar o grupo, o cofre-chave e os recursos conexas também são eliminados.If you delete the group, the key vault and related resources are also deleted. Para eliminar o grupo de recursos utilizando o Azure CLI ou o Azure PowerShell, complete estes passos:To delete the resource group by using the Azure CLI or Azure PowerShell, complete these steps:

echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."

RecursosResources

Passos seguintesNext steps