Mulai cepat: Membuat Azure Key Vault dan sertifikat menggunakan Bicep

Azure Key Vault adalah layanan cloud yang menyediakan penyimpanan aman untuk rahasia, seperti kunci, kata sandi, dan sertifikat. Mulai cepat ini berfokus pada proses penyebaran file Bicep untuk membuat brankas kunci dan sertifikat yang ditandatangani sendiri.

Bicep adalah bahasa khusus domain (DSL) yang menggunakan sintaksis deklaratif untuk menyebarkan sumber daya Azure. Ini menyediakan sintaks yang ringkas, keamanan jenis yang dapat diandalkan, dan dukungan untuk penggunaan kembali kode. Bicep menawarkan pengalaman penulisan terbaik untuk solusi infrastructure-as-code di Azure.

Prasyarat

  • Jika Anda tidak memiliki langganan Azure, buatlah akun gratis sebelum Anda memulai.

Meninjau file Bicep

Template yang digunakan dalam quickstart ini berasal dari Azure Quickstart Templates.

@description('The name of the key vault to be created.')
param vaultName string

@description('The name of the certificate to be created.')
param certificateName 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 common name (subject) for the self-signed certificate. Defaults to the certificate name.')
param certificateCommonName string = certificateName

@description('The validity of the certificate in months.')
@minValue(1)
@maxValue(1200)
param validityInMonths int = 12

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

// Key Vault certificates are a data-plane concept and cannot be created
// directly through ARM. Use the public Bicep registry module which wraps
// `az keyvault certificate create` in a deployment script (it provisions a
// user-assigned managed identity with the Key Vault Certificate Officer
// role on the vault for the duration of the deployment).
module certificate 'br/public:deployment-scripts/create-kv-certificate:3.4.2' = {
  name: 'create-${certificateName}'
  params: {
    akvName: vault.name
    location: location
    certificateNames: [certificateName]
    certificateCommonNames: [certificateCommonName]
    validity: validityInMonths
  }
}

output location string = location
output name string = vault.name
output resourceGroupName string = resourceGroup().name
output resourceId string = vault.id
output certificateSecretId string = certificate.outputs.certificateSecretIds[0][0]
output certificateThumbprint string = certificate.outputs.certificateThumbprintHexs[0][0]

Dua sumber daya Azure ditentukan dalam file Bicep:

  • Microsoft.KeyVault/vaults: membuat brankas kunci Azure dengan otorisasi Azure RBAC diaktifkan (enableRbacAuthorization: true).
  • Microsoft.Resources/deployments: penyebaran bertingkat yang menjalankan modul registri create-kv-certificate untuk membuat sertifikat yang ditandatangani mandiri di vault. Sertifikat adalah sumber daya bidang data dan tidak dapat dibuat langsung dengan jenis sumber daya ARM.

Menyebarkan file Bicep

  1. Simpan file Bicep sebagai main.bicep ke penyimpanan lokal komputer Anda.

  2. Sebarkan file Bicep dengan menggunakan Azure CLI atau Azure PowerShell.

    az group create --name myResourceGroup --location eastus
    az deployment group create --resource-group myResourceGroup --template-file main.bicep --parameters vaultName=<vault-name> certificateName=myCert
    

    Note

    Ganti <vault-name> dengan nama brankas kunci, yang harus unik secara global dalam vault.azure.net namespace.

    Setelah penyebaran selesai, Anda akan melihat pesan yang menunjukkan penyebaran berhasil.

Menetapkan peran RBAC Key Vault

Brankas kunci yang dibuat oleh file Bicep ini menggunakan Azure RBAC untuk otorisasi. Untuk mengakses sertifikat melalui sarana data (misalnya, dengan menggunakan Azure CLI atau Azure PowerShell), Anda perlu menetapkan peran yang sesuai untuk diri Anda sendiri.

echo "Enter your key vault name:" &&
read keyVaultName &&
az role assignment create --role "Key Vault Certificates 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

Penetapan peran mungkin memerlukan waktu satu atau dua menit untuk disebarluaskan.

Meninjau sumber daya yang disebarkan

Anda dapat menggunakan portal Azure untuk memeriksa brankas kunci dan sertifikat, atau menggunakan skrip Azure CLI atau Azure PowerShell berikut untuk mencantumkan sertifikat yang dibuat.

echo "Enter your key vault name:" &&
read keyVaultName &&
az keyvault certificate list --vault-name $keyVaultName &&
echo "Press [ENTER] to continue ..."

Membersihkan sumber daya

Jika tidak lagi diperlukan, gunakan portal Azure, Azure CLI, atau Azure PowerShell untuk menghapus grup sumber daya dan sumber dayanya.

az group delete --name myResourceGroup

Note

Menghapus grup sumber daya juga akan menghapus Key Vault, tetapi vault tersebut kemudian masuk ke status hapus sementara dan tetap dapat dipulihkan selama periode retensi (90 hari secara bawaan). Nama brankas tetap dicadangkan secara global selama periode tersebut, dan karena proteksi penghapusan permanen diaktifkan, brankas tidak dapat dihapus secara permanen lebih awal. Untuk Key Vault standar, Key Vault yang dihapus sementara tidak dikenakan biaya. Untuk informasi selengkapnya, lihat gambaran umum penghapusan sementara Key Vault.

Langkah berikutnya

Dalam panduan mulai cepat ini, Anda membuat Key Vault dan sebuah sertifikat menggunakan Bicep, lalu memverifikasi deployment. Untuk mempelajari selengkapnya tentang Key Vault dan Bicep, lanjutkan ke artikel di bawah ini.

  • Baca gambaran umum mengenai Azure Key Vault
  • Pelajari selengkapnya tentang Bicep
  • Tinjau gambaran umum keamanan Key Vault