使用 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)
  • Security Center Admin (roles/securitycenter.admin)

如果用户不需要修改权限,请考虑授予其查看者角色。要在 Security Command Center 中查看所有资源、发现结果和设置,用户需要在组织级层具有 Security Center Admin Viewer (roles/securitycenter.adminViewer) 角色。

如需限制对各个文件夹和项目的访问权限,请不要在组织级层授予所有角色。请改为在文件夹 项目级层授予以下角色:

  • Security Center Assets Viewer (roles/securitycenter.assetsViewer)
  • Security Center Findings Viewer (roles/securitycenter.findingsViewer)

组织级角色

在组织级层应用 IAM 角色时,组织下的项目和文件夹将继承其角色及权限。

下图展示了在组织级层授予角色的典型 Security Command Center 资源层次结构。

Security Command Center 资源层次结构和权限结构
Security Command Center 资源层次结构和组织级角色(点击可放大)

IAM 角色包含查看、修改、更新、创建或删除资源的权限。在 Security Command Center 中授予组织级角色,可让您对整个组织中的发现结果、资产和安全来源执行规定的操作。例如,具有 Security Center Findings Editor 角色 (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 命令行工具还限制函数只能在规定的文件夹和项目中使用。如果用于列出资源和发现结果或对其进行分组的调用是由具有文件夹或项目角色的用户发出的,则系统只会返回这些范围内的发现结果或资源。

用于创建或更新发现结果和发现结果通知的调用仅支持组织范围。您需要组织级层角色才能执行这些任务。

发现结果的父级资源

发现结果通常会关联到资源,例如虚拟机或防火墙。Security Command Center 将发现结果与生成发现结果的资源的最直接容器关联。例如,如果一个虚拟机生成发现结果,则该发现结果将关联到包含该虚拟机的项目。未连接到 Google Cloud 资源的发现结果将关联到组织,并对具有组织级 Security Command Center 权限的所有人可见。

Security Command Center 中的 IAM 角色

下面列出了 Security Command Center 可用的 IAM 角色及其包含的权限。Security Command Center Premium 支持在组织文件夹项目级层授予这些角色。Security Command Center Standard 仅支持在组织级层授予 IAM 角色。

角色 权限

Security Center Admin
(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

Security Center Admin Editor
(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

Security Center Admin Viewer
(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

Security Center Asset Security Marks Writer
(roles/securitycenter.assetSecurityMarksWriter)

拥有资产安全标记的写入权限

您可以授予此角色的最低级层资源:

  • 项目
  • securitycenter.assetsecuritymarks.*
  • securitycenter.userinterfacemetadata.*

Security Center Assets Discovery Runner
(roles/securitycenter.assetsDiscoveryRunner)

拥有运行资产发现操作的权限

您可以授予此角色的最低级层资源:

  • 组织
  • securitycenter.assets.runDiscovery
  • securitycenter.userinterfacemetadata.*

Security Center Assets Viewer
(roles/securitycenter.assetsViewer)

拥有资产的读取权限

您可以授予此角色的最低级层资源:

  • 项目
  • resourcemanager.folders.get
  • resourcemanager.organizations.get
  • resourcemanager.projects.get
  • securitycenter.assets.group
  • securitycenter.assets.list
  • securitycenter.assets.listAssetPropertyNames
  • securitycenter.userinterfacemetadata.*

Security Center External Systems Editor
(roles/securitycenter.externalSystemsEditor)

拥有对安全中心外部系统的写入权限

  • securitycenter.findingexternalsystems.*

Security Center Finding Security Marks Writer
(roles/securitycenter.findingSecurityMarksWriter)

拥有发现结果安全标记的写入权限

您可以授予此角色的最低级层资源:

  • 项目
  • securitycenter.findingsecuritymarks.*
  • securitycenter.userinterfacemetadata.*

Security Center Findings Bulk Mute Editor
(roles/securitycenter.findingsBulkMuteEditor)

能够批量忽略发现结果

  • securitycenter.findings.bulkMuteUpdate

Security Center Findings Editor
(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.*

Security Center Findings Mute Setter
(roles/securitycenter.findingsMuteSetter)

设置对发现结果的忽略权限

  • securitycenter.findings.setMute

Security Center Findings State Setter
(roles/securitycenter.findingsStateSetter)

可设置发现结果的状态

您可以授予此角色的最低级层资源:

  • 项目
  • securitycenter.findings.setState
  • securitycenter.userinterfacemetadata.*

Security Center Findings Viewer
(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.*

Security Center Findings Workflow State Setter Beta 版
(roles/securitycenter.findingsWorkflowStateSetter)

可以设置发现结果的工作流状态

您可以授予此角色的最低级层资源:

  • 项目
  • securitycenter.findings.setWorkflowState
  • securitycenter.userinterfacemetadata.*

Security Center Mute Configurations Editor
(roles/securitycenter.muteConfigsEditor)

拥有对安全中心忽略配置的读写权限

  • securitycenter.muteconfigs.*

Security Center Mute Configurations Viewer
(roles/securitycenter.muteConfigsViewer)

拥有对安全中心忽略配置的读取权限

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

Security Center Notification Configurations Editor
(roles/securitycenter.notificationConfigEditor)

拥有对通知配置的写入权限

您可以授予此角色的最低级层资源:

  • 组织
  • securitycenter.notificationconfig.*
  • securitycenter.userinterfacemetadata.*

Security Center Notification Configurations Viewer
(roles/securitycenter.notificationConfigViewer)

拥有对通知配置的读取权限

您可以授予此角色的最低级层资源:

  • 组织
  • securitycenter.notificationconfig.get
  • securitycenter.notificationconfig.list
  • securitycenter.userinterfacemetadata.*

Security Center Settings Admin
(roles/securitycenter.settingsAdmin)

拥有对安全中心设置的管理员(超级用户)权限

您可以授予此角色的最低级层资源:

  • 项目
  • securitycenter.containerthreatdetectionsettings.*
  • securitycenter.eventthreatdetectionsettings.*
  • securitycenter.muteconfigs.*
  • securitycenter.notificationconfig.*
  • securitycenter.organizationsettings.*
  • securitycenter.securitycentersettings.*
  • securitycenter.securityhealthanalyticssettings.*
  • securitycenter.subscription.*
  • securitycenter.userinterfacemetadata.*
  • securitycenter.websecurityscannersettings.*

Security Center Settings Editor
(roles/securitycenter.settingsEditor)

拥有对安全中心设置的读写权限

您可以授予此角色的最低级层资源:

  • 项目
  • securitycenter.containerthreatdetectionsettings.*
  • securitycenter.eventthreatdetectionsettings.*
  • securitycenter.muteconfigs.*
  • securitycenter.notificationconfig.*
  • securitycenter.organizationsettings.*
  • securitycenter.securitycentersettings.*
  • securitycenter.securityhealthanalyticssettings.*
  • securitycenter.subscription.*
  • securitycenter.userinterfacemetadata.*
  • securitycenter.websecurityscannersettings.*

Security Center Settings Viewer
(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

Security Center Sources Admin
(roles/securitycenter.sourcesAdmin)

拥有来源的管理员权限

您可以授予此角色的最低级层资源:

  • 组织
  • resourcemanager.organizations.get
  • securitycenter.sources.*
  • securitycenter.userinterfacemetadata.*

Security Center Sources Editor
(roles/securitycenter.sourcesEditor)

拥有来源的读写权限

您可以授予此角色的最低级层资源:

  • 组织
  • resourcemanager.organizations.get
  • securitycenter.sources.get
  • securitycenter.sources.list
  • securitycenter.sources.update
  • securitycenter.userinterfacemetadata.*

Security Center Sources Viewer
(roles/securitycenter.sourcesViewer)

拥有来源的读取权限

您可以授予此角色的最低级层资源:

  • 项目
  • resourcemanager.organizations.get
  • securitycenter.sources.get
  • securitycenter.sources.list
  • securitycenter.userinterfacemetadata.*

角色:Security Center Service Agent

启用 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 Security Center Service Agent 拥有扫描 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 角色及其可用方法。在 项目 级层授予这些角色。为了让用户能够创建和管理安全扫描,您需要将用户添加到项目中并使用角色授予他们权限。

Web Security Scanner 支持基本角色预定义角色,后者提供对 Web Security Scanner 资源的更精细的访问权限。

基本 IAM 角色

下文介绍了基本角色授予的 Web Security Scanner 权限。

角色 说明
Owner 拥有所有 Web Security Scanner 资源的完整访问权限
Editor 拥有所有 Web Security Scanner 资源的完整访问权限
Viewer 无法拥有对 Web Security Scanner 的访问权限

预定义 IAM 角色

下面介绍了 Web Security Scanner 角色授予的 Web Security Scanner 权限。

角色 权限

Web Security Scanner Editor
(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 Runner
(roles/cloudsecurityscanner.runner)

拥有 Scan 和 ScanRun 的读取权限以及启动扫描的权限

您可以授予此角色的最低级层资源:

  • 项目
  • cloudsecurityscanner.crawledurls.*
  • cloudsecurityscanner.scanruns.get
  • cloudsecurityscanner.scanruns.list
  • cloudsecurityscanner.scanruns.stop
  • cloudsecurityscanner.scans.get
  • cloudsecurityscanner.scans.list
  • cloudsecurityscanner.scans.run

Web Security Scanner Viewer
(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 角色,请参阅 了解角色