Ravindra BagaleCourses & study guides English

STS ने Temporary AWS Credentials Step by Step मिळवा

Lab: एका bucket साठी S3-read role, CLI ने AssumeRole, session token ने prove, मग सगळं delete.

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

  • Trust + S3 read role
  • CLI ने AssumeRole
  • Temporary creds export
  • Allow/deny prove
  • Cleanup

1. Lab: click by click

कसं करायचं (step by step)

Region ap-south-1. Role create + AssumeRole करता येईल अशी identity हवी. ACCOUNT/BUCKET बदला.

A. Bucket आणि policy

  1. Bucket + hello.txt=ok.
  2. Policy JSON:
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["s3:ListBucket"],
      "Resource": "arn:aws:s3:::BUCKET"
    },
    {
      "Effect": "Allow",
      "Action": ["s3:GetObject"],
      "Resource": "arn:aws:s3:::BUCKET/*"
    }
  ]
}
  1. Name lab-sts-s3-read.

B. Role + trust

  1. Create role → custom trust.
  2. Trust JSON:
{
  "Version": "2012-10-17",
  "Statement": [{
    "Effect": "Allow",
    "Principal": { "AWS": "arn:aws:iam::ACCOUNT:user/USER" },
    "Action": "sts:AssumeRole"
  }]
}
  1. Attach policy. Name lab-sts-assumer.
  2. Identity Center असेल तर Principal = permission-set role ARN.

C. AssumeRole आणि prove

  1. Trusted principal ने CLI:
aws sts get-caller-identity
aws sts assume-role \
  --role-arn arn:aws:iam::ACCOUNT:role/lab-sts-assumer \
  --role-session-name ravi-lab \
  --duration-seconds 900
# Copy AccessKeyId, SecretAccessKey, SessionToken from Credentials
  1. Export करून test:
export AWS_ACCESS_KEY_ID=...
export AWS_SECRET_ACCESS_KEY=...
export AWS_SESSION_TOKEN=...
aws sts get-caller-identity
# Arn should mention assumed-role/lab-sts-assumer/ravi-lab
aws s3 cp s3://BUCKET/hello.txt -
# expect: ok
# aws s3 ls s3://some-other-bucket   # should be AccessDenied
  1. Unset करा.

Cleanup

  1. Role delete.
  2. Policy delete.
  3. Bucket delete.
  4. Shell मधून temp keys काढा.

Ravindra Bagale's Tip

AssumeRole fail = दोन्ही बाजू तपासा: user permission + trust Principal ARN.

2. Interview

प्र. RoleSessionName का?

CloudTrail audit.

प्र. 900 seconds?

Leak window छोटं.

प्र. SessionToken विसरले?

तीनही लागतात.

प्र. Trust चुकला?

Permissions बरोबर असूनही Deny.

घरी करून बघा

  1. ExternalId condition + CLI flag.
  2. पुढे: Identity Center (SSO).

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

  1. Trust + tight permissions.
  2. AssumeRole → तीन values → APIs.
  3. Allow/deny prove.
  4. Lab नंतर cleanup.

सराव Tasks

या scenario बद्दल

Jakarta Batik हा जकार्ता मधला हस्तकला व्यवसाय आहे. Siti Rahmawati त्यांचं IT व cloud काम पाहतात. त्यांचे पैसे IDR मध्ये मोजले जातात आणि AWS resources ap-southeast-3 Region मध्ये चालतात. खालच्या tasks मध्ये तुम्ही या lesson मध्ये शिकलेलं वापरून त्यांची खरी कामं करता. सगळी नावं, account IDs, IP addresses व numbers सरावासाठी काल्पनिक आहेत.

0 / 10

सोपं तुम्ही कोण म्हणून login आहात ते पाहा

का: बदल करण्याआधी account व identity नेहमी तपासा.

काय करायचं: तुमचा CLI वापरत असलेल्या identity चा account ID व ARN दाखवा.

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

सोपं /16 मध्ये किती addresses?

का: VPC size ठरवायला ही संख्या लागते.

