本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
私有登錄檔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 具有私有登錄機的專案
-
如需如何建立免費私有儲存庫的詳細資訊,請參閱儲存庫 Docker Hub
。您也可以在終端機上執行以下命令來提取映像、取得其 ID,並將其推送到新的儲存庫。 docker pull amazonlinux docker images amazonlinux --format {{.ID}} docker tag
image-id
your-username
/repository-name
:tag
docker login docker pushyour-username
/repository-name
-
請遵循建立基本秘密中的AWS Secrets Manager使用者指南。在步驟 3 的選取秘密類型中,執行下列動作:
-
選擇其他秘密類型。
-
在秘密金鑰/值中,為 Docker Hub 使用者名稱和密碼建立一組金鑰值對,並為您的 Docker Hub 密碼建立一組金鑰值對。
-
設定秘密名稱時,輸入名稱,例如
dockerhub
。您可以輸入選用描述,協助您記住這是 Docker Hub 的秘密。 -
保留停用自動輪換選取,因為這些金鑰會對應到您的 Docker Hub 登入資料。
-
選擇 Store secret (存放秘密)。
-
當您檢閱這些設定時,請寫下 ARN 以供此範例後面使用。
如需詳細資訊,請參閱什麼是 AWS Secrets Manager?
-
-
建立時,您建立AWS CodeBuild在控制台中建立專案, CodeBuild 為您附加必要的許可。如果您使用的 AWS KMS 金鑰不是
DefaultEncryptionKey
,則您必須將其新增到服務角色中。如需詳細資訊,請參閱「」修改角色 (主控台)中的IAM User Guide。若要使用 SSecrets Manager,您的服務角色必須至少擁有
secretsmanager:GetSecretValue
許可。 -
若要使用主控台搭配私有登錄檔中所儲存的環境來建立專案,請在建立專案的同時執行下列動作。如需相關資訊,請參閱 建立組建專案 (主控台)。
注意 如果您的私有登錄檔位於 VPC 中,則必須具備公有互聯網存取權。 CodeBuild 無法提取 VPC 中私有 IP 地址的映像。
-
在環境中,選擇自訂映像。
-
針對 Environment type (環境類型),選擇 Linux 或 Windows。
-
在自訂映像類型中,選擇其他位置。
-
In其他地點中,輸入映像位置和 ARN,或是 Secrets Manager 員登入資料的名稱。
注意 如果您目前所在區域不存在您的登入資料,則您必須使用 ARN。如果登入資料存在於不同的區域,則無法使用登入資料名稱。
-