プライベートレジストリを使用した CodeBuild プロジェクトの作成
-
無料のプライベートリポジトリを作成する方法については、Docker Hub のリポジトリ
に関するページを参照してください。ターミナルで以下のコマンドを実行して、イメージのプル、ID の取得、新しいリポジトリへのプッシュを行うこともできます。 docker pull amazonlinux docker images amazonlinux --format {{.ID}} docker tagimage-idyour-username/repository-name:tagdocker login docker pushyour-username/repository-name -
「AWS Secrets Manager ユーザーガイド」の「AWS Secrets Manager シークレットを作成する」の手順に従います。
-
ステップ 3 の [シークレットのタイプを選択] で、[他の種類のシークレット] を選択します。
-
[キー/値のペア] で、Docker Hub ユーザー名として 1 つのキーと値のペアを作成し、Docker Hub パスワードとして 1 つのキーと値のペアを作成します
-
引き続き「AWS Secrets Manager シークレットを作成する」の手順に従います。
-
ステップ 5 の [自動ローテーションの設定] ページで、自動ローテーションをオフにします。キーは Docker Hub の認証情報に対応しているためです。
-
「AWS Secrets Manager シークレットを作成する」の手順を終了します。
詳細については、「AWS Secrets Manager とは」を参照してください。
-
-
コンソールで AWS CodeBuild プロジェクトを作成すると、必要なアクセス許可が CodeBuild で自動的にアタッチされます。AWS KMS 以外の
DefaultEncryptionKeyキーを使用する場合は、そのキーをサービスロールに追加する必要があります。詳細については、『IAM ユーザーガイド』の「ロールの修正 (コンソール)」を参照してください。Secrets Manager で使用するサービスロールには、少なくとも
secretsmanager:GetSecretValueアクセス許可が必要です。
-
コンソールでプライベートレジストリに保存されている環境を使用してプロジェクトを作成するには、プロジェクトの作成時に以下の操作を行います。詳細については、ビルドプロジェクトの作成 (コンソール) を参照してください。
注記
プライベートレジストリが VPC 内にある場合は、パブリックインターネットアクセスが必要です。CodeBuild は、VPC 内のプライベート IP アドレスからイメージを取得できません。
-
[環境イメージ] で、[カスタムイメージ] を選択します。
-
[Environment type (環境タイプ)] で、[Linux] または [Windows] を選択します。
-
[イメージレジストリ] で、[その他のレジストリ] を選択します。
-
[外部レジストリの URL] で、画像の場所を入力し、[レジストリの認証情報 - オプション] で Secrets Manager の認証情報の ARN または名前を入力します。
注記
認証情報が現在のリージョンに存在しない場合は、ARN を使用する必要があります。認証情報が別のリージョンに存在する場合、認証情報の名前は使用できません。
-