Google Cloud API
本文档提供了一些指导,可帮助您配置Google Cloud API 并将其与 Google Security Operations SOAR 集成。
集成版本:4.0
将 Google Cloud API 与 Google SecOps SOAR 集成
集成需要以下参数:
| 参数 | 说明 |
|---|---|
Test URL |
可选 用于验证对 Google Cloud API 的身份验证的测试网址。此参数使用 GET 请求。 |
Service Account Json File Content |
可选 服务账号密钥 JSON 文件的内容。 您可以配置此参数、 如需配置此参数,请提供您在创建服务账号时下载的服务账号密钥 JSON 文件的完整内容。 如需详细了解如何将服务账号用作身份验证方法,请参阅服务账号概览和服务账号模拟。 在此集成中,使用服务账号密钥 JSON 文件进行身份验证的优先级高于工作负载身份电子邮件地址。 |
Organization ID |
可选 要在集成中使用的组织 ID。 如需在执行操作期间从此参数检索值,请设置以下占位符: |
Project ID |
可选 集成中要使用的项目 ID。 如需在操作执行期间从此参数中检索值,请设置以下占位符: |
Quota Project ID |
可选 您用于 Google Cloud API 和结算的 Google Cloud 项目 ID。此参数要求您向服务账号授予 集成会将此参数值附加到所有 API 请求。 如果您未为此参数设置值,集成会从您的 Google Cloud 服务账号中检索项目 ID。 |
Workload Identity Email |
可选 您的服务账号的客户端电子邮件地址。 您可以配置此参数或 在此集成中,使用服务账号密钥 JSON 文件进行身份验证的优先级高于工作负载身份电子邮件地址。 如需使用 Workload Identity 模拟服务账号,请向您的服务账号授予 |
OAuth Scopes |
可选 执行 Google Cloud API 请求所需的 OAuth 范围列表(以英文逗号分隔)。 |
Verify SSL |
必需 如果选中此选项,集成会验证用于连接到 Google Cloud 服务的 SSL 证书是否有效。 此选项将会默认选中。 |
如需了解如何在 Google SecOps 中配置集成,请参阅配置集成。
如果需要,您可以在稍后阶段进行更改。配置集成实例后,您可以在 playbook 中使用该实例。如需详细了解如何配置和支持多个实例,请参阅支持多个实例。
操作
如需详细了解操作,请参阅 在工作台页面中处理待处理的操作和执行手动操作。
执行 HTTP 请求
使用执行 HTTP 请求操作来构建和执行针对目标网址的自定义 HTTP API 请求。
此操作不适用于 Google SecOps 实体。
操作行为
此操作支持复杂的行为,包括异步轮询、动态载荷构建和文件管理。
异步轮询
如果提供 Expected Response Values,则操作以异步模式运行。在此模式下,操作会反复轮询目标端点,以跟踪响应的状态(例如,等待长时间运行的任务完成)。
该操作会根据参数中提供的 JSON 条件评估响应正文,并继续执行,直到满足条件或操作达到超时时间。
条件逻辑
该操作支持以下用于跟踪响应状态的逻辑:
单字段匹配:操作会等待特定字段达到单个值。
{ "state": "finished" }多个值(OR 逻辑):如果某个字段与所提供列表中的任何值匹配,则操作会停止执行。这对于在“成功”和“错误”状态下停止以避免不必要的轮询非常有用。
{ "state": ["finished", "error"] }多个字段(AND 逻辑):操作会等待,直到所有指定字段同时与其各自的值匹配。
{ "state": "finished", "percentage": "100" }组合逻辑:您可以在 JSON 对象中组合多个条件。
{ "state": ["finished", "error"], "percentage": "10" }
JSON 解析行为
在评估条件时,操作遵循以下规则:
全局搜索:该操作会在整个 JSON 响应对象中搜索指定的键。提供键名称时,请确保其与 JSON 中的名称完全一致,并且不添加父对象名称或使用前缀(例如,使用
"state",而不是"data_state"或"data-state")。多个相同的键:如果响应在 JSON 层次结构的不同级别包含多个具有相同名称的键,则只有当所有匹配的键名称都满足相同的预期值时,才能获得预期的输出。
例如,如需在 JSON 响应中搜索
finished状态并忽略其他状态,请将Expected Response Values中的所有state键设置为finished:{ "data": { "state": "finished" }, "state": "finished" }
正文载荷构建
该操作会根据 Headers 中提供的 Content-Type 标头构建请求正文。
以下构造示例使用的 Body Payload 输入如下:
{
"Id": "123123",
"sorting": "asc"
}
application/x-www-form-urlencoded:该操作会生成载荷,如Id=123123&sorting=asc所示。application/json:该操作会生成以下 JSON 载荷:{ "Id": "123123", "sorting": "asc" }XML:如果第三方产品需要 XML,请直接在Body Payload中提供 XML 格式的输入:<?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="[http://schemas.xmlsoap.org/soap/envelope/](http://schemas.xmlsoap.org/soap/envelope/)"> <soap:Body> <NumberToWords xmlns="[http://www.dataaccess.com/webservicesserver/](http://www.dataaccess.com/webservicesserver/)"> <ubiNum>500</ubiNum> </NumberToWords> </soap:Body> </soap:Envelope>
文件处理
该操作支持以下文件管理工作流:
下载文件:
如需以 base64 格式返回文件数据作为 JSON 结果的一部分,请选择
Base64 Output。如需将文件直接保存到支持请求墙作为 ZIP 归档文件,请选择
Save To Case Wall。
上传文件:如需上传文件,请将其转换为 base64 编码的字符串,并将其作为
Body Payload值的一部分包含在内。以下示例展示了如何将图片文件转换为 base64 编码的字符串:
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安全性:对于敏感文件(例如恶意软件),请选择
Password Protect Zip。这会自动使用密码infected对使用Save To Case Wall创建的已保存 ZIP 归档进行加密。
playbook 块配置
以下配置演示了如何在 playbook 块中使用 Execute HTTP Request 操作。通过此示例,您可以了解如何应用占位符和输入前缀。
将块输入用作占位符时,您必须添加 Input. 前缀(例如 [Input.comment])。
方法:
PUT网址路径:
https://{API_URL}/[Input.table_name]/[Input.sys_id]标头:
{ "Content-type": "application/json; charset=utf-8", "Accept": "application/json", "User-Agent": "GoogleSecops" }正文载荷:
{ "work_notes": "[Input.comment]" }
操作输入
执行 HTTP 请求操作需要以下参数:
| 参数 | 说明 |
|---|---|
Method |
可选 要在请求中使用的方法。 默认值为
|
URL Path |
可选 要执行的网址。 默认值为 |
URL Params |
可选 网址参数。 该操作会使用与您在 网址 路径参数中直接提供的值一起提供的任何值。 此参数需要 JSON 对象格式的输入。默认值如下: {
"URL Field Name": "URL_FIELD_VALUE"
} |
Headers |
可选 要在 HTTP 请求中使用的标头。 此参数需要 JSON 对象格式的输入。默认值如下: {
"Content-Type": "application/json; charset=utf-8",
"Accept": "application/json",
"User-Agent" : "GoogleSecOps"
} |
Cookie |
可选 要在 此参数会覆盖 Headers 参数中提供的 Cookie。 此参数需要 JSON 对象格式的输入。默认值如下: {
"Cookie_1": "COOKIE_1_VALUE"
} |
|
可选
HTTP 请求的正文。该操作会根据 此参数需要 JSON 对象格式的输入,除非第三方产品需要 XML 或 默认值如下: {
"Body Field Name": "BODY_FIELD_VALUE"
} |
Expected Response Values |
可选。 包含定义响应正文所需状态的字段-值对的 JSON 对象。 |
Save To Case Wall |
可选 如果选择此选项,系统会保存文件,并将保存的文件附加到支持请求墙上。该文件已归档,扩展名为 默认情况下未选中。 |
Password Protect Zip |
可选 如果选择此操作,则会使用 处理可疑文件时,请使用此参数。 此选项将会默认选中。 |
Follow Redirects |
可选 如果选中,则操作会遵循重定向。 此选项将会默认选中。 |
Fail on 4xx/5xx |
可选 如果选择此项,当响应的状态代码为 4xx 或 5xx 错误时,相应操作会失败。 此选项将会默认选中。 |
Base64 Output |
可选 如果选择此项,相应操作会将响应转换为 base64 格式。 下载文件时使用此参数。 JSON 结果的大小不得超过 15 MB。 默认情况下未选中。 |
Fields To Return |
必需 要返回的字段。可能的值如下:
|
Request Timeout |
必需 在操作失败之前等待服务器发送数据的时长。 默认值为 120 秒。 |
操作输出
执行 HTTP 请求操作提供以下输出:
| 操作输出类型 | 可用性 |
|---|---|
| 案例墙附件 | 不可用 |
| 案例墙链接 | 不可用 |
| “支持请求墙”表格 | 不可用 |
| 丰富化表 | 不可用 |
| JSON 结果 | 可用 |
| 输出消息 | 可用 |
| 脚本结果 | 可用 |
JSON 结果
以下示例描述了使用执行 HTTP 请求操作时收到的 JSON 结果输出:
{
"response_data": {
"data": {
"relationships": {
"comment": [
{
"name": "item",
"description": "Object to which the comment belongs to."
},
{
"name": "author",
"description": "User who wrote the comment."
}
]
}
}
},
"redirects": [],
"response_code": 200,
"cookies": {},
"response_headers": {
"Content-Type": "application/json",
"X-Cloud-Trace-Context": "VALUE",
"Date": "Fri, 03 Nov 2023 16:14:13 GMT",
"Server": "Google Frontend",
"Content-Length": "36084"
},
"apparent_encoding": "ascii"
}
输出消息
执行 HTTP 请求操作提供以下输出消息:
| 输出消息 | 消息说明 |
|---|---|
|
操作成功。 |
Failed to execute API request. Error:
ERROR_REASON |
操作失败。 检查与服务器的连接、输入参数或凭据。 |
脚本结果
下表介绍了使用执行 HTTP 请求操作时脚本结果输出的值:
| 脚本结果名称 | 值 |
|---|---|
is_success |
True 或 False |
Ping
使用 Ping 操作测试与 Google Cloud的连接。
此操作不适用于 Google SecOps 实体。
操作输入
无。
操作输出
Ping 操作提供以下输出:
| 操作输出类型 | 可用性 |
|---|---|
| 案例墙附件 | 不可用 |
| 案例墙链接 | 不可用 |
| “支持请求墙”表格 | 不可用 |
| 丰富化表 | 不可用 |
| JSON 结果 | 可用 |
| 输出消息 | 可用 |
| 脚本结果 | 可用 |
JSON 结果
以下示例介绍了使用 Ping 操作时收到的 JSON 结果输出:
{
"endpoint": "TEST_URL"
}
输出消息
Ping 操作提供以下输出消息:
| 输出消息 | 消息说明 |
|---|---|
Successfully tested connectivity. |
操作成功。 |
Failed to test connectivity. |
操作失败。 检查与服务器的连接、输入参数或凭据。 |
脚本结果
下表介绍了使用 Ping 操作时脚本结果输出的值:
| 脚本结果名称 | 值 |
|---|---|
is_success |
True 或 False |
需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。