IAM によるアクセス制御

このページでは、Security Command Center で Identity and Access Management(IAM)を使用して、リソース階層のさまざまなレベルのリソースへのアクセスを制御する方法について説明します。

Security Command Center では、IAM のロールを使用して、誰が Security Command Center 環境内のアセット、検出結果、セキュリティ ソースを使用して何を実行できるかを制御します。ロールを個人とアプリケーションに付与し、それぞれのロールによって具体的な権限が与えられます。

Security Command Center Premium では、組織レベル、フォルダレベル、プロジェクト レベルで IAM のロールを付与できます。Security Command Center Standard では、組織レベルでのロールの付与のみサポートされています。

権限

Security Command Center を設定する場合や、組織の構成を変更する場合は、組織レベルの次のロールがどちらも必要です。

  • 組織管理者(roles/resourcemanager.organizationAdmin
  • セキュリティ センター管理者(roles/securitycenter.admin

ユーザーが編集権限を必要としない場合は、閲覧者ロールの付与を検討してください。Security Command Center ですべてのアセットと検出結果を表示するには、組織レベルでセキュリティ センター管理閲覧者roles/securitycenter.adminViewer)のロールが必要です。設定を表示する必要もある場合は、組織レベルでセキュリティ センター管理者roles/securitycenter.admin)のロールが必要です。

