本指南介绍了如何使用 Security Command Center Security Command Center API 管理安全标记。安全标记(或简称“标记”)是 Security Command Center 中资源的自定义注释,可让您将自己的企业环境添加到这些对象中。
您只能为 Security Command Center 支持的资产添加或更新安全标记。如需查看 Security Command Center 支持的资产列表,请参阅 Security Command Center 中支持的资产类型。
准备工作
您需要先设置服务账号和 SDK,然后才能使用安全标记。
要添加或更改安全标记,您必须拥有身份和访问权限管理角色,其中包含您要使用的标记类型的权限:
- 资源标记:Asset Security Marks Writer,
securitycenter.assetSecurityMarksWriter
- 发现结果标记:Finding Security Marks Writer、
securitycenter.findingSecurityMarksWriter
如需详细了解 Security Command Center 中的 IAM 角色,请参阅访问权限控制。如需了解如何有效地使用安全标记,请参阅使用 Security Command Center 安全标记。
为资源添加或更新安全标记
使用 Security Command Center API 时,添加和更新安全标记的操作是相同的。以下示例展示了如何为两个键值对 (key_a, value_a)
和 (key_b, value_b)
添加安全标记。
以下代码使用字段掩码来确保只更新这些值。如果未提供字段掩码,则在添加给定键和值之前清除所有安全标记。
gcloud
# ORGANIZATION=12344321 # ASSET=43211234 SECURITY_MARKS="key_a=value_a,key_b=value_b" UPDATE_MASK="marks.key_a,marks.key_b" gcloud scc assets update-marks $ASSET \ --organization $ORGANIZATION \ --security-marks $SECURITY_MARKS \ --update-mask $UPDATE_MASK
如需查看更多示例,请运行以下命令:
gcloud scc assets update-marks --help
Python
Java
Go
Node.js
阅读管理政策 了解 Security Health Analytics 检测器的专用资产标记。
删除资源的安全标记
删除特定安全标记的方式与添加或更新标记类似,特别是使用字段掩码调用更新,没有相应的值。在下面的示例中,系统会删除包含密钥 key_a
和 key_b
的安全标记。
gcloud
# ORGANIZATION=12344321 # ASSET=43211234 UPDATE_MASK="marks.key_a,marks.key_b" gcloud scc assets update-marks $ASSET \ --organization $ORGANIZATION \ --update-mask $UPDATE_MASK
如需查看更多示例,请运行以下命令:
gcloud scc assets update-marks --help
Python
Java
Go
Node.js
在同一请求中添加和删除安全标记
用于添加和更新安全标记以及删除安全标记的技术都可以合并到同一请求中。在下面的示例中,key_a
会在 key_b
被删除时进行更新。
gcloud
# ORGANIZATION=12344321 # ASSET=43211234 SECURITY_MARKS="key_a=new_value_for_a" UPDATE_MASK="marks.key_a,marks.key_b" gcloud scc assets update-marks $ASSET \ --organization $ORGANIZATION \ --security-marks $SECURITY_MARKS \ --update-mask $UPDATE_MASK
如需查看更多示例,请运行以下命令:
gcloud scc assets update-marks --help
gcloud
# ORGANIZATION=12344321 # ASSET=43211234 SECURITY_MARKS="key_a=new_value_for_a" UPDATE_MASK="marks.key_a,marks.key_b" gcloud scc assets update-marks $ASSET \ --organization $ORGANIZATION \ --security-marks $SECURITY_MARKS \ --update-mask $UPDATE_MASK
如需查看更多示例,请运行以下命令:
gcloud scc assets update-marks --help
Python
Java
Go
Node.js
向发现结果添加安全标记
在发现结果中添加,更新和删除安全标记的过程与更新资源的安全标志的过程相同。唯一的变化是 API 调用中使用的资源的名称。您需要提供资源名称的发现结果,而不是资产资源。
例如,如需更新发现结果的安全标记,请使用以下代码:
gcloud
# ORGANIZATION=12344321 # SOURCE=43211234 # FINDING_ID=testfindingid SECURITY_MARKS="key_a=value_a,key_b=value_b" UPDATE_MASK="marks.key_a,marks.key_b" gcloud scc findings update-marks $FINDING_ID \ --source $SOURCE \ --organization $ORGANIZATION \ --security-marks $SECURITY_MARKS \ --update-mask $UPDATE_MASK
如需查看更多示例,请运行以下命令:
gcloud scc findings update-marks --help
Python
Java
Go
Node.js
批量扫描(每天运行两次)期间会处理安全标记,不是实时处理。在处理安全标记和应用解决或重开发现结果的执行政策之前可能会有 12 到 24 小时的延迟。
使用安全标记过滤器列出资源
在资源上设置安全标记后,可以在 ListAssets
API 调用的过滤器参数中使用这些安全标记。例如,要查询是 key_a = value_a
的所有资源,请使用以下代码:
gcloud
# ORGANIZATION=12344321 FILTER="security_marks.marks.key_a = \"value_a\"" gcloud scc assets list $ORGANIZATION \ --filter "$FILTER"
如需查看更多示例,请运行以下命令:
gcloud scc assets list --help
Python
Java
Go
Node.js
使用安全标记过滤器列出发现结果
对发现结果设置安全标记后,可以在 ListFindings
API 调用的过滤器参数中使用它们。例如,要查询 key_a != value_a
的所有资源,请使用以下代码:
gcloud
# ORGANIZATION=12344321 # SOURCE=43211234 FILTER="NOT security_marks.marks.key_a=\"value_a\"" gcloud scc findings list $ORGANIZATION \ --source $SOURCE \ --filter "$FILTER"
如需查看更多示例,请运行以下命令:
gcloud scc findings list --help