How to Install AWS CLI Version 2 and Setup AWS credentials

AWS CLI that is AWS Command Line Interface that enables you to interact with AWS services in various AWS accounts using commands in your command-line shell from your local environment or remotely. The AWS CLI provides direct access to the public APIs of AWS services.

You can control multiple AWS services from the command line and automate them through scripts. You can run AWS CLI commands from Linux shell such as bash , zsh , tcsh and from windows machine you can usecommand prompt or PowerShell to execute AWS CLI commands.

The AWS CLI is available in two versions but lets learn how to install AWS CLI version 2.

Table of Contents

  1. Installing AWS CLI Version 2 on windows machine
  2. Creating an IAM user in AWS account with programmatic access
  3. Configure AWS credentials using aws configure
  4. Verify aws configure from AWS CLI by running a simple commands
  5. Configuring AWS credentials using Named profile.
  6. Verify Named profile from AWS CLI by running a simple commands.
  7. Configuring AWS credentials using environment variable
  8. Conclusion

Installing AWS CLI Version 2 on windows machine

  • Download the installed for AWS CLI on windows machine from here
  • Select I accept the terms and then click next button
  • Do custom setup like location of installation and then click next button
  • Now you are ready to install the AWS CLI 2
  • Click finish and now verify the AWS cli
  • Verify the AWS version by going to command prompt and type
aws --version

Now AWS cli version 2 is successfully installed on windows machine.

Creating an IAM user in AWS account with programmatic access

There are two ways to connect to an AWS account, the first is providing a username and password on the AWS login page using browser and the other way is to configure Access key ID and secret keys of IAM user on your machine and then use command-line tools such as AWS CLI to connect programmatically.

For applications to connect from AWS CLI to AWS Service, you should already have Access key ID and secret keys with you that you will configure on your local machine to connect to AWS account.

Lets learn how to create a IAM user and Access key ID and secret keys !!

  1. Open your favorite web browser and navigate to the AWS Management Console and log in.
  2. While in the Console, click on the search bar at the top, search for ‘IAM’, and click on the IAM menu item.
  1. To Create a user click on Users→ Add user and provide the name of the user myuser and make sure to tick the Programmatic access checkbox in Access type which enables an access key ID and secret access key and then hit the Permissions button.
  1. Now select the “Attach existing policies directly” option in the set permissions and look for the “Administrator” policy using filter policies in the search box. This policy will allow myuser to have full access to AWS services.
  1. Finally click on Create user.
  2. Now, the user is created successfully and you will see an option to download a .csv file. Download this file which contains IAM users i.e. myuser Access key ID and Secret access key which you will use later in the tutorial to connect to AWS service from your local machine.

Configure AWS credentials using aws configure

Now you IAM user with Access key ID and secret keys ,but AWS CLI cannot perform anything unless you configure AWS credentials . Once you configure the credentials then AWS CLI allows you to connect to AWS account and execute commands.

  • Configure AWS Credentials by running the aws configure command on command prompt
aws configure
  • Enter the details such as AWS Access key ID , Secret Access Key , region . You can skip the output format as default or text or json .
  • Once AWS is configured successfully , verify by navigating to C:\Users\YOUR_USER\.aws  and see if two file credentials and config are present.
  • Now open both the files and verify.
  • Now, you’re AWS credentials are configured successfully using aws configure.

Verify aws configure from AWS CLI by running a simple commands

Now, you can test if AWS Access key ID , Secret Access Key , region you configured in AWS CLI is working fine by going to command prompt and running the following commands.

aws ec2 describe-instances

Configuring AWS credentials using Named profile.

A named profile is a collection of settings and credentials that you can apply to a AWS CLI command. When you specify a profile to run a command, the settings and credentials are used to run that command

Earlier you created one IAM user and configure AWS credentials using aws configure, lets learn how to store named profiles.

  1. Open credentials files which got created earlier using aws configure or create a file at  C:\Users\your_profile\.aws\credentials on your windows machine.
  2. Now , you can provide multiple  Access key ID and Secret access key  into the credentials file in the below format and save the file.

