How to integrate APIGEE with AWS S3

 
0 8 1,192
8 REPLIES 8

Not applicable

for what purpose you want to integrate? as a service or as log storage?

As a service I need, a request for any info which is stored in AWS S3 bucket , and has to send back to application thro' API....

As a service I need, a request for any info which is stored in AWS S3 bucket , and has to send back to application thro' API....

Not applicable

Then you will have the url through which you can access the S3 bucket data. Now create one reverse proxy in Apigee and do configure the url as the backend url in target endpoint. Then after you can access the S3 data using the Apigee proxy.

Thanks Ajitav, I will try it out.

You can just proxy S3 as a backend. Saying that, it depends on the size of the objects you wish to access. For >10MB objects, it will become impractical to use Apigee for object proxying.

A typical pattern is to use a signed URL mechanism.

https://docs.aws.amazon.com/AmazonS3/latest/userguide/ShareObjectPreSignedURL.html

Your Apigee S3 bucket authorization proxy would call S3 API to generate appropriate signed url that will provide dosed exposure of a bucket or object, i.e.: grant an access to a resource for a specified period of time, with a specified set of permissions.

You can get a specific example and an inspiration form this @Dino-at-Google's repository https://github.com/DinoChiesa/ApigeeEdge-Java-GoogleUrlSigner.

It's different cloud, but same principle.

For completeness, same mechanism exists for Azure Storage objects

https://docs.microsoft.com/en-us/rest/api/storageservices/delegate-access-with-shared-access-signatu...

yet need a solution and implementation to start, I hope this will start my job. thanx a lot !!

here is an Apigee callout that produces Shared Access Signatures for Azure.

https://github.com/DinoChiesa/Apigee-Java-AzureEventHubs-SasToken

And here is a callout that produces AWSv4 signatures; and I just extended it to optionally emit a pre-signed URL. Check the README...
https://github.com/DinoChiesa/Apigee-Java-AWSV4-Signature