簡體   English   中英

Azure DevOps 管道

[英]Azure DevOps Pipelines

我是 Azure DevOps 的新手,我正在嘗試使用 Azure DevOps 創建一個管道,用於將我的 terraform 代碼部署到 AWS 上,用於身份驗證我知道我們可以使用服務原則,但這意味着我需要指定我的訪問權限和我不想做的 azure DevOps 中的秘密密鑰,所以我想檢查是否還有其他方法可以做到這一點?

要訪問/存儲這些類型的機密,您可以嘗試Azure Key Vault

將所有機密存儲在 Azure Key Vault 機密中。

當您想訪問機密時:

  • 確保 Azure 服務連接至少對保管庫具有獲取和列出權限。 您可以在 Azure 中設置這些權限
    門戶網站:

    • 打開保管庫的設置邊欄選項卡,選擇訪問策略,然后添加新的。

    • 在添加訪問策略邊欄選項卡中,選擇選擇主體並為您的客戶帳戶選擇服務主體。

    • 在添加訪問策略邊欄選項卡中,選擇秘密權限並確保選中(勾選)獲取和列出。

    • 選擇確定以保存更改。

參考

您可以使用

  1. 保護 Azure DevOps 變量或變量組
  2. Azure 密鑰保管庫
  3. 如果您使用服務主體,那么您還需要密碼/證書來進行身份驗證。 也許您也可以嘗試使用 MSI(托管服務標識)。 在這種情況下,AAD 將負責秘密存儲。

如果不想在 Azure Devops 本身上存儲憑據,最好的方法是將憑據存儲在憑據存儲 (Azure Key Vault) 中並通過服務連接訪問它。 我假設您使用的是基於 YAML 的管道。 如果是這樣,請使用以下步驟將您的管道與密鑰保管庫集成,

先決條件,

  • 已設置 Azure 密鑰保管庫並安全存儲密鑰

腳步,

  1. 在管道的編輯模式下,單擊烤肉串菜單(右上角的三個點)並選擇觸發器
  2. 在打開的菜單上單擊變量選項卡,然后單擊變量組
  3. 在新選項卡中打開管理變量組
  4. 單擊+ 變量組按鈕添加新變量
  5. 給出名稱和描述。 打開Azure Key Vault 中鏈接機密作為變量切換。
  6. 添加新的服務連接並通過身份驗證后選擇密鑰保管庫名稱
  7. 現在將變量添加到變量組中
  8. 完成后保存變量組並返回到步驟 2 中的上一個選項卡並鏈接新的變量組。
  9. 完成后保存管道

重要提示:您需要從 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 獲取密鑰的權限。

以下鏈接將指導您從頭開始開發管道並獲取密鑰:

https://azuredevopslabs.com/labs/vstsextend/azurekeyvault/

真正不在 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.

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