How to share AWS S3 files and folders with external users using NirvaShare
Sharing a file or folder with external users is one of the common use cases across industries for business purposes. When it comes to files in S3, it brings up challenges with respect to security aspects such as granting proper access to users, authentication and authorization. With NirvaShare, it is pretty easy to configure and share files with just a few clicks. In this document, we will look at how to configure NirvaShare with AWS S3 storage and share files to external users using a simple Form-based authentication.
Make sure you create an EC2 instance with the below configuration. It can be of Widows or Linux OS, but however, in this document, we will discuss considering Linux Ubuntu Server 20.04 LTS. For more information on EC2 instance creation, refer to AWS documentation
RAM – Min of 2GB (preferable to have 4GB)
Storage – Min of 20 GB
Make sure port 8080 and 8081 is made available for accessing, later can be disabled after SSL is enabled with Load balancer.
SSH to the newly created EC2 instance using your private ssh key. For more information on connecting to Linux instance, refer to AWS Documentation
Once you log in to SSH console, run below command to start the installation as root user. This will download the script and install NirvaShare.
sudo su root curl -s https://raw.githubusercontent.com/nirvashare/nirvashare/main/linux/ubuntu/install_nirvashare.sh -o ns_install.sh && bash ns_install.sh && rm ns_install.sh
Above command will prompt you to enter database password, once provided, it will proceed and complete the installation within a minute or two.
After installation is completed, wait for 3-4 minutes for server to come up as it takes time to create schema, etc.
Access the url as http://(your IP):8080
This should open up login screen as shown below.
To configure further, you will require an access key and secret key obtained from AWS for S3 storage. To generate new keys, please login to your console https://console.aws.amazon.com and follow the below steps.
- Open IAM service or go to URL https://console.aws.amazon.com/iamv2
- From the left menu, click on Users and add a new User
- Provide a username and select the checkbox for “Access Key – Programmatic access” as shown below.
- For the group permission, select an existing group or create one that has policy as “AmazonS3FullAccess“
- Create the user.
- From the newly created user, you can download the access and secret keys as csv file. These keys will be required to configure NirvaShare down the line.