本页面适用于 Apigee 和 Apigee Hybrid。
  
    查看 Apigee Edge 文档。
  
  
      
 
  
您可以使用安全统计信息 API 来查看过去 14 天内与滥用行为和机器人相关的统计信息。安全统计信息有两种类型:
- 没有时间维度的表格统计信息。表格统计信息通常使用聚合函数计算,例如 
sum for message_count或bot_traffic。 - 具有时间维度的时序统计信息。
 
API 调用示例中的参数
以下各部分提供了使用安全统计数据 API 的 API 调用的示例。API 调用包含以下参数:
- ORG:您的组织。
 - ENV:您的环境。
 - METRIC_i:此统计信息的指标。请参阅指标和聚合函数。
 - AGGREGATION_i:指标的聚合函数。请参见下表。
 - DIMENSION_i:用于对统计信息的值进行分组的维度。
 - PAGE_SIZE:单个页面中返回的子组件数上限。
 time_range:统计信息的时间范围,格式为"time_range": { "start_time": START_TIME, "end_time": END_TIME }其中:
- START_TIME 是时间范围的开始时间。
 - END_TIME 是时间范围的结束时间。
 
START_TIME 和 END_TIME 的格式为
"YYYY-MM-DDT00:00:00Z"。时间范围的长度最多为 14 天,开始日期和结束日期都必须在过去 365 天内。
示例:查询环境的表格安全统计信息
查询表格统计信息的请求具有以下格式:
curl "https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/securityStats:queryTabularStats" \
       -H 'Content-type: application/json' -H "Authorization: Bearer $TOKEN" -X POST -d \
       '{ "metrics": [{"metric": "METRIC_1", "aggregation": "AGGREGATION_1",
                      {"metric": "METRIC_2", "aggregation": "AGGREGATION_2"}],
          "dimensions": ["DIMENSION_1",  "DIMENSION_2"],
          "page_size": PAGE_SIZE,
          "time_range": {
              "start_time": START_TIME,
              "end_time": END_TIME
          }
        }'请参阅 API 调用示例中的参数。
如需了解可以在请求中包含的指标数量上限、聚合函数和维度,请参阅安全统计信息限制。
以下是查询表格统计信息的示例请求:
curl "https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/securityStats:queryTabularStats" \
       -H 'Content-type: application/json' -H "Authorization: Bearer $TOKEN" -X POST -d \
       '{ "metrics": [{"metric": "bot", "aggregation": "count_distinct"},
                      {"metric": "bot_traffic", "aggregation": "sum"},
                      {"metric": "bot_first_detected", "aggregation": "min"},
                      {"metric": "bot_last_detected", "aggregation": "max"}],
          "dimensions": ["apiproxy",  "bot_reason", "ax_resolved_client_ip",  "ax_geo_city",  "ax_geo_country",  "client_id",  "proxy_basepath", "proxy_pathsuffix"],
          "page_size": 1,
          "time_range": {
            "start_time": START_TIME,
            "end_time": END_TIME
          }
        }'如需查看请求和响应的说明,请参阅 queryTabularStats 参考页面。
示例:查询环境的时序安全统计信息
时序 API 会返回所选指标的时序统计信息,按所选维度分组。
以下调用会调用按 API 代理分组的机器人流量的时序统计信息。由于有四个代理,因此会生成四个时序点序列。每行的点的顺序与列字段中的对应索引匹配。
以下是请求示例:
curl "https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/securityStats:queryTimeSeriesStats" \
       -H 'Content-type: application/json' -H "Authorization: Bearer $TOKEN" -X POST -d \
       '{ "metrics": [{"metric": "METRIC_1", "aggregation": "AGGREGATION_1", "order": "ORDER"}],
          "dimensions": ["DIMENSION_1"], "window_size": "WINDOW_SIZE",
          "page_size": PAGE_SIZE,
          "time_range": {
            "start_time": START_TIME,
            "end_time": END_TIME
          }
        }'请参阅 API 调用示例中的参数。
