

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

# 使用私有登錄檔建立 CodeBuild 專案
<a name="private-registry-sample-create-project"></a>

1. 如需如何建立免費私有儲存庫的詳細資訊，請參閱[儲存庫 Docker Hub](https://docs.docker.com/docker-hub/repos/)。您也可以在終端機上執行以下命令來提取映像、取得其 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
   ```

1.  請遵循*AWS Secrets Manager 《 使用者指南*》中的[建立 AWS Secrets Manager 秘密](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html)中的步驟。

   

   1.  在步驟 3 中**，選擇秘密類型**，選擇**其他類型的秘密**。

   1. 在**鍵/值對**中，為您的 Docker Hub 使用者名稱建立一個鍵/值對，為您的 Docker Hub 密碼建立一個鍵/值對。

   1.  繼續遵循[建立 AWS Secrets Manager 秘密](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html)中的步驟。

   1.  在步驟 5 的設定**自動輪**換頁面上，將其關閉，因為金鑰對應至您的 Docker Hub 登入資料。

   1.  請依照[建立 AWS Secrets Manager 秘密](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html)中的步驟完成。

    如需詳細資訊，請參閱[什麼是 AWS Secrets Manager？](https://docs.aws.amazon.com/secretsmanager/latest/userguide/) 

1.  當您在主控台中建立 AWS CodeBuild 專案時，CodeBuild 會為您連接必要的許可。如果您使用 以外的 AWS KMS 金鑰`DefaultEncryptionKey`，則必須將其新增至服務角色。如需詳細資訊，請參閱《*IAM 使用者指南*》中的[修改角色 （主控台）](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_modify.html#roles-managingrole-editing-console)。

    若要讓您的服務角色使用 Secrets Manager，它至少必須具有 `secretsmanager:GetSecretValue`許可。  
![\[服務角色組態。\]](http://docs.aws.amazon.com/zh_tw/codebuild/latest/userguide/images/private-registry-sample-iam.png)

1.  若要使用主控台搭配私有登錄檔中所儲存的環境來建立專案，請在建立專案的同時執行下列動作。如需相關資訊，請參閱[建立組建專案 (主控台)](create-project.md#create-project-console)。
**注意**  
 如果您的私有登錄檔位於 VPC 中，則必須具有公有網際網路存取。CodeBuild 無法從 VPC 中的私有 IP 地址提取映像。

   1.  在**環境映像**中，選擇**自訂映像**。

   1.  針對 **Environment type (環境類型)**，選擇 **Linux** 或 **Windows**。

   1.  針對**映像登錄**檔，選擇**其他登錄檔**。

   1.  在**外部登錄 URL** 中，輸入映像位置，然後在**登錄登入資料中 - 選擇性**輸入 Secrets Manager 登入資料的 ARN 或名稱。
**注意**  
 如果您目前所在區域不存在您的登入資料，則您必須使用 ARN。如果登入資料存在於不同的區域，則無法使用登入資料名稱。