このページでは、最小権限の原則を遵守しながら、Managed Harbor Service レジストリのアクセス制御を管理する方法について説明します。Google Distributed Cloud(GDC)エアギャップの組織 IAM 管理者は、Managed Harbor Service API の使用を認証および認可できるユーザーを制御します。Harbor インスタンスで API とアクセスを認可するには、各 Harbor プロジェクトで Harbor の組み込みのロールベース アクセス制御を使用します。詳細については、https://goharbor.io/docs/2.8.0/administration/managing-users/ をご覧ください。
Managed Harbor Service API へのアクセスを構成する
すべての GDC Managed Harbor Service API では、リクエストを行うプリンシパルに、API リソースを使用するために必要な権限が付与されている必要があります。権限は、リソースに対する事前定義ロールをプリンシパルに付与するポリシーを設定することで、プリンシパルに付与されます。
事前定義された Managed Harbor Service のロール
Managed Harbor Service には、関連する API リソースへのアクセス権を付与し、他のリソースへの不正アクセスを防止する事前定義ロールが用意されています。
Harbor インスタンス リソースの管理と Harbor プロジェクト リソースの作成には、次の事前定義ロールを使用します。
- Harbor インスタンス閲覧者: Harbor インスタンスを表示して取得します。IAM 組織管理者に、Harbor インスタンス閲覧者(
harbor-instance-viewer)ロールを付与するよう依頼します。 - Harbor インスタンス管理者: Harbor インスタンスを作成して管理し、Harbor インスタンスに Harbor プロジェクトを作成します。IAM 組織管理者に、Harbor インスタンス管理者(
harbor-instance-admin)ロールを付与するよう依頼します。 - Harbor プロジェクト作成者: Harbor インスタンスに Harbor プロジェクトを作成します。IAM 組織管理者に、Harbor プロジェクト作成者(
harbor-project-creator)ロールを付与するよう依頼します。
API と Harbor インスタンス内のアクセスを構成する
Harbor インスタンス内では、各 Harbor プロジェクトで Harbor の組み込みのロールベース アクセス制御を使用して、API の使用と Harbor プロジェクト内のリソースへのアクセスを許可するユーザーを制御します。詳細については、https://goharbor.io/docs/2.8.0/administration/managing-users/ をご覧ください。
Harbor プロジェクトを作成したユーザーには、Harbor プロジェクトの ProjectAdmin ロールが自動的に割り当てられます。ProjectAdmin ユーザーは、Harbor プロジェクトのロールを他のユーザーに割り当てることができます。使用可能なすべてのロールについては、https://goharbor.io/docs/2.8.0/administration/managing-users/user-permissions-by-role/ をご覧ください。
サービス アカウントを使用して MHS を操作する
サービス アカウントを使用して MHS を操作できます。プロジェクト サービス アカウントを使用すると、自動化が GDC IAM 認証フローに直接統合され、静的認証情報を手動で管理することなく、ワークロードで有効期間の短いトークンを自動的に生成できます。
設定、ID の有効化、MHS の認証を自動化するためのプロジェクト権限の付与を行うには、サービス アカウントを管理するの手順に沿って操作します。
これらの設定手順を完了すると、サービス アカウント ID が Harbor インスタンスと安全にやり取りし、コンテナ リポジトリを管理できるようになります。
次のステップ
プロジェクト サービス アカウントのコマンドライン ツールとアクセス制御を構成したら、鍵のローテーションと長期的なサービス アカウントのセキュリティ管理に関する標準的な方法を確認します。