Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Azure Key Vault to usługa w chmurze, która zapewnia bezpieczny magazyn wpisów tajnych, takich jak klucze, hasła, certyfikaty i inne wpisy tajne. Ten szybki przewodnik koncentruje się na procesie wdrażania pliku Bicep w celu utworzenia magazynu kluczy i tajemnicy.
Bicep to język specyficzny dla domeny (DSL), który używa składni deklaratywnej do wdrażania zasobów Azure. Zapewnia zwięzłą składnię, niezawodne bezpieczeństwo typów i obsługę ponownego użycia kodu. Bicep oferuje najlepsze środowisko tworzenia dla rozwiązań typu infrastruktura jako kod w Azure.
Wymagania wstępne
- Jeśli nie masz subskrypcji Azure, przed rozpoczęciem utwórz konto free.
Przejrzyj plik Bicep
Szablon używany w tym przewodniku szybkiego startu pochodzi z Azure Quickstart Templates.
@description('Specifies the name of the key vault.')
param keyVaultName string
@description('Specifies the Azure location where the key vault should be created.')
param location string = resourceGroup().location
@description('Specifies whether Azure Virtual Machines are permitted to retrieve certificates stored as secrets from the key vault.')
param enabledForDeployment bool = false
@description('Specifies whether Azure Disk Encryption is permitted to retrieve secrets from the vault and unwrap keys.')
param enabledForDiskEncryption bool = false
@description('Specifies whether Azure Resource Manager is permitted to retrieve secrets from the key vault.')
param enabledForTemplateDeployment bool = false
@description('Specifies the Azure Active Directory tenant ID that should be used for authenticating requests to the key vault. Get it by using Get-AzSubscription cmdlet.')
param tenantId string = subscription().tenantId
@description('Specifies whether the key vault is a standard vault or a premium vault.')
@allowed([
'standard'
'premium'
])
param skuName string = 'standard'
@description('Specifies all secrets {"secretName":"","secretValue":""} wrapped in a secure object.')
@secure()
param secretsObject object
resource kv 'Microsoft.KeyVault/vaults@2023-07-01' = {
name: keyVaultName
location: location
properties: {
enabledForDeployment: enabledForDeployment
enabledForTemplateDeployment: enabledForTemplateDeployment
enabledForDiskEncryption: enabledForDiskEncryption
enableRbacAuthorization: true
tenantId: tenantId
enableSoftDelete: true
softDeleteRetentionInDays: 90
enablePurgeProtection: true
sku: {
name: skuName
family: 'A'
}
networkAcls: {
defaultAction: 'Allow'
bypass: 'AzureServices'
}
}
}
resource secrets 'Microsoft.KeyVault/vaults/secrets@2023-07-01' = [for secret in secretsObject.secrets: {
name: secret.secretName
parent: kv
properties: {
value: secret.secretValue
}
}]
output location string = location
output name string = kv.name
output resourceGroupName string = resourceGroup().name
output resourceId string = kv.id
Dwa zasoby Azure są zdefiniowane w pliku Bicep:
-
Microsoft. KeyVault/vaults: utwórz magazyn kluczy Azure z włączoną autoryzacją RBAC Azure (
enableRbacAuthorization: true). -
Microsoft.KeyVault/vaults/secrets: utwórz jeden lub więcej wpisów tajnych usługi Key Vault, iterując po tablicy
secretsObject.secrets.
Wdróż plik Bicep
Zapisz plik Bicep jako main.bicep na komputer lokalny.
Utwórz plik parametrów (na przykład main.parameters.json), który dostarcza
secretsObjectwartość:{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", "contentVersion": "1.0.0.0", "parameters": { "keyVaultName": { "value": "<vault-name>" }, "secretsObject": { "value": { "secrets": [ { "secretName": "adminpassword", "secretValue": "<your-secret-value>" } ] } } } }Wdróż plik Bicep przy użyciu interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell.
az group create --name myResourceGroup --location eastus az deployment group create --resource-group myResourceGroup --template-file main.bicep --parameters @main.parameters.jsonUwaga / Notatka
Zastąp
<vault-name>nazwą magazynu kluczy, która musi być globalnie unikatowa w przestrzeni nazwvault.azure.net. Zastąp<your-secret-value>tajną wartością do przechowania. PonieważsecretsObjectjest zadeklarowany jakosecureObject, jego wartość nie jest rejestrowana ani powtarzana z powrotem.Po zakończeniu wdrażania powinien zostać wyświetlony komunikat informujący o pomyślnym wdrożeniu.
Przypisz rolę RBAC usługi Key Vault
Magazyn kluczy utworzony przez ten plik Bicep używa mechanizmu Azure RBAC do autoryzacji. Aby uzyskać dostęp do kluczy tajnych za pomocą płaszczyzny danych (na przykład przy użyciu interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell), musisz przypisać sobie odpowiednią rolę.
echo "Enter your key vault name:" &&
read keyVaultName &&
az role assignment create --role "Key Vault Secrets Officer" \
--assignee-object-id $(az ad signed-in-user show --query id -o tsv) \
--scope $(az keyvault show --name $keyVaultName --query id -o tsv)
Uwaga / Notatka
Propagacja przypisań ról może potrwać minutę lub dwie.
Przeglądanie wdrożonych zasobów
Możesz użyć portalu Azure, aby sprawdzić Key Vault i tajny klucz, lub skorzystać z następującego skryptu Azure CLI lub Azure PowerShell, aby wyświetlić utworzony tajny klucz.
echo "Enter your key vault name:" &&
read keyVaultName &&
az keyvault secret list --vault-name $keyVaultName &&
echo "Press [ENTER] to continue ..."
Uprzątnij zasoby
Gdy grupa zasobów i jej zasoby nie będą już potrzebne, użyj portalu Azure, Azure CLI lub Azure PowerShell.
az group delete --name myResourceGroup
Uwaga / Notatka
Usunięcie grupy zasobów powoduje również usunięcie magazynu kluczy, ale magazyn przechodzi następnie w stan usunięcia miękkiego i można go odzyskać przez okres przechowywania (domyślnie 90 dni). Nazwa magazynu pozostaje zarezerwowana globalnie w tym okresie i ponieważ włączono ochronę przed przeczyszczeniem, nie można wcześniej przeczyścić magazynu. W przypadku standardowych magazynów kluczy nie są naliczane opłaty za magazyny kluczy po usunięciu nietrwałym. Aby uzyskać więcej informacji, zobacz Omówienie usuwania nieostatecznego w usłudze Key Vault.
Dalsze kroki
W tym szybkim rozpoczęciu utworzono skarbiec kluczy i tajny klucz przy użyciu Bicep, a następnie zweryfikowano wdrożenie. Aby dowiedzieć się więcej na temat Key Vault i Bicep, przejdź do poniższych artykułów.
- Przeczytaj Omówienie Azure Key Vault
- Dowiedz się więcej o Bicep
- Zapoznaj się z omówieniem zabezpieczeń Key Vault