<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Pavan Reddy cheedeti</title>
    <description>The latest articles on DEV Community by Pavan Reddy cheedeti (@pavan_reddy_8f9125a73121c).</description>
    <link>https://dev.to/pavan_reddy_8f9125a73121c</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2910846%2F11e0b43b-c4d7-495e-bdf2-aa866106b9cf.jpg</url>
      <title>DEV Community: Pavan Reddy cheedeti</title>
      <link>https://dev.to/pavan_reddy_8f9125a73121c</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/pavan_reddy_8f9125a73121c"/>
    <language>en</language>
    <item>
      <title>Build a VPC With EC2 On Terraform!</title>
      <dc:creator>Pavan Reddy cheedeti</dc:creator>
      <pubDate>Wed, 19 Nov 2025 15:21:46 +0000</pubDate>
      <link>https://dev.to/pavan_reddy_8f9125a73121c/build-a-vpc-with-ec2--1hmf</link>
      <guid>https://dev.to/pavan_reddy_8f9125a73121c/build-a-vpc-with-ec2--1hmf</guid>
      <description>&lt;p&gt;✅ TASK 2 — Build a VPC With EC2 (Step-by-Step Guide)&lt;/p&gt;

&lt;p&gt;Folder structure:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;terraform-vpc/
 ├── main.tf
 ├── variables.tf
 ├── outputs.tf
 └── terraform.tfvars

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;STEP 1 — Create main.tf&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;provider "aws" {
  region = var.aws_region
}

# -----------------------
# VPC
# -----------------------
resource "aws_vpc" "main_vpc" {
  cidr_block           = var.vpc_cidr
  enable_dns_support   = true
  enable_dns_hostnames = true

  tags = {
    Name = "main-vpc"
  }
}

# -----------------------
# Public Subnet
# -----------------------
resource "aws_subnet" "public_subnet" {
  vpc_id                  = aws_vpc.main_vpc.id
  cidr_block              = var.public_subnet_cidr
  map_public_ip_on_launch = true
  availability_zone       = var.az

  tags = {
    Name = "public-subnet"
  }
}

# -----------------------
# Internet Gateway
# -----------------------
resource "aws_internet_gateway" "igw" {
  vpc_id = aws_vpc.main_vpc.id

  tags = {
    Name = "main-igw"
  }
}

# -----------------------
# Route Table
# -----------------------
resource "aws_route_table" "public_rt" {
  vpc_id = aws_vpc.main_vpc.id

  route {
    cidr_block = "0.0.0.0/0"
    gateway_id = aws_internet_gateway.igw.id
  }

  tags = {
    Name = "public-route-table"
  }
}

# -----------------------
# Route Table Association
# -----------------------
resource "aws_route_table_association" "public_assoc" {
  subnet_id      = aws_subnet.public_subnet.id
  route_table_id = aws_route_table.public_rt.id
}

# -----------------------
# Security Group
# -----------------------
resource "aws_security_group" "ec2_sg" {
  name        = "ec2_public_sg"
  description = "Allow SSH"
  vpc_id      = aws_vpc.main_vpc.id

  ingress {
    from_port   = 22
    to_port     = 22
    protocol    = "tcp"
    cidr_blocks = ["0.0.0.0/0"]
  }

  egress {
    from_port   = 0
    to_port     = 0
    protocol    = "-1"
    cidr_blocks = ["0.0.0.0/0"]
  }

  tags = {
    Name = "EC2 Public SG"
  }
}

# -----------------------
# Key Pair
# -----------------------
resource "aws_key_pair" "my_key" {
  key_name   = "task2-key"
  public_key = file(var.public_key_path)
}

