ロールベースのアクセス制御、自動脆弱性スキャン、コンテナ化されたアプリケーションのイメージ管理の簡素化により、セキュリティを強化するためにイメージを Harbor に push します。ローカル イメージを Harbor インスタンスに push するには、そのイメージをリポジトリ名でタグ付けしてから push します。
始める前に
イメージを push するには、既存の Harbor プロジェクトなど、必要なリソースと権限を使用して環境を構成する必要があります。詳細については、Harbor プロジェクトを作成するをご覧ください。
必要な IAM のロール
イメージを Harbor レジストリ インスタンスに push するには、プロジェクト IAM 管理者に連絡して、次のロールをリクエストします。
- Harbor インスタンス閲覧者(
harbor-instance-viewer): プロジェクト Namespace の Harbor インスタンスを取得、一覧表示、監視します。このロールには、既存の Harbor インスタンスの詳細を表示するために必要な権限が含まれています。これにより、イメージの push に必要なレジストリ URL を取得できます。
必要な Harbor RBAC ロール
GDC IAM ロールとは異なり、イメージの push には Harbor の内部ロールベース アクセス制御(RBAC)システム内の特定の権限が必要です。管理者に必要な権限をリクエストします。特定のタスクに必要なロールのみをリクエストすることで、最小権限のアクセスを適用します。
- デベロッパー: イメージを Harbor リポジトリに push するために必要です。使用可能なすべてのロールの詳細については、ロール別のユーザー権限に関する Harbor のドキュメント(https://goharbor.io/docs/2.12.0/administration/managing-users/user-permissions-by-role/)をご覧ください。
ローカル イメージにタグを付ける
次の手順に沿って、ローカル イメージにリポジトリ名でタグ付けします。
- Harbor インスタンスに対して認証されている必要があります。詳細については、Harbor レジストリ インスタンスに対する Docker 認証を構成するをご覧ください。
イメージの名前を設定します。完全なイメージ名の形式は次のとおりです。
INSTANCE_URL/HARBOR_PROJECT_NAME/IMAGE次のように置き換えます。
INSTANCE_URL: Harbor インスタンスの URL。例:harbor-1.org-1.zone1.google.gdc.testGDC コンソールまたは gdcloud CLI を使用して、Harbor インスタンスの URL を取得します。HARBOR_PROJECT_NAME: Harbor プロジェクトの名前。例:my-project.IMAGE_NAME: イメージの名前。例:nginx.
完全なイメージ名の例を次に示します。
harbor-1.org-1.zone1.google.gdc.test/my-project/nginxローカル イメージにリポジトリ名でタグ付けします。
docker tag SOURCE-IMAGE INSTANCE_URL/HARBOR_PROJECT_NAME/IMAGE:TAG
次のように置き換えます。
SOURCE-IMAGE: ローカル イメージ名またはイメージ ID。例:nginxTAG: タグ名。例:stagingタグを指定しない場合、Docker はデフォルトで最新のタグを適用します。
タグ付きイメージを Harbor レジストリ インスタンスに push する
イメージにタグ付けしたら、Harbor レジストリ インスタンスに push します。
- Harbor インスタンスに対して認証されていることを確認します。
- 次のコマンドを使用して、タグ付きイメージを push します。
docker push
INSTANCE_URL/HARBOR_PROJECT_NAME/IMAGE:TAG
イメージを push すると、指定したインスタンスと Harbor プロジェクトに保存されます。
イメージを push したら、Harbor インスタンスの UI に移動してイメージを表示します。
次のステップ
イメージを Harbor レジストリに push したら、ローカル環境に pull して検証できます。タグ保持ルールを構成してリポジトリを自動的に維持し、セキュリティ スキャン結果を確認して脆弱性を検出することもできます。