Ravindra BagaleCourses & study guides English

AWS IAM Users, Roles, Policies आणि Least Privilege सोप्या भाषेत

IAM = AWS च्या कुलूप-चाव्या. Users = लोकांच्या चाव्या. Roles = तात्पुरते jacket. Policies = नियम. Least privilege = काम होईल इतक्याच छोट्या चाव्या.

या chapter मध्ये तुम्ही काय शिकाल

  • Users, groups, roles
  • Identity vs resource policies
  • Managed vs inline
  • Trust vs permissions
  • Least privilege, MFA, root

1. रोजचं उदाहरण

हे का लागतं?

Pune office: receptionist ला server room key नको. Cleaning ला time-bound pass. AWS तसंच — नाहीतर एक leaked key = bank रिकामं.

हे काय आहे?

IAM = कोण, कोणत्या API ने, कोणत्या resource वर.

IdentityकशासाठीExample
Root userफक्त owner — MFA, रोज नकोसकाळी दुकान उघडणं
IAM userमानव (आता SSO चांगलं)Staff badge
Groupअनेक users ला एकत्र policydevelopers team
RoleEC2/Lambda/SSO तात्पुरतं1 तासाचं jacket

2. Policies सोप्या भाषेत

हे का लागतं?

Policy शिवाय identity जवळजवळ काही करू शकत नाही.

हे काय आहे?

  • Permissions policy: actions on resources.
  • Trust policy: कोण AssumeRole करू शकतो.
  • AWS managed: सोयीस्कर, अनेकदा broad.
  • Customer managed: least privilege साठी उत्तम.
  • Inline: एकाच identity ला — क्वचित.
{
  "Version": "2012-10-17",
  "Statement": [{
    "Effect": "Allow",
    "Action": ["s3:GetObject"],
    "Resource": "arn:aws:s3:::lab-bucket/*"
  }]
}

3. Least privilege सवयी

  1. EC2/Lambda वर keys ऐवजी roles.
  2. Resource ARN scope — शक्य तो * नको.
  3. Deploy ≠ read-only.
  4. Humans ला MFA; root share नको.
  5. CloudTrail ON.

Ravindra Bagale's Tip

रोजच्या कामासाठी AdministratorAccess = चूक. Custom/power-user; admin = break-glass.

4. Interview

प्र. User vs role?

User दीर्घ; role तात्पुरतं assume.

प्र. Trust policy?

Role कोण assume करेल.

प्र. Inline vs managed?

Inline एक; managed reusable.

प्र. Explicit Deny?

Deny नेहमी जिंकतो.

प्र. Root रोज का नको?

Unlimited; breach = पूर्ण account.

घरी करून बघा

  1. Lab users यादी; न वापरलेल्या keys disable.
  2. पुढचा: EC2+Lambda role lab.

थोडक्यात सांगायचं तर

  1. Users/groups/roles + policies.
  2. Trust ≠ permissions.
  3. Least privilege + MFA.
  4. Root = क्वचित.

सराव Tasks

या scenario बद्दल

Patil Dairy हा कोल्हापूर मधला डेअरी व्यवसाय आहे. Sunita Patil त्यांचं IT व cloud काम पाहतात. त्यांचे पैसे INR मध्ये मोजले जातात आणि AWS resources ap-south-1 Region मध्ये चालतात. खालच्या tasks मध्ये तुम्ही या lesson मध्ये शिकलेलं वापरून त्यांची खरी कामं करता. सगळी नावं, account IDs, IP addresses व numbers सरावासाठी काल्पनिक आहेत.

0 / 12

सोपं एका bucket ला read-only access

का: Least privilege: कामाला लागणारे actions व bucket च द्या.

काय करायचं: User ला फक्त patildairy-data bucket मधले objects वाचू (s3:GetObject) देणारी identity policy लिहा.

