Workshops Classroomnotes 15/Dec/2022

Lab Setup

AWS CLI

  • We will be creating 3 groups
    • Admin:
      • Permission for everything
    • tester:
      • Permission for reading specific services
    • dev:
      • Permission for read and create but not delete on specific services.
  • We will configure admin as default profile in AWS CLI
  • We will create two profiles test and dev
  • Lets use paris region.
  • Any stuff to copy paste throughout this class Refer Here
  • Configure the aws cli
  • Way to check if it working
    Preview

Activity: Figure out the zones and local zones in paris region

  • Aws cli:
aws ec2 describe-availability-zones
  • Output options: Refer Here
    • json
    • table
    • text
    • yaml
  • Redirect the output of the availability zones to some json file
  • Upload this file to Refer Here
aws ec2 describe-availability-zones --query "AvailabilityZones[0].ZoneId"
  • Get multiple values
    Preview

Scenario-1

  • Your organization is running a database in different account which is present is zone with id eu-w3-az1. You are also asked to create an ec2 instance in the same AZ. We need to figure out matching zone name
  • Input => zone id
  • Output => zone name
AvailabilityZones[?ZoneId=='euw3-az1'].ZoneName | [0]

aws ec2 describe-availability-zones --query "AvailabilityZones[?ZoneId=='euw3-az1'].ZoneName | [0]"
  • Try Find the zone id for the zone name eu-west-3b

Activity 2: Find all the iam policies not created by Amazon

  • First lets figure out a way to pull all the customer managed policies
  • To filter output, try to follow the below approaches
    • see if any argument supports your filter
    • see if there is filter argument which can help
    • use jmes path to filter out based on output.
  • In this case we have scope Refer Here
aws iam list-policies --scope Local
  • Now we are asked to delete all the policies which are customer managed Refer Here
  • We need policy arns
  • Consider the following script
#!/bin/bash
policy_arn=$(aws iam list-policies --scope Local --query 'Policies[].Arn|[0]' --output text)
echo "found ${policy_arn}"
while [[ ! -z "$policy_arn" ]]
do
    # lets get first arn

    echo "The policy arn to be deleted is ${policy_arn}"
    aws iam delete-policy --policy-arn ${policy_arn} --output text
    echo "The policy arn is successfully deleted"
    policy_arn=$(aws iam list-policies --scope Local --query 'Policies[].Arn|[0]'  --output text)
done
  • The problem with above approach is it might never end.
  • other approach: Get all the policy arns into an array and write a while or foreach loop over array. This will never be infinite loop.

Activity 3 – Tagging and filtering the resources based on tags

  • Resource Tags

    • helps in filtering the resources
    • filter the bills based on tags.
  • Lets create an ec2 instance and then add the following tags

    • Project = qtworkshop
    • Env = test
    • team = qtaws
    • release = v1.0
      Preview
  • From cli
    Preview
  • Now try using aws ec2 create-tag for tagging your ec2 instance with the above tags.
  • Refer Here for the script to tag ec2 resources.

Activity 4: Manage lifecycle of ec2 instance based on tag

  • Try to stop all the ec2 instances where there is a tag called as Env with value test
  • Refer Here

Actvitiy 5: Try stopping all the ec2 instances with some tag in all regions

  • Refer Here for the script to stop all ec2 instances with a tag in all regions

Activity 6: Delete all rds instances which are in stopped state

Activity 7: Delete all the security groups in all regions

  • Delete all the security groups in all regions in all vpcs except default
* Get vpc ids of the current region
* for each vpc id get all security group ids
* delete the security group if the name is not default or it is not default 
* Then do this activity for all the active regions in your account.

Activity 8: Create a security group which opens all traffic

  • Try to find a cli command to do this
  • Then we will figure out to parametrize this.
  • Refer Here for the security group rule

Published
Categorized as Uncategorized Tagged

By continuous learner

devops & cloud enthusiastic learner

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Please turn AdBlock off
Animated Social Media Icons by Acurax Responsive Web Designing Company

Discover more from Direct DevOps from Quality Thought

Subscribe now to keep reading and get access to the full archive.

Continue reading

Visit Us On FacebookVisit Us On LinkedinVisit Us On Youtube