Como criar um cofre de chaves do Azure e uma política de acesso ao cofre usando um modelo do Resource Manager
O Azure Key Vault é um serviço de nuvem que fornece um repositório seguro para chaves, segredos e certificados. Este artigo descreve o processo de implantação de um modelo do Azure Resource Manager (modelo do ARM) para a criação de um cofre de chaves.
Um Modelo do Azure Resource Manager é um arquivo JSON (JavaScript Object Notation) que define a infraestrutura e a configuração do seu projeto. O modelo usa a sintaxe declarativa. Você descreve a implantação pretendida sem escrever a sequência de comandos de programação para criar a implantação.
Pré-requisitos
Para completar as etapas neste artigo:
- Caso você não tenha uma assinatura do Azure, crie uma conta gratuita antes de começar.
Criar um cofre de chaves com um modelo do Resource Manager
O modelo a seguir mostra uma maneira básica de criar um cofre de chaves. Alguns valores são especificados no modelo.
{
"$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 configurações do modelo do Key Vault, consulte referência de modelo do ARM do Key Vault.
Importante
Se um modelo for reimplantado, todas as políticas de acesso existentes no cofre de chaves serão substituídas. Recomendamos que você preencha a accessPolicies
propriedade com as políticas de acesso existentes para evitar perder o acesso ao cofre de chaves.
Adicionar uma política de acesso a um modelo do Key Vault Resource Manager
Você pode implantar políticas de acesso a um cofre de chaves existente sem reimplantar o modelo inteiro do cofre de chaves. O modelo a seguir mostra uma maneira básica de criar políticas de acesso:
{
"$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')]"
}
}
]
}
}
]
}
Para mais informações sobre as configurações do modelo de Key Vault, consulte referência de modelo do ARM do Key Vault.
Mais modelos do Key Vault Resource Manager
Há outros modelos do Resource Manager disponíveis para objetos do Key Vault:
Segredos | simétricas | Certificados |
---|---|---|
N/D | N/D |
Você pode encontrar mais modelos de Key Vault aqui: referência do Key Vault Resource Manager.
Implantar os modelos
Você pode usar o portal do Azure para implantar os modelos anteriores usando a opção criar seu próprio modelo no editor, conforme descrito aqui: Implantar recursos de um modelo personalizado.
Você também pode salvar os modelos anteriores em arquivos e usar estes comandos: 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
Limpar os recursos
Se você planeja continuar trabalhando com os tutoriais e inícios rápidos subsequentes, deixe esses recursos onde estão. Quando você não precisar mais dos recursos, exclua o grupo de recursos. Se você excluir o grupo, o cofre de chaves e os recursos relacionados também serão excluídos. Para excluir o grupo de recursos usando a CLI do Azure ou o Azure PowerShell, siga esses passos:
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."
Recursos
- Leia uma Visão geral do Azure Key Vault.
- Saiba mais sobre o Gerenciador de Recursos do Azure.
- Examine a Visão geral de segurança do Azure Key Vault