Udostępnij przez


Szybki start: tworzenie Key Vault platformy Azure i klucza przy użyciu Bicep

Azure Key Vault to usługa w chmurze, która zapewnia bezpieczny magazyn wpisów tajnych, takich jak klucze, hasła i certyfikat. Ten przewodnik szybkiego startu koncentruje się na procesie wdrażania pliku Bicep w celu utworzenia magazynu kluczy i klucza.

Bicep to język specyficzny dla domeny (DSL), który używa składni deklaratywnej do wdrażania zasobów platformy Azure. Zapewnia zwięzłą składnię, niezawodne bezpieczeństwo typów i obsługę ponownego użycia kodu. Bicep oferuje najlepsze środowisko tworzenia rozwiązań infrastruktury jako kodu na platformie Azure.

Wymagania wstępne

Aby ukończyć ten artykuł:

  • Jeśli nie masz subskrypcji Azure, przed rozpoczęciem utwórz darmowe konto.
  • Użytkownik powinien mieć przypisaną wbudowaną rolę platformy Azure, zalecana rola to współautor. Dowiedz się więcej tutaj

Przejrzyj plik programu 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

Dwa zasoby są zdefiniowane w pliku Bicep:

Więcej przykładów szablonów usługi Azure Key Vault można znaleźć w artykule Szablony szybkiego startu platformy Azure.

Parametry i definicje

Parameter Definition
keyOps Określa operacje, które mogą być wykonywane przy użyciu klucza. Jeśli nie określisz tego parametru, wszystkie operacje można wykonać. Dopuszczalne wartości dla tego parametru to rozdzielona przecinkami lista operacji klucza zdefiniowanych przez specyfikację klucza internetowego JSON (JWK):
["sign", "verify", "encrypt", "decrypt", " wrapKey", "unwrapKey"]
CurveName Nazwa krzywej eliptycznej (EC) dla kluczy typu EC. Zobacz JsonWebKeyCurveName
Kty Typ klucza, który należy utworzyć. Prawidłowe wartości można znaleźć w temacie JsonWebKeyType
tagi Metadane specyficzne dla aplikacji w postaci par klucz-wartość.
nbf Określa godzinę jako obiekt DateTime, przed którym nie można użyć klucza. Formatem będzie znacznik czasu Unix (liczba sekund po epoce Unix, 1 stycznia 1970 w UTC).
Exp Określa czas wygaśnięcia jako obiekt DateTime. Formatem będzie znacznik czasu Unix (liczba sekund po epoce Unix, 1 stycznia 1970 w UTC).

Wdróż plik Bicep

  1. Zapisz plik Bicep jako main.bicep na komputerze lokalnym.

  2. Wdróż plik Bicep przy użyciu interfejsu wiersza polecenia platformy Azure lub programu 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>
    

    Uwaga / Notatka

    Zastąp <vault-name> nazwą magazynu kluczy. Zastąp <vault-name> nazwą magazynu kluczy i zastąp <key-name> nazwą klucza.

    Po zakończeniu wdrażania powinien zostać wyświetlony komunikat informujący o pomyślnym wdrożeniu.

Przeglądanie wdrożonych zasobów

Możesz użyć portalu Azure, aby sprawdzić magazyn kluczy i klucz. Alternatywnie użyj następującego interfejsu wiersza polecenia platformy Azure lub skryptu programu Azure PowerShell, aby wyświetlić listę utworzonych kluczy.

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

Tworzenie klucza przy użyciu szablonu usługi ARM różni się od tworzenia klucza za pośrednictwem płaszczyzny danych

Tworzenie klucza za pośrednictwem usługi ARM

  • Możliwe jest tworzenie tylko nowych kluczy. Nie można zaktualizować istniejących kluczy ani utworzyć nowych wersji istniejących kluczy. Jeśli klucz już istnieje, istniejący klucz jest pobierany z magazynu i używany (nie będą wykonywane żadne operacje zapisu).

  • Aby móc korzystać z tego interfejsu API, podmiot wywołujący musi mieć akcję "Microsoft.KeyVault/vaults/keys/write" w ramach kontroli dostępu opartej na rolach (Azure RBAC). Wbudowana rola "Współautor usługi Key Vault" jest wystarczająca, ponieważ autoryzuje wszystkie akcje RBAC platformy Azure zgodne ze wzorcem "Microsoft.KeyVault/*".

    Tworzenie klucza za pomocą usługi ARM 1 Tworzenie klucza za pośrednictwem usługi ARM 2

Istniejący interfejs API (tworzenie klucza za pośrednictwem płaszczyzny danych)

  • Można utworzyć nowe klucze, zaktualizować istniejące klucze i utworzyć nowe wersje istniejących kluczy.
  • Obiekt wywołujący musi być autoryzowany do korzystania z tego interfejsu API. Jeśli magazyn używa zasad dostępu, obiekt wywołujący musi mieć uprawnienie do "utworzenia" klucza; jeśli magazyn jest włączony dla Azure RBAC, obiekt wywołujący musi mieć akcję "Microsoft.KeyVault/vaults/keys/create/action" w ramach Azure RBAC DataAction.

Uprzątnij zasoby

Inne przewodniki szybkiego startu i samouczki dotyczące Key Vault opierają się na tym przewodniku. Jeśli planujesz nadal korzystać z kolejnych szybkich startów i samouczków, warto pozostawić te zasoby na miejscu. Jeśli nie będą Ci one już potrzebne, usuń grupę zasobów, a zostanie także usunięta usługa Key Vault i powiązane zasoby. Aby usunąć grupę zasobów przy użyciu interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell:

echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."

Dalsze kroki

W tym szybkim wprowadzeniu utworzyłeś Key Vault i klucz przy użyciu pliku Bicep, a następnie zweryfikowałeś wdrożenie. Aby dowiedzieć się więcej o usłudze Key Vault i usłudze Azure Resource Manager, zobacz te artykuły.