模糊處理 Apigee API Analytics 的使用者資料

本頁面適用於 Apigee,但不適用於 Apigee Hybrid

查看 Apigee Edge 說明文件。

資料模糊處理是指將機密資訊替換為假資料的程序,藉此防止惡意代理程式使用,並保護隱私。這項功能可讓您在將資料傳送至 Google Analytics 時隱藏資料。有了這項功能,Apigee 就能在從執行階段層傳送至控制層之前,使用 SHA512 雜湊原始值。

程序

features.analytics.data.obfuscation.enabled 設為 true,即可為每個環境啟用這項功能。

沒有資料落地

curl -v -X PUT \
  https://apigee.googleapis.com/v1/organizations/ORG_NAME/environments/ENV_NAME \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOKEN" \
  -d '{
  "name" : "ENV_NAME",
  "properties" : {
    "property" : [ {
      "name" : "features.analytics.data.obfuscation.enabled",
      "value" : "true"
    },]
  }
}'

資料落地

curl -v -X PUT \
  https://CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/ORG_NAME/environments/ENV_NAME \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOKEN" \
  -d '{
  "name" : "ENV_NAME",
  "properties" : {
    "property" : [ {
      "name" : "features.analytics.data.obfuscation.enabled",
      "value" : "true"
    },]
  }
}'

啟用模糊處理功能後,Apigee 會在執行階段平面對下列欄位進行雜湊處理,然後再將資訊傳送至 Analytics 後端:

  • client_id
  • client_ip
  • developer_email
  • proxy_client_ip
  • proxy_pathsuffix
  • request_uri
  • request_path
  • target_basepath
  • target_url
  • x_forwarded_for_ip

Apigee 會在自訂分析報表中對下列維度值進行雜湊運算:

  • 用戶端 ID
  • 用戶端 IP 位址
  • 開發人員電子郵件
  • 代理用戶端 IP
  • Proxy Path Suffix
  • 推薦的用戶端 IP
  • 要求路徑
  • 要求 URI
  • 已解析的用戶端 IP
  • 目標基礎路徑
  • 目標網址
  • X Forwarded For

如要進一步瞭解數據分析維度,請參閱「 數據分析指標、維度和篩選器參考資料」。

查看模糊處理的結果

經過模糊處理的結果會顯示在分析資訊主頁中。您可能需要等待幾分鐘,才能在使用者介面中看到經過雜湊處理的結果。

範例

以下範例顯示模糊處理前後的資料:

