注入 Google Cloud 日志
本页介绍了如何启用和停用 Google Cloud 将数据注入到 Google Security Operations。这样,您就可以根据数据保留期限,存储、搜索和检查企业过去几个月或更长时间的汇总安全信息。
概览
您可以通过两种方式将 Google Cloud 数据发送到 Google SecOps。选择哪个选项取决于日志类型。
选项 1:直接提取
您可以在 Google Cloud 中配置一个特殊的 Cloud Logging 过滤器,以将特定日志类型实时发送到 Google SecOps。这些日志由 Google Cloud 服务生成。系统会从配置过滤条件的时间开始收集日志。不包含配置之前生成的日志。 此实时转发功能适用于 Cloud Logging、Cloud 资产元数据和 Security Command Center 高级方案发现结果。
对于 VPC 流和 DNS 等高容量日志,请使用此方法。此路径经过优化,速度更快,并且不需要在 Google Cloud 控制台中进行额外配置。
Google Security Operations 仅注入受支持的日志类型。可用的日志类型包括:
- Cloud Audit Logs
- Cloud NAT
- Cloud DNS
- Cloud Next Generation Firewall
- Cloud Intrusion Detection System
- Cloud Load Balancing
- Cloud SQL
- Windows 事件日志
- Linux syslog
- Linux Sysmon
- Zeek
- Google Kubernetes Engine
- 审核守护程序 (
auditd) - Apigee
- Google Cloud Fraud Defense
- Cloud Run 日志 (
GCP_RUN) - Google Cloud 滥用事件
- Google Cloud DNS Advanced Threat Detection (
GCP_DNS_ATD) - Model Armor 日志
如需详细了解特定日志过滤条件和更多注入详情,请参阅将 Google Cloud 日志导出到 Google SecOps。
您还可以发送用于丰富上下文的 Google Cloud 资产元数据。如需了解详情,请参阅将 Google Cloud 资产元数据导出到 Google SecOps。
选项 2: Google Cloud 存储空间
Cloud Logging 可以定期将日志路由到 Google SecOps 的 Cloud Storage。
如果您需要在日志到达 Google SecOps 之前对其进行过滤,请使用此选项。这样一来,您就可以应用正则表达式排除过滤条件,以便只有与安全性相关的日志会计入配额,从而有助于节省费用。
如需详细了解如何为 Google SecOps 配置 Cloud Storage,请参阅 Feed 管理:Cloud Storage。
准备工作
在将 Google Cloud 数据注入到 Google SecOps 实例中之前,您必须确保自己拥有适当的权限。
所需权限
在组织级层授予以下 Identity and Access Management (IAM) 角色之一,以访问 Google SecOps 部分,具体取决于您的目标:
- 如需配置、启用或修改注入,请执行以下操作:
- Chronicle Service Admin (
roles/chroniclesm.admin):执行所有配置和启用活动时需要此角色。
- Chronicle Service Admin (
- 如需仅查看注入状态,请执行以下操作:
- Chronicle Service Viewer (
roles/chroniclesm.viewer):可让您查看数据提取状态,但不会授予启用或修改数据提取的权限。
- Chronicle Service Viewer (
其他权限
根据您计划注入或验证的数据类型,您可能还需要:
- Security Center Admin Editor (
roles/securitycenter.adminEditor):如果您计划启用 Cloud 资产元数据的注入,则必须授予此角色。 - Organization Role Viewer (
roles/iam.organizationRoleViewer):在组织级层查看默认或自定义 IAM 角色时需要此角色。
前提条件
- 如果您计划启用 Cloud 资产元数据,则必须将组织添加到 Security Command Center。如需了解详情,请参阅组织级激活概览。
授予 IAM 角色
您可以使用 Google Cloud 控制台或 gcloud CLI 授予所需的 IAM 角色。
如需使用 Google Cloud 控制台授予 IAM 角色,请完成以下步骤:
登录到您要关联的 Google Cloud 组织,然后依次点击产品 > IAM 和管理 > IAM,前往 IAM 界面。
在 IAM 界面中,选择相应用户,然后点击修改成员。
在“修改权限”界面中,点击添加其他角色,然后搜索 Google SecOps 以查找 IAM 角色。
分配角色后,点击保存。
如需使用 Google Cloud CLI 授予 IAM 角色,请完成以下步骤:
运行
gcloud init,验证您是否已登录正确的组织和项目。运行以下命令,以授予您需要授予的特定角色:
如需授予 Chronicle Service Admin 角色,请执行以下操作:
gcloud organizations add-iam-policy-binding ORGANIZATION_ID \ --member "user:USER_EMAIL" \ --role roles/chroniclesm.admin替换以下内容:
ORGANIZATION_ID:组织的数字 ID。USER_EMAIL:用户的电子邮件地址。
如需授予 Chronicle Service Viewer 角色,请执行以下操作:
gcloud organizations add-iam-policy-binding ORGANIZATION_ID \ --member "user:USER_EMAIL" \ --role roles/chroniclesm.viewer如需授予 Security Center Admin Editor 角色,请执行以下操作:
gcloud organizations add-iam-policy-binding ORGANIZATION_ID \ --member "user:USER_EMAIL" \ --role roles/securitycenter.adminEditor如需授予 Organization Role Viewer 角色,请执行以下操作:
gcloud organizations add-iam-policy-binding ORGANIZATION_ID \ --member "user:USER_EMAIL" \ --role roles/iam.organizationRoleViewer
启用从 Google Cloud直接注入
启用从 Google Cloud 直接注入的步骤因 Google SecOps 实例绑定到的项目的所有权而异。
如果它绑定到您拥有和管理的 Project Owner,请按照在项目归客户所有时配置注入中的步骤操作。借助此方法,您可以配置来自多个 Google Cloud 组织的数据注入。
如果它绑定到 Google Cloud 拥有和管理的项目,请按照为 Google 管理的项目配置注入中的步骤操作。
配置直接注入后,您的 Google Cloud 数据会发送到 Google SecOps。您可以使用 Google SecOps 的分析功能来调查与安全相关的问题。
在项目归 Project Owner 所有时配置注入
如果您拥有 Google Cloud 项目,请执行以下步骤。
您可以使用同一项目级配置页面配置来自多个组织的直接提取。请执行以下步骤来创建新配置和修改现有配置。
如果您迁移现有 Google SecOps 实例,使其绑定到您拥有的项目,并且在迁移之前配置了直接注入,则直接注入配置也会一并迁移。
- 在 Google Cloud 控制台中,前往 Google SecOps > 注入设置页面。
前往 Google SecOps 页面 - 选择绑定到 Google SecOps 实例的项目。
在组织菜单中,选择要从中导出日志的组织。 该菜单会显示您有权访问的组织。该列表可以包含未关联到 Google SecOps 实例的组织。您无法配置向其他 Google SecOps 实例发送数据的组织。
在 Google Cloud 注入设置部分下,点击将数据发送到 Google Security Operations 切换开关,以启用将日志发送到 Google SecOps 的功能。
选择以下一个或多个选项,以定义发送到 Google SecOps 的数据类型:
- Google Cloud Logging:如需详细了解此选项,请参阅导出 Google Cloud 日志。
- Cloud Asset 元数据:如需详细了解此选项,请参阅导出 Google Cloud 资产元数据。
- Security Center Premium 发现结果:如需详细了解此选项,请参阅导出 Security Center Premium 发现结果。
在客户导出过滤条件设置部分下,配置导出过滤条件,以自定义发送到 Google SecOps 的 Cloud Logging 数据。请参阅Google Cloud 支持导出的日志类型。
如需将其他组织的日志注入到同一 Google SecOps 实例,请从组织菜单中选择相应组织,然后重复上述步骤,定义要导出的数据类型和导出过滤条件。 您会在组织菜单中看到多个组织。
如需将 Sensitive Data Protection 数据(以前称为 Cloud Data Loss Prevention 数据)导出到 Google SecOps,请参阅导出 Sensitive Data Protection 数据。
为 Google 管理的项目配置注入
如果 Google Cloud 拥有该项目,请执行以下操作,以配置从 Google Cloud 组织直接注入到 Google SecOps 实例:
- 在 Google Cloud 控制台中,依次前往 Google SecOps > 概览 > 注入标签页。 前往“Google SecOps Ingestion”(Google SecOps 注入)标签页
- 点击管理组织注入设置按钮。
- 如果系统显示无法查看项目的页面消息,请选择一个组织,然后点击选择。
- 在一次性 Google SecOps 访问代码字段中输入您的一次性访问代码。
- 勾选标有我同意有关 Google SecOps 如何使用我的 Google Cloud 数据的条款及条件的复选框。
- 点击连接 Google SecOps。
- 前往组织的全局提取设置标签页。
启用以下一个或多个选项,选择要发送的数据类型:
- Google Cloud Logging:如需详细了解此选项,请参阅导出 Google Cloud 日志。
- Cloud 资产元数据:如需详细了解此选项,请参阅导出 Google Cloud 资产元数据。
- Security Center Premium 发现结果:如需详细了解此选项,请参阅导出 Security Center Premium 发现结果。
前往导出过滤条件设置标签页。
在客户导出过滤条件设置部分下,配置导出过滤条件,以自定义发送到 Google SecOps 的 Cloud Logging 数据。请参阅支持导出的Google Cloud 日志类型。
如需将 Sensitive Data Protection 数据(以前称为 Cloud Data Loss Prevention 数据)导出到 Google SecOps,请参阅导出 Sensitive Data Protection 数据。
导出 Google Cloud 日志
启用 Cloud Logging 后,您可以将受支持的Google Cloud 日志类型的日志数据导出到 Google SecOps 实例。
如需将 Google Cloud 日志导出到 Google SecOps,请将启用 Cloud 日志切换开关设置为已启用。
支持导出的日志类型
您可以自定义导出过滤条件,以指定要将哪些日志导出到 Google SecOps。通过添加或移除本部分中列出的受支持导出过滤条件,包含或排除日志类型。
您可以将以下 Google Cloud 日志类型导出到 Google SecOps 实例。以下列表按日志类型和相应的 Google SecOps 注入标签进行整理:
Cloud Audit Logs (
GCP_CLOUDAUDIT):这包括管理员活动、数据访问、系统事件、Access Transparency 和政策拒绝日志。
log_id("cloudaudit.googleapis.com/activity")(由默认过滤条件导出)log_id("cloudaudit.googleapis.com/system_event")(由默认过滤条件导出)log_id("cloudaudit.googleapis.com/policy")log_id("cloudaudit.googleapis.com/access_transparency")
Cloud NAT 日志记录 (
GCP_CLOUD_NAT):log_id("compute.googleapis.com/nat_flows")
Cloud DNS 日志 (
GCP_DNS):log_id("dns.googleapis.com/dns_queries")(由默认过滤条件导出)
防火墙政策规则日志记录 (
GCP_FIREWALL):log_id("compute.googleapis.com/firewall")
GCP_IDS:log_id("ids.googleapis.com/threat")log_id("ids.googleapis.com/traffic")
GCP_LOADBALANCING:这包括 Google Cloud Armor 和 Cloud Load Balancing(外部和内部)的日志。
log_id("requests")log_id("loadbalancing.googleapis.com/requests")log_id("loadbalancing.googleapis.com/external_regional_requests")
GCP_CLOUDSQL:log_id("cloudsql.googleapis.com/mysql-general.log")log_id("cloudsql.googleapis.com/mysql.err")log_id("cloudsql.googleapis.com/postgres.log")log_id("cloudsql.googleapis.com/sqlagent.out")log_id("cloudsql.googleapis.com/sqlserver.err")
GCP_VPC_FLOW:log_id("compute.googleapis.com/vpc_flows")(仅限美国和欧盟区域)log_id("networkmanagement.googleapis.com/vpc_flows")
NIX_SYSTEM:log_id("syslog")log_id("authlog")log_id("securelog")log_id("osconfig.googleapis.com/patch_job")
LINUX_SYSMON:log_id("sysmon.raw")
WINEVTLOG:log_id("winevt.raw")log_id("windows_event_log")
BRO_JSON:log_id("zeek_json_streaming_conn")log_id("zeek_json_streaming_dhcp")log_id("zeek_json_streaming_dns")log_id("zeek_json_streaming_http")log_id("zeek_json_streaming_ssh")log_id("zeek_json_streaming_ssl")
KUBERNETES_NODE:log_id("events")log_id("stdout")log_id("stderr")
AUDITD:log_id("audit_log")
GCP_APIGEE_X:log_id("apigee.googleapis.com/ingress_instance")log_id("apigee.googleapis.com")log_id("apigee-logs")log_id("apigee")logName =~ "^projects/[\w\-]+/logs/apigee[\w\-\.]*$"
GCP_RECAPTCHA_ENTERPRISE(Google Cloud Fraud Defense):log_id("recaptchaenterprise.googleapis.com/assessment")log_id("recaptchaenterprise.googleapis.com/annotation")
GCP_RUN:log_id("run.googleapis.com/stderr")log_id("run.googleapis.com/stdout")log_id("run.googleapis.com/requests")log_id("run.googleapis.com/varlog/system")
GCP_NGFW_ENTERPRISE:log_id("networksecurity.googleapis.com/firewall_threat")
GCP_ABUSE_EVENTS:log_id("abuseevent.googleapis.com/abuse_events")
GCP_DNS_ATDlog_id("networksecurity.googleapis.com/dns_threat_events")
Model Armor 日志 (
GCP_MODEL_ARMOR):这包括排查操作(筛查提示和回答)和模板操作(创建、更新)的日志。
log_id("modelarmor.googleapis.com/sanitize_operations")log_id("modelarmor.googleapis.com/templates")
自定义导出过滤条件设置
默认情况下,您的 Cloud Audit Logs(管理员活动和系统事件)和 Cloud DNS 日志会发送到您的 Google SecOps 实例。但是,您可以自定义导出过滤条件以包含或排除特定类型的日志。
过滤条件的长度上限为 20,000 个字符。请注意,过于复杂的过滤条件(尤其是包含许多深度嵌套的 AND 或 OR 条件的过滤条件)可能会被拒绝,即使它们在字符数限制范围内也是如此。简化过滤条件有助于避免被拒。此外,过滤器中的所有元素都必须明确限定为受支持的日志类型。您必须使用 log_id() 或 logName 来引用支持导出的日志类型部分中列出的日志类型。
如需为日志定义自定义过滤条件,请执行以下操作:
使用日志范围限定工具确定自定义过滤条件的日志。
在日志范围限定工具后面的自动生成的日志过滤条件部分中,复制生成的自定义日志过滤条件代码。
前往 Google Cloud 控制台中的 Google SecOps 页面,然后选择一个项目。
前往 Google SecOps 页面使用导出过滤条件设置标签页中的链接启动日志浏览器。
将新查询复制到查询字段中,然后点击运行查询进行测试。
将新查询复制到日志浏览器 > 查询字段中,然后点击运行查询进行测试。
验证Logs Explorer中显示的匹配日志正是您要导出到 Google SecOps 的日志。过滤条件准备就绪后,将其复制到 Google SecOps 的自定义导出过滤条件设置部分。
返回 Google SecOps 页面上的自定义导出过滤条件设置部分。
点击导出过滤条件字段中的修改图标,然后将复制的过滤条件粘贴到该字段中。
点击保存。
如果出现以下错误消息:“所提供的过滤条件可能会允许不受支持的日志类型”,则表示导出过滤条件中可能包含不受支持的日志类型。从导出过滤条件中移除不受支持的日志类型。仅包含Google Cloud 支持导出的日志类型中列出的日志类型。
如果保存成功,新的自定义过滤条件适用于导出到 Google SecOps 实例的所有新日志。
可选:如需将导出过滤条件重置为默认版本,请保存自定义过滤条件的副本,然后点击重置为默认值。
调整 Cloud Audit Logs 过滤条件
Cloud Audit Logs 写入的数据访问日志可能会产生大量数据,但对威胁检测没有太大价值。如果您选择将这些日志发送到 Google SecOps,则应滤除由日常活动生成的日志。
以下导出过滤条件会捕获数据访问日志,并排除 Cloud Storage 和 Cloud SQL 的读取和列出操作等高容量事件:
( log_id("cloudaudit.googleapis.com/data_access")
AND NOT protoPayload.methodName =~ "^storage\.(buckets|objects)\.(get|list)$"
AND NOT protoPayload.request.cmd = "select"
AND NOT protoPayload.methodName =~ "^google\.spanner\.v1\.Spanner\.(ExecuteStreamingSql|BeginTransaction|Commit)$" )
如需详细了解如何调整 Cloud Audit Logs 生成的数据访问日志,请参阅管理数据访问审核日志的数量。
导出过滤条件示例
以下导出过滤条件示例说明了如何包含或排除某些类型的日志,以导出或防止导出到您的 Google SecOps 实例。
导出过滤条件示例:包含其他日志类型
除默认日志外,以下导出过滤条件还会导出 Access Transparency 日志:
log_id("dns.googleapis.com/dns_queries") OR
log_id("cloudaudit.googleapis.com/activity") OR
log_id("cloudaudit.googleapis.com/system_event") OR
log_id("cloudaudit.googleapis.com/access_transparency")
导出过滤条件示例:包含特定项目中的其他日志
除默认日志外,以下导出过滤条件还会从特定项目导出 Access Transparency 日志:
log_id("dns.googleapis.com/dns_queries") OR
log_id("cloudaudit.googleapis.com/activity") OR
log_id("cloudaudit.googleapis.com/system_event") OR
logName = "projects/my-project-id/logs/cloudaudit.googleapis.com%2Faccess_transparency"
导出过滤条件示例:包含特定文件夹中的其他日志
除默认日志外,以下导出过滤条件还会从特定文件夹导出 Access Transparency 日志:
log_id("dns.googleapis.com/dns_queries") OR
log_id("cloudaudit.googleapis.com/activity") OR
log_id("cloudaudit.googleapis.com/system_event") OR
logName = "folders/my-folder-id/logs/cloudaudit.googleapis.com%2Faccess_transparency"
导出过滤条件示例:排除特定项目中的日志
以下导出过滤条件会从整个 Google Cloud 组织(特定项目除外)导出默认日志:
(log_id("dns.googleapis.com/dns_queries") OR
log_id("cloudaudit.googleapis.com/activity") OR
log_id("cloudaudit.googleapis.com/system_event")) AND
(NOT logName =~ "^projects/my-project-id/logs/.*$")
导出 Google Cloud 资产元数据
您可以将 Google Cloud 资产元数据从 Cloud Asset Inventory 导出到 Google SecOps。此资产元数据来自您的 Cloud Asset Inventory,包含有关您的资产、资源和身份的信息,包括以下内容:
- 环境
- 位置
- 可用区
- 硬件型号
- 资源和身份之间的访问权限控制关系
以下类型的 Google Cloud 资产元数据将导出到您的 Google SecOps 实例:
GCP_BIGQUERY_CONTEXTGCP_COMPUTE_CONTEXTGCP_IAM_CONTEXTGCP_IAM_ANALYSISGCP_STORAGE_CONTEXTGCP_CLOUD_FUNCTIONS_CONTEXTGCP_SQL_CONTEXTGCP_NETWORK_CONNECTIVITY_CONTEXTGCP_RESOURCE_MANAGER_CONTEXT
以下是 Google Cloud 资产元数据的示例:
- 应用名称—
Google-iamSample/0.1 - 项目名称—
projects/my-project
如需将 Google Cloud 资产元数据导出到 Google SecOps,请将云资产元数据切换开关设置为已启用。
如需详细了解如何导出特定上下文日志并将其注入 Google SecOps,请参阅默认解析器配置和注入,并搜索“上下文”或“分析”。
导出 Security Command Center 发现结果
您可以将 Security Command Center 高级方案 Event Threat Detection 发现结果和所有其他发现结果导出到 Google SecOps。
Google SecOps 支持以下 Security Command Center 发现结果类别:
ERRORMISCONFIGURATIONOBSERVATIONPOSITIVE_VALIDATIONPOSTURE_VIOLATIONTHREATTOXIC_COMBINATIONUNSPECIFIEDVULNERABILITY
如需详细了解 ETD 发现结果,请参阅 Event Threat Detection 概览。
如需将 Security Command Center 高级方案 发现结果导出到 Google SecOps,请将 Security Command Center 高级方案 发现结果切换开关切换为已启用。您必须在组织级层启用 Security Command Center Premium,才能将 Premium 发现结果导出到 Google SecOps。
排查 Security Command Center 发现结果方面的问题
Google Cloud 如果贵组织的 Security Command Center 高级方案许可发生变更,日志注入会停止。这可能发生在 Security Command Center 层级降级、试用期结束后,或由于其他许可修改导致 Google SecOps 自动停用 Google Cloud 日志注入。这会立即停止从您配置的 Google Cloud 来源注入日志,从而导致可见性差距。请注意,在禁止提取期间生成的日志无法追溯收集。如需解决此问题并恢复日志提取,您必须在 Google Cloud 设置中手动重新启用 Google Cloud 日志导出,并确保应用所有相关的导出过滤条件:
- 前往 Google SecOps 实例中的 SIEM 设置。
- 从左侧菜单中,选择 GCP 注入。
- 查看 Google Cloud 项目、文件夹或组织日志源的列表。
- 将任何已停用的来源切换回启用。
- 请等待几分钟,让连接重新建立。您可以在搜索中搜索新日志,以验证提取是否已恢复。
导出 Sensitive Data Protection 数据
您可以将 Sensitive Data Protection 数据导出到 Google SecOps。
如需注入 Sensitive Data Protection 资产元数据 (DLP_CONTEXT),请执行以下操作:
- 完成本文档上一部分中的步骤,启用 Google Cloud 数据注入。
- 配置 Sensitive Data Protection 以分析数据。
- 将扫描配置设置为将数据分析结果发布到 Google SecOps。
如需详细了解如何为 BigQuery 数据创建数据分析文件,请参阅 Sensitive Data Protection 文档。
停用 Google Cloud 数据注入
停用从 Google Cloud 直接注入数据的步骤因 Google SecOps 的配置方式而异。请按以下方式之一操作:
如果您的 Google SecOps 实例绑定到您拥有和管理的项目,请执行以下步骤:
- 选择绑定到 Google SecOps 实例的项目。
- 在 Google Cloud 控制台中,前往 Google SecOps 下的注入标签页。
前往 Google SecOps 页面 - 在组织菜单中,选择要从中导出日志的组织。
- 将将数据发送到 Google Security Operations 切换开关设置为已停用。
- 如果您配置了从多个组织导出数据,并且也想停用这些配置,请针对每个组织执行以下步骤。
如果您的 Google SecOps 实例绑定到 Google Cloud 拥有和管理的项目,请执行以下步骤:
- 前往 Google Cloud 控制台中的 Google SecOps > 注入页面。
前往 Google SecOps 页面 - 在资源菜单中,选择与您的 Google SecOps 实例绑定且您要从中提取数据的组织。
- 勾选标有我想要断开 Google SecOps 连接并停止将 Google Cloud 日志发送到 Google SecOps 的复选框。
- 点击断开与 Google SecOps 的连接。
- 前往 Google Cloud 控制台中的 Google SecOps > 注入页面。
控制注入速率
当租户的数据注入速率达到特定阈值时,Google Security Operations 会限制新数据 Feed 的注入速率,以防止注入速率较高的来源影响其他数据源的注入速率。在这种情况下,会出现延迟,但不会丢失数据。注入量和租户的使用记录决定了阈值。
您可以联系 Cloud Customer Care 来申请提高速率限制。
问题排查
- 如果您的 Google SecOps 实例中缺少资源和身份之间的关系,请停用然后重新启用将日志数据直接注入到 Google SecOps。
- Google Cloud 资产元数据会定期提取到 Google SecOps 中。请等待几个小时,以便在 Google SecOps 界面和 API 中看到更改。
向导出过滤条件添加日志类型时,您可能会看到以下消息:“所提供的过滤条件可能会允许不受支持的日志类型”。
解决方法:仅在导出过滤条件中包含以下列表中的日志类型:Google Cloud 支持导出的日志类型。
后续步骤
- 使用 Google SecOps 代表提供的客户专用网址打开 Google SecOps 实例。
- 详细了解 Google SecOps。
需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。