私有登錄檔AWS Secrets ManagerCodeBuild 範例 - AWS CodeBuild

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

私有登錄檔AWS Secrets ManagerCodeBuild 範例

這個範例會向您示範如何使用存放在私有登錄檔中的 Docker 映像做為 AWS CodeBuild 執行時間環境。私有登錄檔的登入資料會存放在 AWS Secrets Manager。任何私有註冊表都能與 CodeBuild 一起工作。這個範例使用 Docker Hub。

私有登錄檔範例需求

若要搭配 AWS CodeBuild 使用私有登錄檔,您必須擁有下列項目:

  • 可儲存您的 Docker Hub 登入資料的 Secrets Manager。這些登入資料會用來存取您的私有儲存庫。

  • 私有儲存庫或帳戶。

  • 一個 CodeBuild 服務角色 IAM 政策,可授予存取您 Secret Secrets Manager 的權限。

請依照下列步驟來建立這些資源,然後建立 CodeBuild 建置專案,藉助私有登錄檔中所儲存的 Docker 映像。

建立 CodeBuild 具有私有登錄機的專案

  1. 如需如何建立免費私有儲存庫的詳細資訊,請參閱儲存庫 Docker Hub。您也可以在終端機上執行以下命令來提取映像、取得其 ID,並將其推送到新的儲存庫。

    docker pull amazonlinux docker images amazonlinux --format {{.ID}} docker tag image-id your-username/repository-name:tag docker login docker push your-username/repository-name
  2. 請遵循建立基本秘密中的AWS Secrets Manager使用者指南。在步驟 3 的選取秘密類型中,執行下列動作:

    1. 選擇其他秘密類型

    2. 秘密金鑰/值中,為 Docker Hub 使用者名稱和密碼建立一組金鑰值對,並為您的 Docker Hub 密碼建立一組金鑰值對。

    3. 設定秘密名稱時,輸入名稱,例如 dockerhub。您可以輸入選用描述,協助您記住這是 Docker Hub 的秘密。

    4. 保留停用自動輪換選取,因為這些金鑰會對應到您的 Docker Hub 登入資料。

    5. 選擇 Store secret (存放秘密)。

    6. 當您檢閱這些設定時,請寫下 ARN 以供此範例後面使用。

    如需詳細資訊,請參閱什麼是 AWS Secrets Manager?

  3. 建立時,您建立AWS CodeBuild在控制台中建立專案, CodeBuild 為您附加必要的許可。如果您使用的 AWS KMS 金鑰不是 DefaultEncryptionKey,則您必須將其新增到服務角色中。如需詳細資訊,請參閱「」修改角色 (主控台)中的IAM User Guide

    若要使用 SSecrets Manager,您的服務角色必須至少擁有secretsmanager:GetSecretValue許可。

  4. 若要使用主控台搭配私有登錄檔中所儲存的環境來建立專案,請在建立專案的同時執行下列動作。如需相關資訊,請參閱 建立組建專案 (主控台)

    注意

    如果您的私有登錄檔位於 VPC 中,則必須具備公有互聯網存取權。 CodeBuild 無法提取 VPC 中私有 IP 地址的映像。

    1. 環境中,選擇自訂映像

    2. 針對 Environment type (環境類型),選擇 LinuxWindows

    3. 自訂映像類型中,選擇其他位置

    4. In其他地點中,輸入映像位置和 ARN,或是 Secrets Manager 員登入資料的名稱。

      注意

      如果您目前所在區域不存在您的登入資料,則您必須使用 ARN。如果登入資料存在於不同的區域,則無法使用登入資料名稱。