簡體   English   中英

Azure DevOps - ARM 部署 - 密鑰保管庫和托管身份

[英]Azure DevOps - ARM deployment - Key Vault and Managed Identities

我正在尋求將 Key Vault 集成到 Azure DevOps 中的 ARM 部署的最佳方式的一些清晰度。

例如,部署應用服務並創建托管服務標識,以便它可以從密鑰保管庫中為預先存在的數據庫獲取機密。

1) 在 Azure 門戶中,我為應用服務手動創建了一個新的服務主體,在訪問策略中具有“獲取”和“列表”權限。

2) 在我的 DevOps 項目下的項目設置中,我創建了一個服務連接。

3) 我在 DevOps 中創建了一個具有相關 Key Vault Secrets 的變量組。

4) 在我的應用服務 ARM 模板中,我參考了變量參數引用了服務標識。

這是將 Key Vault 與 DevOps 部署集成的正確方法嗎?

每當我需要將新服務部署到環境中時(比如現在我想部署一個 API),我是否需要在 Azure 中手動創建另一個托管標識以用於 Key Vault 訪問,或者有沒有辦法將其創建為API 服務的初始部署?

預先感謝您的幫助。

如果您使用 MSI,建議在 ARM 模板中設置它

  "identity": {
    "type": "SystemAssigned"
  },

在定義應用服務時。 這將在每次部署時重新創建 MSI。 每次部署后,它的名稱相同,但在 AD 中會有不同的指紋。 對於 Key Vault,這完全沒問題。

在您的 Key Vault ARM 模板中(如果它不是全部在同一個模板中)訪問策略可以通過以下方式引用 MSI:

  "tenantID": "[subscription().tenantId]",
        "objectId": "[reference(resourceId('Microsoft.Web/sites', INSERT APP SERVICE NAME), '2018-02-01', 'Full').identity.principalId]",

這將引用由應用服務部署創建的 ID。

如果使用此方法,請確保應用服務配置依賴於 Key Vault 和機密(如果在 ARM 模板中引用機密),訪問策略取決於 Key Vault 和應用服務創建,並且正在創建的任何機密設置為依賴Key Vault 以及確保分配以正確的順序進行。

暫無
暫無

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

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