Apigee - Cloud deployment
  • 04 Nov 2022
  • 4 Minutes to read
  • PDF

Apigee - Cloud deployment

  • PDF

Article Summary

Apigee is a platform for developing and managing APIs. By fronting services with a proxy layer, Apigee provides an abstraction for your backend service APIs and provides security, rate limiting, quotas, analytics, and more. Traceable provides a JavaScript (JS) policy to capture request and response passing through your Apigee deployment to detect any anomalous behavior or attacks. The following deployment diagram shows a high-level architecture of traffic flow through Apigee and Traceable agent. Traceable's policy captures the incoming request and makes an asynchronous call to Traceable's platform.

Note
The Traceable policy does not support blocking.

Before you begin

Make a note of the following points before you begin with the deployment:

  • The document expects a basic working knowledge of Apigee environment.
  • Traceable supports Apigee-x, hybrid and Apigee Edge cloud.
  • Make sure that Traceable platform agent is already deployed on a VM that is accessible from the Apigee environment. For more information, see Virtual Machine.
  • Make a note of the IP address of the Traceable platform agent. This would be used in Traceable policy configuration.
  • Make sure that port numbers 5442 (HTTP) and 5443 (HTTPS) are available for receiving data on Traceable platform agent.

Download

Download the Traceable policy for Apigee from Traceable's download site. Navigate to agent > apigee > latest to download the traceable-shareflow.zip file. Save the file. This file would be used in the Configuration section.


Configuration

The configuration of Traceable policy for Apigee consists of the following two steps:

  1. Adding Traceable agent for Apigee as sharedflow
  2. Attaching Traceable agent to:
    1. All API proxies using FlowHooks, or
    2. To a specific API proxy only

Step 1 - Add Traceable agent for Apigee as Shared Flow

Complete the following steps to add Traceable's Shared Flow:

  1. Login to your Apigee account.
  2. Click on Develop tab and navigate to SharedFlowstraceable_apigee_cloud_nav_sharedflow
  3. Add a new SharedFlow. Click on Upload Bundle. Navigate to the location where you have downloaded Traceable's Apigee policy.
  4. Upload the Traceable SharedFlow zip. You may wish to change the name of the file and import.
  5. Click on the imported SharedFlow and navigate to the Develop tab.
  6. Click on TraceableJS policy and update the configuration values. The variable ta_reporting_endpoint is by default not configured. The value should be  http//:traceable_platform_agent_host:5442 for HTTP or https://traceable_platform_agent_host:5443 for HTTPS.
  7. Click on Save.
  8. Deploy the SharedFlow - Click on Deploy button and select the environment to which you wish to deploy the agent. This deploys the agent as a SharedFlow to that environment. 

Traceable agent configurations

The following table lists the various Traceable agent configurations.

ConfigurationDescription
ta_reporting_endpointThis is a mandatory configuration. Provide the IP address of the Traceable platform agent in http://traceable_platform_agent_ip_address:5442.
ta_data_capture_http_body_requestSet it to true if you wish to capture the HTTP request body, otherwise set it to false.
ta_data_capture_http_body_responseSet it to true if you wish to capture the HTTP response body, otherwise set it to false.
ta_data_capture_http_headers_requestSet it to true if you wish to capture the HTTP request header, otherwise set it to false.
ta_data_capture_http_headers_responseSet it to true if you wish to capture the HTTP response header, otherwise set it to false.
ta_data_capture_allowed_typesDefines the type of data that is captured. List without spaces: json,graphql,x-www-form-urlencoded

Step 2 - Attach the traceable agent

You can attach the Traceable agent either to all the API proxies or to a specific API proxy. Follow the steps in the one of the following sections. 

Option 1 - Attach Traceable agent to all API proxies using Flow Hooks

Complete the following steps to attach Traceable agent to all the API proxies:

  1. Navigate to Admin Environment > Flow Hooks.
  2. Edit the Flow Hooks and attach the traceable-agent sharedflow to Pre-proxy Flow Hook and Post-proxy Flow Hook. This will attach traceable agent with all API Proxies.

You can now make requests to your API proxy. Traceable will capture these requests for analysis.

Option 2 - Attach Traceable agent to a specific API proxy

Complete the following steps to attach Traceable agent to a specific API proxy:

  1. Navigate to API Proxy to which you wish to attach traceable-apigee agent and click on Develop tab. 
  2. Click on Add a policy, the + sign besides Policies.
  3. Select Policy Type Flow Callout (refer the above screenshot), update the names, and select traceable-shared-flow from the list of sharedflows.
  4. In the Proxy Endpoints, for the endpoint to which you want to attach the agent, click on PreFlow.
  5. In the flow diagram, click on +Step for PreFlow on the request side.
  6. In the Add Step dialogue box, click on Existing Policy instance.
  7. Select the Flow Callout Policy we added earlier and click on Add.
  8. Click on Postflow for the proxy endpoint.
  9. In the flow diagram, click on +Step for Preflow on the response side.
  10. In the Add Step dialogue box, click on Existing Policy instance.
  11. Select the Flow Callout Policy we added earlier and click on Add.
  12. Add a Fault Rule in both the Proxy Endpoints and Target Endpoints in XML as follows. Update the name of flow callout policy.
    Markup
        <FaultRules>
            <FaultRule name="traceable fault rule">
                <Step>
                    <Name>NAME_OF_TRACEABLE_FLOW_CALLOUT_POLICY_ADDED_ABOVE</Name>
                </Step>
            </FaultRule>
        </FaultRules>
  13. Click on Save the configuration.

You can now make requests to your API proxy. Traceable will capture these requests for analysis.


Uninstall 

If you have attached Traceable agent as a flow hook, then remove the agent from flow hook. Or, remove from the APIs if you have attached to specific APIs. Navigate to traceable sharedflow and click on Status. Click on Status > Undeploy

To delete completely, navigate back to SharedFlows Tab. In the list, delete traceable-sharedflow.


Troubleshooting

In Apigee UI, you can go to any API Proxy on which traceable agent is attached, and click on the Traces/Debug tab. Start the trace session, send a request, and check the flow of request and variables in TraceableJS policy on both the request and response side. Verify that ExportSpansJS policy was executed on the Response side (not skipped).
Make sure connection from Apigee to Traceable Platform is proper.





Was this article helpful?