# -----------------------
# EC2 Instance
# -----------------------
resource "aws_instance" "public_ec2" {
  ami           = var.ami_id
  instance_type = "t2.micro"
  subnet_id     = aws_subnet.public_subnet.id
  key_name      = aws_key_pair.my_key.key_name
  vpc_security_group_ids = [aws_security_group.ec2_sg.id]

  tags = {
    Name = "public-ec2"
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;STEP 2 — Create variables.tf
variable "aws_region" {
  type = string
}

variable "vpc_cidr" {
  type = string
}

variable "public_subnet_cidr" {
  type = string
}

variable "az" {
  type = string
}

variable "ami_id" {
  type = string
}

variable "public_key_path" {
  type = string
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;STEP 3 — Create outputs.tf
output "vpc_id" {
  value = aws_vpc.main_vpc.id
}

output "public_subnet_id" {
  value = aws_subnet.public_subnet.id
}

output "ec2_public_ip" {
  value = aws_instance.public_ec2.public_ip
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;STEP 4 — Create terraform.tfvars
aws_region          = "ap-south-1"
vpc_cidr            = "10.0.0.0/16"
public_subnet_cidr  = "10.0.1.0/24"
az                  = "ap-south-1a"
ami_id              = "ami-0f5ee92e2d63afc18"
public_key_path     = "~/.ssh/id_rsa.pub"

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;STEP 5 — Initialize Terraform&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;terraform init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;STEP 6 — Validate Configuration&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;terraform validate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;STEP 7 — Generate Execution Plan&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;terraform plan
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;STEP 8 — Apply and Build VPC + EC2&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;terraform apply
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Type yes.&lt;/p&gt;

&lt;p&gt;🎉 RESULT&lt;/p&gt;

&lt;p&gt;Terraform will create:&lt;/p&gt;

&lt;p&gt;✔ VPC&lt;br&gt;
✔ Public Subnet&lt;br&gt;
✔ Internet Gateway&lt;br&gt;
✔ Route Table&lt;br&gt;
✔ Route Table Association&lt;br&gt;
✔ Security Group&lt;br&gt;
✔ Key Pair&lt;br&gt;
✔ EC2 Instance in Public Subnet&lt;/p&gt;

&lt;p&gt;You will get:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ec2_public_ip = "13.x.x.x"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;SSH into EC2:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ssh -i ~/.ssh/id_rsa ec2-user@&amp;lt;PUBLIC-IP&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;🎉 RESULT&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;      + region          = "ap-south-1"
      + tags_all        = (known after apply)
    }

  # aws_route_table.public_rt will be created
  + resource "aws_route_table" "public_rt" {
      + arn              = (known after apply)
      + id               = (known after apply)
      + owner_id         = (known after apply)
      + propagating_vgws = (known after apply)
      + region           = "ap-south-1"
      + route            = [
          + {
              + cidr_block                 = "0.0.0.0/0"
              + gateway_id                 = (known after apply)
                # (11 unchanged attributes hidden)
            },
        ]
      + tags             = {
          + "Name" = "public-route-table"
        }
      + tags_all         = {
          + "Name" = "public-route-table"
        }
      + vpc_id           = (known after apply)
    }

  # aws_route_table_association.public_assoc will be created
  + resource "aws_route_table_association" "public_assoc" {
      + id             = (known after apply)
      + region         = "ap-south-1"
      + route_table_id = (known after apply)
      + subnet_id      = (known after apply)
    }

  # aws_security_group.ec2_sg will be created
  + resource "aws_security_group" "ec2_sg" {
      + arn                    = (known after apply)
      + description            = "Allow SSH"
      + egress                 = [
          + {
              + cidr_blocks      = [
                  + "0.0.0.0/0",
                ]
              + from_port        = 0
              + ipv6_cidr_blocks = []
              + prefix_list_ids  = []
              + protocol         = "-1"
              + security_groups  = []
              + self             = false
              + to_port          = 0
                # (1 unchanged attribute hidden)
            },
        ]
      + id                     = (known after apply)
      + ingress                = [
          + {
              + cidr_blocks      = [
                  + "0.0.0.0/0",
                ]
              + from_port        = 22
              + ipv6_cidr_blocks = []
              + prefix_list_ids  = []
              + protocol         = "tcp"
              + security_groups  = []
              + self             = false
              + to_port          = 22
                # (1 unchanged attribute hidden)
            },
        ]
      + name                   = "ec2_public_sg"
      + name_prefix            = (known after apply)
      + owner_id               = (known after apply)
      + region                 = "ap-south-1"
      + revoke_rules_on_delete = false
      + tags                   = {
          + "Name" = "EC2 Public SG"
        }
      + tags_all               = {
          + "Name" = "EC2 Public SG"
        }
      + vpc_id                 = (known after apply)
    }

  # aws_subnet.public_subnet will be created
  + resource "aws_subnet" "public_subnet" {
      + arn                                            = (known after apply)
      + assign_ipv6_address_on_creation                = false
      + availability_zone                              = "ap-south-1a"    
      + availability_zone_id                           = (known after apply)
      + cidr_block                                     = "10.0.1.0/24"    
      + enable_dns64                                   = false
      + enable_resource_name_dns_a_record_on_launch    = false
      + enable_resource_name_dns_aaaa_record_on_launch = false
      + id                                             = (known after apply)
      + ipv6_cidr_block_association_id                 = (known after apply)
      + ipv6_native                                    = false
      + map_public_ip_on_launch                        = true
      + owner_id                                       = (known after apply)
      + private_dns_hostname_type_on_launch            = (known after apply)
      + region                                         = "ap-south-1"     
      + tags                                           = {
          + "Name" = "public-subnet"
        }
      + tags_all                                       = {
          + "Name" = "public-subnet"
        }
      + vpc_id                                         = (known after apply)
    }

  # aws_vpc.main_vpc will be created
  + resource "aws_vpc" "main_vpc" {
      + arn                                  = (known after apply)
      + cidr_block                           = "10.0.0.0/16"
      + default_network_acl_id               = (known after apply)
      + default_route_table_id               = (known after apply)
      + default_security_group_id            = (known after apply)
      + dhcp_options_id                      = (known after apply)
      + enable_dns_hostnames                 = true
      + enable_dns_support                   = true
      + enable_network_address_usage_metrics = (known after apply)
      + id                                   = (known after apply)
      + instance_tenancy                     = "default"
      + ipv6_association_id                  = (known after apply)
      + ipv6_cidr_block                      = (known after apply)
      + ipv6_cidr_block_network_border_group = (known after apply)
      + main_route_table_id                  = (known after apply)
      + owner_id                             = (known after apply)
      + region                               = "ap-south-1"
      + tags                                 = {
          + "Name" = "main-vpc"
        }
      + tags_all                             = {
          + "Name" = "main-vpc"
        }
    }

Plan: 8 to add, 0 to change, 0 to destroy.

Changes to Outputs:
  + ec2_public_ip    = (known after apply)
  + public_subnet_id = (known after apply)
  + vpc_id           = (known after apply)

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>terraform</category>
      <category>tutorial</category>
      <category>aws</category>
      <category>devops</category>
    </item>
    <item>
      <title>Terraform AWS EC2 Deployment – Beginner Project</title>
      <dc:creator>Pavan Reddy cheedeti</dc:creator>
      <pubDate>Wed, 19 Nov 2025 15:02:00 +0000</pubDate>
      <link>https://dev.to/pavan_reddy_8f9125a73121c/terraform-aws-ec2-deployment-beginner-project-5d78</link>
      <guid>https://dev.to/pavan_reddy_8f9125a73121c/terraform-aws-ec2-deployment-beginner-project-5d78</guid>
      <description>&lt;p&gt;Terraform AWS EC2 Deployment – Beginner Project&lt;/p&gt;

&lt;p&gt;This project demonstrates how to deploy a simple EC2 instance (t2.micro) on AWS using Terraform.&lt;br&gt;
It covers the fundamentals of Infrastructure as Code (IaC) — providers, resources, variables, outputs, security groups, and state management.&lt;/p&gt;

&lt;p&gt;🚀 Project Features&lt;/p&gt;

&lt;p&gt;AWS Provider configuration&lt;/p&gt;

&lt;p&gt;EC2 instance deployment&lt;/p&gt;

&lt;p&gt;Security Group creation&lt;/p&gt;

&lt;p&gt;SSH Key Pair for authentication&lt;/p&gt;

&lt;p&gt;Variables &amp;amp; Outputs&lt;/p&gt;

&lt;p&gt;Terraform workflow (init → plan → apply → destroy)&lt;/p&gt;

&lt;p&gt;🏗 Architecture&lt;/p&gt;

&lt;p&gt;Terraform → AWS Provider → EC2 Instance (t2.micro)&lt;br&gt;
                    └── Security Group (SSH 22)&lt;br&gt;
                    └── Key Pair&lt;br&gt;
✅ TASK 1 — Create a Simple EC2 Instance (FULL GUIDE)&lt;/p&gt;

&lt;p&gt;Directory Structure:&lt;/p&gt;

&lt;p&gt;terraform-ec2/&lt;br&gt;
 ├── main.tf&lt;br&gt;
 ├── variables.tf&lt;br&gt;
 ├── outputs.tf&lt;br&gt;
 └── terraform.tfvars&lt;/p&gt;

&lt;p&gt;STEP 1 — Install Terraform&lt;/p&gt;

&lt;p&gt;(If already installed, skip)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;terraform -v&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;STEP 2 — Create a Working Directory&lt;br&gt;
mkdir terraform-ec2&lt;br&gt;
cd terraform-ec2&lt;/p&gt;

&lt;p&gt;STEP 3 — Configure AWS Provider (main.tf)&lt;/p&gt;

&lt;p&gt;Create main.tf:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;provider "aws" {
  region = var.aws_region
}

# Key pair
resource "aws_key_pair" "my_key" {
  key_name   = "terraform-key"
  public_key = file(var.public_key_path)
}

# Security group
resource "aws_security_group" "ec2_sg" {
  name        = "ec2_sg"
  description = "Allow SSH inbound traffic"

  ingress {
    description = "SSH"
    from_port   = 22
    to_port     = 22
    protocol    = "tcp"
    cidr_blocks = ["0.0.0.0/0"]
  }

  egress {
    from_port   = 0
    to_port     = 0
    protocol    = "-1"
    cidr_blocks = ["0.0.0.0/0"]
  }
}

# EC2 instance
resource "aws_instance" "my_ec2" {
  ami           = var.ami_id
  instance_type = "t2.micro"
  key_name      = aws_key_pair.my_key.key_name
  vpc_security_group_ids = [aws_security_group.ec2_sg.id]

  tags = {
    Name = "terraform-ec2"
  }
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;STEP 4 — Create Variables File (variables.tf)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;variable "aws_region" {
  description = "AWS region"
  type        = string
}

variable "ami_id" {
  description = "AMI ID for EC2"
  type        = string
}

variable "public_key_path" {
  description = "Path to your SSH public key"
  type        = string
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;STEP 5 — Add Outputs File (outputs.tf)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;output "instance_public_ip" {
  value = aws_instance.my_ec2.public_ip
}

output "instance_id" {
  value = aws_instance.my_ec2.id
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;STEP 6 — Add Values (terraform.tfvars)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;aws_region       = "ap-south-1"
ami_id           = "ami-0f5ee92e2d63afc18"  # Amazon Linux 2 (Mumbai)
public_key_path  = "~/.ssh/id_rsa.pub"

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Use the correct AMI for your region.&lt;br&gt;
You can get it from AWS Console → EC2 → Images → AMI.&lt;/p&gt;

&lt;p&gt;STEP 7 — Create SSH Key (if you don’t have)&lt;/p&gt;

&lt;p&gt;Run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ssh-keygen -t rsa -b 4096
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Press enter 3 times.&lt;br&gt;
Your key will be created:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;~/.ssh/id_rsa
~/.ssh/id_rsa.pub

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;STEP 8 — Initialize Terraform&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;terraform init

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This downloads AWS provider plugins.&lt;/p&gt;

&lt;p&gt;STEP 9 — Validate Config&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;terraform validate

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;STEP 10 — Preview Changes&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;terraform plan
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;STEP 11 — Apply (Create the EC2)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;terraform apply

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Type yes.&lt;br&gt;
🎉 RESULT&lt;/p&gt;

&lt;p&gt;Terraform creates:&lt;br&gt;
✔ Key pair&lt;br&gt;
✔ Security group&lt;br&gt;
✔ EC2 instance (t2.micro)&lt;/p&gt;

&lt;p&gt;You will see outputs like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;instance_public_ip = "13.x.x.x"
instance_id = "i-0abcd1234efg"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;STEP 12 — Connect to your EC2 instance&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ssh -i ~/.ssh/id_rsa ec2-user@&amp;lt;PUBLIC-IP&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Amazon Linux 2 uses ec2-user.&lt;/p&gt;

&lt;p&gt;STEP 13 — Destroy Everything&lt;/p&gt;

&lt;p&gt;When done:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;terraform destroy
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Type yes.&lt;/p&gt;

</description>
      <category>devops</category>
      <category>aws</category>
      <category>terraform</category>
      <category>ai</category>
    </item>
    <item>
      <title>AWS Identity &amp; Access Management ( IAM )</title>
      <dc:creator>Pavan Reddy cheedeti</dc:creator>
      <pubDate>Fri, 07 Mar 2025 10:55:27 +0000</pubDate>
      <link>https://dev.to/pavan_reddy_8f9125a73121c/aws-identity-access-management-iam--1fp3</link>
      <guid>https://dev.to/pavan_reddy_8f9125a73121c/aws-identity-access-management-iam--1fp3</guid>
      <description>&lt;h2&gt;
  
  
  IAM is a service that helps you securely control access to AWS resources.
&lt;/h2&gt;

&lt;p&gt;It allows you to manage users, roles, and permissions to define who can access what within your AWS environment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Free Service: IAM is offered at no additional cost&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Global Service&lt;/li&gt;
&lt;li&gt;Root account created by default, shouldn't be used or shared&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Create Users&lt;/strong&gt;: You can create individual user accounts for people who need access to your AWS resources.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Assign Permissions&lt;/strong&gt;: You can assign specific permissions to users, groups, or roles to control what actions they can perform on AWS services.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Create Groups&lt;/strong&gt;: You can group users together and assign permissions to the group, making management easier for multiple users.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Create Roles&lt;/strong&gt;: You can create roles to assign temporary permissions to AWS services or users, especially useful for securely managing permissions across different AS resources.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Define Policies&lt;/strong&gt;: You can create and attach custom policies to define fine-grained permissions for controlling access to AWS resources.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Manage Federated Access&lt;/strong&gt;: IAM allows integrating with external identity providers (like Active Directory) for centralized management of user access across AWS.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  MFA
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;MFA (Multi-Factor Authentication)&lt;/strong&gt; is an extra layer of security that requires users to provide two or more forms of verification, like a password and a code from their phone, to access their accounts.&lt;br&gt;
&lt;em&gt;Ex: username + password + security code.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;IAM Ways of accessing AWS&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The AWS Management Console provides a graphical, web-based approach.&lt;/li&gt;
&lt;li&gt;The AWS CLI provides a command-line, scripting approach.&lt;/li&gt;
&lt;li&gt;AWS SDKs and APls offer programmatic, code-based access, allowing users to integrate AWS directly into their
applications.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;AWS IAM Best Practices&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Avoid using root account except of account setup.&lt;/li&gt;
&lt;li&gt;Add user to a group and assign permission tò group&lt;/li&gt;
&lt;li&gt;Use password policy or MFA&lt;/li&gt;
&lt;li&gt;Use ACCESS KEYS for CLI/SDK&lt;/li&gt;
&lt;li&gt;Never share ACCESS KEYS or Password&lt;/li&gt;
&lt;li&gt;Audit the permission using IAM credential report.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devops</category>
      <category>cloud</category>
      <category>aws</category>
    </item>
    <item>
      <title>"My Journey into DevOps: Learning, Building, and Growing 🚀"</title>
      <dc:creator>Pavan Reddy cheedeti</dc:creator>
      <pubDate>Thu, 06 Mar 2025 12:11:04 +0000</pubDate>
      <link>https://dev.to/pavan_reddy_8f9125a73121c/my-journey-into-devops-learning-building-and-growing--4h1b</link>
      <guid>https://dev.to/pavan_reddy_8f9125a73121c/my-journey-into-devops-learning-building-and-growing--4h1b</guid>
      <description>&lt;p&gt;Hey everyone! I'm Pavan reddy More, My goal? Become a DevOps Engineer! 💪&lt;/p&gt;

&lt;p&gt;💡 What I'm Learning:&lt;br&gt;
✅ AWS (EC2, IAM, CodePipeline)&lt;br&gt;
✅ Linux &amp;amp; Shell Scripting&lt;br&gt;
✅ CI/CD with GitHub Actions &amp;amp; AWS CodePipeline&lt;br&gt;
✅ jenkins,Docker &amp;amp; Kubernetes (Coming soon!)&lt;/p&gt;

&lt;p&gt;I'll be sharing my learnings, projects, and challenges as I move from Cloud to DevOps. Excited to connect and grow with this amazing community! 🙌&lt;/p&gt;

&lt;p&gt;🚀 Let’s build, automate, and deploy together! Drop a comment if you're on a similar journey!&lt;/p&gt;

&lt;p&gt;DevOps #AWS #CloudComputing #CI/CD #Linux #jenkins #Docker #Kubernetes&lt;/p&gt;

</description>
      <category>devops</category>
      <category>cloud</category>
      <category>aws</category>
      <category>jenkins</category>
    </item>
  </channel>
</rss>
