Узнайте, как настроить параметры безопасности для управляемых пулов DevOps. Существует два способа настройки параметров безопасности.
- При создании пула с помощью вкладки "Безопасность "
- После создания пула с помощью области параметров безопасности
По умолчанию пулы, созданные с помощью управляемых пулов DevOps, настраиваются для всех проектов в одной организации. При необходимости можно ограничить доступ к определенным проектам в организации, а также предоставить доступ другим организациям.
Если вы настраиваете пул и предоставляете доступ ко всем проектам, пул добавляется в проекты, для которых у вас есть соответствующие разрешения. Если вы настраиваете пул и предоставляете доступ к конкретным проектам, необходимо иметь разрешение на добавление пула во все назначенные проекты, иначе создание пула не удастся.
Сведения о разрешениях, необходимых для настройки управляемых пулов DevOps в организации и проектах, см. в статье "Предварительные требования: проверка разрешений Azure DevOps".
Использование пула с одной организацией
По умолчанию управляемые пулы DevOps настраиваются с одной организацией Azure DevOps, указанной при создании пула. При настройке пула для одной организации имя организации отображается и настраивается в параметрах пула .
По умолчанию для параметра "Добавить пул для всех проектов " задано значение "Да", а доступ к управляемому пулу DevOps предоставляется всем проектам в организации. Чтобы ограничить, какие проекты в организации могут использовать пул, выберите "Нет", а затем укажите, какие проекты должны иметь доступ.
Организации можно настроить в свойстве organizationProfile ресурса Managed DevOps Pools.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"name": "fabrikam-managed-pool",
"type": "microsoft.devopsinfrastructure/pools",
"apiVersion": "2025-01-21",
"location": "eastus",
"properties": {
...
"organizationProfile": {
"organizations": [
{
"url": "https://dev.azure.com/fabrikam-tailspin",
"projects": [],
"parallelism": 4
}
],
"permissionProfile": {
"kind": "CreatorOnly"
},
"kind": "AzureDevOps"
}
}
]
}
В organizationProfile разделе содержатся следующие свойства.
| Свойство |
Описание |
organizations |
Список организаций, которые могут использовать ваш пул. Свойство url указывает URL-адрес организации. Свойство projects — это список проектов, которые могут использовать пул (пустой список позволяет всем проектам в организации использовать пул). Свойство parallelism указывает количество агентов, которые может использовать организация. Сумма уровня параллелизма для организаций должна соответствовать максимальному параметру агентов для пула. |
permissionProfile |
Это значение указывает разрешение, которое вы предоставляете пулу Azure DevOps при его создании. Это значение можно задать только при создании пула. Допустимые значения: Inherit, CreatorOnly и SpecificAccounts. При указании specificAccountsукажите один адрес электронной почты или список адресов электронной почты для users свойства. В противном случае опустим users. Дополнительные сведения см. в разделе "Разрешения администрирования пула". |
kind |
Это значение указывает тип организации для пула и должен иметь значение Azure DevOps. |
Организации можно настроить в параметре organization-profile при создании или обновлении пула.
az mdp pool create \
--organization-profile organization-profile.json
# other parameters omitted for space
В следующем примере показан объект organization-profile, настроенный для всех проектов в организации fabrikam-tailspin с заданным значением parallelism, установленным на 1.
{
"AzureDevOps":
{
"organizations": [
{
"url": "https://dev.azure.com/fabrikam-tailspin",
"projects": [],
"parallelism": 1
}
]
}
}
В organizationProfile разделе содержатся следующие свойства.
| Свойство |
Описание |
AzureDevOps |
Это значение — имя объекта, определенного в organization-profile , и должно иметь значение Azure DevOps. |
organizations |
Список организаций, которые могут использовать ваш пул.
openAccess указывает, настраивает ли управляемые пулы DevOps открытый доступ для пула во время создания пула. Свойство url указывает URL-адрес организации. Свойство projects — это список имен проектов, которые могут использовать пул (пустой список позволяет охватить все проекты в организации). Свойство parallelism указывает количество агентов, которые может использовать эта организация. Сумма уровня параллелизма для организаций должна соответствовать максимальному параметру агентов для пула. |
permissionProfile |
Это свойство указывает разрешение, которое вы предоставляете пулу Azure DevOps при его создании. Это значение можно задать только при создании пула. Допустимые значения: Inherit, CreatorOnly и SpecificAccounts. При указании specificAccountsукажите один адрес электронной почты или список адресов электронной почты для users свойства. В противном случае опустим users. Дополнительные сведения см. в разделе "Разрешения администрирования пула". |
Организации можно настроить в свойстве organizationProfile ресурса Managed DevOps Pools.
resource managedDevOpsPools 'Microsoft.DevOpsInfrastructure/pools@2025-01-21' = {
name: 'fabrikam-managed-pool'
location: 'eastus'
properties: {
organizationProfile: {
organizations: [
{
url: 'https://dev.azure.com/fabrikam-tailspin'
projects: []
parallelism: 4
}
]
permissionProfile: {
kind: 'CreatorOnly'
}
kind: 'AzureDevOps'
}
}
}
В organizationProfile разделе содержатся следующие свойства.
| Свойство |
Описание |
organizations |
Список организаций, которые могут использовать ваш пул. Свойство url указывает URL-адрес организации. Свойство projects — это список имен проектов, которые могут использовать пул (пустой список поддерживает все проекты в организации). Свойство parallelism указывает количество агентов, которые может использовать эта организация. Сумма уровня параллелизма для организаций должна соответствовать максимальному параметру агентов для пула. |
permissionProfile |
Это свойство указывает разрешение, которое вы предоставляете пулу Azure DevOps при его создании. Это значение можно задать только при создании пула. Допустимые значения: Inherit, CreatorOnly и SpecificAccounts. Если specificAccounts задано, укажите один адрес электронной почты или список адресов электронной почты для users свойства. В противном случае опустим users. Дополнительные сведения см. в разделе "Разрешения администрирования пула". |
kind |
Это значение указывает тип организации для пула и должен иметь значение Azure DevOps. |
Использование пула в нескольких организациях
Чтобы использовать пул с несколькими организациями Azure DevOps, включите использование пула в нескольких организациях. Для каждой организации укажите проекты, которым разрешено использовать пул, или оставьте это поле пустым, чтобы разрешить все проекты. Настройте параллелизм для каждой организации, указав, какие части одновременности нужно выделить каждой организации, как указано максимальным значением агентов для пула. Сумма параллелизма для всех организаций должна соответствовать максимальному параллелизму пула. Например, если для максимального числа агентов задано значение пять, сумма параллелизма для указанных организаций должна быть пятью. Если для параметра "Максимальное число агентов " задано одно значение, пул можно использовать только с одной организацией.
В следующем примере пул настроен так, чтобы быть доступным для проектов FabrikamResearch и FabrikamTest в организации fabrikam-tailspin, а также для всех проектов в организации fabrikam-blue.
Если возникает ошибка The sum of parallelism for all organizations must equal the max concurrency, убедитесь, что максимальное число агентов для пула соответствует сумме столбца Parallelism .
Чтобы настроить пул таким образом, чтобы несколько организаций могли использовать его, добавьте дополнительные организации в список организаций. В следующем примере настроены две организации. Первая организация настроена на использование управляемых пулов DevOps для всех проектов, а вторая организация может использовать ее только с двумя проектами. В этом примере максимальный параметр агентов для пула составляет четыре, и каждая организация может использовать два из этих четырех агентов.
"organizationProfile": {
"organizations": [
{
"url": "https://dev.azure.com/fabrikam-tailspin",
"projects": [],
"parallelism": 2
},
{
"url": "https://dev.azure.com/fabrikam-prime",
"projects": [ "fabrikam-dev", "fabrikam-test" ],
"parallelism": 2
}
],
"permissionProfile": {
"kind": "CreatorOnly"
},
"kind": "AzureDevOps"
}
Организации можно настроить в параметре organization-profile при создании или обновлении пула.
az mdp pool create \
--organization-profile organization-profile.json
# other parameters omitted for space
Чтобы настроить пул таким образом, чтобы несколько организаций могли использовать его, добавьте дополнительные организации в список организаций. В следующем примере настроены две организации. Первая организация настроена на использование управляемых пулов DevOps для всех проектов, а вторая организация может использовать ее только с двумя проектами. В этом примере максимальный параметр агентов для пула составляет четыре, и каждая организация может использовать два из этих четырех агентов.
{
"AzureDevOps":
{
"organizations": [
{
"url": "https://dev.azure.com/fabrikam-tailspin",
"projects": [],
"parallelism": 2
},
{
"url": "https://dev.azure.com/fabrikam-prime",
"projects": [ "fabrikam-dev", "fabrikam-test" ],
"parallelism": 2
}
]
}
}
Чтобы настроить пул таким образом, чтобы несколько организаций могли использовать его, добавьте дополнительные организации в список организаций. В следующем примере настроены две организации. Первая организация настроена на использование управляемых пулов DevOps для всех проектов, а вторая организация может использовать ее только с двумя проектами. В этом примере максимальный параметр агентов для пула составляет четыре, и каждая организация может использовать два из этих четырех агентов.
organizationProfile: {
organizations: [
{
url: 'https://dev.azure.com/fabrikam-tailspin'
projects: []
parallelism: 2
}
{
url: 'https://dev.azure.com/fabrikam-prime'
projects: ['fabrikam-dev', 'fabrikam-test']
parallelism: 2
}
]
permissionProfile: {
kind: 'CreatorOnly'
}
kind: 'AzureDevOps'
}
Чтобы настроить открытый доступ для конвейеров, необходимо иметь следующие разрешения в дополнение к разрешениям, описанным в предварительных требованиях. Проверка разрешений Azure DevOps:
По умолчанию необходимо явно авторизовать каждое определение конвейера для запуска в локальном пуле агентов (например, пуле, созданном с помощью управляемых пулов DevOps), прежде чем он запускается в первый раз в этом пуле.
Azure DevOps предоставляет следующие режимы для авторизации конвейеров для запуска в пуле агентов.
-
Авторизация конкретных конвейеров (по умолчанию): индивидуально авторизуйте определенные конвейеры из проекта Azure DevOps для запуска в пуле.
-
Открытый доступ: настройте пул агентов на уровне проекта, чтобы быть доступным для всех конвейеров в этом проекте.
Разрешить запуск всех конвейеров в пуле без утверждения (открытого доступа) для настройки параметра пула агентов Open Access в Azure DevOps при создании пула.
Вы можете настроить параметр Разрешить всем конвейерам работать в пуле без утверждения (открытый доступ) только при создании управляемого пула DevOps. После создания пула можно просмотреть и настроить открытый доступ в соответствующем пуле агентов в Azure DevOps для каждого проекта, использующего пул.
Чтобы настроить доступ к пулу из всех конвейеров в указанных проектах, включите разрешить всем конвейерам работать в пуле без утверждения (открытого доступа).
- Если для настройки добавления пула ко всем проектам выбрано значение "Да", то управляемые пулы DevOps настраивают открытый доступ для всех конвейеров во всех проектах.
- Если для всех проектов установлено значение "Нет" для параметра "Добавить пул", управляемые пулы DevOps настраивают открытый доступ для всех конвейеров только в перечисленных проектах.
Если включить пул использования в нескольких организациях, можно указать открытый доступ по отдельности для каждой организации.
Примечание.
Параметр Открытый доступ присутствует при использовании версии api-version 2025-01-21 и более поздних.
Организации можно настроить в свойстве organizationProfile ресурса Managed DevOps Pools. В примере ниже настроены параметры двух организаций.
- Организация
fabrikam-tailspin настроена с открытым доступом во всех проектах.
- Организация
fabrikam-prime настроена для обеспечения доступности с двумя проектами, при этом Open Access включен только в этих двух проектах.
"organizationProfile": {
"organizations": [
{
"url": "https://dev.azure.com/fabrikam-tailspin",
"projects": [],
"openAccess": true,
"parallelism": 2
},
{
"url": "https://dev.azure.com/fabrikam-prime",
"projects": [ "fabrikam-dev", "fabrikam-test" ],
"openAccess": true,
"parallelism": 2
}
],
"permissionProfile": {
"kind": "CreatorOnly"
},
"kind": "AzureDevOps"
}
Открыть доступ можно только при создании пула. Чтобы изменить параметр Open access после создания пула (включая добавление или удаление проектов из конфигурации управляемых пулов DevOps), необходимо вручную настроить открытый доступ в соответствующем пуле агентов в Azure DevOps для каждого проекта, использующего пул.
В параметре organization-profile можно настроить openAccess при создании пула.
az mdp pool create \
--organization-profile organization-profile.json
# other parameters omitted for space
В следующем orgaization-profile примере настроены две организации:
- Организация
fabrikam-tailspin настроена с открытым доступом во всех проектах.
- Организация
fabrikam-prime настроена для обеспечения доступности с двумя проектами, при этом Open Access включен только в этих двух проектах.
{
"AzureDevOps":
{
"organizations": [
{
"url": "https://dev.azure.com/fabrikam-tailspin",
"projects": [],
"parallelism": 2
},
{
"url": "https://dev.azure.com/fabrikam-prime",
"projects": [ "fabrikam-dev", "fabrikam-test" ],
"parallelism": 2
}
]
}
}
Открыть доступ можно только при создании пула. Чтобы изменить параметр Open access после создания пула (включая добавление или удаление проектов из конфигурации управляемых пулов DevOps), необходимо вручную настроить открытый доступ в соответствующем пуле агентов в Azure DevOps для каждого проекта, использующего пул.
Примечание.
Параметр Открытый доступ присутствует при использовании api-version 2025-01-21 и более поздних версий.
Организации можно настроить в свойстве organizationProfile ресурса Managed DevOps Pools. В следующем примере настроены две организации:
- Организация
fabrikam-tailspin настроена с открытым доступом во всех проектах.
- Организация
fabrikam-prime настроена для обеспечения доступности с двумя проектами, при этом Open Access включен только в этих двух проектах.
organizationProfile: {
organizations: [
{
url: 'https://dev.azure.com/fabrikam-tailspin'
projects: []
openAccess: true
parallelism: 2
}
{
url: 'https://dev.azure.com/fabrikam-prime'
projects: ['fabrikam-dev', 'fabrikam-test']
openAccess: true
parallelism: 2
}
]
permissionProfile: {
kind: 'CreatorOnly'
}
kind: 'AzureDevOps'
}
Открыть доступ можно только при создании пула. Чтобы изменить параметр Open access после создания пула (включая добавление или удаление проектов из конфигурации управляемых пулов DevOps), необходимо вручную настроить открытый доступ в соответствующем пуле агентов в Azure DevOps для каждого проекта, использующего пул.
Если вы пытаетесь запустить конвейер, который не авторизован для доступа к пулу агентов, вы получите сообщение об ошибке, например "Этот конвейер должен иметь разрешение на доступ к ресурсу, прежде чем этот запуск может продолжить". Эту проблему можно устранить, настроив открытый доступ, как описано в предыдущем разделе, или явно авторизации конвейера для запуска в пуле агентов.
Если вашим тестам необходим интерактивный вход для тестирования пользовательского интерфейса, включите интерактивный вход, настроив параметр EnableInteractiveMode.
Настроить интерактивный режим osProfile можно в разделе свойства fabricProfile. Установите logonType на Interactive, чтобы включить интерактивный режим, или на Service, чтобы отключить интерактивный режим.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"name": "fabrikam-managed-pool",
"type": "microsoft.devopsinfrastructure/pools",
"apiVersion": "2025-01-21",
"location": "eastus",
"properties": {
...
"fabricProfile": {
"sku": {...},
"images": [...],
"osProfile": {
"secretsManagementSettings": {...},
"logonType": "Interactive"
},
"storageProfile": {...},
"kind": "Vmss"
}
}
]
}
Интерактивный режим можно настроить с помощью logonType свойства в osProfile разделе в параметре fabric-profile при создании или обновлении пула.
az mdp pool create \
--fabric-profile fabric-profile.json
# other parameters omitted for space
В следующем примере показан osProfile раздел файлаfabric-profile.json при включённом режиме Interactive.
{
"vmss": {
"sku": {...},
"images": [...],
"osProfile": {
"secretsManagementSettings": {...},
"logonType": "Interactive"
},
"storageProfile": {...}
}
}
Интерактивный режим настраивается в разделе свойства osProfilefabricProfile. Установите logonType на Interactive, чтобы включить интерактивный режим, или на Service, чтобы отключить интерактивный режим.
resource managedDevOpsPools 'Microsoft.DevOpsInfrastructure/pools@2025-01-21' = {
name: 'fabrikam-managed-pool'
location: 'eastus'
properties: {
fabricProfile: {
sku: {...}
images: [...]
osProfile: {
secretsManagementSettings: {...}
logonType: 'Interactive'
}
storageProfile: {...}
kind: 'Vmss'
}
}
}
В рамках процесса создания управляемого пула DevOps пул агентов создается на уровне организации Azure DevOps, а пул агентов уровня проекта создается в каждом указанном проекте. Параметр разрешений администрирования пула указывает, какие пользователи получают разрешение администратора на только что созданные пулы агентов в Azure DevOps. Сведения о просмотре разрешений пула агентов Azure DevOps и управлении ими после создания управляемого пула DevOps см. в статье "Создание пулов агентов и управление ими: безопасность пулов агентов".
-
Только создатель: этот параметр добавляет пользователя, который создал управляемый пул DevOps, в качестве администратора пула агентов Azure DevOps и устанавливает для параметра Наследование значение «Отключено» в настройках безопасности пула агентов.
Только создатель — это параметр по умолчанию.
-
Наследование разрешений от проекта: этот параметр добавляет пользователя, создавшего управляемый пул DevOps в качестве администратора пула агентов Azure DevOps, и задает значение "Наследованиевключено " в параметрах безопасности пула агентов.
-
Конкретные учетные записи. Этот параметр можно использовать для указания учетных записей, которые необходимо добавить в качестве администраторов пула агентов в Azure DevOps. По умолчанию создатель пула включен.
Вы можете настроить параметры разрешений администрирования пула на вкладке "Безопасность " при создании пула. Он не отображается в параметрах безопасности после создания пула. Сведения о просмотре разрешений пула агентов Azure DevOps и управлении ими после создания пула см. в статье "Создание пулов агентов и управление ими" — безопасность пулов агентов.
Разрешения на администрирование пула permissionsProfile можно настроить в свойстве organizationProfile раздела ресурса "Managed DevOps Pools".
{
"organizationProfile": {
"organizations": [...],
"permissionProfile": {
"kind": "CreatorOnly"
},
"kind": "AzureDevOps"
}
Вы можете задать это свойство permissionProfile только при создании пула. Допустимые значения: Inherit, CreatorOnly и SpecificAccounts.
-
CreatorOnly: этот параметр добавляет пользователя, создавшего управляемый пул DevOps, в качестве администратора пула агентов Azure DevOps, и устанавливает для параметра Наследование значение Выключено в настройках безопасности пула агентов.
Только создатель — это параметр по умолчанию.
-
Inherit: этот параметр добавляет пользователя, создавшего управляемый пул DevOps в качестве администратора пула агентов Azure DevOps, и задает значение "Наследованиевключено " в параметрах безопасности пула агентов.
-
SpecificAccounts. Этот параметр можно использовать для указания учетных записей, которые необходимо добавить в качестве администраторов пула агентов в Azure DevOps. По умолчанию создатель пула включен.
"organizationProfile": {
"organizations": [...],
"permissionProfile": {
"kind": "SpecificAccounts",
"users" : ["[email protected]", "[email protected]" ]
},
"kind": "AzureDevOps"
}
При organization-profile пула можно настроить разрешения администрирования пула в параметре.
az mdp pool create \
--organization-profile organization-profile.json
# other parameters omitted for space
{
"AzureDevOps":
{
"organizations": [...],
"permissionProfile": {
"kind": "CreatorOnly"
}
}
}
Вы можете задать это свойство permissionProfile только при создании пула. Допустимые значения: Inherit, CreatorOnly и SpecificAccounts.
-
CreatorOnly: Этот параметр добавляет пользователя, создавшего управляемый пул DevOps, в качестве администратора пула агентов Azure DevOps, и отключает наследование в настройках безопасности пула агентов.
Только создатель — это параметр по умолчанию.
-
Inherit: этот параметр добавляет пользователя, создавшего управляемый пул DevOps в качестве администратора пула агентов Azure DevOps, и задает значение "Наследованиевключено " в параметрах безопасности пула агентов.
-
SpecificAccounts. Этот параметр можно использовать для указания учетных записей, которые необходимо добавить в качестве администраторов пула агентов в Azure DevOps. По умолчанию создатель пула включен. Укажите один адрес электронной почты или список адресов электронной почты для users свойства. В противном случае опустим users.
{
"AzureDevOps" : {
"organizationProfile": {
"organizations": [...],
"permissionProfile": {
"kind": "SpecificAccounts",
"users" : ["[email protected]", "[email protected]" ]
}
}
}
}
Разрешения на администрирование пула permissionsProfile можно настроить в свойстве organizationProfile раздела ресурса "Managed DevOps Pools".
organizationProfile: {
organizations: [...]
permissionProfile: {
kind: 'CreatorOnly'
}
kind: 'AzureDevOps'
}
Вы можете задать это свойство permissionProfile только при создании пула. Допустимые значения: Inherit, CreatorOnly и SpecificAccounts.
-
CreatorOnly: Этот параметр добавляет пользователя, создавшего управляемый пул DevOps, в качестве администратора пула агентов Azure DevOps и устанавливает значение "Наследование" на "Выключено" в параметрах безопасности пула агентов.
Только создатель — это параметр по умолчанию.
-
Inherit: этот параметр добавляет пользователя, создавшего управляемый пул DevOps в качестве администратора пула агентов Azure DevOps, и задает значение "Наследованиевключено " в параметрах безопасности пула агентов.
-
SpecificAccounts. Этот параметр можно использовать для указания учетных записей, которые необходимо добавить в качестве администраторов пула агентов в Azure DevOps. По умолчанию создатель пула включен. Укажите один адрес электронной почты или список адресов электронной почты для users свойства. В противном случае опустим users.
organizationProfile: {
organizations: [...]
permissionProfile: {
kind: 'SpecificAccounts'
users: ['[email protected]', '[email protected]']
}
kind: 'AzureDevOps'
}
Управляемые пулы DevOps предоставляют возможность получения сертификатов из хранилища ключей Azure во время подготовки. Сертификаты уже существуют на машине к моменту запуска ваших конвейеров.
Чтобы использовать эту функцию, необходимо:
Настройте удостоверение для пула. Чтобы разрешить этому удостоверению Key Vault Secrets User получать секрет из вашего хранилища ключей, необходимо предоставить ему соответствующие разрешения. Чтобы назначить вашу учетную запись в роли пользователя секретов Key Vault, см. раздел «Предоставление доступа к ключам хранилища ключей, сертификатам и секретам с помощью управления доступом на основе ролей Azure».
Субъект, который настраивает параметры интеграции хранилища ключей (учетная запись при настройке параметров хранилища ключей), должен иметь назначение роли пользователя сертификата Key Vault в хранилище ключей, где хранятся сертификаты.
Чтобы применить сетевую изоляцию для экземпляра Azure Key Vault, чтобы разрешить доступ только авторизованным ресурсам, необходимо добавить следующие IP-адреса в список разрешений Azure Key Vault. Следующие диапазоны IP-адресов находятся в теге службы Azureс именем DevOpsInfrastructure.
| Местоположение |
Диапазон IP-адресов |
| австралия |
4.198.194.192/28 |
| бразилия |
74.163.143.32/28 |
| canadacentral |
130.107.66.0/28 |
| centralindia |
98.70.255.112/28 |
| centralus |
72.152.33.16/28 |
| eastus2 |
72.153.21.192/28 |
| germanywestcentral |
131.189.121.128/28 |
| northeurope |
72.145.24.48/28 |
| юго-восточная часть |
135.171.33.48/28 |
| швейцариянорт |
74.161.82.192/28 |
| uksouth |
131.145.107.64/28 |
| westus3 |
57.154.125.208/28 |
Примечание.
api-version 2025-01-21 Если вы используете эту функцию, вы можете использовать только одно удостоверение в пуле.
Вы можете использовать только одно удостоверение для получения секретов из хранилища ключей.
Вы устанавливаете параметры сертификата управляемых пулов DevOps на уровне пула, а некоторые параметры предназначены для Windows или Linux. Если для рабочего процесса требуются образы Linux и Windows, их может потребоваться разделить на несколько пулов, если вы не можете найти общий набор параметров сертификата, работающих как для Windows, так и для Linux.
Следующие параметры настраивают сертификаты, полученные из хранилища ключей:
-
Сертификаты (
observedCertificates): этот параметр указывает сертификаты, которые необходимо получить из хранилища ключей и установить на всех компьютерах в пуле.
-
Расположение хранилища сертификатов (
certificateStoreLocation): этот параметр указывает расположение для установки сертификатов в агенте.
-
Агенты Windows: укажите
LocalMachine или CurrentUser.
- Агенты Linux: настройка расположение хранилища сертификатов поддерживается только в дистрибутивах Ubuntu. Укажите путь к диску для хранения сертификатов (например,
/var/lib/waagent/Microsoft.Azure.KeyVault/app1).
Для дистрибутивов Ubuntu, если указать расположение доверенного хранилища (например, /usr/local/share/ca-certificates), сертификат добавляется в это хранилище сертификатов в качестве корневого каталога. Для получения дополнительной информации см. раздел 'Установка корневого сертификата ЦС' в хранилище доверия.
-
Имя хранилища сертификатов (
certificateStoreName)
-
Агенты Windows: этот параметр указывает имя хранилища сертификатов. Это либо
My (локальное хранилище сертификатов, которое является значением по умолчанию, если имя не указано) или Root (надежное корневое расположение).
-
Агенты Linux: этот параметр не используется в агентах Linux.
-
Экспортируемые закрытые ключи (
keyExportable): этот параметр указывает, можно ли экспортировать ключ сертификатов. Значение по умолчанию — false.
Интеграцию хранилища ключей можно настроить в settings>Security.
Параметры интеграции хранилища ключей можно настроить только после создания пула. Параметры интеграции хранилища ключей невозможно настроить при создании пула. Они не отображаются на вкладке "Безопасность " во время создания пула.
Azure Key Vault можно настроить в osProfile разделе fabricProfile свойства. Задайте secretManagementSettings для доступа к требуемому сертификату.
Примечание.
Свойство osProfile.certificateStoreName доступно только в apiVersion 2025-01-21 и более поздних версиях.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"name": "fabrikam-managed-pool",
"type": "microsoft.devopsinfrastructure/pools",
"apiVersion": "2025-01-21",
"location": "eastus",
"properties": {
...
"fabricProfile": {
"sku": {...},
"images": [...],
"osProfile": {
"secretsManagementSettings": {
"certificateStoreLocation": "LocalMachine",
"certificateStoreName": "Root",
"observedCertificates": [
"https://<keyvault-uri>/secrets/<certificate-name>"
],
"keyExportable": false
}
},
"storageProfile": {...},
"kind": "Vmss"
}
}
]
}
Azure Key Vault можно настроить в osProfile разделе fabricProfile свойства при создании или обновлении пула. Установите secretManagementSettings, чтобы получить доступ к нужному сертификату.
az mdp pool create \
--fabric-profile fabric-profile.json
# other parameters omitted for space
В следующем примере показан osProfile раздел файла fabric-profile.json с настроенным secretsManagementSettings.
{
"vmss": {
"sku": {...},
"images": [...],
"osProfile": {
"secretsManagementSettings": {
"certificateStoreLocation": "LocalMachine",
"observedCertificates": [
"https://<keyvault-uri>/secrets/<certificate-name>"
],
"keyExportable": false
},
"logonType": "Interactive"
},
"storageProfile": {...}
}
}
Azure Key Vault можно настроить в osProfile разделе fabricProfile свойства. Задайте secretManagementSettings для доступа к требуемому сертификату.
Примечание.
Свойство osProfile.certificateStoreName доступно только в apiVersion 2025-01-21 и более поздних версиях.
resource managedDevOpsPools 'Microsoft.DevOpsInfrastructure/pools@2025-01-21' = {
name: 'fabrikam-managed-pool'
location: 'eastus'
properties: {
fabricProfile: {
sku: {...}
images: [...]
osProfile: {
secretsManagementSettings: {
certificateStoreLocation: 'LocalMachine'
certificateStoreName: 'Root'
observedCertificates: 'https://<keyvault-uri>/secrets/<certificate-name>'
keyExportable: false
}
}
kind: 'Vmss'
}
}
}
Сертификаты, полученные с помощью SecretManagementSettings на вашем пуле, автоматически синхронизируются с последними версиями, опубликованных в хранилище ключей. Эти секреты находятся на компьютере к моменту запуска первого потока, это означает, что вы можете сэкономить время и устранить необходимость в задачах по получению сертификатов.
Внимание
Подготовка виртуальных машин агента завершается сбоем, если секрет не может быть получен из хранилища ключей из-за разрешения или проблемы с сетью.
Для Windows можно задать значение LocalMachine" или CurrentUser". Этот параметр гарантирует, что секрет установлен в этом расположении на компьютере. Сведения о том, как работает извлечение секретов, см. в расширении Azure Key Vault для Windows.
Для Linux можно задать значение расположения хранилища сертификатов для любого каталога на компьютере, а сертификаты скачиваются и синхронизируются с этим расположением. Сведения о параметрах по умолчанию и поведении секретов см. в расширении виртуальной машины Azure Key Vault для Linux.
Связанный контент