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 ला एकत्र policy | developers team |
| Role | EC2/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 सवयी
- EC2/Lambda वर keys ऐवजी roles.
- Resource ARN scope — शक्य तो * नको.
- Deploy ≠ read-only.
- Humans ला MFA; root share नको.
- 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.
घरी करून बघा
- Lab users यादी; न वापरलेल्या keys disable.
- पुढचा: EC2+Lambda role lab.
थोडक्यात सांगायचं तर
- Users/groups/roles + policies.
- Trust ≠ permissions.
- Least privilege + MFA.
- Root = क्वचित.
सराव Tasks
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 लिहा.
- { "Version": "2012-10-17", "Statement": [ ... ] } ने सुरू करा.
- प्रत्येक statement मध्ये Effect, Action व Resource लिहा.
- Task ला लागेल तेवढंच द्या (least privilege).
- 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 करा.
- { "Version": "2012-10-17", "Statement": [ ... ] } ने सुरू करा.
- प्रत्येक statement मध्ये Effect, Action व Resource लिहा.
- Task ला लागेल तेवढंच द्या (least privilege).
- 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 करा.
- { "Version": "2012-10-17", "Statement": [ ... ] } ने सुरू करा.
- प्रत्येक statement मध्ये Effect, Action व Resource लिहा.
- Task ला लागेल तेवढंच द्या (least privilege).
- Double quotes व commas नीट वापरा. Check answer दाबा.
मध्यम एक bucket list व read
का: ListBucket bucket ARN वर; GetObject object ARNs वर चालतो.
काय करायचं: patildairy-data bucket वर s3:ListBucket व सगळ्या objects वर s3:GetObject allow करा. बाकी काही नाही.
- { "Version": "2012-10-17", "Statement": [ ... ] } ने सुरू करा.
- प्रत्येक statement मध्ये Effect, Action व Resource लिहा.
- Task ला लागेल तेवढंच द्या (least privilege).
- Double quotes व commas नीट वापरा. Check answer दाबा.
मध्यम एका folder मध्ये फक्त upload
का: Field staff files टाकू शकतात पण वाचू/delete करू शकत नाहीत.
काय करायचं: patildairy-data मध्ये फक्त uploads/ prefix खाली s3:PutObject allow करा.
- { "Version": "2012-10-17", "Statement": [ ... ] } ने सुरू करा.
- प्रत्येक statement मध्ये Effect, Action व Resource लिहा.
- Task ला लागेल तेवढंच द्या (least privilege).
- 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 करा.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
मध्यम Customer managed policy बनवा
का: स्वतःची managed policy अनेक users, groups व roles वर वापरता येते.
काय करायचं: policy.json मधल्या document पासून patildairy-s3-read नावाची policy बनवा.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
मध्यम Function ला logs लिहू द्या
का: या actions शिवाय Lambda logs CloudWatch मध्ये दिसत नाहीत.
काय करायचं: फक्त arn:aws:logs:*:*:* वर logs:CreateLogGroup, logs:CreateLogStream, logs:PutLogEvents allow करा.
- { "Version": "2012-10-17", "Statement": [ ... ] } ने सुरू करा.
- प्रत्येक statement मध्ये Effect, Action व Resource लिहा.
- Task ला लागेल तेवढंच द्या (least privilege).
- 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.
- { "Version": "2012-10-17", "Statement": [ ... ] } ने सुरू करा.
- प्रत्येक statement मध्ये Effect, Action व Resource लिहा.
- Task ला लागेल तेवढंच द्या (least privilege).
- Double quotes व commas नीट वापरा. Check answer दाबा.
अवघड फक्त tagged servers वर allow
का: Tag conditions मुळे team फक्त स्वतःचे servers हाताळते.
काय करायचं: Instance tag Team = patildairy असेल तेव्हाच * वर ec2:StopInstances allow करा.
- { "Version": "2012-10-17", "Statement": [ ... ] } ने सुरू करा.
- प्रत्येक statement मध्ये Effect, Action व Resource लिहा.
- Task ला लागेल तेवढंच द्या (least privilege).
- Double quotes व commas नीट वापरा. Check answer दाबा.
अवघड User ला inline policy द्या
का: Inline policy एकाच identity मध्ये राहते व तिच्यासोबत delete होते.
काय करायचं: User sunita वर billing.json मधून billing-view नावाची inline policy टाका.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
अवघड एका role साठी PassRole allow
का: Role सह EC2 launch करायला त्या role वर iam:PassRole लागतं.
काय करायचं: फक्त arn:aws:iam::100444365147:role/patildairy-ec2-role वर iam:PassRole allow करा.
- { "Version": "2012-10-17", "Statement": [ ... ] } ने सुरू करा.
- प्रत्येक statement मध्ये Effect, Action व Resource लिहा.
- Task ला लागेल तेवढंच द्या (least privilege).
- Double quotes व commas नीट वापरा. Check answer दाबा.
उजळणी, तुलना आणि मुलाखत cards
हा lesson काही मिनिटांत revise करा. Cards phone वर save करा किंवा PNG download करा. प्रत्येक card वरचा QR हा lesson उघडतो.






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