Partilhar via


Guia de início rápido: criar um cofre de chaves do Azure e uma chave usando o Bicep

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 arquivo Bicep para criar um cofre de chaves e uma chave.

Bicep é uma linguagem de domínio específico (DSL) que utiliza sintaxe declarativa para implementar recursos do Azure. Fornece uma 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 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, função recomendada contribuidor. Saiba mais aqui

Revise o arquivo Bicep

@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@2021-11-01-preview' = {
  name: vaultName
  location: location
  properties: {
    accessPolicies:[]
    enableRbacAuthorization: true
    enableSoftDelete: true
    softDeleteRetentionInDays: 90
    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@2021-11-01-preview' = {
  parent: vault
  name: keyName
  properties: {
    kty: keyType
    keyOps: keyOps
    keySize: keySize
    curveName: curveName
  }
}

output proxyKey object = key.properties

Dois recursos são definidos no arquivo Bicep:

Mais exemplos de modelo do Azure Key Vault podem ser encontrados em Modelos de Início Rápido do Azure.

Parâmetros e definições

Parâmetro Definition
keyOps Especifica as 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 este parâmetro são uma lista separada por vírgulas de operações de chave, conforme definido pela especificação JSON Web Key (JWK):
["sign", "verify", "encrypt", "decrypt", " wrapKey", "unwrapKey"]
CurveName Nome da curva elíptica (EC) para o tipo de chave EC. Consulte JsonWebKeyCurveName
Kty O tipo de chave a ser criada. Para valores válidos, consulte JsonWebKeyType
Etiquetas Metadados específicos do aplicativo na forma de pares chave-valor.
NBF Especifica a hora, como um objeto DateTime, antes da qual a chave não pode ser usada. O formato seria Unix timestamp (o número de segundos após Unix Epoch em 1 de janeiro de 1970 no UTC).
exp Especifica a hora de expiração, como um objeto DateTime. O formato seria Unix timestamp (o número de segundos após Unix Epoch em 1 de janeiro de 1970 no UTC).

Desdobrar o arquivo Bicep

  1. Salve o arquivo Bicep como main.bicep em seu computador local.

  2. Implante o arquivo Bicep usando o Azure CLI 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 vault de chaves e substitua <key-name> pelo nome da chave.

    Quando a implantação terminar, você verá uma mensagem indicando que a implantação foi bem-sucedida.

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/*".

    Criar uma chave via ARM 1 Criar uma chave via ARM 2

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 usar políticas de acesso, o chamador deve ter permissão de "criar" chave; se o cofre estiver ativado para 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 ..."

Próximos passos

Neste 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, consulte estes artigos.