本指南将介绍如何使用 Security Command Center API 创建和更新发现结果。
准备工作
在创建和更新发现结果之前,您需要完成以下操作:
为完成本指南,必须拥有组织级别的 Identity and Access Management (IAM) Security Center Findings Editor (securitycenter.findingsEditor
) 角色。如需详细了解 Security Command Center 角色,请参阅访问权限控制。
如果要使用安全标志创建发现结果,还必须拥有包含要使用的标记类型的权限的 IAM 角色:
- Asset Security Marks Writer (
securitycenter.assetSecurityMarksWriter
) - Finding Security Marks Writer (
securitycenter.findingSecurityMarksWriter
)
如需详细了解标记,请参阅 使用 Security Command Center 安全标记。
创建发现结果
为来源创建活跃的发现结果。
gcloud
# ORGANIZATION=12344321 # SOURCE=43211234 # FINDING_ID=testfindingid # EVENT_TIME follows the format YYYY-MM-DDThh:mm:ss.ffffffZ EVENT_TIME=2019-02-28T07:00:06.861Z STATE=ACTIVE CATEGORY=MEDIUM_RISK_ONE RESOURCE_NAME=//cloudresourcemanager.googleapis.com/projects/PROJECT_ID gcloud scc findings create $FINDING_ID \ --source $SOURCE \ --organization $ORGANIZATION \ --state $STATE \ --category $CATEGORY \ --event-time $EVENT_TIME --resource-name $RESOURCE_NAME
如需查看更多示例,请运行以下命令:
gcloud scc findings create --help
Python
Java
Go
Node.js
如需了解 Security Command Center 中发现结果数据的存储时长,请参阅发现结果保留。
使用来源属性创建发现结果
Security Command Center 允许来源通过称为“来源属性”的键值元数据为发现结果添加上下文。来源属性可以在创建时进行初始化。以下示例展示了如何创建具有来源属性的发现结果。
使用来源属性创建发现结果。source_properties
映射中键名的长度必须介于 1 到 255 个字符之间,并且必须以字母开头,并且只能包含字母数字字符或下划线。Security Command Center 仅支持布尔值、数字和字符串的值。
gcloud
# ORGANIZATION=12344321 # SOURCE=43211234 # FINDING_ID=testfindingid # EVENT_TIME follows the format YYYY-MM-DDThh:mm:ss.ffffffZ EVENT_TIME=2019-02-28T07:00:06.861Z STATE=ACTIVE CATEGORY=MEDIUM_RISK_ONE SOURCE_PROPERTY_KEY=gcloud_client_test SOURCE_PROPERTY_VALUE=value RESOURCE_NAME=//cloudresourcemanager.googleapis.com/projects/PROJECT_ID gcloud scc findings create $FINDING_ID \ --source $SOURCE \ --organization $ORGANIZATION \ --state $STATE \ --category $CATEGORY \ --event-time $EVENT_TIME \ --source-properties $SOURCE_PROPERTY_KEY=$SOURCE_PROPERTY_VALUE --resource-name $RESOURCE_NAME
- 可以使用以逗号分隔的键值对列表添加更多来源属性。
如需查看更多示例,请运行以下命令:
gcloud scc findings create --help
Python
Java
Go
Node.js
更新发现结果的来源属性
以下示例展示了如何更新单个来源属性和事件时间。它使用字段掩码仅更新特定字段。如果不使用字段掩码,则新值将替换找到的所有可变字段。
与创建新发现结果一样,source_properties
映射必须介于 1 到 255 个字符之间,并且必须以字母开头,并且只包含字母数字字符或下划线。Security Command Center 仅支持布尔值、数字和字符串的值。
gcloud
# ORGANIZATION=12344321 # SOURCE=43211234 # FINDING_ID=testfindingid # EVENT_TIME follows the format YYYY-MM-DDThh:mm:ss.ffffffZ EVENT_TIME=2019-02-28T08:00:06.861Z SOURCE_PROPERTY_KEY=gcloud_client_test SOURCE_PROPERTY_VALUE=VALUE UPDATE_MASK=source_properties,event_time gcloud scc findings update $FINDING_ID \ --source $SOURCE \ --organization $ORGANIZATION \ --event-time $EVENT_TIME \ --source-properties $SOURCE_PROPERTY_KEY=$SOURCE_PROPERTY_VALUE \ --update-mask=$UPDATE_MASK
- 使用 --update-mask ''(空)覆盖所有可变字段。
- 可以使用以逗号分隔的键值对列表添加更多来源属性。
如需查看更多示例,请运行以下命令:
gcloud scc findings update --help
Python
Java
Go
Node.js
更新发现结果的状态
Security Command Center 还提供了一个 API,可让您仅更新发现结果的状态。此 API 的存在只是为了提供仅更新发现结果的状态。它是一种简单 API,允许权限主账号只能修改发现结果的状态,而无权修改结果的其他方面。以下示例展示了如何将发现结果的状态更改为非活跃。
gcloud
# ORGANIZATION=12344321 # SOURCE=43211234 # FINDING_ID=testfindingid # EVENT_TIME follows the format YYYY-MM-DDThh:mm:ss.ffffffZ EVENT_TIME=2019-02-28T09:00:06.861Z STATE=INACTIVE gcloud scc findings update $FINDING_ID \ --source $SOURCE \ --organization $ORGANIZATION \ --state $STATE \ --event-time $EVENT_TIME
如需查看更多示例,请运行以下命令:
gcloud scc findings update --help
Python
Java
Go
Node.js
验证发现结果权限
创建和更新发现结果需要以下 IAM 权限之一:
- 创建和更新发现结果:
securitycenter.findings.update
。 - 仅更新发现结果:
securitycenter.findings.setState
。
如果您无法为来源创建发现结果,请使用以下代码确认您的账号具有 准备工作 部分所需的权限。如果您没有必要的权限,请参阅 创建和管理安全来源 以设置适当的 IAM 政策。
Python
Java
Go
Node.js
后续步骤
详细了解如何使用客户端库访问 Security Command Center。