Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Azure Key Vault — это облачная служба, которая предоставляет безопасное хранилище секретов, таких как ключи, пароли и сертификаты. В этом кратком руководстве по быстрому началу работы описан процесс развертывания Bicep-файла для создания хранилища ключей (Key Vault) и ключа.
Bicep — это предметно-ориентированный язык (DSL), который использует декларативный синтаксис для развертывания ресурсов Azure. Он обеспечивает краткий синтаксис, надежную безопасность типов и поддержку повторного использования кода. Bicep предлагает лучшие возможности для разработки решений Azure типа "инфраструктура как код".
Предпосылки
Чтобы завершить эту статью, выполните указанные ниже действия.
- Если у вас нет подписки на Azure, создайте бесплатную учетную запись перед началом.
- Пользователю необходимо, чтобы ему была назначена встроенная роль Azure, рекомендуется роль Contributor. Дополнительные сведения см. здесь.
Проверьте файл Bicep
Шаблон, используемый в этом кратком руководстве, взят из шаблонов быстрого запуска Azure.
@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@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'
}
}
}
resource key 'Microsoft.KeyVault/vaults/keys@2023-07-01' = {
parent: vault
name: keyName
properties: {
kty: keyType
keyOps: keyOps
keySize: keySize
curveName: curveName
}
}
output proxyKey object = key.properties
output location string = location
output name string = vault.name
output resourceGroupName string = resourceGroup().name
output resourceId string = vault.id
В файле Bicep определены два ресурса:
Дополнительные примеры шаблонов Azure Key Vault можно найти в шаблонах быстрого запуска Azure.
Параметры и определения
| Параметр | Definition |
|---|---|
| keyOps | Указывает операции, которые можно выполнять с помощью ключа. Если этот параметр не указан, все операции можно выполнить. Допустимые значения для этого параметра — это разделенный запятыми список ключевых операций, определенных спецификацией веб-ключа JSON (JWK): ["sign", "verify", "encrypt", "decrypt", " wrapKey", "unwrapKey"] |
| Имя кривой | Название эллиптической кривой (EC) для типа ключа EC. См. jsonWebKeyCurveName |
| Kty | Тип создаваемого ключа. Допустимые значения см. в разделе JsonWebKeyType |
| Теги | Метаданные, относящиеся к приложению, в виде пар "ключ-значение". |
| nbf | Указывает время в качестве объекта DateTime, перед которым не удается использовать ключ. Формат будет в виде метки времени Unix (количество секунд после эпохи Unix, начиная с 1 января 1970 г., по UTC). |
| exp | Указывает время окончания срока действия в качестве объекта DateTime. Формат будет в виде метки времени Unix (количество секунд после эпохи Unix, начиная с 1 января 1970 г., по UTC). |
Разверните BICEP-файл
Сохраните файл Bicep с именем main.bicep на локальном компьютере.
Разверните файл Bicep с помощью Azure CLI или 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>Замечание
Замените
<vault-name>именем хранилища ключей. Замените<vault-name>именем хранилища ключей и замените<key-name>его именем.После завершения развертывания должно отобразиться сообщение о том, что развертывание успешно выполнено.
Назначьте роль 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 Crypto 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 key list --vault-name $keyVaultName &&
echo "Press [ENTER] to continue ..."
Создание ключа с помощью шаблона ARM отличается от создания ключа с помощью плоскости данных
Создание ключа с помощью ARM
Создать можно только новые ключи. Невозможно обновить существующие ключи или создать новые версии существующих ключей. Если ключ уже существует, то существующий ключ извлекается из хранилища и используется (операции записи не будут выполняться).
Для использования этого API, вызывающий должен быть уполномочен и иметь действие "Microsoft.KeyVault/vaults/keys/write" управление доступом на основе ролей (Azure RBAC). Встроенная роль 'Key Vault Contributor' достаточна, так как она авторизует все действия Azure RBAC, которые совпадают с шаблоном "Microsoft.KeyVault/*".
Существующий API (создание ключа с помощью плоскости данных)
- Можно создать новые ключи, обновить существующие ключи и создать новые версии существующих ключей.
- Вызывающий объект должен быть авторизован для использования этого API. Если хранилище использует политики доступа, вызывающий объект должен иметь разрешение на создание ключа; Если хранилище включено для Azure RBAC, вызывающий объект должен иметь "Microsoft.KeyVault/vaults/key/create/action" Azure RBAC DataAction.
Очистите ресурсы
Другие краткие руководства и учебные материалы по Key Vault основаны на этом кратком руководстве. Если вы планируете продолжить работу с последующими быстрыми стартами и руководствами, вы можете пожелать оставить эти ресурсы на месте. При отсутствии необходимости удалите группу ресурсов, которая удаляет Хранилище ключей и связанные ресурсы. Чтобы удалить группу ресурсов с помощью Azure CLI или Azure PowerShell, выполните следующие действия.
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."
Замечание
При удалении группы ресурсов также удаляется хранилище ключей, но затем оно переходит в состояние обратимого удаления и может быть восстановлено в течение срока хранения (по умолчанию 90 дней). Имя хранилища остается зарезервированным глобально в течение этого периода, и поскольку защита очистки включена, хранилище не может быть удалено рано. Для стандартных хранилищ ключей плата за хранилища, помеченные как обратимо удаленные, не взимается. Дополнительные сведения см. в разделе Обзор обратимого удаления в Key Vault.
Дальнейшие шаги
В этом быстром старте вы создали хранилище ключей и ключ с помощью Bicep-файла и проверили его развертывание. Дополнительные сведения о Key Vault и Azure Resource Manager см. в следующих статьях.
- Прочитайте обзор Azure Key Vault
- Сведения об Azure Resource Manager
- Просмотрите обзор безопасности Key Vault