काय करायचं: Jakarta Batik चा VPC 10.115.0.0/16. एकूण किती IP addresses?

कसं करायचं:
  1. Task मधले numbers लिहून घ्या.
  2. कागदावर step by step काढा.
  3. Box मध्ये फक्त final उत्तर लिहा.
  4. Check answer दाबा.

मध्यम Role assume करा

का: AssumeRole दुसऱ्या role च्या, बहुदा दुसऱ्या account मधल्या, अल्पकालीन keys देतो.

काय करायचं: Role arn:aws:iam::129471578432:role/Auditor session नाव siti-audit ने assume करा.

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

मध्यम "Access denied" message decode करा

का: काही errors encoded येतात; decode केल्यावर कोणत्या policy ने अडवलं ते कळतं.

काय करायचं: Shell variable $MSG मधला authorization message decode करा.

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

मध्यम EC2 role साठी trust policy

का: Trust policy role कोण घेऊ शकतो ते सांगते.

काय करायचं: ec2.amazonaws.com ला role assume करू देणारी trust policy लिहा.

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

मध्यम ECS task role साठी trust policy

का: Trust policy role कोण घेऊ शकतो ते सांगते.

काय करायचं: ecs-tasks.amazonaws.com ला role assume करू देणारी trust policy लिहा.

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

मध्यम Lambda role साठी trust policy

का: Trust policy role कोण घेऊ शकतो ते सांगते.

काय करायचं: lambda.amazonaws.com ला role assume करू देणारी trust policy लिहा.

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

अवघड दुसऱ्या account ला role assume करू द्या

का: Access keys share करण्यापेक्षा cross-account roles सुरक्षित.

काय करायचं: Account 111122223333 ला हा role assume करू देणारी trust policy लिहा.

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

अवघड 15 मिनिटांसाठी role assume करा

का: Keys leak झाल्यास छोटे sessions धोका कमी करतात.

काय करायचं: arn:aws:iam::129471578432:role/Deployer ला session नाव deploy-job ने 900 seconds साठी assume करा.

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

अवघड MFA सह session token घ्या

का: काही actions ना MFA लागतो. get-session-token MFA proof असलेल्या keys देतो.

काय करायचं: MFA device arn:aws:iam::129471578432:mfa/siti व code 123456 वापरून session token घ्या.

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

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

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

उजळणी card: Lab: tight trust असलेली role. Trust चुकीचं = permissions OK असूनही AccessDenied. S3-read policy + trust=your user + attach. Policy → role trust → attach → ARN copy. Correct Principal → success; wrong → AccessDenied.
उजळणी card: Lab: tight trust असलेली role · PNG download करा · Card page उघडा
उजळणी card: AssumeRole आणि access prove. Prove नसेल तर admin user च वापरतोय का कळत नाही. Export → caller-identity → lab allow / other deny. Export → s3 ls lab OK; other AccessDenied. assumed-role ARN + lab OK + other deny.
उजळणी card: AssumeRole आणि access prove · PNG download करा · Card page उघडा
उजळणी card: STS lab cleanup. विसरलेल्या roles/buckets = पुढच्या lab मध्ये गोंधळ. Unset env → delete role/policy/bucket same day. unset → delete role/policy/bucket. Normal user परत; lab role गेली.
उजळणी card: STS lab cleanup · PNG download करा · Card page उघडा
मुलाखत card: RoleSessionName आणि short duration का?. SessionName = CloudTrail audit. Short duration = smaller leak window. Vague name + long duration = worse incidents. Clear name + 900 seconds in the lab.
मुलाखत card: RoleSessionName आणि short duration का? · PNG download करा · Card page उघडा
मुलाखत card: Policy OK असून AssumeRole AccessDenied?. आधी trust Principal/Condition तपासा. Caller needs sts:AssumeRole; ExternalId/MFA must match. Fix Principal → assume → test with session.
मुलाखत card: Policy OK असून AssumeRole AccessDenied? · PNG download करा · Card page उघडा

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