簡體   English   中英

無法通過 VSTS 版本中的服務端點訪問 keyvault 機密

[英]Cannot acces keyvault secrets through service endpoint in a VSTS release

我們正在嘗試使用 VSTS 中的下載密鑰保管庫機密發布任務來下載機密。

服務主體添加到密鑰保管庫的訪問策略中,檢查所有權限,包括獲取、列出機密。

我使用此服務主體創建了一個服務端點,並使用它來部署到 Azure,但在嘗試檢索 keyvault 機密時出現以下錯誤

2018-05-21T12:18:53.9240364Z ##[錯誤]獲取機密失敗。 錯誤:訪問被拒絕。 指定的 Azure 終結點需要對選定的密鑰保管庫具有獲取、列出機密管理權限。 要設置這些權限,請從構建/發布日志下載 ProvisionKeyVaultPermissions.ps1 腳本並執行它或從 Azure 門戶設置它們。

0)轉到您的變量庫

1) 勾選Link secrets from an Azure key vault as variables

2) 選擇訂閱

3) 選擇密鑰庫

4) 點擊Authorize

ACLing 將由 MS 完成,您將能夠使用密鑰保管庫任務。

我確定在任務中選擇密鑰保管庫時曾經有一個Authorize按鈕,但我可能記錯了。 只是花了 2 小時才弄清楚這一點....

在此處輸入圖像描述

此處跟蹤的問題

您需要為選擇的正確主體設置權限。 主要格式為:

account-<VSTS project name you are build/deploy>-ID

設置權限的詳細步驟如下:

在 Azure 門戶中 -> 轉到 Azure 密鑰庫 -> 訪問策略 -> 添加新的 -> 選擇模板並指定權限(必須設置 Get 和 Listpermission) -> 選擇主體 -> 搜索以account-VSTSProjectName開頭的主體(例如因為我的 VSTS 項目名稱在下面的示例中是MyTest )-> 選擇-> 確定。

在此處輸入圖像描述

然后在 VSTS 版本中再次部署,它可以成功下載 Azure 密鑰保管庫。

如果防火牆已打開(防火牆和虛擬網絡頁面上的“允許從...訪問”),Dev Ops 服務器還需要能夠通過防火牆訪問密鑰庫。

我相信對變量密鑰庫的網絡訪問是通過 AzDevOps 的非代理部分完成的,但我還沒有弄清楚如何將這些服務器列入白名單。

打開“允許受信任的 Microsoft 服務繞過此防火牆”不起作用

作為最簡單的解決方案,我現在必須允許“所有網絡”訪問以解決此問題。

使用代理任務而不是變量組的另一個更安全的選擇是...

  1. 在 Azure VM 中擁有自己的代理池
  2. 任何一個..
    1. 將此連接到也連接到 KeyVault 的私有 vnet 或...
    2. 在 keyvault 中將代理的公共端點列入白名單
  3. 在代理過程中使用 KayVault 任務從 keyvault 機密中讀取變量(即,將機密作為管道的一部分讀取)。

希望這可以幫助。 標記。

當錯誤仍然出現時。

導航到 Azure 密鑰保管庫。 檢查您的訪問策略

*如果選擇了 Azure 基於角色的訪問控制

  1. 在 Azure DevOps 項目 > 項目設置 > 服務連接 > 選定的服務主體 > 單擊管理服務主體。
  2. 記下 Azure 中的服務主體名稱
  3. 導航到 Azure 密鑰保管庫。
  4. 在訪問控制 (IAM) 下,單擊添加角色分配
  5. 選擇 Key Vault 機密用戶。 點擊下一步。
  6. 選擇成員。 尋找您的服務主體(在步驟 1 中)
  7. 然后查看+分配
  8. 在 Dev Ops 中再次單擊授權

*如果選擇了保管庫訪問策略

  1. 返回 Azure DevOps,然后單擊兩次授權按鈕

我對 MarkD 有同樣的問題,但我不想啟用all networks選項。 因此,我找到了根據您所在地區需要允許的 IP 列表

Region                      IP V4 ranges
Australia East              20.37.194.0/24
Australia South East        20.42.226.0/24
Brazil South                191.235.226.0/24
Central Canada              52.228.82.0/24
Asia Pacific (Singapore)    20.195.68.0/24
South India                 20.41.194.0/24
Central United States       20.37.158.0/23
West Central United States  52.150.138.0/24
East United States          20.42.5.0/24
East 2 United States        20.41.6.0/23
North United States         40.80.187.0/24
South United States         40.119.10.0/24
West United States          40.82.252.0/24
West 2 United States        20.42.134.0/23
Western Europe              40.74.28.0/23
United Kingdom South        51.104.26.0/24

只需找到您的資源位置的 IP 范圍,然后在下面的屏幕截圖中的第 3 字段中輸入。 不要忘記保存(數字 4)。

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM