プライベートレジストリを使用した CodeBuild プロジェクトの作成 - AWS CodeBuild

プライベートレジストリを使用した 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 ユーザーガイド」の「AWS Secrets Manager シークレットを作成する」の手順に従います。

    1. ステップ 3 の [シークレットのタイプを選択] で、[他の種類のシークレット] を選択します。

    2. [キー/値のペア] で、Docker Hub ユーザー名として 1 つのキーと値のペアを作成し、Docker Hub パスワードとして 1 つのキーと値のペアを作成します

    3. 引き続き「AWS Secrets Manager シークレットを作成する」の手順に従います。

    4. ステップ 5 の [自動ローテーションの設定] ページで、自動ローテーションをオフにします。キーは Docker Hub の認証情報に対応しているためです。

    5. AWS Secrets Manager シークレットを作成する」の手順を終了します。

    詳細については、「AWS Secrets Manager とは」を参照してください。

  3. コンソールで AWS CodeBuild プロジェクトを作成すると、必要なアクセス許可が CodeBuild で自動的にアタッチされます。AWS KMS 以外の DefaultEncryptionKey キーを使用する場合は、そのキーをサービスロールに追加する必要があります。詳細については、『IAM ユーザーガイド』の「ロールの修正 (コンソール)」を参照してください。

    Secrets Manager で使用するサービスロールには、少なくとも secretsmanager:GetSecretValue アクセス許可が必要です。

    サービスロールの設定。
  4. コンソールでプライベートレジストリに保存されている環境を使用してプロジェクトを作成するには、プロジェクトの作成時に以下の操作を行います。詳細については、ビルドプロジェクトの作成 (コンソール) を参照してください。

    注記

    プライベートレジストリが VPC 内にある場合は、パブリックインターネットアクセスが必要です。CodeBuild は、VPC 内のプライベート IP アドレスからイメージを取得できません。

    1. [環境イメージ] で、[カスタムイメージ] を選択します。

    2. [Environment type (環境タイプ)] で、[Linux] または [Windows] を選択します。

    3. [イメージレジストリ] で、[その他のレジストリ] を選択します。

    4. [外部レジストリの URL] で、画像の場所を入力し、[レジストリの認証情報 - オプション] で Secrets Manager の認証情報の ARN または名前を入力します。

      注記

      認証情報が現在のリージョンに存在しない場合は、ARN を使用する必要があります。認証情報が別のリージョンに存在する場合、認証情報の名前は使用できません。