AWS S3 Proxy: JavaScript iRuleLX
Problem this snippet solves:
Create a secure proxy to AWS S3 via iRule/IRuleLX
Related Article: Creating a Secure AWS S3 Proxy with F5 iRulesLX
How to use this snippet:
- Install iRule via iRulesLX Workspace
- Create iRulesLX plugin
- Create AWS role or IAM credentials
- Create FQDN pool to AWS S3
- Create Virtual Server
- Enable OneConnect and WebAcceleration profiles
- Assign iRule to Virtual Server
Code :
var f5 = require('f5-nodejs');
var ilx = new f5.ILXServer();
var url = require('url');
var URI = require('urijs');
var AWS = require('aws-sdk');
// optionally use config.json with stored credentials or assign Role when running in AWS
//AWS.config.loadFromPath('./config.json');
var s3 = new AWS.S3();
ilx.addMethod('aws_s3_rpc_add_creds', function(req, res) {
var path = req.params()[0];
var params = {Bucket:"secure-bucket",
Key: path
};
var signed_url = s3.getSignedUrl('getObject',params);
var parsedUrl = new URI(signed_url);
var q = parsedUrl.search(true);
var expires = parseInt(q['Expires']);
var expire_after = Math.round(expires - (new Date() / 1000));
res.reply([parsedUrl.query(),expires, expire_after]);
});
ilx.listen();Tested this on version:
13.0Published Jul 21, 2017
Version 1.0Eric_Chen
Employee
6 Comments
No CommentsBe the first to comment