Harbor にイメージを push して、ロールベース アクセス制御、自動脆弱性スキャン、コンテナ化されたアプリケーションのイメージ管理の簡素化により、セキュリティを強化します。ローカル イメージを Harbor インスタンスに push するには、そのイメージをリポジトリ名でタグ付けしてから push します。
始める前に
イメージを push するには、既存の Harbor プロジェクトなど、必要なリソースと権限を使用して環境を構成する必要があります。詳細については、Harbor プロジェクトを作成するをご覧ください。
必要な IAM のロール
Harbor レジストリ インスタンスにイメージを push するには、IAM プロジェクト管理者に連絡して、次のロールをリクエストしてください。
- Harbor インスタンス閲覧者(
harbor-instance-viewer): プロジェクトの名前空間内の 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 して検証できます。また、タグ保持ルールを構成してリポジトリを自動的に維持し、セキュリティ スキャンの結果を確認して脆弱性を検出することもできます。