您可以在集區建立期間使用 [安全性] 索引標籤,以及使用 [安全性設定] 窗格建立集區之後,設定受控 DevOps 集區的安全性設定。
根據預設,受控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": "2024-10-19",
"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 |
可使用集區的組織清單。 url 指定組織的 URL, projects 是可以使用集區的專案名稱清單(空白清單支持組織中的所有專案),並 parallelism 指定此組織可以使用的代理程式數目。 組織的平行處理原則總和必須符合集區的最大代理程序設定。 |
permissionProfile |
指定建立 Azure DevOps 集區時授與的許可權。 此值只能在集區建立期間設定。 允許的值為 Inherit 、CreatorOnly 和 SpecificAccounts 。 如果 specificAccounts 已指定,請提供屬性的單一電子郵件地址或電子郵件地址 users 清單,否則省略 users 。 如需詳細資訊,請參閱 集區管理許可權。 |
在多個組織中使用集區
啟用 在多個組織中 使用集區搭配多個 Azure DevOps 組織使用您的集區。 針對每個組織,指定允許使用集區的專案,或保留空白以允許所有專案。 為每個組織設定 Parallelism,方法是指定集區的最大代理程式所指定的並行存取部分,以配置給每個組織。 所有組織的平行處理原則總和必須等於集區的最大並行。 例如,如果 [最大代理程式 ] 設定為5,則指定組織的平行處理原則總和必須為5。 如果 [最大代理程式 ] 設定為一個,您就只能將集區與一個組織搭配使用。
在下列範例中,集區設定為可用於 fabrikam-tailspin 組織中的 FabrikamResearch 和 FabrikamTest 專案,以及 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
}
]
}
}
如果您的測試需要 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": "2024-10-19",
"location": "eastus",
"properties": {
...
"fabricProfile": {
"sku": {...},
"images": [...],
"osProfile": {
"secretsManagementSettings": {...},
"logonType": "Interactive"
},
"storageProfile": {...},
"kind": "Vmss"
}
}
]
}
建立或更新集區時,logonType
會在 參數的 區段中fabric-profile
使用 屬性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": {...}
}
}
集區管理許可權
在受控DevOps集區建立程式中,會在 Azure DevOps 中建立組織層級代理程式集區。 集 區管理許可權 設定會指定哪些用戶獲授與新建立 Azure DevOps 集區的系統管理員角色。 若要在建立受控 DevOps 集區之後檢視和管理 Azure DevOps 代理程式集區許可權,請參閱 建立和管理代理程式集區 - 代理程式集區的安全性。
- 僅限 建立者 - 建立受控DevOps集區的使用者會新增為 Azure DevOps 代理程式集區的系統管理員,而 [繼承 ] 會在代理程式集區安全性設定中設定為 [關閉 ]。 建立者只有 預設設定。
- 從專案 繼承許可權 - 建立受控 DevOps 集區的使用者會新增為 Azure DevOps 代理程式集區的系統管理員,而 [繼承 ] 會在代理程式集區安全性設定中設定為 [開啟 ]。
- 特定帳戶 - 指定要在 Azure DevOps 中新增為已建立代理程式集區的系統管理員。 根據預設,受控DevOps集區建立者會新增至清單。
注意
建立集區時,集區管理許可權設定會在 [安全性] 索引卷標上設定,而且不會顯示在建立集區之後的安全性設定中。 若要在建立受控 DevOps 集區之後檢視和管理 Azure DevOps 代理程式集區許可權,請參閱 建立和管理代理程式集區 - 代理程式集區的安全性。
集區管理許可權是在 permissionsProfile
Managed DevOps Pools 資源區段的 organizationProfile
屬性中設定。
{
"organizationProfile": {
"organizations": [...],
"permissionProfile": {
"kind": "CreatorOnly"
},
"kind": "AzureDevOps"
}
屬性 permissionProfile
只能在集區建立期間設定。 允許的值為 Inherit
、CreatorOnly
和 SpecificAccounts
。
CreatorOnly
- 建立受控 DevOps 集區的使用者會新增為 Azure DevOps 代理程式集區的系統管理員,而 [繼承 ] 會在代理程式集區安全性設定中設定為 [關閉 ]。 建立者只有 預設設定。
Inherit
- 建立受控 DevOps 集區的使用者會新增為 Azure DevOps 代理程式集區的系統管理員,而 [繼承 ] 會在代理程式集區安全性設定中設定為 [開啟 ]。
SpecificAccounts
- 指定要在 Azure DevOps 中新增為已建立代理程式集區的系統管理員。 根據預設,受控DevOps集區建立者會新增至清單。 提供屬性的單一電子郵件地址或電子郵件地址 users
清單,否則省略 users
。
{
"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 中新增為已建立代理程式集區的系統管理員。 根據預設,受控DevOps集區建立者會新增至清單。 提供屬性的單一電子郵件地址或電子郵件地址 users
清單,否則省略 users
。
{
"AzureDevOps" : {
"organizationProfile": {
"organizations": [...],
"permissionProfile": {
"kind": "SpecificAccounts",
"users" : ["User1@fabrikam.com", "User2@fabrikam.com" ]
}
}
}
金鑰保存庫 組態
受控DevOps集區可讓您在布建期間從 Azure 金鑰保存庫 擷取憑證,這表示憑證在執行 Azure DevOps 管線時已存在於機器上。 若要使用這項功能,您必須在集區上設定身分識別,而且此身分識別必須具有 金鑰保存庫 秘密用戶許可權,才能從您的 金鑰保存庫 擷取秘密。 若要將身分識別指派給 金鑰保存庫 秘密使用者角色,請參閱使用 Azure 角色型訪問控制來提供 金鑰保存庫 密鑰、憑證和秘密的存取權。
注意
從 開始 api-version 2024-10-19
,如果您使用這項功能,則只能在集區上使用單一身分識別。 即將新增多個身分識別的支援。
只有一個身分識別可用來從 金鑰保存庫 擷取秘密。
已在中設定 金鑰保存庫 整合設定>安全性。
注意
金鑰保存庫 整合設定只能在建立集區之後設定。 金鑰保存庫 無法在建立集區期間設定整合設定,而且不會顯示在 中建立集區期間的安全性索引標籤。
Azure 金鑰保存庫 是在 osProfile
屬性的 區段中設定fabricProfile
。 secretManagementSettings
設定為能夠存取所需憑證的 。
{
"$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": "2024-10-19",
"location": "eastus",
"properties": {
...
"fabricProfile": {
"sku": {...},
"images": [...],
"osProfile": {
"secretsManagementSettings": {
"certificateStoreLocation": "LocalMachine",
"observedCertificates": [
"https://<keyvault-uri>/secrets/<certificate-name>"
],
"keyExportable": false
}
},
"storageProfile": {...},
"kind": "Vmss"
}
}
]
}
建立或更新集區時,會在屬性的 fabricProfile
區段中設定 osProfile
Azure 金鑰保存庫。 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": {...}
}
}
設定 SecretManagementSettings
在SecretManagementSettings
集區上使用 擷取的憑證會自動與 金鑰保存庫 內發佈的最新版本同步。 這些秘密會在機器上執行任何 Azure DevOps 管線時,這表示您可以節省時間並移除擷取憑證的工作。
重要
如果因為許可權或網路問題而無法從 金鑰保存庫 擷取秘密,則布建代理程式虛擬機將會失敗。
針對 Windows,允許將憑證儲存位置設定為 LocalMachine
或 CurrentUser
。 此設定可確保密碼安裝在電腦上的該位置。 如需秘密擷取運作方式的特定行為,請參閱適用於 Windows 的 Azure VMSS 金鑰保存庫 擴充功能檔。
針對 Linux,證書儲存位置可以是電腦上的任何目錄,而且憑證將會下載並同步至該位置。 如需預設設定和秘密行為的詳細資訊,請參閱適用於Linux的 Azure VMSS 金鑰保存庫 擴充功能檔。
另請參閱