本页面介绍了如何通过上传包含测试数据的 YAML 文件,在 Google Cloud 控制台中测试 Security Health Analytics 自定义模块。
准备工作
您需要先满足以下前提条件,然后才能测试自定义模块:
使用 Security Health Analytics 自定义模块时适用的所有一般前提条件,包括以下各项:
- 激活高级服务层级
- 启用 Security Command Center API
如需查看前提条件的完整列表,请参阅使用 Security Health Analytics 的自定义模块。
您的用户账号必须获得一个或多个 Identity and Access Management (IAM) 角色,这些角色不仅可让您使用 Security Command Center 和自定义模块,还可以提供
securitycenter.securityhealthanalyticscustommodules.test
权限。如需详细了解使用自定义模块所需的权限和角色,请参阅所需的 IAM 权限。对自定义模块进行测试的 API 调用受配额限制。如需了解详情,请参阅自定义模块配额。
在 YAML 文件中创建测试资源
如需测试自定义模块,您可以在 YAML 文件中定义虚构资源定义和/或虚构政策定义。
这些定义不对应于实际的资源或政策实例,但必须符合自定义模块中指定的资源或政策类型的架构。
在测试定义中,您只需指定自定义模块评估的属性。您无需添加自定义模块未引用的资源属性。
如需在自定义模块中测试 CEL 表达式,请在测试文件中指定属性值,以使 CEL 表达式解析为 true
。
测试数据的格式
文件的第一行应为 testData:
,后跟一个或多个 - asset
定义。
testData: - asset: resource: ARBITRARY_ASSET_NAME_1 assetType: RESOURCE_TYPE_1 resourceData: PROPERTIES_TO_TEST_1: PROPERTY_VALUE_1 SUB_PROPERTY: SUB_PROPERTY_VALUE PROPERTIES_TO_TEST_2: PROPERTY_VALUE_2 - asset: resource: ARBITRARY_ASSET_NAME_2 assetType: RESOURCE_TYPE_2 iamPolicyData: PROPERTIES_TO_TEST_3: PROPERTY_VALUE_3 PROPERTIES_TO_TEST_4: PROPERTY_VALUE_4
请替换以下内容:
ARBITRARY_ASSET_NAME_N
:测试成功时显示在测试结果中的任意值。RESOURCE_TYPE_N
:自定义模块检查的资产或资源的类型,指定为 API 的服务端点的域名和资源名称,例如cloudkms.googleapis.com/CryptoKey
。PROPERTIES_TO_TEST_N
:自定义模块的检测逻辑中用于触发发现结果的属性。PROPERTY_VALUE_N
:触发发现结果的属性的值。SUB_PROPERTY
:目标资源在其资源定义中引用的其他资源的子属性或属性。
测试定义示例
本部分包含测试资源定义和测试政策定义示例。虽然这两个示例显示为在单独的文件中定义,但资源和政策的 asset
定义可以合并到单个 testData
文件中。
资源定义示例
以下测试资源定义示例测试了一个自定义模块,该模块用于检查 CryptoKey
资源的 rotationPeriod
属性是否超过 2592000
秒(30 天)。该定义中的其他属性不会在自定义模块中使用,但仍符合资源的架构。如需查看此示例测试的自定义模块的完整定义,请参阅自定义模块定义示例。
testData: - asset: resource: THE CRYPTOKEY TEST WAS SUCCESSFUL! assetType: cloudkms.googleapis.com/CryptoKey resourceData: nextRotationTime: '2020-02-05T12:00:55.192645Z' primary: state: 'ENABLED' purpose: 'ENCRYPT_DECRYPT' rotationPeriod: '2592001s'
政策定义示例
下面是一个 IAM 政策的测试定义示例:
testData: - asset: resource: //cloudresourcemanager.googleapis.com/projects/fake-project assetType: cloudresourcemanager.googleapis.com/Project iamPolicyData: bindings: - role: "roles/viewer" members: - "serviceAccount:fake-service-account@compute-system.iam.gserviceaccount.com" - "user:fake-email-account"
测试自定义模块
您可以在 Google Cloud 控制台中测试新的自定义模块或现有自定义模块。
如需测试自定义模块,请按照以下步骤操作:
进入 Security Command Center 设置中的 Security Health Analytics 模块页面。
打开或创建一个自定义模块以进行测试:
- 如需创建新的自定义模块,请点击创建模块,然后按照创建自定义模块中的说明操作。
- 如需打开现有自定义模块,请点击要测试的模块所在行右侧的操作下的修改 (edit) 图标。
选择测试模块标签页。
在上传 YAML 文件下,点击浏览以上传包含示例资产数据的文件。在上传 YAML 文件后,测试便会立即运行。
在测试结果预览下,查看结果。
- 如果 YAML 文件中存在语法或其他错误,则浏览器页面底部附近会显示浮动错误消息。
如果测试成功,则测试会返回以下信息:
- 自定义模块的显示名称。
- 您在测试数据文件的
resource
属性中指定的任意名称。 - 在其中已创建或将创建自定义模块的组织、文件夹或项目。
测试结果不会存储或写入到 Security Command Center。
后续步骤
- 如需使用自定义模块,请参阅使用 Security Health Analytics 的自定义模块
- 如需在 Google Cloud 控制台中处理发现结果,请参阅处理发现结果