個々のフォルダやプロジェクトへのアクセスを制限するために、組織レベルのロールだけで付与しないでください。そうするのではなく、フォルダレベルやプロジェクト レベルの次のロールを付与します。

  • セキュリティ センターのアセット閲覧者(roles/securitycenter.assetsViewer
  • セキュリティ センターの検出閲覧者(roles/securitycenter.findingsViewer

組織レベルのロール

組織レベルで IAM ロールが適用されると、組織下のプロジェクトとフォルダは、そのロールと権限を継承します。

次の図では、組織レベルでロールが付与されている一般的な Security Command Center のリソース階層を示します。

Security Command Center のリソース階層と権限の構造
Security Command Center のリソース階層と組織レベルのロール(クリックして拡大)

IAM のロールには、リソースを表示、編集、更新、作成、削除する権限が含まれます。Security Command Center で組織レベルで付与されたロールにより、ユーザーは組織全体で検出結果、アセット、セキュリティ ソースに対して所定のアクションを実行できます。たとえば、セキュリティ センターの検出編集者ロール(roles/securitycenter.findingsEditor)を付与されたユーザーは、組織内の任意のプロジェクトやフォルダのリソースに関連付けられている検出結果を表示することや、編集することが可能です。この構造では、フォルダやプロジェクトごとにユーザーにロールを付与する必要はありません。

ロールと権限を管理する手順については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

組織レベルのロールは、あらゆるユースケースに向いているわけではありません。特に、厳格なアクセス制御が必要な機密性の高いアプリケーションやコンプライアンス標準には向いていません。きめ細かいアクセス ポリシーを作成するには、Security Command Center Premium を使用してフォルダレベルとプロジェクト レベルでロールを付与できます。

フォルダとプロジェクトのロール

Security Command Center Premium を使用すると、特定のフォルダとプロジェクトに Security Command Center の IAM ロールを付与して、組織内で複数のビュー(サイロ)を作成できます。ユーザーとグループに、組織のフォルダとプロジェクトに対するさまざまなアクセス権と編集権限を付与します。

次の動画では、Security Command Center Premium でのフォルダーレベルとプロジェクト レベルのロールのサポートと、ダッシュボードでのロールの管理方法について説明します。

フォルダとプロジェクトのロールを使用すると、Security Command Center のロールを持つユーザーは、指定されたプロジェクトやフォルダ内のアセットと検出結果を管理できます。たとえば、セキュリティ エンジニアにフォルダとプロジェクトを選択するための制限付きのアクセス権を付与する一方で、セキュリティ管理者は組織レベルですべてのリソースを管理できます。

フォルダとプロジェクトのロールを使用すると、組織のリソース階層の下位レベルで Security Command Center の権限を適用できますが、階層は変更されません。次の図は、特定のプロジェクト内の検出結果にアクセスできる Security Command Center の権限を付与されたユーザーを示しています。

Security Command Center のリソース階層と権限の構造
Security Command Center のリソース階層とプロジェクト レベルのロール - 破線の要素にはアクセスできません(クリックして拡大)

フォルダとプロジェクトのロールを持つユーザーは、組織のリソースの一部を表示できます。ユーザーが行うアクションは、同じスコープに制限されます。たとえば、フォルダに対する権限を付与されているユーザーは、フォルダ内のどのプロジェクトのリソースにもアクセスできます。プロジェクトに対する権限により、ユーザーはそのプロジェクト内のリソースにアクセスできます。

ロールと権限を管理する手順については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

ロールの制限

フォルダレベルやプロジェクト レベルで Security Command Center のロールを付与することによって、Security Command Center Premium の管理者は次のことができます。

  • Security Command Center の表示権限や編集権限を特定のフォルダとプロジェクトに制限する。
  • 特定のユーザーやチームに、アセットや検出結果のグループに対する表示権限および編集権限を付与する。
  • セキュリティ マークと検出状態の更新など、検出結果の表示や編集を、基盤となる検出結果へのアクセス権を持つユーザーまたはグループに制限する。
  • Security Command Center の設定へのアクセスを制御する。これにより、組織レベルのロールを持つユーザーだけが閲覧できます。

Security Command Center の機能

Security Command Center Premium の機能は、表示と編集の権限に基づく制限もされています。

組織レベルの権限を持たないユーザーは、Security Command Center ダッシュボードを使用して、アクセスするリソースを選択できます。この選択により、アセット、検出結果、設定コントロールなど、ユーザー インターフェースのすべての要素が更新されます。ユーザーは、ロールに関連付けられた権限と、現在のスコープで検出結果にアクセスして編集できるかどうかがわかります。

Security Command Center API と gcloud コマンドライン ツールにより、特定のフォルダとプロジェクトに対する機能も制限されます。アセットと検出結果の一覧表示やグループ化の呼び出しが、フォルダまたはプロジェクトのロールが付与されたユーザーによって行われた場合、それらのスコープの検出結果またはアセットのみが返されます。

検出結果および検出結果の通知の作成や更新のための呼び出しでは、組織スコープのみがサポートされます。こうしたタスクの実行には、組織レベルのロールが必要です。

検出結果の親リソース

通常、検出結果は仮想マシン(VM)やファイアウォールなどのリソースに関連付けられます。Security Command Center は、検出結果を生成したリソースに最も近いコンテナに、検出結果を関連付けます。たとえば、VM で検出結果が生成されると、VM が含まれるプロジェクトに検出結果が関連付けられます。Google Cloud リソースに関係のない検出結果は、組織に関連付けられ、組織レベルの Security Command Center 権限を持つすべてのユーザーが閲覧できるようになります。

Security Command Center の IAM ロール

Security Command Center で使用できる IAM ロールと、各ロールに含まれる権限を以下に示します。Security Command Center Premium では、組織フォルダプロジェクトのレベルでこれらのロールを付与できます。Security Command Center Standard では、組織レベルの IAM ロールの付与だけがサポートされています。

ロール 権限

セキュリティ センター管理者
roles/securitycenter.admin

セキュリティ センターに対する管理者(スーパー ユーザー)アクセス

このロールを付与できる最下位レベルのリソース:

  • プロジェクト
  • appengine.applications.get
  • cloudsecurityscanner.*
  • compute.addresses.list
  • resourcemanager.folders.get
  • resourcemanager.organizations.get
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • securitycenter.*
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list

セキュリティ センター管理編集者
roles/securitycenter.adminEditor

セキュリティ センターに対する管理者の読み取り / 書き込み権限

このロールを付与できる最下位レベルのリソース:

  • プロジェクト
  • appengine.applications.get
  • cloudsecurityscanner.*
  • compute.addresses.list
  • resourcemanager.folders.get
  • resourcemanager.organizations.get
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • securitycenter.assets.*
  • securitycenter.assetsecuritymarks.*
  • securitycenter.containerthreatdetectionsettings.calculate
  • securitycenter.containerthreatdetectionsettings.get
  • securitycenter.eventthreatdetectionsettings.calculate
  • securitycenter.eventthreatdetectionsettings.get
  • securitycenter.findingexternalsystems.*
  • securitycenter.findings.*
  • securitycenter.findingsecuritymarks.*
  • securitycenter.muteconfigs.*
  • securitycenter.notificationconfig.*
  • securitycenter.organizationsettings.get
  • securitycenter.securitycentersettings.get
  • securitycenter.securityhealthanalyticssettings.calculate
  • securitycenter.securityhealthanalyticssettings.get
  • securitycenter.sources.get
  • securitycenter.sources.list
  • securitycenter.sources.update
  • securitycenter.subscription.*
  • securitycenter.userinterfacemetadata.*
  • securitycenter.websecurityscannersettings.calculate
  • securitycenter.websecurityscannersettings.get
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list

セキュリティ センター管理閲覧者
roles/securitycenter.adminViewer

セキュリティ センターに対する管理者の読み取り権限

このロールを付与できる最下位レベルのリソース:

  • プロジェクト
  • cloudsecurityscanner.crawledurls.*
  • cloudsecurityscanner.results.*
  • cloudsecurityscanner.scanruns.get
  • cloudsecurityscanner.scanruns.getSummary
  • cloudsecurityscanner.scanruns.list
  • cloudsecurityscanner.scans.get
  • cloudsecurityscanner.scans.list
  • resourcemanager.folders.get
  • resourcemanager.organizations.get
  • resourcemanager.projects.get
  • securitycenter.assets.group
  • securitycenter.assets.list
  • securitycenter.assets.listAssetPropertyNames
  • securitycenter.containerthreatdetectionsettings.calculate
  • securitycenter.containerthreatdetectionsettings.get
  • securitycenter.eventthreatdetectionsettings.calculate
  • securitycenter.eventthreatdetectionsettings.get
  • securitycenter.findings.group
  • securitycenter.findings.list
  • securitycenter.findings.listFindingPropertyNames
  • securitycenter.muteconfigs.get
  • securitycenter.muteconfigs.list
  • securitycenter.notificationconfig.get
  • securitycenter.notificationconfig.list
  • securitycenter.organizationsettings.get
  • securitycenter.securitycentersettings.get
  • securitycenter.securityhealthanalyticssettings.calculate
  • securitycenter.securityhealthanalyticssettings.get
  • securitycenter.sources.get
  • securitycenter.sources.list
  • securitycenter.subscription.*
  • securitycenter.userinterfacemetadata.*
  • securitycenter.websecurityscannersettings.calculate
  • securitycenter.websecurityscannersettings.get
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list

セキュリティ センターのアセット セキュリティ マーク編集者
roles/securitycenter.assetSecurityMarksWriter

アセット セキュリティ マークに対する書き込み権限

このロールを付与できる最下位レベルのリソース:

  • プロジェクト
  • securitycenter.assetsecuritymarks.*
  • securitycenter.userinterfacemetadata.*

セキュリティ センターのアセット ディスカバリ実行者
roles/securitycenter.assetsDiscoveryRunner

アセットに対するアセット ディスカバリの実行権限

このロールを付与できる最下位レベルのリソース:

  • 組織
  • securitycenter.assets.runDiscovery
  • securitycenter.userinterfacemetadata.*

セキュリティ センターのアセット閲覧者
roles/securitycenter.assetsViewer

アセットに対する読み取り権限

このロールを付与できる最下位レベルのリソース:

  • プロジェクト
  • resourcemanager.folders.get
  • resourcemanager.organizations.get
  • resourcemanager.projects.get
  • securitycenter.assets.group
  • securitycenter.assets.list
  • securitycenter.assets.listAssetPropertyNames
  • securitycenter.userinterfacemetadata.*

セキュリティ センター外部システム編集者
roles/securitycenter.externalSystemsEditor

セキュリティ センター外部システムに対する書き込みアクセス権

  • securitycenter.findingexternalsystems.*

セキュリティ センターの検出セキュリティ マーク編集者
roles/securitycenter.findingSecurityMarksWriter

検出セキュリティ マークに対する書き込み権限

このロールを付与できる最下位レベルのリソース:

  • プロジェクト
  • securitycenter.findingsecuritymarks.*
  • securitycenter.userinterfacemetadata.*

セキュリティ センターの検出の一括ミュート編集者
roles/securitycenter.findingsBulkMuteEditor

検出を一括してミュート可能

  • securitycenter.findings.bulkMuteUpdate

セキュリティ センターの検出編集者
roles/securitycenter.findingsEditor

検出に対する読み取り / 書き込み権限

このロールを付与できる最下位レベルのリソース:

  • プロジェクト
  • resourcemanager.folders.get
  • resourcemanager.organizations.get
  • resourcemanager.projects.get
  • securitycenter.findings.bulkMuteUpdate
  • securitycenter.findings.group
  • securitycenter.findings.list
  • securitycenter.findings.listFindingPropertyNames
  • securitycenter.findings.setMute
  • securitycenter.findings.setState
  • securitycenter.findings.update
  • securitycenter.sources.get
  • securitycenter.sources.list
  • securitycenter.userinterfacemetadata.*

セキュリティ センターの検出のミュート設定者
roles/securitycenter.findingsMuteSetter

検出に対するミュート アクセス権を設定します

  • securitycenter.findings.setMute

セキュリティ センターの検出状態設定者
roles/securitycenter.findingsStateSetter

検出状態の設定権限

このロールを付与できる最下位レベルのリソース:

  • プロジェクト
  • securitycenter.findings.setState
  • securitycenter.userinterfacemetadata.*

セキュリティ センターの検出閲覧者
roles/securitycenter.findingsViewer

検出に対する読み取り権限

このロールを付与できる最下位レベルのリソース:

  • プロジェクト
  • resourcemanager.folders.get
  • resourcemanager.organizations.get
  • resourcemanager.projects.get
  • securitycenter.findings.group
  • securitycenter.findings.list
  • securitycenter.findings.listFindingPropertyNames
  • securitycenter.sources.get
  • securitycenter.sources.list
  • securitycenter.userinterfacemetadata.*

セキュリティ センターの検出ワークフロー状態設定者 ベータ版
roles/securitycenter.findingsWorkflowStateSetter

検出に対するワークフロー状態のアクセス権を設定します。

このロールを付与できる最下位レベルのリソース:

  • プロジェクト
  • securitycenter.findings.setWorkflowState
  • securitycenter.userinterfacemetadata.*

セキュリティ センターのミュート構成編集者
roles/securitycenter.muteConfigsEditor

セキュリティ センターのミュート構成に対する読み取り / 書き込みアクセス権

  • securitycenter.muteconfigs.*

セキュリティ センターのミュート構成閲覧者
roles/securitycenter.muteConfigsViewer

セキュリティ センターのミュート構成に対する読み取りアクセス権

  • securitycenter.muteconfigs.get
  • securitycenter.muteconfigs.list

セキュリティ センター通知構成編集者
roles/securitycenter.notificationConfigEditor

通知構成に対する書き込みアクセス権

このロールを付与できる最下位レベルのリソース:

  • 組織
  • securitycenter.notificationconfig.*
  • securitycenter.userinterfacemetadata.*

セキュリティ センター通知構成閲覧者
roles/securitycenter.notificationConfigViewer

通知構成に対する読み取りアクセス権

このロールを付与できる最下位レベルのリソース:

  • 組織
  • securitycenter.notificationconfig.get
  • securitycenter.notificationconfig.list
  • securitycenter.userinterfacemetadata.*

セキュリティ センター設定の管理者
roles/securitycenter.settingsAdmin

セキュリティ センターの設定に対する管理者(スーパー ユーザー)アクセス権

このロールを付与できる最下位レベルのリソース:

  • プロジェクト
  • securitycenter.containerthreatdetectionsettings.*
  • securitycenter.eventthreatdetectionsettings.*
  • securitycenter.muteconfigs.*
  • securitycenter.notificationconfig.*
  • securitycenter.organizationsettings.*
  • securitycenter.securitycentersettings.*
  • securitycenter.securityhealthanalyticssettings.*
  • securitycenter.subscription.*
  • securitycenter.userinterfacemetadata.*
  • securitycenter.websecurityscannersettings.*

セキュリティ センター設定の編集者
roles/securitycenter.settingsEditor

セキュリティ センターの設定に対する読み取り / 書き込みアクセス権

このロールを付与できる最下位レベルのリソース:

  • プロジェクト
  • securitycenter.containerthreatdetectionsettings.*
  • securitycenter.eventthreatdetectionsettings.*
  • securitycenter.muteconfigs.*
  • securitycenter.notificationconfig.*
  • securitycenter.organizationsettings.*
  • securitycenter.securitycentersettings.*
  • securitycenter.securityhealthanalyticssettings.*
  • securitycenter.subscription.*
  • securitycenter.userinterfacemetadata.*
  • securitycenter.websecurityscannersettings.*

セキュリティ センター設定の閲覧者
roles/securitycenter.settingsViewer

セキュリティ センターの設定に対する読み取りアクセス権

このロールを付与できる最下位レベルのリソース:

  • プロジェクト
  • securitycenter.containerthreatdetectionsettings.calculate
  • securitycenter.containerthreatdetectionsettings.get
  • securitycenter.eventthreatdetectionsettings.calculate
  • securitycenter.eventthreatdetectionsettings.get
  • securitycenter.muteconfigs.get
  • securitycenter.muteconfigs.list
  • securitycenter.notificationconfig.get
  • securitycenter.notificationconfig.list
  • securitycenter.organizationsettings.get
  • securitycenter.securitycentersettings.get
  • securitycenter.securityhealthanalyticssettings.calculate
  • securitycenter.securityhealthanalyticssettings.get
  • securitycenter.subscription.*
  • securitycenter.userinterfacemetadata.*
  • securitycenter.websecurityscannersettings.calculate
  • securitycenter.websecurityscannersettings.get

セキュリティ センターのソース管理者
roles/securitycenter.sourcesAdmin

ソースに対する管理者権限

このロールを付与できる最下位レベルのリソース:

  • 組織
  • resourcemanager.organizations.get
  • securitycenter.sources.*
  • securitycenter.userinterfacemetadata.*

セキュリティ センターのソース編集者
roles/securitycenter.sourcesEditor

ソースに対する読み取り / 書き込み権限

このロールを付与できる最下位レベルのリソース:

  • 組織
  • resourcemanager.organizations.get
  • securitycenter.sources.get
  • securitycenter.sources.list
  • securitycenter.sources.update
  • securitycenter.userinterfacemetadata.*

セキュリティ センターのソース閲覧者
roles/securitycenter.sourcesViewer

ソースに対する読み取り権限

このロールを付与できる最下位レベルのリソース:

  • プロジェクト
  • resourcemanager.organizations.get
  • securitycenter.sources.get
  • securitycenter.sources.list
  • securitycenter.userinterfacemetadata.*

ロール: セキュリティ センター サービス エージェント

Security Command Center を有効にすると、service-org-ORGANIZATION_ID@security-center-api.iam.gserviceaccount.com の形式でサービス アカウントが作成されます。Security Command Center を使用するには、サービス アカウントに組織レベルでの securitycenter.serviceAgent ロールを付与する必要があります。このロールにより、Security Command Center サービス アカウントでは、組織のアセット インベントリ メタデータの独自のコピーを継続的に作成、更新できます。

このロールは、Security Command Center のオンボーディング プロセスの一環として、サービス アカウントに付与するように求められます。オンボーディング インターフェースを介して必要なすべてのロールを付与するか、gcloud を使用して手動でロールを付与できます。サービス アカウントにロールを付与する手順については、権限を付与するをご覧ください。

securitycenter.serviceAgent ロールには、次の権限が含まれます。

ロール 役職 説明 権限 最下位のリソース
roles/securitycenter.serviceAgent セキュリティ センター サービス エージェント Google Cloud リソースのスキャンとセキュリティ スキャンをインポートするためのアクセス権

次のロールのすべての権限。

  • appengine.appViewer
  • cloudasset.viewer
  • compute.viewer
  • container.viewer
  • dlpscanner.policyReader
  • dlpscanner.scanReader
  • dlp.jobsReader

次の権限も含まれます。

  • resourcemanager.folders.list
  • resourcemanager.folders.get
  • resourcemanager.organizations.list
  • resourcemanager.organizations.get
  • resourcemanager.projects.list
  • resourcemanager.projects.get
  • resourcemanager.projects.getIamPolicy
  • storage.buckets.get
  • storage.buckets.list
  • storage.buckets.getIamPolicy
組織

roles/securitycenter.serviceAgent を追加するには、roles/resourcemanager.organizationAdmin が必要です。ロールは、次のコマンドを実行することでサービス アカウントに追加できます。

gcloud organizations add-iam-policy-binding ORGANIZATION_ID \
  --member="serviceAccount:service-org-ORGANIZATION_ID@security-center-api.iam.gserviceaccount.com" \
  --role="roles/securitycenter.serviceAgent"

ORGANIZATION_ID は、実際の組織 ID に置き換えます。

IAM ロールの詳細については、ロールについてをご覧ください。

Web Security Scanner

IAM ロールでは、Web Security Scanner の使用方法が規定されています。次の表では、Web Security Scanner で使用できる各 IAM ロールと、これらのロールで使用できるメソッドを示します。これらのロールは、プロジェクト レベルで付与します。ユーザーにセキュリティ スキャンを作成、管理する能力を与えるには、ユーザーをプロジェクトに追加し、IAM ロールを使用して権限を付与します。

Web Security Scanner では、Web Security Scanner リソースに対してより細分化されたアクセス権を付与する、基本ロール事前定義ロールがサポートされています。

IAM の基本ロール

基本ロールによって付与される Web Security Scanner の権限は次のとおりです。

ロール 説明
オーナー すべての Web Security Scanner リソースに対する完全アクセス権
編集者 すべての Web Security Scanner リソースに対する完全アクセス権
閲覧者 Web Security Scanner に対するアクセス権なし

事前定義された IAM の役割

以下では、Web Security Scanner ロールで付与される Web Security Scanner の権限について説明します。

ロール 権限

Web Security Scanner 編集者
roles/cloudsecurityscanner.editor

すべての Web Security Scanner リソースに対する完全アクセス権

このロールを付与できる最下位レベルのリソース:

  • プロジェクト
  • appengine.applications.get
  • cloudsecurityscanner.*
  • compute.addresses.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list

Web Security Scanner 実行者
roles/cloudsecurityscanner.runner

スキャンとスキャン実行に対する読み取りアクセス権、およびスキャンを開始する権限

このロールを付与できる最下位レベルのリソース:

  • プロジェクト
  • cloudsecurityscanner.crawledurls.*
  • cloudsecurityscanner.scanruns.get
  • cloudsecurityscanner.scanruns.list
  • cloudsecurityscanner.scanruns.stop
  • cloudsecurityscanner.scans.get
  • cloudsecurityscanner.scans.list
  • cloudsecurityscanner.scans.run

Web Security Scanner 閲覧者
roles/cloudsecurityscanner.viewer

すべての Web Security Scanner リソースに対する読み取りアクセス権

このロールを付与できる最下位レベルのリソース:

  • プロジェクト
  • cloudsecurityscanner.crawledurls.*
  • cloudsecurityscanner.results.*
  • cloudsecurityscanner.scanruns.get
  • cloudsecurityscanner.scanruns.getSummary
  • cloudsecurityscanner.scanruns.list
  • cloudsecurityscanner.scans.get
  • cloudsecurityscanner.scans.list
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list

IAM ロールの詳細については、ロールについてをご覧ください。