Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Azure Key Vault — это облачная служба, которая предоставляет безопасное хранилище секретов, таких как ключи, пароли, сертификаты и другие секреты. В этом кратком руководстве рассматривается процесс развертывания файла Bicep для создания хранилища ключей и секрета.
Bicep — это язык предметной области (DSL), который использует декларативный синтаксис для развертывания ресурсов Azure. Он обеспечивает краткий синтаксис, надежную безопасность типов и поддержку повторного использования кода. Bicep предлагает лучший интерфейс разработки для решений инфраструктуры как кода в Azure.
Предпосылки
- Если у вас нет подписки Azure, создайте учетную запись free перед началом работы.
Просмотрите файл Bicep
Шаблон, используемый в этом кратком руководстве, взят из 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
В файле Bicep определены два ресурса Azure:
-
Microsoft. KeyVault/vaults: создайте хранилище ключей Azure с включенной авторизацией RBAC Azure (
enableRbacAuthorization: true). -
Microsoft. KeyVault/vaults/secret: создайте один или несколько секретов хранилища ключей, итерируя по массиву
secretsObject.secrets.
Разверните файл Bicep
Сохраните файл Bicep как main.bicep на локальный компьютер.
Создайте файл параметров (например, main.parameters.json), который предоставляет
secretsObjectзначение:{ "$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>" } ] } } } }Разверните Bicep-файл с помощью Azure CLI или Azure PowerShell.
az group create --name myResourceGroup --location eastus az deployment group create --resource-group myResourceGroup --template-file main.bicep --parameters @main.parameters.jsonЗамечание
Замените
<vault-name>именем хранилища ключей, которое должно быть глобально уникальным вvault.azure.netпространстве имен. Замените<your-secret-value>на секретное значение, которое нужно сохранить. ПосколькуsecretsObjectобъявлен как объектsecureObject, его значение не записывается в журнал и не выводится обратно.После завершения развертывания должно отобразиться сообщение о том, что развертывание успешно выполнено.
Назначьте роль RBAC для Key Vault
Хранилище ключей, созданное этим файлом Bicep, использует Azure RBAC для авторизации. Чтобы получить доступ к секретам через плоскость данных (например, с помощью Azure CLI или Azure PowerShell), необходимо назначить себе соответствующую роль.
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)
Замечание
Изменения в назначении ролей могут вступить в силу через одну-две минуты.
Проверка развернутых ресурсов
Вы можете использовать портал Azure для проверки хранилища ключей и секрета, либо использовать следующий Azure CLI или Azure PowerShell скрипт для перечисления созданного секрета.
echo "Enter your key vault name:" &&
read keyVaultName &&
az keyvault secret list --vault-name $keyVaultName &&
echo "Press [ENTER] to continue ..."
Очистите ресурсы
Если она больше не нужна, используйте портал Azure, Azure CLI или Azure PowerShell для удаления группы ресурсов и ее ресурсов.
az group delete --name myResourceGroup
Замечание
При удалении группы ресурсов также удаляется хранилище ключей, но затем оно переходит в состояние обратимого удаления и может быть восстановлено в течение срока хранения (по умолчанию 90 дней). Имя хранилища остается зарезервированным глобально в течение этого периода, и поскольку защита очистки включена, хранилище не может быть удалено рано. Для стандартных хранилищ ключей плата за хранилища, помеченные как обратимо удаленные, не взимается. Дополнительные сведения см. в разделе Обзор обратимого удаления в Key Vault.
Дальнейшие шаги
В этом быстром старте вы создали хранилище ключей и секрет (секретные данные) с помощью Bicep, а затем проверили развертывание. Дополнительные сведения о Key Vault и Bicep см. в следующих статьях.
- Ознакомиться с Обзором Azure Key Vault
- Дополнительные сведения о Bicep
- Ознакомьтесь с обзором безопасности Key Vault