// JSON data sent to AX before obfuscating
{
  "proxy_basepath":"/APP_NAME",
  "x-apigee.edge.execution.stats.request_flow_endtimestamp":1582770652814,
  "apiproxy":"APP_NAME",
  "x-apigee.edge.is_policy_error":0,
  "client_sent_start_timestamp":1582770652817,
  "x-apigee.edge.is_target_error":0,
  "client_received_start_timestamp":1582770652813,
  "client_ip":"10.10.0.99",
  "is_error":false,
  "x-apigee.edge.stats.steps":"{\"JS1.0\":1}",
  "request_size":0,
  "x-apigee.intelligence.client_ip_header":"10.10.0.99",
  "virtual_host":"default",
  "x-apigee.edge.mp_host":"mp",
  "sla":false,
  "x-apigee.intelligence.service":"{}",
  "client_sent_end_timestamp":1582770652817,
  "request_uri":"/APP_NAME",
  "proxy":"default",
  "proxy_client_ip":"10.10.0.99",
  "x-apigee.edge.dn.region":"dc-1",
  "apigee.edge.execution.is_apigee_fault":0,
  "x-apigee.edge.target.latency.stats":"{\"targetList\":[]}",
  "useragent":"Apache-HttpClient/4.3.6 (java 1.6)",
  "proxy_pathsuffix":"",
  "x-apigee.edge.execution.stats.request_flow_start_timestamp":1582770652814,
  "x_forwarded_for_ip":"10.10.0.99",
  "x_forwarded_proto":"http",
  "response_status_code":200,
  "request_verb":"GET",
  "x-apigee.edge.execution.stats.response_flow_end_timestamp":1582770652816,
  "gateway_source":"message_processor",
  "environment":"env_82hw",
  "client_received_end_timestamp":1582770652814,
  "organization":"Org_1582769880344",
  "x-apigee.edge.execution.stats.response_flow_start_timestamp":1582770652814,
  "request_path":"/APP_NAME",
  "gateway_flow_id":"rt-8644-188-1",
  "apiproxy_revision":"1"
}
// JSON data sent to AX after obfuscating
{
  "proxy_basepath":"/APP_NAME",
  "x-apigee.edge.execution.stats.request_flow_endtimestamp":1582749361836,
  "apiproxy":"APP_NAME",
  "x-apigee.edge.is_policy_error":0,
  "client_sent_start_timestamp":1582749361884,
  "x-apigee.edge.is_target_error":0,
  "client_received_start_timestamp":1582749361790,
  "client_ip":"090cdae81ea6e58e55093f702661cf2325cef6a68aa801f1209e73bb0649c2b931bcad468911da887a42ce1d1daee07b24933e3dbbde6eb7438cfc9020a25445",
  "is_error":false,
  "x-apigee.edge.stats.steps":"{\"JS1.0\":30}",
  "request_size":0,
  "x-apigee.intelligence.client_ip_header":"090cdae81ea6e58e55093f702661cf2325cef6a68aa801f1209e73bb0649c2b931bcad468911da887a42ce1d1daee07b24933e3dbbde6eb7438cfc9020a25445",
  "virtual_host":"default",
  "x-apigee.edge.mp_host":"mp",
  "sla":false,
  "x-apigee.intelligence.service":"{}",
  "client_sent_end_timestamp":1582749361886,
  "request_uri":"0176937d9c4a33094d3c3f38ac8b15fa05dd6380a6bb544e4002c98de9f27bdbfea754901b0acb487f4980b09f7d312ad1e7027b96b2c8bfd8b9c24e833fbb5a",
  "proxy":"default",
  "proxy_client_ip":"090cdae81ea6e58e55093f702661cf2325cef6a68aa801f1209e73bb0649c2b931bcad468911da887a42ce1d1daee07b24933e3dbbde6eb7438cfc9020a25445",
  "x-apigee.edge.dn.region":"dc-1",
  "apigee.edge.execution.is_apigee_fault":0,
  "x-apigee.edge.target.latency.stats":"{\"targetList\":[]}",
  "useragent":"Apache-HttpClient/4.3.6 (java 1.6)",
  "proxy_pathsuffix":"cf83e1.67eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81.638327af927da3e",
  "x-apigee.edge.execution.stats.request_flow_start_timestamp":1582749361833,
  "x_forwarded_for_ip":"090cdae81ea6e58e55093f702661cf2325cef6a68aa801f1209e73bb0649c2b931bcad468911da887a42ce1d1daee07b24933e3dbbde6eb7438cfc9020a25445",
  "x_forwarded_proto":"http",
  "response_status_code":200,
  "request_verb":"GET",
  "x-apigee.edge.execution.stats.response_flow_end_timestamp":1582749361874,
  "gateway_source":"message_processor",
  "environment":"env_xj25",
  "client_received_end_timestamp":1582749361821,
  "organization":"Org_1582749068984",
  "x-apigee.edge.execution.stats.response_flow_start_timestamp":1582749361836,
  "request_path":"0176937d9c4a33094d3c3f38ac8b15fa05dd6380a6bb544e4002c98de9f27bdbfea754901b0acb487f4980b09f7d312ad1e7027b96b2c8bfd8b9c24e833fbb5a",
  "gateway_flow_id":"rt-6290-57-1",
  "apiproxy_revision":"1"
}