कसं करायचं:
  1. { "Version": "2012-10-17", "Statement": [ ... ] } ने सुरू करा.
  2. प्रत्येक statement मध्ये Effect, Action व Resource लिहा.
  3. Task ला लागेल तेवढंच द्या (least privilege).
  4. Double quotes व commas नीट वापरा. Check answer दाबा.

मध्यम एका table ला Lambda access

का: Function ला फक्त स्वतःच्या table मध्ये वाचणं/लिहिणं लागतं.

काय करायचं: फक्त arn:aws:dynamodb:ap-south-1:100444365147:table/patildairy-orders वर dynamodb:GetItem, dynamodb:PutItem, dynamodb:Query allow करा.

कसं करायचं:
  1. { "Version": "2012-10-17", "Statement": [ ... ] } ने सुरू करा.
  2. प्रत्येक statement मध्ये Effect, Action व Resource लिहा.
  3. Task ला लागेल तेवढंच द्या (least privilege).
  4. Double quotes व commas नीट वापरा. Check answer दाबा.

मध्यम फक्त servers start/stop

का: Night operator servers start/stop करू शकतो पण terminate नाही.

काय करायचं: Account 100444365147, Region ap-south-1 मधल्या सगळ्या instances वर ec2:StartInstances व ec2:StopInstances, व * वर ec2:DescribeInstances allow करा.

कसं करायचं:
  1. { "Version": "2012-10-17", "Statement": [ ... ] } ने सुरू करा.
  2. प्रत्येक statement मध्ये Effect, Action व Resource लिहा.
  3. Task ला लागेल तेवढंच द्या (least privilege).
  4. Double quotes व commas नीट वापरा. Check answer दाबा.

मध्यम एक bucket list व read

का: ListBucket bucket ARN वर; GetObject object ARNs वर चालतो.

काय करायचं: patildairy-data bucket वर s3:ListBucket व सगळ्या objects वर s3:GetObject allow करा. बाकी काही नाही.

कसं करायचं:
  1. { "Version": "2012-10-17", "Statement": [ ... ] } ने सुरू करा.
  2. प्रत्येक statement मध्ये Effect, Action व Resource लिहा.
  3. Task ला लागेल तेवढंच द्या (least privilege).
  4. Double quotes व commas नीट वापरा. Check answer दाबा.

मध्यम एका folder मध्ये फक्त upload

का: Field staff files टाकू शकतात पण वाचू/delete करू शकत नाहीत.

काय करायचं: patildairy-data मध्ये फक्त uploads/ prefix खाली s3:PutObject allow करा.

कसं करायचं:
  1. { "Version": "2012-10-17", "Statement": [ ... ] } ने सुरू करा.
  2. प्रत्येक statement मध्ये Effect, Action व Resource लिहा.
  3. Task ला लागेल तेवढंच द्या (least privilege).
  4. Double quotes व commas नीट वापरा. Check answer दाबा.

मध्यम Group ला managed policy लावा

का: AWS managed policies तयार असतात व AWS त्या update ठेवतो.

काय करायचं: AWS managed policy arn:aws:iam::aws:policy/ReadOnlyAccess ला Auditors group ला attach करा.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

मध्यम Customer managed policy बनवा

का: स्वतःची managed policy अनेक users, groups व roles वर वापरता येते.

काय करायचं: policy.json मधल्या document पासून patildairy-s3-read नावाची policy बनवा.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

मध्यम Function ला logs लिहू द्या

का: या actions शिवाय Lambda logs CloudWatch मध्ये दिसत नाहीत.

काय करायचं: फक्त arn:aws:logs:*:*:* वर logs:CreateLogGroup, logs:CreateLogStream, logs:PutLogEvents allow करा.

कसं करायचं:
  1. { "Version": "2012-10-17", "Statement": [ ... ] } ने सुरू करा.
  2. प्रत्येक statement मध्ये Effect, Action व Resource लिहा.
  3. Task ला लागेल तेवढंच द्या (least privilege).
  4. Double quotes व commas नीट वापरा. Check answer दाबा.

अवघड Office बाहेरून access deny

का: aws:SourceIp सह explicit Deny इतर ठिकाणांहून keys वापर रोखतो.