如需查看请求和响应的说明,请参阅 queryTabularStats 参考页面。
示例:查询滥用行为检测的事件详情
以下示例查询 Advanced API Security 的滥用行为检测的事件详情。该调用会返回给定事件中 developer_app 的机器人数量的详细信息。
curl "https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/securityStats:queryTabularStats" \
       -H "Content-Type: application/json" -H "Authorization: Bearer $(gcloud auth print-access-token)" -X POST -d  \
       '{"metrics": [{"metric": "bot_traffic", "aggregation": "sum"}],
         "dimensions": ["incident_id", "developer_app"],
          "filter": "incident_id eq '\''d897d1af-51ac-4b5d-a29e-d1059d922a05'\''",
          "page_size": 100,
          "time_range": {
            "start_time": START_TIME,
            "end_time": END_TIME
          }
        }'请参阅 API 调用示例中的参数。
这会返回如下所示的响应:
{
  "values": [
    [
      "d897d1af-51ac-4b5d-a29e-d1059d922a05",
      "Developer2_App1",
      18353
    ],
    [
      "d897d1af-51ac-4b5d-a29e-d1059d922a05",
      "Developer1_App1",
      18082
    ]
  ],
  "columns": [
    "incident_id",
    "developer_app",
    "bot_traffic"
  ]
}如需查看请求和响应的说明,请参阅 queryTabularStats 参考页面。
指标和聚合函数
下表介绍了安全统计信息 API 中可用的指标和聚合函数:
Metric | 
    说明 | Aggregation function | 
  
|---|---|---|
bot | 
    每隔一分钟检测到的机器人的不同 IP 地址数量。 | count_distinct | 
  
bot_first_detected | 
    首次检测到机器人的日期和时间。只能通过 API 获得。 | min | 
  
bot_last_detected | 
    上次检测到机器人的日期和时间。只能通过 API 获得。 | max | 
  
bot_traffic | 
    每隔一分钟检测到的机器人 IP 地址发出的消息数量。 | sum | 
  
message_count | 
    Apigee 每隔一分钟处理的 API 调用总数。 注意:  | 
    sum | 
  
response_size | 
    响应的大小。 | average、max、min、sum | 
  
维度
利用维度,您可以根据相关的数据子集将指标值归为一组。下表介绍了 Advanced API Security 报告特有的维度:
| 维度 | 说明 | 
|---|---|
bot_reason | 
    可以是安全检测规则的任意组合。bot_reason 包含机器人流量模式匹配的检测规则的子集。 | 
  
incident_id(预览) | 
    安全事件的 UUID,由对 Incidents API 的调用返回。请参阅“示例:获取详细信息或特定突发事件”。 | 
security_action | 
    安全操作。可能的值为 ALLOW、DENY 或 FLAG。 | 
  
security_action_name | 
    安全操作的名称。 | 
security_action_headers | 
    您可以使用这些标头来查询标记安全操作。 | 
注意:bot_reason 和 incident_id 仅适用于以下指标:
botbot_trafficresponse_size
除了上述维度之外,Advanced API Security 还支持以下维度:
access_tokenapi_productapiproxyapp_group_appapp_group_nameax_edge_execution_fault_codeax_geo_cityax_geo_continentax_geo_countryax_geo_regionax_ispax_resolved_client_ipax_ua_agent_versionclient_iddeveloperdeveloper_appdeveloper_emailenvironmentis_filtered_outproxy_basepathproxy_pathsuffixrequest_uriresponse_status_codetarget_urluseragent
安全统计信息的限制
安全统计信息 API(包括表格和时序)具有以下限制:
- 页面大小上限:14400
 - 最多 10 个时序维度
 - 最多 15 个表格统计信息维度
 - 最多 5 个指标聚合。
 - 最多 5 个时序指标聚合
 - 时间范围:长度最多为 14 天,且开始日期和结束日期都必须在过去 365 天内。
 - 维度 
incident_id和bot_reason不能与指标message_count或response_size一起使用。 - 维度 
is_filtered_out仅受表格统计信息支持,并且也适用于旧数据。 
比较安全统计信息 API 和安全报告 API
安全统计信息 API 和安全报告 API 均返回与滥用行为和机器人相关的安全统计信息,但它们存在以下差异:
安全统计信息 API 旨在查看近期 API 流量的统计信息。安全统计信息 API 的数据只能追溯到 14 天前,但是您可以在发送请求后立即查看统计信息。
安全统计信息也会显示在 Apigee 界面的滥用行为指标视图中。
- 安全报告 API 旨在查看长时间运行的操作的统计信息。如需使用安全得分 API,您可以提交作业并仅在作业完成时查看结果。安全得分 API 的数据可追溯到一年前。