credentials files help you to set your profile. By this way, it helps you to create multiple profiles and avoid confusion while connecting to specific AWS accounts.

  1. Similarly, create another file C:\Users\your_profile\.aws\config in the same directory
  2. Next, add the “region” into the config file and make sure to add the name of the profile which you provided in the credentials file, and save the file. This file allows you to work with a specific region.

~/.aws/credentials (Linux & Mac) or %USERPROFILE%\.aws\credentials (Windows)

~/.aws/config (Linux & Mac) or %USERPROFILE%\.aws\config (Windows)

Verify Named profile from AWS CLI by running a simple commands

Lets open command prompt and run the below command to verify sandbox profile which you created earlier under two files ( %USERPROFILE%\.aws\credentials and USERPROFILE%\.aws\config)

aws ec2 describe-instances --profile sandbox

If you get a response shows you were able to configure Named profile succesfully.

Configuring AWS credentials using environment variable

Lets open command prompt and set the AWS secret key and access key using environmental variable. Using set to set an environment variable changes the value used until the end of the current command prompt session, or until you set the variable to a different value

Conclusion

In this tutorial, you learned how to install AWS CLI and configured it using AWS Access key ID , Secret Access Key, region. Also you learned how to generate AWS Access key ID , Secret Access Key by creating an IAM user.

How to Launch AWS S3 bucket using Shell Scripting.

We all need a place to store data such deployment scripts, deployment packages also to host a website we require space. In earlier days there were servers where data use to take lot of time to be copied and those servers were not scalable and neither fault tolerant. In case there was issue such as server down or server gets corrupted , data was either lost or application use to remain down for long hours.

In order to solve space or data storage issue with unlimited capacity and scalable with tolerant behaviors Amazon AWS provides a service AWS S3 which solves all these problem.

In this tutorial we will demo how to launch a AWS S3 bucket in Amazon account using Bash or shell scripting .

Table of Content

  1. What is Shell script?
  2. What is Amazon S3 bucket ?
  3. Prerequisites
  4. Install AWS CLI Version 2 on windows machine
  5. How to launch or create AWS S3 bucket in Amazon account using shell script
  6. Conclusion

What is Shell Scripting or Bash Scripting?

Shell Script is simply a text of file with various or lists of commands that are executed even on terminal or shell one by one. But in order to make thing little easier and run together as a group and in quick time we write them in single file and run it.

Main tasks which are performed by shell scripts are : file manipulation , printing text , program execution. We can include various environmental variables in script that can be used at multiple places , run programs and perform various activities are known as wrapper scripts.

A good shell script will have comments, preceded by a pound sign or hash mark, #, describing the steps. Also we can include conditions or pipe some commands to make more creative scripts.

When we execute a shell script, or function, a command interpreter goes through the ASCII text line-by-line, loop-by-loop, test-by-test, and executes each statement as each line is reached from the top to the bottom.

What is Amazon AWS S3 bucket?

AWS S3 , why it is S3 ? The name itself tells that its a 3 word whose alphabet starts with “S” . The Full form of AWS S3 is simple storage service. AWS S3 service helps in storing of unlimited data very safely and efficiently. There is a very basic architecture of AWS S3 . Everything in AWS S3 is a object such as pdf files, zip files , text files or war files anything. The next thing is bucket where all these objects resides.

AWS S3 Service  ➡️ Bucket  ➡️ Objects  ➡️ PDF , HTML DOCS, WAR , ZIP FILES etc.

