[英]Azure DevOps Pipelines
我是 Azure DevOps 的新手,我正在嘗試使用 Azure DevOps 創建一個管道,用於將我的 terraform 代碼部署到 AWS 上,用於身份驗證我知道我們可以使用服務原則,但這意味着我需要指定我的訪問權限和我不想做的 azure DevOps 中的秘密密鑰,所以我想檢查是否還有其他方法可以做到這一點?
要訪問/存儲這些類型的機密,您可以嘗試Azure Key Vault
將所有機密存儲在 Azure Key Vault 機密中。
當您想訪問機密時:
確保 Azure 服務連接至少對保管庫具有獲取和列出權限。 您可以在 Azure 中設置這些權限
門戶網站:
打開保管庫的設置邊欄選項卡,選擇訪問策略,然后添加新的。
在添加訪問策略邊欄選項卡中,選擇選擇主體並為您的客戶帳戶選擇服務主體。
在添加訪問策略邊欄選項卡中,選擇秘密權限並確保選中(勾選)獲取和列出。
選擇確定以保存更改。
您可以使用
如果不想在 Azure Devops 本身上存儲憑據,最好的方法是將憑據存儲在憑據存儲 (Azure Key Vault) 中並通過服務連接訪問它。 我假設您使用的是基於 YAML 的管道。 如果是這樣,請使用以下步驟將您的管道與密鑰保管庫集成,
先決條件,
腳步,
重要提示:您需要從 Key Vault 向服務連接的服務主體授予機密讀取權限。 參考: 來自 Azure Key Vault 的鏈接機密
也許使用 Azure Devops 庫 > 變量組來安全地存儲您的密鑰。
或者,您可以使用“項目設置”>“服務”連接。 也許使用憑據連接或通用連接。
服務主體是這種情況下的行業標准。 你應該為 Azure DevOps 創建一個特定的服務主體,並將其范圍限制在必要的范圍內。
1- 您必須在您的 AWS 機器上為具有有限服務的 Devops 管道創建私鑰 2- 將密鑰存儲在 Devops 管道的安全庫中 3- 從您的 AWS 防火牆禁用來自未知 IP 地址的 SSH 連接,並加入白名單Devops 代理 IP 地址,要獲取 ips 列表,請檢查此鏈接https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=vsts&tabs=yaml#agent-ip-ranges
您可以將變量寫入您的 powershell 腳本文件,並可以在您的管道中使用 powershell 任務。 現在為這個任務提供 powershell 文件路徑,並只提供變量名稱。 它會像魅力一樣發揮作用。
對於服務原則連接,您需要有服務原則ID和服務原則密鑰服務原則ID與應用程序ID相同服務原則密鑰存在於證書和秘密中
可以使用 Azure Key Vault 來存儲所有密鑰和機密。 授予 Azure 管道從 Key Vault 獲取密鑰的權限。
以下鏈接將指導您從頭開始開發管道並獲取密鑰:
真正不在 Azure/Azure DevOps 中存儲 AWS 憑證的唯一方法是在您的 AWS 帳戶中創建一個托管構建池。 這些機器將安裝 Azure DevOps 代理並將其注冊到您的組織和特定代理池。 然后將所需的權限添加到附加到這些構建服務器的 Iam 實例配置文件中。 使用此代理池運行 terraform 命令時,terraform 將有權訪問實例上的憑據。 相同的概念適用於 AWS ECS 中基於容器的構建池。
持續集成和持續交付(CI / CD)被大多數人視為DevOps的骨干。 當您將這些實踐與可編程基礎結構和一整套服務結合在一起,使您能夠自動化應用程序的整個生命周期時,事情就會變得非常有趣。
本指南的目的是為您提供一個實際示例,說明使用Azure DevOps Services構建,測試和部署應用程序時的外觀。 我將引導您完成為Node and Express應用程序構建全自動構建和發布管道的端到端過程。 我們將使用Azure DevOps Services創建CI / CD管道,並使用Azure App Service部署到開發/登台和生產。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.