使用 AWS CodeCommit Word 和 AWS CodePipeline Word 在多個 AWS 帳戶中部署 CI/CD 管道 - AWS 方案指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 AWS CodeCommit Word 和 AWS CodePipeline Word 在多個 AWS 帳戶中部署 CI/CD 管道

由 Kirankumar Chandrashekar (AWS) 和 Abdal Garuba (AWS) 建立

環境:PoC 或試行

技術: DevOps

工作負載:所有其他工作負載

AWS 服務:AWS CodeCommitWord;AWS CodePipelineWord

Summary

注意: AWS CodeCommit 不再提供給新客戶。的現有客戶 AWS CodeCommit 可以繼續正常使用服務。進一步了解

此模式示範如何在單獨的 Amazon Web Services (AWS) 帳戶中部署應用程式程式碼工作負載的持續整合和持續交付 (CI/CD) 管道,以用於 DevOps、開發人員、預備階段和生產工作流程。

您可以使用多個 AWS 帳戶策略來提供高層級的資源或安全隔離最佳化成本,並區隔生產工作流程。

您應用程式的程式碼在所有這些單獨的 AWS 帳戶中都保持不變,並維護在由您的 CodeCommit AWS 帳戶託管的中央 DevOps 儲存庫上。您的開發人員、預備和生產帳戶在此 CodeCommit 儲存庫中具有單獨的 Git 分支。

例如,當程式碼提交至您中央 CodeCommit 儲存庫中的開發人員 Git 分支時,您 DevOps 帳戶中的 Amazon EventBridge 會通知您開發人員帳戶中的 EventBridge 儲存庫變更。在您的開發人員帳戶中,AWS CodePipeline Word 和來源階段會進入 InProgress 狀態。來源階段是從 Central CodeCommit 儲存庫中的開發人員 Git 分支設定, CodePipeline 擔任 DevOps 帳戶的 服務角色

開發人員分支中的 CodeCommit 儲存庫內容會上傳至 Amazon Simple Storage Service (Amazon S3) 儲存貯體中的成品存放區,並使用 AWS Key Management Service (AWS KMS) 金鑰加密。在來源階段的狀態變更為 Succeeded in CodePipeline 之後,程式碼會轉換至管道執行的下一個階段。

先決條件和限制

先決條件

架構

在不同的 AWS 帳戶中部署應用程式程式碼工作負載 CI/CD 管道的工作流程。

技術堆疊

  • AWS CodeBuild

  • AWS CodeCommit

  • AWS CodePipeline

  • Amazon EventBridge

  • AWS Identity and Access Management (IAM)

  • AWS KMS

  • AWS Organizations

  • Amazon S3

工具

  • CodeBuildAWS – CodeBuild 是完全受管的持續整合服務,可編譯原始程式碼、執行測試,並產生準備好部署的軟體套件。 

  • CodeCommitAWS – CodeCommit 是完全受管的來源控制服務,可託管安全的 Git 型儲存庫

  • CodePipelineAWS – CodePipeline 是一項全受管持續交付服務,可協助您自動化發行管道,以快速且可靠的應用程式和基礎設施更新。 

  • Amazon EventBridge – EventBridge 是一種無伺服器事件匯流排服務,用於將應用程式與來自各種來源的資料連線。

  • AWS Identity and Access Management (IAM) – IAM 可協助您安全地管理對 AWS 服務和資源的存取。 

  • AWS KMS AWS 金鑰管理服務 (AWS KMS) 可協助您建立和管理密碼編譯金鑰,並控制其在各種 AWS 服務和應用程式中的使用。

  • Amazon S3 – Amazon Simple Storage Service (Amazon S3) 是網際網路的儲存體。

Epics

任務描述所需的技能

建立 a CodeCommit 儲存庫。

登入 AWS 帳戶的 DevOps 管理主控台,然後開啟 CodeCommit 主控台。建立儲存庫,並為開發人員、預備和生產 AWS 帳戶設定所有必要的 Git 分支。如需此故事和其他故事的協助,請參閱「相關資源」一節。

DevOps 工程師

建立 CodeCommit 儲存庫的存取憑證。

在 IAM 主控台上,建立存取憑證,以允許應用程式開發人員從 CodeCommit 儲存庫推送和提取應用程式的程式碼基礎。

DevOps 工程師

建立 IAM 角色 for CodePipeline 服務角色。

在 IAM 主控台上,建立 IAM 角色,可供所有 CodePipeline 服務角色用來存取 central CodeCommit 儲存庫。

雲端管理員

為您的其他 EventBridge 帳戶設定 AWS 規則。

在 Amazon EventBridge 主控台上,設定規則以傳送個別開發人員、預備階段和生產 AWS 帳戶中有關 EventBridge CodeCommit 儲存庫變更的通知。

雲端管理員

建立 AWS KMS 金鑰。

在 AWS KMS主控台上,建立 KMS 金鑰,允許個別開發人員、預備階段和生產 CodePipeline 帳戶中的 AWS 加密和解密成品。

雲端管理員
任務描述所需的技能

設定 EventBridge 以接收來自 DevOps AWS Word帳戶的事件。

登入其中一個個別 AWS 帳戶的 AWS 管理主控台 (開發人員、預備階段或生產)。在 Amazon EventBridge 主控台上,設定 EventBridge 以接收來自您 CodeCommit 帳戶的 DevOps 儲存庫變更事件。

雲端管理員

建立 S3 儲存貯體。

在 Amazon S3 主控台上,建立 S3 儲存貯體以存放 CodePipeline 成品。

雲端管理員

為AWS階段建立所有必要的 CodePipeline 資源。

建立AWS 階段所需的所有其他 CodePipeline 資源。這些資源會根據 CI/CD 管道中每個 AWS 帳戶的角色而有所不同。

雲端管理員

建立 IAM 角色。

在 IAM 主控台上,為 IAM 服務角色建立 CodePipeline 角色。此服務角色必須能夠在 IAM 帳戶中擔任 DevOps 角色,才能存取 CodeCommit 儲存庫。

雲端管理員

建立管道 in CodePipeline。

在 CodePipeline 主控台上,建立管道。然後建立來源階段,指向個別 Git 分支的 CodeCommit 帳戶中的 DevOps 儲存庫。

雲端管理員

為所有 AWS 帳戶重複這些步驟。

針對作為 CI/CD 策略一部分所需的所有 AWS 帳戶重複這些步驟。

雲端管理員

相關資源

在 DevOps AWS Word帳戶中建立資源

在您的其他 AWS 帳戶中建立資源

其他資源