Conditions असलेली IAM Policy Step by Step लिहा
S3 read फक्त तुमच्या IP (किंवा MFA) वर Allow करणारी customer-managed policy. Role attach, allow/deny prove, cleanup.
या chapter मध्ये तुम्ही काय शिकाल
- SourceIp किंवा MFA Condition
- Lab role ला attach
- Allowed path prove
- Deny prove
- Cleanup
1. Lab: click by click
कसं करायचं (step by step)
Region ap-south-1. Public IP शोधा — home IP बदलते; स्थिर lab साठी MFA Condition चांगली. दोन्ही दाखवतो.
A. Bucket
- Bucket + hello.txt.
B. Condition policy
- एक variant निवडा.
- Variant 1 — IP:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ListIfFromMyIp",
"Effect": "Allow",
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::BUCKET",
"Condition": {
"IpAddress": { "aws:SourceIp": "YOUR.IP.ADDR.ESS/32" }
}
},
{
"Sid": "GetIfFromMyIp",
"Effect": "Allow",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::BUCKET/*",
"Condition": {
"IpAddress": { "aws:SourceIp": "YOUR.IP.ADDR.ESS/32" }
}
}
]
}
- Variant 2 — MFA:
{
"Version": "2012-10-17",
"Statement": [{
"Sid": "ReadOnlyWithMfa",
"Effect": "Allow",
"Action": ["s3:ListBucket", "s3:GetObject"],
"Resource": [
"arn:aws:s3:::BUCKET",
"arn:aws:s3:::BUCKET/*"
],
"Condition": {
"Bool": { "aws:MultiFactorAuthPresent": "true" }
}
}]
}
- Name
lab-s3-read-conditioned.
C. Role आणि prove
- Role/permission set + policy.
- Allowed path:
aws s3 cp s3://BUCKET/hello.txt -
# expect: ok
- Deny test: वेगळा IP किंवा MFA नसलेलं session.
- Optional: दुसऱ्या Region ला explicit Deny.
Cleanup
- Role/assignment काढा.
- Policy delete.
- Bucket delete.
Ravindra Bagale's Tip
CloudShell = AWS IPs — SourceIp अनेकदा Deny. Laptop CLI किंवा MFA variant.
2. Interview
प्र. दोन्हीवर Condition?
प्रत्येक statement ला / एकत्र काळजीपूर्वक.
प्र. Bool "true"?
IAM मध्ये string "true".
प्र. /32?
एक address; office साठी CIDR काळजीपूर्वक.
प्र. Deny vs Allow नसणं?
Allow नसणं पुरे; Explicit Deny = स्पष्ट + भविष्यातील Allow ला मात.
घरी करून बघा
- RequestedRegion = ap-south-1.
- मित्राला trust vs permissions vs Condition समजावून सांगा.
थोडक्यात सांगायचं तर
- Condition = Allow कधी.
- Allow आणि deny दोन्ही.
- CloudShell vs SourceIp.
- Cleanup.
सराव Tasks
Zurich Insurance Partners हा झुरिच मधला विमा व्यवसाय आहे. Anna Müller त्यांचं IT व cloud काम पाहतात. त्यांचे पैसे CHF मध्ये मोजले जातात आणि AWS resources eu-central-2 Region मध्ये चालतात. खालच्या tasks मध्ये तुम्ही या lesson मध्ये शिकलेलं वापरून त्यांची खरी कामं करता. सगळी नावं, account IDs, IP addresses व numbers सरावासाठी काल्पनिक आहेत.
0 / 12
सोपं एका bucket ला read-only access
का: Least privilege: कामाला लागणारे actions व bucket च द्या.
काय करायचं: User ला फक्त zurichinsure-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:eu-central-2:131130276334:table/zurichinsure-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 131130276334, Region eu-central-2 मधल्या सगळ्या 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 वर चालतो.
काय करायचं: zurichinsure-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 करू शकत नाहीत.
काय करायचं: zurichinsure-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 पासून zurichinsure-s3-read नावाची policy बनवा.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. 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 = zurichinsure असेल तेव्हाच * वर ec2:StopInstances allow करा.
- { "Version": "2012-10-17", "Statement": [ ... ] } ने सुरू करा.
- प्रत्येक statement मध्ये Effect, Action व Resource लिहा.
- Task ला लागेल तेवढंच द्या (least privilege).
- Double quotes व commas नीट वापरा. Check answer दाबा.
अवघड वापरण्याआधी policy test करा
का: Policy simulator action न करता ते allow होईल का ते सांगतो.
काय करायचं: User arn:aws:iam::131130276334:user/anna s3:GetObject call करू शकतो का ते तपासा.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
अवघड Delete साठी MFA आवश्यक
का: धोकादायक actions ला MFA हवा.
काय करायचं: MFA नसताना (aws:MultiFactorAuthPresent false) arn:aws:s3:::zurichinsure-data/* वर s3:DeleteObject deny करा.
- { "Version": "2012-10-17", "Statement": [ ... ] } ने सुरू करा.
- प्रत्येक statement मध्ये Effect, Action व Resource लिहा.
- Task ला लागेल तेवढंच द्या (least privilege).
- Double quotes व commas नीट वापरा. Check answer दाबा.
अवघड इतर Regions block करा (SCP)
का: Data rules aws:RequestedRegion ने लागू करतात.
काय करायचं: aws:RequestedRegion eu-central-2 नसेल तेव्हा * वर ec2:* deny करा.
- { "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.