Nginx reverse proxy to convert basic auth to AWS sig
Budget: €30 – €250 EUR
# Description
The result of this project is a Dockerfile + nginx.conf file which is able to start a reverse proxy to protect an S3 bucket with basic authentication and converts the basic authentication username and password to an AWS signature version 4.
# The problem we trying to solve
We have an existing application that needs to do GET requests for different users to an S3 bucket, but that only can authenticate with basic authentication. Cause S3 uses an AWS Signature V4 we need to send the AWS key + secret in basic authentication to the reverse proxy, which will convert this key + secret to an AWS signature and proxies the request.
GET request to proxy (basic auth awskey:awssecret) -> Proxy (convert basic aut to AWS sig) -> S3 (authenticate with AWS sig)
# Test environment
After agreeing on the project, you will receive 2 AWS credentials and some URI’s to test against our bucket.
# Docker
I believe you will need to use a base image with Nginx and Lua. Choose a base image that is well-maintained and as light as possible.
If it is necessary to build a custom base image, we need that source code too, but I hope this can be done without it.
The base image which will be used and the use of another language than Lua need to be discussed before accepting the project.
# Nginx configuration
The proxy will eventually run on a load-balanced ECS cluster with the SSL termination on the load balancers, so there is no SSL configuration needed in de nginx.conf.
Requests without a filename need to be mapped to index.html
Example /folder -> /folder/index.html or /folder/folder/ -> /folder/folder/index.html
The rest of the requests don’t need to be mapped to another URI
Example /folder/repodata.json -> /folder/repodata.json
The S3 URL needs to be configurable.
The result of this project is a Dockerfile + nginx.conf file which is able to start a reverse proxy to protect an S3 bucket with basic authentication and converts the basic authentication username and password to an AWS signature version 4.
# The problem we trying to solve
We have an existing application that needs to do GET requests for different users to an S3 bucket, but that only can authenticate with basic authentication. Cause S3 uses an AWS Signature V4 we need to send the AWS key + secret in basic authentication to the reverse proxy, which will convert this key + secret to an AWS signature and proxies the request.
GET request to proxy (basic auth awskey:awssecret) -> Proxy (convert basic aut to AWS sig) -> S3 (authenticate with AWS sig)
# Test environment
After agreeing on the project, you will receive 2 AWS credentials and some URI’s to test against our bucket.
# Docker
I believe you will need to use a base image with Nginx and Lua. Choose a base image that is well-maintained and as light as possible.
If it is necessary to build a custom base image, we need that source code too, but I hope this can be done without it.
The base image which will be used and the use of another language than Lua need to be discussed before accepting the project.
# Nginx configuration
The proxy will eventually run on a load-balanced ECS cluster with the SSL termination on the load balancers, so there is no SSL configuration needed in de nginx.conf.
Requests without a filename need to be mapped to index.html
Example /folder -> /folder/index.html or /folder/folder/ -> /folder/folder/index.html
The rest of the requests don’t need to be mapped to another URI
Example /folder/repodata.json -> /folder/repodata.json
The S3 URL needs to be configurable.