将 AWS CloudWatch 与 Google SecOps 集成
本文档介绍了如何将 AWS CloudWatch 与 Google Security Operations (Google SecOps) 集成。
集成版本:6.0
使用场景
有效操作 - 在日志中搜索、创建日志组/日志流、删除日志组/日志流、更新保留政策。
集成参数
使用以下参数配置集成:
参数显示名称> | 类型> | 默认值> | 是强制性的> | 说明 |
---|---|---|---|---|
AWS 访问密钥 ID | 字符串 | 不适用 | 是 | 要在集成中使用的 AWS 访问密钥 ID。 |
AWS 密钥 | 密码 | 不适用 | 是 | 要在集成中使用的 AWS 密钥。 |
AWS 默认区域 | 字符串 | 不适用 | 是 | 集成中要使用的 AWS 默认区域,例如 us-west-2。 |
如需了解如何在 Google SecOps 中配置集成,请参阅配置集成。
如有需要,您可以在稍后阶段进行更改。配置集成实例后,您可以在剧本中使用该实例。如需详细了解如何配置和支持多个实例,请参阅支持多个实例。
操作
如需详细了解操作,请参阅 在工作台页面中处理待处理的操作和执行手动操作。
Ping
测试与 AWS CloudWatch 的连接。
运行于
此操作不会在实体上运行。
操作执行结果
脚本结果
脚本结果名称> | “价值选项”> |
---|---|
is_success | is_success=False |
is_success | is_success=True |
案例墙
结果类型 | 值 / 说明 | 类型 |
---|---|---|
输出消息* | 该操作不应失败,也不应停止 playbook 执行:
操作应失败并停止 playbook 执行:
|
常规 |
列出日志组
列出 AWS CloudWatch 中可用的日志组。
参数
参数显示名称> | 类型> | 默认值> | 是强制性的> | 说明 |
---|---|---|---|---|
要返回的群组数量上限 | 整数 | 50 | 否 | 指定要返回的群组数量。默认值:50。 |
运行于
此操作不会在实体上运行。
操作执行结果
脚本结果
脚本结果名称> | “价值选项”> |
---|---|
is_success | is_success=False |
is_success | is_success=True |
JSON 结果
[
{
"arn": "arn:aws:logs:us-east-1:",
"creationTime": 1611581795766,
"logGroupName": "CloudTrail/DefaultLogGroup",
"metricFilterCount": 0,
"storedBytes": 24529015
},
{
"arn": "arn:aws:logs:us-east-1:",
"creationTime": 1606993203235,
"logGroupName": "Example",
"metricFilterCount": 1,
"storedBytes": 730
},
{
"arn": "arn:aws:logs:us-east-1:",
"creationTime": 1611652265055,
"logGroupName": "aws-cloudtrail-logs",
"metricFilterCount": 0,
"storedBytes": 51354815
}
]
案例墙
结果类型 | 值 / 说明 | 类型 |
---|---|---|
输出消息* | 操作不应失败,也不应停止 playbook 执行:
如果没有可用数据(is_success = true):“在 AWS CloudWatch 中未找到任何日志组”。 操作应失败并停止 playbook 执行:
|
常规 |
“案例墙”表格 | 名称:“日志组” 列: 名称 指标过滤条件数量 存储的字节数 创建时间 |
常规 |
列出日志流
列出 AWS CloudWatch 中可用的日志流。
参数
参数显示名称> | 类型> | 默认值> | 是强制性的> | 说明 |
---|---|---|---|---|
日志组 | CSV | 不适用 | 是 | 指定要检索日志流的组名称的英文逗号分隔列表。 |
排序依据 | DDL | 日志流名称 可能的值: 日志流名称 上次活动时间 |
否 | 指定日志流的排序方式。 |
排序顺序 | DDL | 升序 可能的值: 升序 降序 |
否 | 指定应使用的排序顺序。 |
要返回的视频流数量上限 | 整数 | 50 | 否 | 指定每个日志组要返回的流数量。 |
运行于
此操作不会在实体上运行。
操作执行结果
脚本结果
脚本结果名称> | “价值选项”> |
---|---|
is_success | is_success=False |
is_success | is_success=True |
JSON 结果
[{
"group":"{group name}"
"logStreams": [
{
"arn": "arn:aws:logs:us-east-1:log-group:aws-cloudtrail-logs:log-stream:CloudTrail_us-east-1",
"creationTime": 1611652272827,
"firstEventTimestamp": 1611652287716,
"lastEventTimestamp": 1612271538268,
"lastIngestionTime": 1612271538289,
"logStreamName": "CloudTrail_us-east-1",
"storedBytes": 0,
"uploadSequenceToken": "49039859450784908968417870788122674924958823185025535393"
}
]
}
]
案例墙
结果类型 | 值 / 说明 | 类型 |
---|---|---|
输出消息* | 该操作不应失败,也不应停止 playbook 执行:
如果至少有一个日志组没有数据(is_success = true):“操作无法返回 AWS CloudWatch 中以下日志组的可用日志流:{group names}”。 如果至少有一个日志组没有数据(is_success = false):“在 AWS CloudWatch 中,未找到所提供日志组的任何日志流”。 操作应失败并停止 playbook 执行:
|
常规 |
“案例墙”表格 | 名称:“{Group Name}:日志流” 列: 名称 存储的字节数 创建时间 上次活动时间戳 |
常规 |
搜索日志事件
在 AWS CloudWatch 中搜索日志事件。
参数
参数显示名称> | 类型> | 默认值> | 是强制性的> | 说明 |
---|---|---|---|---|
日志组 | 字符串 | 不适用 | 是 | 指定要在其中搜索事件的日志组的名称。 |
日志流 | CSV | 不适用 | 否 | 指定以英文逗号分隔的日志流列表,您要在其中搜索事件。 |
时间范围 | DDL | 过去 1 小时 可能的值: 过去 1 小时 过去 6 小时 过去 24 小时 上周 上个月 自定义 |
否 | 指定搜索的时间范围。如果选择“自定义”,您还必须设置“开始时间”。 |
开始时间 | 字符串 | 不适用 | 否 | 指定搜索的开始时间。如果为“时间范围”参数选择“自定义”,则此参数是必需的。格式:ISO 8601 |
结束时间 | 字符串 | 不适用 | 否 | 指定搜索的结束时间。格式:ISO 8601。如果未提供任何值,并且为“时间范围”参数选择了“自定义”,则此参数将使用当前时间。 |
自定义过滤器 | 字符串 | 不适用 | 否 | 指定搜索的自定义过滤条件。如需了解详情,请参阅文档门户。 |
要返回的事件数量上限 | 整数 | 50 | 否 | 指定要返回的事件数量。默认值:50。 |
运行于
此操作不会在实体上运行。
操作执行结果
脚本结果
脚本结果名称> | “价值选项”> |
---|---|
is_success | is_success=False |
is_success | is_success=True |
JSON 结果
[
{
"eventId": "ID",
"ingestionTime": 1611652287896,
"logStreamName": "CloudTrail_us-east-1",
"message": {
"eventVersion": "1.08",
"userIdentity": {
"type": "AssumedRole",
"principalId": "ID",
"arn":"arn:aw
s:sts: : ACCOUNT_ID:assumed-role/AWSServiceRoleForAmazonMacie/AmazonMacieSession","accountId":"ACCOUNT_ID","accessKeyId":"KEY_ID","sessionC
ontext":{"sessionIssuer":{"type":"Role","principalId":"ID","arn":"arn:aws:iam: : ACCOUNT_ID:role/aws-service-role/macie.amazonaws.com/AW
SServiceRoleForAmazonMacie","accountId":"ACCOUNT_ID","userName":"AWSServiceRoleForAmazonMacie"},"webIdFederationData":{},"attributes":{"mfaAuthenticated": "false",
"creationDate": "2021-01-26T08:53:52Z"
}
},
"invokedBy": "AWS Internal",
"eventTime": "2021-01-26T08:53:52Z",
"eventSource": "s3.amazonaws.com",
"eventName": "GetBucketLogging",
"awsRegion": "us-east-1",
"sourceIPAddress": "AWSInternal",
"userAgent": "AWS Internal",
"requestParameters": {
"logging": "",
"bucketName": "example",
"Host": "example.s3.amazonaws.com"
},
"responseElements": null,
"additionalEventData": {
"SignatureVersion": "SigV4",
"CipherSuite": "ECDHE-RSA-AES128-GCM-SHA256",
"bytesTransferredIn": 0,
"AuthenticationMethod": "AuthHeader",
"x-amz-id-2": "PFM+6pyK/gCPy95gh8dtstgtXftrpHkL8s=",
"bytesTransferredOut": 289
},
"requestID": "8FA919A428BC82D7",
"eventID": "7eb5dd44-7021-4945-b9be-27f5b1e0d8d0",
"readOnly": true,
"resources": [
{
"accountId": "ACCOUNT_ID",
"type": "AWS::S3::Bucket",
"ARN": "arn:aws:s3:::example"
}
],
"eventType": "AwsApiCall",
"managementEvent": true,
"eventCategory": "Management",
"recipientAccountId": "ACCOUNT_ID"
},
"timestamp": 1611652287716
}
]
案例墙
结果类型 | 值 / 说明 | 类型 |
---|---|---|
输出消息* | 该操作不应失败,也不应停止 playbook 执行:
如果数据不可用(is_success = false):“No data was found for the provided search.”。 操作应失败并停止 playbook 执行:
|
常规 |
“案例墙”表格 | 名称:“搜索结果” 列:所有可用的键。 |
常规 |
设置保留政策
在 AWS CloudWatch 中为日志组设置保留政策。
参数
参数显示名称> | 类型> | 默认值> | 是强制性的> | 说明 |
---|---|---|---|---|
日志组 | 字符串 | 不适用 | 是 | 指定要为其设置保留政策的日志组的名称。 |
留存天数 | DDL | 1 可能的值 1、3、5、7、14、30、60、90、120、150、180、365、400、545、731、1827 和 3653 |
是 | 指定数据应在日志组中保留多少天。 |
运行于
此操作不会在实体上运行。
操作执行结果
脚本结果
脚本结果名称> | “价值选项”> |
---|---|
is_success | is_success=False |
is_success | is_success=True |
案例墙
结果类型 | 值 / 说明 | 类型 |
---|---|---|
输出消息* | 该操作不应失败,也不应停止 playbook 执行:
操作应失败并停止 playbook 执行:
|
常规 |
移除保留政策
从 AWS CloudWatch 中的日志组中移除保留政策。
参数
参数显示名称> | 类型> | 默认值> | 是强制性的> | 说明 |
---|---|---|---|---|
日志组 | 字符串 | 不适用 | 是 | 指定要从中移除保留政策的日志组的名称。 |
运行于
此操作不会在实体上运行。
操作执行结果
脚本结果
脚本结果名称> | “价值选项”> |
---|---|
is_success | is_success=False |
is_success | is_success=True |
案例墙
结果类型 | 值 / 说明 | 类型 |
---|---|---|
输出消息* | 该操作不应失败,也不应停止 playbook 执行:
操作应失败并停止 playbook 执行:
|
常规 |
创建日志组
在 AWS CloudWatch 中创建日志组。
参数
参数显示名称> | 类型> | 默认值> | 是强制性的> | 说明 |
---|---|---|---|---|
日志组名称 | 字符串 | 不适用 | 是 | 指定新日志组的名称。 |
运行于
此操作不会在实体上运行。
操作执行结果
脚本结果
脚本结果名称> | “价值选项”> |
---|---|
is_success | is_success=False |
is_success | is_success=True |
JSON 结果
{
"group_name": "GROUP_NAME"
}
案例墙
结果类型 | 值 / 说明 | 类型 |
---|---|---|
输出消息* | 该操作不应失败,也不应停止 playbook 执行:
操作应失败并停止 playbook 执行:
|
常规 |
创建日志流
在 AWS CloudWatch 中为日志组创建日志流。
参数
参数显示名称> | 类型> | 默认值> | 是强制性的> | 说明 |
---|---|---|---|---|
日志组 | 字符串 | 不适用 | 是 | 指定要创建日志流的日志组的名称。 |
日志流名称 | 字符串 | 不适用 | 是 | 为新的日志流指定名称。 |
运行于
此操作不会在实体上运行。
操作执行结果
脚本结果
脚本结果名称> | “价值选项”> |
---|---|
is_success | is_success=False |
is_success | is_success=True |
JSON 结果
{
"log_stream": "STREAM_NAME"
}
案例墙
结果类型 | 值 / 说明 | 类型 |
---|---|---|
输出消息* | 该操作不应失败,也不应停止 playbook 执行:
操作应失败并停止 playbook 执行:
|
常规 |
删除日志组
删除 AWS CloudWatch 中的日志组。
参数
参数显示名称> | 类型> | 默认值> | 是强制性的> | 说明 |
---|---|---|---|---|
日志组名称 | 字符串 | 不适用 | 是 | 指定需要删除的日志组的名称。 |
运行于
此操作不会在实体上运行。
操作执行结果
脚本结果
脚本结果名称> | “价值选项”> |
---|---|
is_success | is_success=False |
is_success | is_success=True |
案例墙
结果类型 | 值 / 说明 | 类型 |
---|---|---|
输出消息* | 该操作不应失败,也不应停止 playbook 执行:
如果群组不存在 (is_success=false):“操作无法删除 AWS CloudWatch 中的日志群组 {group}。原因:在 AWS CloudWatch 中找不到日志组 {group}。” 操作应失败并停止 playbook 执行:
|
常规 |
删除日志流
删除 AWS CloudWatch 中日志组内的日志流。
参数
参数显示名称> | 类型> | 默认值> | 是强制性的> | 说明 |
---|---|---|---|---|
日志组名称 | 字符串 | 不适用 | 是 | 指定包含日志流的日志组的名称。 |
日志流名称 | 字符串 | 不适用 | 是 | 指定需要删除的日志流的名称。 |
运行于
此操作不会在实体上运行。
操作执行结果
脚本结果
脚本结果名称> | “价值选项”> |
---|---|
is_success | is_success=False |
is_success | is_success=True |
案例墙
结果类型 | 值 / 说明 | 类型 |
---|---|---|
输出消息* | 该操作不应失败,也不应停止 playbook 执行:
如果流不存在 (is_success=false):“无法从 AWS CloudWatch 中的日志组 {group} 中删除日志流 {stream}。原因:在 AWS CloudWatch 的日志组 {group} 中找不到日志流 {stream}。” 如果群组不存在 (is_success=false):“无法从 AWS CloudWatch 中的日志组 {group} 中删除日志流 {stream}。原因:在 AWS CloudWatch 中找不到日志组 {group}。” 操作应失败并停止 playbook 执行:
|
常规 |
需要更多帮助?从社区成员和 Google SecOps 专业人士那里获得解答。