Compartilhar via


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 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

@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 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

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

  2. 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 <o nome> do cofre pelo nome do cofre de chaves e substitua <o nome> da chave pelo nome da chave.

    Quando a implantação for concluída, você deverá ver uma mensagem indicando que ela foi bem-sucedida.

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

    Criar uma chave por meio do ARM 1 Criar uma chave por meio do ARM 2

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

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.