[英]Azure Identity and Key Vault: How to use managed identities to authenticate?
[英]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.