Включение автоматической смены сертификатов в пуле пакетной службы
Пул пакетной службы можно создать с сертификатом, который можно обновить автоматически. Для этого необходимо создать пул с назначаемого пользователем управляемого удостоверения , имеющего доступ к сертификату в Azure Key Vault.
Создание назначаемого пользователем удостоверения
Сначала создайте управляемое удостоверение, назначаемое пользователем, в одном клиенте с учетной записью пакетной службы. Это управляемое удостоверение не должно находиться в одной группе ресурсов или даже в той же подписке.
Обязательно укажите идентификатор клиента управляемого удостоверения, назначенного пользователем. Это значение понадобится позже.
Создание сертификата
Затем необходимо создать сертификат и добавить его в Azure Key Vault. Если вы еще не создали хранилище ключей, необходимо сначала сделать это. Инструкции см. в статье Быстрое начало: настройка и получение сертификата из Azure Key Vault с помощью портала Microsoft Azure.
Создавая сертификат, не забудьте задать автоматическое продление для параметра Тип действия времени существования и указать срок, по истечении которого сертификат необходимо продлить.
После создания сертификата запишите его идентификатор секрета. Это значение понадобится позже.
Добавление политики доступа в Azure Key Vault
В хранилище ключей назначьте политику доступа Azure Key Vault, которая позволяет управляемому удостоверению, назначаемому пользователем, получать доступ к секретам и сертификатам. Подробные инструкции см. в статье Назначение политики доступа Key Vault с помощью портала Microsoft Azure.
Создание пула пакетной службы с управляемым удостоверением, назначаемым пользователем
Создайте пул пакетной службы с управляемым удостоверением, используя библиотеку управления пакетной службы .NET. Дополнительные сведения см. в статье Настройка управляемых удостоверений в пулах пакетной службы.
Совет
Существующие пулы нельзя обновить с помощью расширения виртуальной машины Key Vault. Вам потребуется повторно создать пул.
В следующем примере для создания пула используется REST API для управления пакетной службой. Не забудьте использовать идентификатор секрета вашего сертификата для observedCertificates
и идентификатора клиента управляемого удостоверения для msiClientId
, заменив данные из приведенного ниже примера.
Универсальный код ресурса (URI) REST API
PUT https://management.azure.com/subscriptions/<subscriptionid>/resourceGroups/<resourcegroupName>/providers/Microsoft.Batch/batchAccounts/<batchaccountname>/pools/<poolname>?api-version=2021-01-01
Текст запроса для узла Linux
{
"name": "test2",
"type": "Microsoft.Batch/batchAccounts/pools",
"properties": {
"vmSize": "STANDARD_DS2_V2",
"taskSchedulingPolicy": {
"nodeFillType": "Pack"
},
"deploymentConfiguration": {
"virtualMachineConfiguration": {
"imageReference": {
"publisher": "canonical",
"offer": "ubuntuserver",
"sku": "20.04-lts",
"version": "latest"
},
"nodeAgentSkuId": "batch.node.ubuntu 20.04",
"extensions": [
{
"name": "KVExtensions",
"type": "KeyVaultForLinux",
"publisher": "Microsoft.Azure.KeyVault",
"typeHandlerVersion": "3.0",
"autoUpgradeMinorVersion": true,
"settings": {
"secretsManagementSettings": {
"pollingIntervalInS": "300",
"certificateStoreLocation": "/var/lib/waagent/Microsoft.Azure.KeyVault",
"requireInitialSync": true,
"observedCertificates": [
"https://testkvwestus2s.vault.azure.net/secrets/authcertforumatesting/8f5f3f491afd48cb99286ba2aacd39af"
]
},
"authenticationSettings": {
"msiEndpoint": "http://169.254.169.254/metadata/identity",
"msiClientId": "b9f6dd56-d2d6-4967-99d7-8062d56fd84c"
}
}
}
]
}
},
"scaleSettings": {
"fixedScale": {
"targetDedicatedNodes": 1,
"resizeTimeout": "PT15M"
}
}
},
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ACR/providers/Microsoft.ManagedIdentity/userAssignedIdentities/testumaforpools": {}
}
}
}
Текст запроса для узла Windows
{
"name": "test2",
"type": "Microsoft.Batch/batchAccounts/pools",
"properties": {
"vmSize": "STANDARD_DS2_V2",
"taskSchedulingPolicy": {
"nodeFillType": "Pack"
},
"deploymentConfiguration": {
"virtualMachineConfiguration": {
"imageReference": {
"publisher": "microsoftwindowsserver",
"offer": "windowsserver",
"sku": "2022-datacenter",
"version": "latest"
},
"nodeAgentSkuId": "batch.node.windows amd64",
"extensions": [
{
"name": "KVExtensions",
"type": "KeyVaultForWindows",
"publisher": "Microsoft.Azure.KeyVault",
"typeHandlerVersion": "3.0",
"autoUpgradeMinorVersion": true,
"settings": {
"secretsManagementSettings": {
"pollingIntervalInS": "300",
"requireInitialSync": true,
"observedCertificates": [
{
"url": "https://testkvwestus2s.vault.azure.net/secrets/authcertforumatesting/8f5f3f491afd48cb99286ba2aacd39af",
"certificateStoreLocation": "LocalMachine",
"keyExportable": true
}
]
},
"authenticationSettings": {
"msiEndpoint": "http://169.254.169.254/metadata/identity",
"msiClientId": "b9f6dd56-d2d6-4967-99d7-8062d56fd84c"
}
},
}
]
}
},
"scaleSettings": {
"fixedScale": {
"targetDedicatedNodes": 1,
"resizeTimeout": "PT15M"
}
},
},
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ACR/providers/Microsoft.ManagedIdentity/userAssignedIdentities/testumaforpools": {}
}
}
}
Проверка сертификата
Чтобы убедиться, что сертификат успешно развернут, войдите на вычислительный узел. Вы должны увидеть результат, аналогичный приведенному ниже:
root@74773db5fe1b42ab9a4b6cf679d929da000000:/var/lib/waagent/Microsoft.Azure.KeyVault.KeyVaultForLinux-1.0.1363.13/status# cat 1.status
[{"status":{"code":0,"formattedMessage":{"lang":"en","message":"Successfully started Key Vault extension service. 2021-03-03T23:12:23Z"},"operation":"Service start.","status":"success"},"timestampUTC":"2021-03-03T23:12:23Z","version":"1.0"}]root@74773db5fe1b42ab9a4b6cf679d929da000000:/var/lib/waagent/Microsoft.Azure.KeyVault.KeyVaultForLinux-1.0.1363.13/status#
Устранение неполадок с расширением Key Vault
Если расширение Key Vault настроено неправильно, вычислительный узел может находиться в состоянии, доступном для использования. Чтобы устранить сбой расширения Key Vault, можно временно задать значение false и повторно развернуть пул, а вычислительный узел находится в состоянии простоя, вы можете войти в вычислительный узел, чтобы проверить журналы расширений KeyVault для ошибок и устранить проблемы с конфигурацией. Дополнительные сведения см. по ссылке на документацию по расширению Key Vault.
Следующие шаги
- Дополнительные сведения об управляемых удостоверениях для ресурсов Azure.
- Узнайте, как использовать управляемые клиентом ключи с удостоверениями, управляемыми пользователем.