Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O Azure Key Vault é um serviço de nuvem que fornece um armazenamento seguro para segredos, como chaves, senhas e certificados. Este guia de início rápido se concentra no processo de implantação de um modelo do Azure Resource Manager (modelo ARM) para criar um cofre de chaves e uma chave.
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 sintaxe declarativa. Você descreve a implantação pretendida sem escrever a sequência de comandos de programação para criar a implantação.
Se o seu ambiente cumpre os pré-requisitos e se está familiarizado com a utilização de modelos ARM, selecione o botão Implementar no Azure. O modelo será aberto no portal do Azure.
Pré-requisitos
Para completar este artigo:
- Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.
- O utilizador precisaria ter uma função incorporada do Azure atribuída, sendo recomendada a função de contribuidor. Saiba mais aqui
Rever o modelo
O modelo utilizado neste início rápido pertence aos Modelos de Início Rápido do Azure.
{
"$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": "9113739717796369919"
}
},
"parameters": {
"vaultName": {
"type": "string",
"metadata": {
"description": "The name of the key vault to be created."
}
},
"keyName": {
"type": "string",
"metadata": {
"description": "The name of the key to be created."
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "The location of the resources."
}
},
"skuName": {
"type": "string",
"defaultValue": "standard",
"allowedValues": [
"standard",
"premium"
],
"metadata": {
"description": "The SKU of the vault to be created."
}
},
"keyType": {
"type": "string",
"defaultValue": "RSA",
"allowedValues": [
"EC",
"EC-HSM",
"RSA",
"RSA-HSM"
],
"metadata": {
"description": "The JsonWebKeyType of the key to be created."
}
},
"keyOps": {
"type": "array",
"defaultValue": [],
"metadata": {
"description": "The permitted JSON web key operations of the key to be created."
}
},
"keySize": {
"type": "int",
"defaultValue": 2048,
"metadata": {
"description": "The size in bits of the key to be created."
}
},
"curveName": {
"type": "string",
"defaultValue": "",
"allowedValues": [
"",
"P-256",
"P-256K",
"P-384",
"P-521"
],
"metadata": {
"description": "The JsonWebKeyCurveName of the key to be created."
}
}
},
"resources": [
{
"type": "Microsoft.KeyVault/vaults",
"apiVersion": "2023-07-01",
"name": "[parameters('vaultName')]",
"location": "[parameters('location')]",
"properties": {
"enableRbacAuthorization": true,
"enableSoftDelete": true,
"softDeleteRetentionInDays": 90,
"enablePurgeProtection": true,
"enabledForDeployment": false,
"enabledForDiskEncryption": false,
"enabledForTemplateDeployment": false,
"tenantId": "[subscription().tenantId]",
"sku": {
"name": "[parameters('skuName')]",
"family": "A"
},
"networkAcls": {
"defaultAction": "Allow",
"bypass": "AzureServices"
}
}
},
{
"type": "Microsoft.KeyVault/vaults/keys",
"apiVersion": "2023-07-01",
"name": "[format('{0}/{1}', parameters('vaultName'), parameters('keyName'))]",
"properties": {
"kty": "[parameters('keyType')]",
"keyOps": "[parameters('keyOps')]",
"keySize": "[parameters('keySize')]",
"curveName": "[parameters('curveName')]"
},
"dependsOn": [
"[resourceId('Microsoft.KeyVault/vaults', parameters('vaultName'))]"
]
}
],
"outputs": {
"proxyKey": {
"type": "object",
"value": "[reference(resourceId('Microsoft.KeyVault/vaults/keys', parameters('vaultName'), parameters('keyName')), '2023-07-01')]"
},
"location": {
"type": "string",
"value": "[parameters('location')]"
},
"name": {
"type": "string",
"value": "[parameters('vaultName')]"
},
"resourceGroupName": {
"type": "string",
"value": "[resourceGroup().name]"
},
"resourceId": {
"type": "string",
"value": "[resourceId('Microsoft.KeyVault/vaults', parameters('vaultName'))]"
}
}
}
Dois recursos são definidos no modelo:
- Microsoft.KeyVault/vaults: cria um Azure Key Vault.
- Microsoft. KeyVault/vaults/keys: criar uma chave de cofre de chaves.
O modelo cria o cofre de chaves com a autorização Azure RBAC ativada. Isto significa que o vault utiliza controlo de acesso baseado em funções do Azure (Azure RBAC) para autorização do plano de dados, em vez de políticas de acesso.
Mais exemplos de modelo do Azure Key Vault podem ser encontrados em Modelos de Início Rápido do Azure.
Parâmetros do modelo
| Parâmetro | Description |
|---|---|
| vaultName | Nome do novo cofre de chaves. Deve ser globalmente único dentro do vault.azure.net namespace. |
| KeyName | Nome da chave a criar no cofre. |
| Localização | Região do Azure para os recursos. Por padrão, a localização do grupo de recursos. |
| skuName | SKU do Vault.
standard (por defeito) ou premium. |
| keyType | O tipo de chave a ser criada. Um de RSA, RSA-HSM, EC, EC-HSM. A predefinição é RSA. Ver JsonWebKeyType. |
| keySize | Tamanho em bits da chave (apenas RSA). A predefinição é 2048. |
| curveName | Nome da curva elíptica (apenas para chaves EC). Um de P-256, P-256K, P-384, P-521. Ver JsonWebKeyCurveName. |
| keyOps |
Permitiu operações de chave web JSON para a chave (por exemplo, ["sign","verify","encrypt","decrypt","wrapKey","unwrapKey"]). Array vazio (por defeito) permite todas as operações. |
Implementar o modelo
Selecione a imagem seguinte para iniciar sessão no Azure e abrir um modelo. O modelo cria um cofre de chaves e uma chave.
Selecione ou introduza os seguintes valores. A menos que esteja especificado, usa o valor padrão.
- Subscrição: selecione uma subscrição do Azure.
- Grupo de recursos: selecione Criar novo, insira um nome exclusivo para o grupo de recursos e selecione OK.
- Região: selecione um local. Por exemplo, E.U.A. Central.
-
Nome do Cofre: insira um nome para o cofre de chaves, que deve ser globalmente único dentro do
vault.azure.netespaço de nomes. - Nome da Chave: introduza um nome para a chave que guarda no cofre da chave.
- Nome do SKU: selecione padrão ou premium. A predefinição é standard.
- Tipo de chave: selecione um tipo de chave. O padrão é RSA.
- Tamanho da Chave: introduza um tamanho de chave (chaves RSA). O padrão é 2048.
- Nome da curva: para teclas EC, selecione uma curva. Deixe em branco no caso de chaves RSA.
Selecione Rever + criar e, em seguida, selecione Criar. Depois de o cofre de chaves e a chave terem sido implementados com sucesso, recebes uma notificação.
Também pode usar o Azure PowerShell, a CLI do Azure ou a API REST para implementar o template. Para aprender outros métodos de implementação, consulte Deploy templates.
Atribuir uma função RBAC do Key Vault
O cofre de chaves criado por este modelo utiliza o Azure RBAC para autorização. Para aceder às chaves através do plano de dados (por exemplo, usando o CLI do Azure ou Azure PowerShell), precisa de se atribuir um papel apropriado.
Obtenha o ID do seu objeto de utilizador Microsoft Entra:
az ad signed-in-user show --query id -o tsvAtribua a função Key Vault Crypto Officer a si próprio no cofre de chaves:
echo "Enter your key vault name:" && read keyVaultName && az role assignment create --role "Key Vault Crypto 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
As atribuições de funções podem demorar um ou dois minutos a ser propagadas.
Analisar os recursos implementados
Você pode usar o portal do Azure para verificar o cofre de chaves e a chave. Como alternativa, use o seguinte script da CLI do Azure ou do Azure PowerShell para listar a chave criada.
echo "Enter your key vault name:" &&
read keyVaultName &&
az keyvault key list --vault-name $keyVaultName &&
echo "Press [ENTER] to continue ..."
Criar chave usando o modelo ARM é diferente de criar chave via plano de dados
Criação de uma chave via ARM
Só é possível criar novas chaves. Não é possível atualizar chaves existentes, nem criar novas versões de chaves existentes. Se a chave já existir, a chave existente será recuperada do armazenamento e usada (nenhuma operação de gravação ocorrerá).
Para estar autorizado a usar esta API, o chamador precisa ter a ação de "controlo de acesso baseado em funções" "Microsoft.KeyVault/vaults/keys/write" (Azure RBAC). O papel incorporado de "Key Vault Contributor" é suficiente, pois autoriza todas as Ações RBAC do Azure que correspondem ao padrão "Microsoft.KeyVault/*".
API existente (criação de chave via plano de dados)
- É possível criar novas chaves, atualizar chaves existentes e criar novas versões de chaves existentes.
- O chamador deve estar autorizado a usar essa API. Se o cofre estiver ativado para o Azure RBAC, o chamador deve ter "Microsoft. KeyVault/vaults/keys/create/action" Azure RBAC DataAction.
Limpeza de recursos
Outros guias de início rápido e tutoriais do Key Vault se baseiam nesse início rápido. Se pretende continuar a trabalhar com os quickstarts e tutoriais subsequentes, poderá querer deixar estes recursos no lugar. Quando não for mais necessário, exclua o grupo de recursos, que exclui o Cofre da Chave e os recursos relacionados. Para excluir o grupo de recursos usando a CLI do Azure ou o Azure PowerShell:
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."
Note
Eliminar o grupo de recursos também elimina o cofre de chaves, mas o cofre entra então num estado de eliminação suave e permanece recuperável durante o período de retenção (90 dias por defeito). O nome do cofre permanece reservado globalmente durante esse período e, como a proteção contra purgas está ativada, o cofre não pode ser purgado antecipadamente. Para cofres de chaves padrão, os cofres eliminados temporariamente não incorrem em custos. Para mais informações, consulte Key Vault visão geral de apagamento suave.
Próximos passos
Neste início rápido, você criou um cofre de chaves e uma chave usando um modelo ARM e validou a implantação. Para saber mais sobre o Key Vault e o Azure Resource Manager, consulte estes artigos.
- Leia uma Visão Geral do Azure Key Vault
- Saiba mais sobre o Azure Resource Manager
- Reveja a visão geral de segurança do Key Vault