๋ถ„์„์„ ์œ„ํ•œ ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ ๋‚œ๋…ํ™”

์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์„ ํŽ˜์ด๋กœ๋“œ์˜ ์ผ๋ถ€๋กœ ๋ณด๋‚ด๊ธฐ ์ „์— ์ˆจ๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Apigee๋Š” ์ด ๊ธฐ๋Šฅ์œผ๋กœ ๋Ÿฐํƒ€์ž„ ํ”Œ๋ ˆ์ธ์—์„œ ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์œผ๋กœ ํ†ต์‹ ํ•˜๊ธฐ ์ „์— ์›๋ž˜ ๊ฐ’์„ SHA512๋กœ ํ•ด์‹œํ•ฉ๋‹ˆ๋‹ค.

์ ˆ์ฐจ

features.analytics.data.obfuscation.enabled๋ฅผ true๋กœ ์„ค์ •ํ•˜์—ฌ ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

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

๋‚œ๋…ํ™”๊ฐ€ ์‚ฌ์šฉ ์„ค์ •๋œ ๊ฒฝ์šฐ Apigee Hybrid๋Š” ์ •๋ณด๋ฅผ ๋ถ„์„ ๋ฐฑ์—”๋“œ์— ๋ณด๋‚ด๊ธฐ ์ „์— ๋Ÿฐํƒ€์ž„ ์˜์—ญ์—์„œ ๋‹ค์Œ ํ•„๋“œ๋ฅผ SHA512๋กœ ํ•ด์‹œํ•ฉ๋‹ˆ๋‹ค.

  • client_id
  • client_ip
  • developer_email
  • proxy_client_ip
  • proxy_pathsuffix
  • request_urirequest_path
  • target_basepath
  • target_url
  • x_forwarded_for_ip
  • x-apigee.edge.true_client_ip
  • x-apigee.intelligence.client_ip_header

Apigee Hybrid๋Š” ์ปค์Šคํ…€ ๋ถ„์„ ๋ณด๊ณ ์„œ์—์„œ ๋‹ค์Œ ์ธก์ •๊ธฐ์ค€ ๊ฐ’์„ ํ•ด์‹œํ•ฉ๋‹ˆ๋‹ค.

  • ํด๋ผ์ด์–ธํŠธ ID
  • ํด๋ผ์ด์–ธํŠธ IP ์ฃผ์†Œ
  • ๊ฐœ๋ฐœ์ž ์ด๋ฉ”์ผ
  • ํ”„๋ก์‹œ ํด๋ผ์ด์–ธํŠธ IP
  • ํ”„๋ก์‹œ ๊ฒฝ๋กœ ์„œํ”ฝ์Šค
  • ์ถ”์ฒœ ํด๋ผ์ด์–ธํŠธ IP
  • ์š”์ฒญ ๊ฒฝ๋กœ
  • ์š”์ฒญ URI
  • ํ™•์ธ๋œ ํด๋ผ์ด์–ธํŠธ IP
  • ๋Œ€์ƒ ๊ธฐ๋ณธ ๊ฒฝ๋กœ
  • ๋Œ€์ƒ URL
  • X Forwarded For

๋ถ„์„ ์ธก์ •๊ธฐ์ค€์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์„ค๋ช…์€ ์• ๋„๋ฆฌํ‹ฑ์Šค ์ธก์ •ํ•ญ๋ชฉ, ์ธก์ •๊ธฐ์ค€, ํ•„ํ„ฐ ์ฐธ์กฐ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๋‚œ๋…ํ™”๋œ ๊ฒฐ๊ณผ ๋ณด๊ธฐ

Apigee Hybrid ๋ถ„์„ ๋Œ€์‹œ๋ณด๋“œ์— ๋‚œ๋…ํ™”๋œ ๊ฒฐ๊ณผ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ํ•ด์‹œ๋œ ๊ฒฐ๊ณผ๊ฐ€ UI์— ํ‘œ์‹œ๋˜๋Š” ๋ฐ ๋ช‡ ๋ถ„ ์ •๋„ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•ด์‹œ๋œ ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์ปค์Šคํ…€ ๋ณด๊ณ ์„œ

์˜ˆ

๋‹ค์Œ ์˜ˆ๋Š” ๋‚œ๋…ํ™” ์ „๊ณผ ํ›„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

// 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.5)",
   "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.5)",
   "proxy_pathsuffix":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e",
   "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"
}