Some of the features of AWS S3 bucket are:

  • In order to store the data in bucket you will need to upload it.
  • To keep your bucket permissions more secure provide necessary permissions to IAM role or IAM user.
  • Buckets have unique name globally that means there will be only 1 bucket throughout different accounts or any regions.
  • 100 buckets can be created in any AWS account , post that you need to raise a ticket to Amazon.
  • Owner of Bucket is specific to AWS account only.
  • Buckets are created region specific such as us-east-1 , us-east-2 , us-west-1 or us-west-2
  • Bucket objects are objected in AWS S3 using AWS S3 API service.
  • Buckets can be publicly visible that means anybody on the internet can access it. So it is always recommended to keep the public access blocked for all buckets unless very much required.

Prerequisites

  1. AWS account to create S3 bucket. If you don’t have AWS account please create from AWS account or AWS Account
  2. Windows 7 or plus edition where you will execute the shell script.
  3. Python must be installed on windows machine which will be required by AWS cli. If you want to install python on windows machine follow here
  4. You must have Git bash already installed on your windows machine. If you don’t have install from here
  5. Code editor for writing the shell script on windows machine. I would recommend to use visual studio code on windows machine. If you wish to install visual studio on windows machine please find steps here

In this demo , we will use shell script to launch AWS S3 bucket. So In order to use shell scripts from your local machine that is windows you will require AWS CLI installed and configured. So First lets install AWS CLI and then configure it.

Install AWS CLI Version 2 on windows machine

  • Download the installed for AWS CLI on windows machine from here
  • Select I accept the terms and then click next button
  • Do custom setup like location of installation and then click next button
  • Now you are ready to install the AWS CLI 2
  • Click finish and now verify the AWS cli
  • Verify the AWS version by going to command prompt and type
aws --version

Now AWS cli version 2 is successfully installed on windows machine, now its time to configure AWS credentials so that our shell script connects AWS account and execute commands.

  • Configure AWS Credentials by running the command on command prompt
aws configure
  • Enter the details such as AWS Access key , ID , region . You can skip the output format as default.
  • Check the location on your system C:\Users\YOUR_USER\.aws file to confirm the the AWS credentials
  • Now, you’re AWS credentials are configured successfully.

How to launch or create AWS S3 bucket in Amazon account using shell script

Now we have configured AWS cli on windows machine , its time to create our shell script to create AWS S3 bucket.

  • Create a folder on your desktop and under that create file create-s3.sh
#! /usr/bin/bash
# This Script will create S3 bucket and tag the bucket with appropriate name.

# To check if access key is setup in your system 


if ! grep aws_access_key_id ~/.aws/config; then
   if ! grep aws_access_key_id ~/.aws/credentials; then
   echo "AWS config not found or you don't have AWS CLI installed"
   exit 1
   fi
fi

# read command will prompt you to enter the name of bucket name you wish to create 


read -r -p  "Enter the name of the bucket:" bucketname

# Creating first function to create a bucket 

function createbucket()
   {
    aws s3api  create-bucket --bucket $bucketname --region us-east-2
   }


# Creating Second function to tag a bucket 

function tagbucket()    {
    
   aws s3api  put-bucket-tagging --bucket $bucketname --tagging 'TagSet=[{Key=Name,Value="'$bucketname'"}]'
}


# echo command will print on the screen 

echo "Creating the AWS S3 bucket and Tagging it !! "
echo ""
createbucket    # Calling the createbucket function  
tagbucket       # calling our tagbucket function
echo "AWS S3 bucket $bucketname created successfully"
echo "AWS S3 bucket $bucketname tagged successfully "
  • Now open visual studio code and open the location of file create-s3.sh and choose terminal as Bash
  • Now run the script
./create-s3.sh
  • Script ran successfully , now lets verify the AWS S3 bucket by going on AWS account.
  • Click on the Bucket name testing-s3buck2 and then click on properties

  • Great we can see that tagging was also done successfully.

Conclusion

In this tutorial, we demonstrated some benefits of Amazon AWS S3 and learnt how to set up Amazon AWS S3 using shell script on AWS step by step . Most of your phone data and your website data are stored on AWS S3. This service specially to host a website is best in market.

Hope this tutorial will help you in understanding the shell script and provisioning the AWS S3 on Amazon cloud. Please share with your friends