このドキュメントでは、 Google Cloud コンソールでソフトウェア サプライ チェーンのセキュリティ分析情報を表示するために必要な IAM 権限について説明します。
必要なロール
Google Cloud コンソールでソフトウェア サプライ チェーンのセキュリティ分析情報を表示するには、次のロールまたは同等の権限を持つロールが必要です。
- Cloud Build 閲覧者(
roles/cloudbuild.builds.viewer
): ビルドの分析情報を閲覧できます。 - Artifact Analysis のオカレンスの閲覧者(
roles/containeranalysis.occurrences.viewer
): 脆弱性、ビルドの出所、その他の依存関係の情報を表示します。 - Cloud Run 閲覧者(
roles/run.viewer
): Cloud Run リビジョンの分析情報を表示します。 - Kubernetes Engine クラスタ閲覧者(
roles/container.clusterViewer
): GKE クラスタの分析情報を表示します。
これらの権限は、分析情報へのアクセス権限を付与しますが、Cloud Build でのビルドの実行など、その他のアクションを実行するための権限は付与しません。
- 特定のサービスに必要な権限の詳細については、そのサービスのドキュメントをご覧ください。
- 権限の付与については、Identity and Access Management のドキュメントのプロジェクトへの権限の付与をご覧ください。
デフォルトでは、多くのサービスに同じプロジェクト内の他のサービスに対するデフォルトの権限が付与されていますが、別のプロジェクトのリソースにアクセスすることはできません。異なる Google Cloud プロジェクトでサービスを実行している場合や、カスタム IAM のロールまたはカスタム サービス アカウントを使用している場合は、適切な権限を自分で付与する必要があります。
サービスが同じプロジェクトにある場合の権限の付与
Cloud Build、Artifact Registry、Artifact Analysis、Cloud Run のすべてが同じプロジェクトで実行されている場合、各サービスはデフォルトのサービス アカウントを使用してサービスの代わりに動作します。デフォルトの権限は変更されません。権限を変更せずにすべてのサービスを連携できますが、プロジェクト内の分析情報を表示する必要があるユーザーに権限を付与する必要があります。
- サービス間の権限
変更不要です。
- デフォルトの Cloud Build サービス アカウントには、Artifact Registry を使用してアップロードおよびダウンロードする権限と、Artifact Analysis から分析情報データを読み取る権限があるため、サービスはビルドの場所を使用してコンテナ イメージに署名し、Artifact Registry に push できます。
- Cloud Run のリビジョンでは、デプロイに Compute Engine のデフォルトのサービス アカウントを使用します。このアカウントには、Artifact Registry からイメージをダウンロードして、Artifact Analysis から分析情報データを読み取る権限があります。
- 分析情報を閲覧するためのユーザー権限
Cloud Build と Cloud Run のユーザーに必要なロールを使用して、分析情報を表示する必要があります。
サービスが異なるプロジェクトにある場合の権限の付与
Artifact Registry と Artifact Analysis が他の Google Cloud サービスとは別のプロジェクトで実行されている場合は、プロジェクト間のすべてのアクティビティに対する権限を明示的に付与する必要があります。次のプロジェクト設定を検討してください。
- Cloud Build がプロジェクト A で実行される
- Artifact Registry と Artifact Analysis をプロジェクト B で実行する
- Cloud Run をプロジェクト C で実行する
- サービス間の権限
Cloud Build と Cloud Run は、これらのサービスを代行するサービス アカウントにアクセス権を明示的に付与しない限り、他のプロジェクトのリソースにアクセスできません。アーティファクトとアーティファクト メタデータが保存されているプロジェクト B で、適切な Artifact Registry の権限と Artifact Analysis の権限を付与する必要があります。
Cloud Build の場合は、プロジェクト B で次のロールを付与する必要があります。
- Artifact Registry 書き込み(
roles/artifactregistry.writer
)は、アップロードとダウンロードを許可します。 - Artifact Analysis のオカレンスの閲覧者(
roles/containeranalysis.occurrences.viewer
)は、分析情報を表示する権限を付与します。
- Artifact Registry 書き込み(
Cloud Run の場合、プロジェクト B で次のロールを付与する必要があります。
- Artifact Registry 読み取り(
roles/artifactregistry.reader
)は、デプロイをダウンロードする権限を付与します。 - Artifact Analysis のオカレンスの閲覧者(
roles/containeranalysis.occurrences.viewer
)は、分析情報を表示する権限を付与します。
- Artifact Registry 読み取り(
- 分析情報を閲覧するためのユーザー権限
プロジェクト B では、Cloud Build と Cloud Run のユーザーに必要なロールを使用して、分析情報を表示する必要があります。
次のステップ
- 概要で、 Google Cloud サービスがソフトウェア サプライ チェーンを保護する仕組みを確認する
- ソフトウェア サプライ チェーンのセキュリティ プラクティスと、それらの実装に役立つ Google Cloud サービスについて学習する。