このドキュメントでは、ソフトウェア デリバリー シールドのセキュリティ分析情報を表示するために必要な IAM の権限について説明します。ソフトウェア デリバリー シールドは、Google Cloud 上のフルマネージド ソフトウェア サプライ チェーン セキュリティ ソリューションです。
必要なロール
Google Cloud コンソールで ソフトウェア デリバリー シールドの分析情報を表示するには、次のロールまたは同等の権限を持つロールが必要です。
- Cloud Build 閲覧者(
roles/cloudbuild.builds.viewer
): ビルドの分析情報を表示します。 - Artifact Analysis 実行回数の閲覧者(
roles/containeranalysis.occurrences.viewer
): 脆弱性、ビルドの来歴、その他の依存関係情報を表示します。 - Cloud Run 閲覧者(
roles/run.viewer
): Cloud Run リビジョンの分析情報を表示します。 - Kubernetes Engine Cluster 閲覧者(
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 のユーザーに必要なロールを使用して、分析情報を表示する必要があります。
次のステップ
- 概要で Software Delivery Shield サービスの詳細を確認する
- ソフトウェア サプライ チェーンのセキュリティ プラクティスと、その実装に役立つソフトウェア デリバリー シールドについて確認する。