了解如何为托管 DevOps 池配置安全设置。 可通过两种方法配置安全设置:
- 使用 “安全 ”选项卡创建池时
- 使用 “安全 设置”窗格创建池后
默认情况下,您使用托管 DevOps 池创建的池会配置为适用于单个组织中的所有项目。 可以选择性地限制对组织中的特定项目的访问权限,还可以授予对其他组织的访问权限。
如果您配置池并授予对所有项目的访问权限,则池将添加到您具有相应权限的项目中。 如果配置池并授予对特定项目的访问权限,则必须有权在所有指定项目中添加该池,否则池创建将失败。
若要查看在组织和项目中配置托管 DevOps 池所需的权限,请参阅 先决条件:验证 Azure DevOps 权限。
使用单个组织的资源池
默认情况下,托管 DevOps 池在创建时会配置为使用用户指定的单个 Azure DevOps 组织。 为单个组织配置池时,将在 池 设置中显示并配置组织名称。
默认情况下, “向所有项目添加池 ”设置设置为 “是”,并向组织中的所有项目授予对托管 DevOps 池的访问权限。 若要限制组织中的哪些项目可以使用该池,请选择 “否”,然后指定哪些项目应具有访问权限。
可以在托管 DevOps 池资源的 organizationProfile 属性中配置组织。
{
"$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-09-20",
"location": "eastus",
"properties": {
...
"organizationProfile": {
"organizations": [
{
"url": "https://dev.azure.com/fabrikam-tailspin",
"projects": [],
"parallelism": 4
}
],
"permissionProfile": {
"kind": "CreatorOnly"
},
"kind": "AzureDevOps"
}
}
]
}
该 organizationProfile 部分具有以下属性。
| properties |
说明 |
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
以下示例显示了一个对象 ,它配置为组织 中所有项目,且其 值设置为 。
{
"AzureDevOps":
{
"organizations": [
{
"url": "https://dev.azure.com/fabrikam-tailspin",
"projects": [],
"parallelism": 1
}
]
}
}
该 organizationProfile 部分具有以下属性。
| properties |
说明 |
AzureDevOps |
此值是在其中 organization-profile 定义的对象的名称,必须设置为 Azure DevOps。 |
organizations |
可以使用池的组织列表。
openAccess 指定在创建池期间托管 DevOps 池是否配置池的 开放访问权限 。 该 url 属性指定组织的 URL。 该 projects 属性是一个项目名称列表,这些项目可以使用该池(空列表支持组织中的所有项目)。 该 parallelism 属性指定此组织可以使用的代理数。 组织的并行度之和必须与池的最大代理设置匹配。 |
permissionProfile |
此属性指定在创建 Azure DevOps 池时授予的权限。 只能在创建池时设置此值。 允许使用的值为 Inherit、CreatorOnly 和 SpecificAccounts。 如果指定 specificAccounts,请为 users 属性提供一个电子邮件地址或一个电子邮件地址列表。 否则,省略 users。 有关详细信息,请参阅 池管理权限。 |
可以在托管 DevOps 池资源的 organizationProfile 属性中配置组织。
resource managedDevOpsPools 'Microsoft.DevOpsInfrastructure/pools@2025-09-20' = {
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 部分具有以下属性。
| properties |
说明 |
organizations |
可以使用池的组织列表。 该 url 属性指定组织的 URL。 该 projects 属性是一个项目名称列表,这些项目可以使用该池(空列表支持组织中的所有项目)。 该 parallelism 属性指定此组织可以使用的代理数。 组织的并行度之和必须与池的最大代理设置匹配。 |
permissionProfile |
此属性指定在创建 Azure DevOps 池时授予的权限。 只能在创建池时设置此值。 允许使用的值为 Inherit、CreatorOnly 和 SpecificAccounts。 如果已指定specificAccounts,请为users属性提供一个电子邮件地址或一组电子邮件地址。 否则,省略 users。 有关详细信息,请参阅 池管理权限。 |
kind |
此值指定池的组织类型,并且必须设置为 Azure DevOps。 |
在多个组织中使用资源池
若要将池用于多个 Azure DevOps 组织,请在 多个组织中启用“使用池”。 对于每个组织,请指定允许使用池的项目,或将此字段留空以允许所有项目。 根据池的最大代理值决定的并发性,指定要分配给每个组织的并发份额,以配置每个组织的并行度。 所有组织的并行度之和必须等于池的最大并发性。 例如,如果 最大代理 数设置为 5,则指定组织的并行度之和必须为 5。 如果 “最大代理 ”值设置为 1,则只能将池与一个组织一起使用。
在以下示例中,池被配置为可用于 fabrikam-tailspin 组织中的 FabrikamResearch 和 FabrikamTest 项目,以及可用于 fabrikam-blue 组织中的所有项目。
如果收到类似 The sum of parallelism for all organizations must equal the max concurrency错误,请确保资源池的最大 代理数 与 并行度 列的总和匹配。
若要配置池,以便多个组织可以使用该池,请将更多组织添加到组织列表中。 以下示例配置了两个组织。 第一个组织配置为对所有项目使用托管 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 项目单独授权特定管道以在池中运行。
-
打开访问权限:将项目级别的代理池配置为可用于该项目中的所有管道。
启用 “允许所有管道在池上运行(未经批准)”, 以便在创建池时在 Azure DevOps 中配置 开放访问 代理池设置。
只有在创建托管 DevOps 池时,才能配置允许所有管道在没有审批情况下在池上运行(开放访问)的设置。 创建池后,可以在 Azure DevOps 中查看和配置相应代理池的“打开访问”权限,以便为使用该池的每个项目进行设置。
若要从指定项目中的所有管道配置对池的访问权限,请启用“允许所有管道在池上运行”,而无需批准(打开访问权限)。
- 如果向所有项目添加池设置为“是”,托管的 DevOps 池将为所有项目中的所有管道配置开放访问。
- 如果将 “向所有项目添加池 ”设置为 “否”,则托管 DevOps 池仅为列出的项目中的所有管道配置 开放访问权限 。
如果在 多个组织中启用“使用池”,则可以为每个组织单独指定 开放访问权限 。
注意
使用和更高版本时,将显示api-version 2025-01-21”设置。
可以在托管 DevOps 池资源的 organizationProfile 属性中配置组织。 以下示例配置了两个组织:
- 组织
fabrikam-tailspin 在所有项目上都配置了 开放访问权限 。
-
fabrikam-prime 组织被配置为具有两个项目的可用性,并且仅在这两个项目上启用了 开放访问权限。
"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"
}
只能在创建池时配置 开放访问权限 。 若要在创建池后更改“打开访问”设置(包括添加或删除托管 DevOps 池配置中的项目),必须为使用该池的每个项目在 Azure DevOps 中的相应代理池上手动配置 Open 访问权限。
在创建池时,可以在openAccess参数中配置organization-profile设置。
az mdp pool create \
--organization-profile organization-profile.json
# other parameters omitted for space
以下示例 orgaization-profile 配置了两个组织:
- 组织
fabrikam-tailspin 在所有项目上都配置了 开放访问权限 。
-
fabrikam-prime 组织被配置为具有两个项目的可用性,并且仅在这两个项目上启用了 开放访问权限。
{
"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 池配置中的项目),必须为使用该池的每个项目在 Azure DevOps 中的相应代理池上手动配置 Open 访问权限。
注意
在使用更高版本时,将会出现“api-version 2025-01-21”设置。
可以在托管 DevOps 池资源的 organizationProfile 属性中配置组织。 以下示例配置了两个组织:
- 组织
fabrikam-tailspin 在所有项目上都配置了 开放访问权限 。
-
fabrikam-prime 组织被配置为具有两个项目的可用性,并且仅在这两个项目上启用了 开放访问权限。
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'
}
只能在创建池时配置 开放访问权限 。 若要在创建池后更改“打开访问”设置(包括添加或删除托管 DevOps 池配置中的项目),必须为使用该池的每个项目在 Azure DevOps 中的相应代理池上手动配置 Open 访问权限。
如果尝试运行无权访问代理池的管道,将收到错误,例如“此管道需要访问资源的权限,然后才能继续运行。可以通过配置开放访问(如上一部分所述)或 显式授权管道在代理池中运行来解决此问题。
如果测试需要交互式登录进行 UI 测试,请启用 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-09-20",
"location": "eastus",
"properties": {
...
"fabricProfile": {
"sku": {...},
"images": [...],
"osProfile": {
"secretsManagementSettings": {...},
"logonType": "Interactive"
},
"storageProfile": {...},
"kind": "Vmss"
}
}
]
}
创建或更新池时,可以在参数的logonType节中使用osProfile属性来配置交互模式。
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": {...}
}
}
在属性的节osProfile中fabricProfile配置交互式模式。
logonType设置为Interactive启用交互模式或Service禁用交互模式。
resource managedDevOpsPools 'Microsoft.DevOpsInfrastructure/pools@2025-09-20' = {
name: 'fabrikam-managed-pool'
location: 'eastus'
properties: {
fabricProfile: {
sku: {...}
images: [...]
osProfile: {
secretsManagementSettings: {...}
logonType: 'Interactive'
}
storageProfile: {...}
kind: 'Vmss'
}
}
}
作为托管 DevOps 池创建过程的一部分,代理池在 Azure DevOps 组织级别创建,并在每个指定项目中创建项目级代理池。
池管理权限设置指定哪些用户被授予 Azure DevOps 中新创建的代理池的管理员权限。 若要在创建托管 DevOps 池后查看和管理 Azure DevOps 代理池权限,请参阅 “创建和管理代理池:代理池的安全性”。
-
创建者仅:此设置将创建托管 DevOps 池的用户添加为 Azure DevOps 代理池的管理员,并将 “继承 ”设置为 “关闭 ”代理池安全设置。
仅限创建者 是默认设置。
-
从项目继承权限:此设置将创建托管 DevOps 池的用户添加为 Azure DevOps 代理池的管理员,并将 “继承 ”设置为 “打开 ”代理池安全设置。
-
特定帐户:可以使用此设置指定要在 Azure DevOps 中添加为代理池管理员的帐户。 默认情况下,包含池创建者。
可以在创建池时在“安全”选项卡上配置池管理权限设置。 创建池后,它不会显示在 安全 设置中。 若要在创建池后查看和管理 Azure DevOps 代理池权限,请参阅 “创建和管理代理池 - 代理池的安全性”。
可以在托管 DevOps 池资源的permissionsProfile部分的organizationProfile属性中配置池管理权限。
{
"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" : ["User1@fabrikam.com", "User2@fabrikam.com" ]
},
"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" : ["User1@fabrikam.com", "User2@fabrikam.com" ]
}
}
}
}
可以在托管 DevOps 池资源的permissionsProfile部分的organizationProfile属性中配置池管理权限。
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: ['User1@fabrikam.com', 'User2@fabrikam.com']
}
kind: 'AzureDevOps'
}
托管 DevOps 池提供在预配期间从 Azure 密钥保管库提取证书的功能。 在运行您的管道之前,计算机上已经存在证书。
若要使用此功能,必须:
在池上配置标识。 必须授予此标识 Key Vault 机密用户 从密钥保管库中提取机密的权限。 若要将标识分配给 Key Vault 机密用户 角色,请参阅 使用 Azure 基于角色的访问控制提供对密钥保管库密钥、证书和机密的访问权限。
配置密钥保管库集成设置时(即如果您正在配置密钥保管库设置的帐户),该帐户主体必须在存储证书的密钥保管库中具有Key Vault 证书用户角色分配。
若要为 Azure Key Vault 实例强制实施网络隔离以仅允许授权资源访问,必须将以下 IP 地址添加到 Azure Key Vault 允许列表。 以下 IP 地址范围位于名为 DevOpsInfrastructure 的 Azure 服务标记中。
| 位置 |
IP 地址范围 |
| australiaeast |
4.198.194.192/28 |
| brazilsouth |
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 |
| switzerlandnorth |
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),证书将作为根添加到该证书存储中。 有关详细信息,请参阅 在信任存储中安装根 CA 证书。
-
证书存储名称 (
certificateStoreName)
-
Windows 代理:此设置指定证书存储的名称。
My 要么是(本地证书存储,如果未指定名称,则为默认值),要么是Root(受信任的根目录)。
-
Linux 代理:此设置不用于 Linux 代理。
-
可导出私钥 (
keyExportable):此设置指定证书的密钥是否可导出。 默认值为 false。
可以在“设置>”中配置密钥保管库集成。
只能在创建池后配置 Key Vault 集成设置。 创建池时,无法配置 Key Vault 集成设置。 创建池期间,它们不会显示在 “安全 ”选项卡上。
可以在osProfile属性fabricProfile部分中配置 Azure Key Vault。 进行设置,以便能够访问所需证书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-09-20",
"location": "eastus",
"properties": {
...
"fabricProfile": {
"sku": {...},
"images": [...],
"osProfile": {
"secretsManagementSettings": {
"certificateStoreLocation": "LocalMachine",
"certificateStoreName": "Root",
"observedCertificates": [
"https://<keyvault-uri>/secrets/<certificate-name>"
],
"keyExportable": false
}
},
"storageProfile": {...},
"kind": "Vmss"
}
}
]
}
可以在osProfile或fabricProfile池时,在部分的属性中配置 Azure Key Vault。
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": {...}
}
}
可以在osProfile属性fabricProfile部分中配置 Azure Key Vault。 进行设置,以便能够访问所需证书secretManagementSettings。
注意
该 osProfile.certificateStoreName 属性仅在 apiVersion 2025-01-21 以后可用。
resource managedDevOpsPools 'Microsoft.DevOpsInfrastructure/pools@2025-09-20' = {
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 在您的池中检索的证书会自动与密钥保管库中发布的最新版本同步。 这些机密在首次管道运行之前已经存在于计算机上,这意味着可以节省时间并省去获取证书的任务。
重要
如果由于权限或网络问题,无法从密钥保管库提取机密,则代理虚拟机的预配将失败。
相关内容