Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O Azure Key Vault é um serviço de nuvem que fornece um repositório seguro para segredos, como chaves, senhas e certificado. Este Início Rápido concentra-se no processo de implantação de um arquivo Bicep para criar um cofre de chaves e uma chave.
O Bicep é um DSL (linguagem específica de domínio) que usa sintaxe declarativa para implantar recursos do Azure. Ele fornece sintaxe concisa, segurança de tipos confiável e suporte para reutilização de código. O Bicep oferece a melhor experiência de criação para suas soluções de infraestrutura como código no Azure.
Pré-requisitos
Para concluir este artigo:
- Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.
- O usuário precisaria ter uma função padrão do Azure atribuída, sendo recomendada a função colaborador. Saiba mais aqui
Examinar o arquivo Bicep
O modelo usado neste início rápido é proveniente dos Modelos de Início Rápido do Azure.
@description('The name of the key vault to be created.')
param vaultName string
@description('The name of the key to be created.')
param keyName string
@description('The location of the resources.')
param location string = resourceGroup().location
@description('The SKU of the vault to be created.')
@allowed([
'standard'
'premium'
])
param skuName string = 'standard'
@description('The JsonWebKeyType of the key to be created.')
@allowed([
'EC'
'EC-HSM'
'RSA'
'RSA-HSM'
])
param keyType string = 'RSA'
@description('The permitted JSON web key operations of the key to be created.')
param keyOps array = []
@description('The size in bits of the key to be created.')
param keySize int = 2048
@description('The JsonWebKeyCurveName of the key to be created.')
@allowed([
''
'P-256'
'P-256K'
'P-384'
'P-521'
])
param curveName string = ''
resource vault 'Microsoft.KeyVault/vaults@2023-07-01' = {
name: vaultName
location: location
properties: {
enableRbacAuthorization: true
enableSoftDelete: true
softDeleteRetentionInDays: 90
enablePurgeProtection: true
enabledForDeployment: false
enabledForDiskEncryption: false
enabledForTemplateDeployment: false
tenantId: subscription().tenantId
sku: {
name: skuName
family: 'A'
}
networkAcls: {
defaultAction: 'Allow'
bypass: 'AzureServices'
}
}
}
resource key 'Microsoft.KeyVault/vaults/keys@2023-07-01' = {
parent: vault
name: keyName
properties: {
kty: keyType
keyOps: keyOps
keySize: keySize
curveName: curveName
}
}
output proxyKey object = key.properties
output location string = location
output name string = vault.name
output resourceGroupName string = resourceGroup().name
output resourceId string = vault.id
Dois recursos são definidos no arquivo Bicep:
Mais exemplos de modelo do Azure Key Vault podem ser encontrados nos Modelos de Início Rápido do Azure.
Parâmetros e definições
| Parâmetro | Definition |
|---|---|
| keyOps | Especifica operações que podem ser executadas usando a chave. Se você não especificar esse parâmetro, todas as operações poderão ser executadas. Os valores aceitáveis para esse parâmetro são uma lista separada por vírgulas de operações de chave, conforme definido pela especificação JWK (Chave Web JSON): ["sign", "verify", "encrypt", "decrypt", " wrapKey", "unwrapKey"] |
| CurveName | O nome da EC (curva elíptica) para o tipo de chave EC. Consulte JsonWebKeyCurveName |
| Kty | O tipo de chave a ser criada. Para obter valores válidos, consulte JsonWebKeyType |
| Tags | Os metadados específicos a um aplicativo na forma de pares chave-valor. |
| nbf | Especifica a hora, como um objeto DateTime, antes do qual a chave não pode ser usada. O formato é um carimbo de data/hora do UNIX (o número de segundos após a época do Unix em 1º de janeiro de 1970, em UTC). |
| Exp | Especifica a hora de expiração, como um objeto DateTime. O formato é um carimbo de data/hora do UNIX (o número de segundos após a época do Unix em 1º de janeiro de 1970, em UTC). |
Implantar o arquivo Bicep
Salve o arquivo Bicep como main.bicep em seu computador local.
Para implantar o arquivo Bicep, use a CLI do Azure ou o Azure PowerShell.
az group create --name exampleRG --location eastus az deployment group create --resource-group exampleRG --template-file main.bicep --parameters vaultName=<vault-name> keyName=<key-name>Observação
Substitua
<vault-name>pelo nome do cofre de chaves. Substitua<vault-name>pelo nome do cofre de chaves e substitua<key-name>pelo nome da chave.Quando a implantação for concluída, você deverá ver uma mensagem indicando que ela foi bem-sucedida.
Atribuir uma função RBAC ao cofre de chaves
O cofre de chaves criado por esse arquivo Bicep usa Azure RBAC para autorização. Para acessar chaves por meio do plano de dados (por exemplo, usando o CLI do Azure ou Azure PowerShell), você precisa atribuir a si mesmo uma função apropriada.
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)
Observação
As atribuições de função podem levar um ou dois minutos para serem propagadas.
Examinar os recursos implantados
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 do ARM é diferente da criação de chave por meio do plano de dados
Criando uma chave por meio do ARM
Só é possível criar novas chaves. Não é possível atualizar as 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 ser autorizado a usar essa API, o chamador precisa ter a ação de controle de acesso baseado em função (RBAC) do Azure ( Microsoft.KeyVault/vaults/keys/write ). A função interna "Colaborador do Key Vault" é suficiente, pois autoriza todas as Ações RBAC do Azure que correspondem ao padrão "Microsoft.KeyVault/*".
API existente (criando chave por meio do 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 usar políticas de acesso, o autor da chamada deverá ter permissão de "criação" de chave; se o cofre estiver habilitado para RBAC do Azure, o autor da chamada deverá ter a DataAction do Azure RBAC "Microsoft.KeyVault/vaults/keys/create/action".
Limpar os recursos
Outros guias de início rápido e tutoriais do Key Vault se baseiam neste início rápido. Se você planeja continuar a trabalhar com os tutoriais e inícios rápidos subsequentes, deixe esses recursos onde estão. Quando não for mais necessário, exclua o grupo de recursos, que exclui o Key Vault 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 ..."
Observação
Excluir o grupo de recursos também exclui o cofre de chaves, mas o cofre entra em estado de exclusão temporária e permanece recuperável durante o período de retenção (por padrão, 90 dias). O nome do cofre permanece reservado globalmente durante esse período e, como a proteção contra a limpeza está habilitada, não é possível fazer a limpeza do cofre antes do prazo. Para os cofres de chaves padrão, cofres de exclusão temporária não incorrem em encargos. Para obter mais informações, consulte Visão geral da exclusão temporária do cofre de chaves.
Próximas etapas
Neste guia de início rápido, você criou um cofre de chaves e uma chave usando um arquivo Bicep e validou a implantação. Para saber mais sobre o Key Vault e o Azure Resource Manager, confira estes artigos.
- Leia uma Visão geral do Azure Key Vault
- Saiba mais sobre o Azure Resource Manager
- Examine a Visão geral de segurança do Key Vault