काय करायचं: एक Deny statement: source IP 203.0.113.0/24 मध्ये नसेल तेव्हा * resources वर * actions deny.

कसं करायचं:
  1. { "Version": "2012-10-17", "Statement": [ ... ] } ने सुरू करा.
  2. प्रत्येक statement मध्ये Effect, Action व Resource लिहा.
  3. Task ला लागेल तेवढंच द्या (least privilege).
  4. Double quotes व commas नीट वापरा. Check answer दाबा.

अवघड फक्त tagged servers वर allow

का: Tag conditions मुळे team फक्त स्वतःचे servers हाताळते.

काय करायचं: Instance tag Team = patildairy असेल तेव्हाच * वर ec2:StopInstances allow करा.

कसं करायचं:
  1. { "Version": "2012-10-17", "Statement": [ ... ] } ने सुरू करा.
  2. प्रत्येक statement मध्ये Effect, Action व Resource लिहा.
  3. Task ला लागेल तेवढंच द्या (least privilege).
  4. Double quotes व commas नीट वापरा. Check answer दाबा.

अवघड User ला inline policy द्या

का: Inline policy एकाच identity मध्ये राहते व तिच्यासोबत delete होते.

काय करायचं: User sunita वर billing.json मधून billing-view नावाची inline policy टाका.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

अवघड एका role साठी PassRole allow

का: Role सह EC2 launch करायला त्या role वर iam:PassRole लागतं.

काय करायचं: फक्त arn:aws:iam::100444365147:role/patildairy-ec2-role वर iam:PassRole allow करा.

कसं करायचं:
  1. { "Version": "2012-10-17", "Statement": [ ... ] } ने सुरू करा.
  2. प्रत्येक statement मध्ये Effect, Action व Resource लिहा.
  3. Task ला लागेल तेवढंच द्या (least privilege).
  4. Double quotes व commas नीट वापरा. Check answer दाबा.

उजळणी, तुलना आणि मुलाखत cards

हा lesson काही मिनिटांत revise करा. Cards phone वर save करा किंवा PNG download करा. प्रत्येक card वरचा QR हा lesson उघडतो.

उजळणी card: IAM users, roles, policies. Root रोज + shared keys = interview red flag. IAM = who/what. Users = long-lived; roles = assume; policies = JSON. Roles/IDC + least privilege + MFA. EC2 → instance role → S3; keys AMI मध्ये नको.
उजळणी card: IAM users, roles, policies · PNG download करा · Card page उघडा
उजळणी card: Least privilege. Admin everywhere = एक leak = पूर्ण account. फक्त हवे ते actions/ARNs; customer-managed prefer. एक bucket GetObject → test → मगच वाढ. Compromise झाले तरी DeleteBucket नाही.
उजळणी card: Least privilege · PNG download करा · Card page उघडा
उजळणी card: Trust policy vs permissions. Assume कोण vs role काय करू शकतो — गोंधळ. Trust = कोण assume. Permissions = API actions. Trust ec2.amazonaws.com; perms GetObject. EC2 trust ≠ Lambda; वेगळी execution role.
उजळणी card: Trust policy vs permissions · PNG download करा · Card page उघडा
तुलना: IAM user vs IAM role. IAM user: Long-lived password/keys. IAM role: Temporary AssumeRole creds.
तुलना: IAM user vs IAM role · PNG download करा · Card page उघडा
मुलाखत card: Root रोज का वापरू नये?. Root = unrestricted; leak = account गेला. Daily = MFA admin; root locked. Root MFA; no root access keys.
मुलाखत card: Root रोज का वापरू नये? · PNG download करा · Card page उघडा
मुलाखत card: EC2 वर roles vs access keys?. Roles = temporary; keys = leak. Roles = rotate pain कमी. Instance profile; no AKIA on disk.
मुलाखत card: EC2 वर roles vs access keys? · PNG download करा · Card page उघडा

अजून cards: Ravi Sir's Cards.