アクセス制御の構成

このページでは、最小権限の原則を遵守しながら、Harbor-as-a-Service レジストリでアクセス制御を管理する方法について説明します。Google Distributed Cloud(GDC)エアギャップの組織 IAM 管理者は、Harbor-as-a-Service API の使用を認証および承認できるユーザーを制御します。Harbor インスタンスの API とアクセスを承認するには、各 Harbor プロジェクトで Harbor の組み込みロールベースのアクセス制御を使用します。詳細については、https://goharbor.io/docs/2.8.0/administration/managing-users/ をご覧ください。

Harbor-as-a-Service API のアクセスを構成する

すべての GDC Harbor-as-a-Service API では、リクエストを行うプリンシパルに API リソースを使用するために必要な権限が必要です。権限は、リソースに対する事前定義されたロールをプリンシパルに付与するポリシーを設定することで、プリンシパルに付与されます。

事前定義された Harbor-as-a-Service ロール

Harbor-as-a-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 の組み込みロールベース アクセス制御を使用して、Harbor プロジェクトの API とリソースの使用を許可するユーザーを制御します。詳細については、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 認証フローに直接統合されるため、ワークロードは静的認証情報を手動で管理することなく、有効期間の短いトークンを自動的に生成できます。

MHS の認証を自動化するために、設定、ID の有効化、プロジェクト権限の付与を行うには、サービス アカウントを管理するの手順に沿って操作します。

これらの設定手順を完了すると、サービス アカウント ID は Harbor インスタンスと安全にやり取りし、コンテナ リポジトリを管理できるようになります。

次のステップ

プロジェクト サービス アカウントのコマンドライン ツールとアクセス制御を構成したら、鍵のローテーションと長期的なサービス アカウントのセキュリティ管理の標準的な方法を確認します。