AWS IAM Roles: 10 प्रॅक्टिकल उदाहरणं Step by Step
IAM role म्हणजे hotel चं key card. Reception तुम्हाला stay पुरतं देतं. ते फक्त तुमची room आणि gym उघडतं. Check-out केल्यावर बंद. तुमच्या code ला AWS असंच card देतं.
या chapter मध्ये तुम्ही काय शिकाल
- 10 खरी IAM role उदाहरणं, सोप्यापासून
- प्रत्येकासाठी trust policy आणि permissions policy
- Console clicks, CLI check आणि expected output
- Role attach असेल तर code ला access keys का लागत नाहीत
- नेहमीच्या errors आणि त्यांचे fix
1. आधी रोजचं उदाहरण
हे का लागतं?
Hinjewadi, Pune मधल्या office चा visitor badge आठवा.
Security visitor ला master key देत नाही. एका floor साठी, एका दिवसासाठी badge देतात.
AWS मध्ये long-lived access keys म्हणजे master key. Role म्हणजे visitor badge.
हे काय आहे?
प्रत्येक role ला दोन भाग असतात. खालच्या 10 उदाहरणांसाठी हे लक्षात ठेवा.
- Trust policy — badge कोण घालू शकतो (EC2, Lambda, दुसरा account, GitHub).
- Permissions policy — badge कोणते दरवाजे उघडतो (S3 read, DynamoDB write).
सगळी उदाहरणं region ap-south-1 (Mumbai) मध्ये. 111111111111 च्या जागी तुमचा account id टाका.
2. उदाहरण 1: EC2 S3 bucket वाचतो
हे का लागतं?
EC2 वरच्या app ला S3 मधून files वाचायच्या आहेत. Beginners access keys ~/.aws/credentials मध्ये टाकतात. Server मध्ये घुसणाऱ्याला keys मिळतात.
हे काय आहे?
Instance profile म्हणजे role EC2 पर्यंत नेणारा डबा. Instance ला metadata service कडून ताज्या temporary keys मिळतात. Disk वर keys नाहीत.
Trust policy (role कोण वापरू शकतो):
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Principal": { "Service": "ec2.amazonaws.com" },
"Action": "sts:AssumeRole"
}]
}
Permissions policy (role काय करू शकतो):
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": ["s3:GetObject", "s3:ListBucket"],
"Resource": [
"arn:aws:s3:::ravi-app-files",
"arn:aws:s3:::ravi-app-files/*"
]
}]
}
कसं करायचं (step by step)
- IAM → Roles → Create role.
- Trusted entity: AWS service → Use case EC2 → Next.
- वरची permissions policy
ec2-s3-read-raviनावाने बनवा आणि select करा. - Role name:
ec2-s3-read-role→ Create role. - EC2 → instance select → Actions → Security → Modify IAM role → role निवडा → Update.
CLI ने verify करा:
# run on the EC2 instance
aws sts get-caller-identity
aws s3 ls s3://ravi-app-files/ --region ap-south-1
Expected output:
"Arn": "arn:aws:sts::111111111111:assumed-role/ec2-s3-read-role/i-0abc123..."
2026-10-24 10:00:00 1024 report.csv
हे नसेल तर काय तुटतं
Role नसेल तर Unable to locate credentials येतं. मग लोक keys paste करतात, आणि keys leak होतात.
3. उदाहरण 2: Lambda DynamoDB मध्ये लिहितो
हे का लागतं?
Order API Lambda ला orders save करायच्या आहेत. पूर्ण table delete करता येऊ नये.
हे काय आहे?
Execution role म्हणजे Lambda प्रत्येक run ला घालतो ती role.
Trust policy (role कोण वापरू शकतो):
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Principal": { "Service": "lambda.amazonaws.com" },
"Action": "sts:AssumeRole"
}]
}
Permissions policy (role काय करू शकतो):
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": ["dynamodb:PutItem", "dynamodb:GetItem"],
"Resource": "arn:aws:dynamodb:ap-south-1:111111111111:table/Orders"
}]
}
कसं करायचं (step by step)
- IAM → Roles → Create role → AWS service → Lambda.
- वरची policy (
lambda-orders-write) आणिAWSLambdaBasicExecutionRoleattach करा. - Role name:
orders-lambda-role. - Lambda → function → Configuration → Permissions → Edit → ही role निवडा → Save.
CLI ने verify करा:
aws lambda invoke --function-name orders-api \
--payload '{"id":"o1"}' --cli-binary-format raw-in-base64-out \
out.json --region ap-south-1
aws dynamodb get-item --table-name Orders \
--key '{"id":{"S":"o1"}}' --region ap-south-1
Expected output:
{ "StatusCode": 200 }
{ "Item": { "id": { "S": "o1" } } }
हे नसेल तर काय तुटतं
PutItem नसेल तर logs मध्ये AccessDeniedException ... not authorized to perform: dynamodb:PutItem दिसतं.
4. उदाहरण 3: Lambda CloudWatch Logs लिहितो
हे का लागतं?
तुमच्या print() किंवा console.log() lines CloudWatch ला पोहोचल्या पाहिजेत. नाहीतर debugging अंधारात.
हे काय आहे?
AWSLambdaBasicExecutionRole ही AWS managed policy आहे. ती फक्त log group आणि log stream लिहू देते.
Trust policy (role कोण वापरू शकतो):
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Principal": { "Service": "lambda.amazonaws.com" },
"Action": "sts:AssumeRole"
}]
}
Permissions policy (role काय करू शकतो):
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": "*"
}]
}
कसं करायचं (step by step)
- Lambda → Create function → Create a new role with basic Lambda permissions तसंच ठेवा.
- Create function. AWS
my-fn-role-abc123सारखी role बनवतो. - एकदा Test दाबा.
- Monitor → View CloudWatch logs.
CLI ने verify करा:
aws logs describe-log-groups \
--log-group-name-prefix /aws/lambda/my-fn --region ap-south-1
Expected output:
"logGroupName": "/aws/lambda/my-fn"
हे नसेल तर काय तुटतं
हे नसेल तर function चालतो, पण log group दिसत नाही. Fail झालं तर काहीच दिसत नाही.
5. उदाहरण 4: CloudWatch agent ने EC2 logs आणि metrics पाठवतो
हे का लागतं?
Default EC2 metrics मध्ये memory आणि disk use दिसत नाही. CloudWatch agent ते पाठवतो, app log files सुद्धा.
हे काय आहे?
EC2 role ला AWS managed policy CloudWatchAgentServerPolicy attach करा.
Trust policy (role कोण वापरू शकतो):
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Principal": { "Service": "ec2.amazonaws.com" },
"Action": "sts:AssumeRole"
}]
}
Permissions policy (role काय करू शकतो):
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": [
"cloudwatch:PutMetricData",
"logs:CreateLogStream",
"logs:PutLogEvents",
"logs:DescribeLogStreams",
"ec2:DescribeTags"
],
"Resource": "*"
}]
}
// short view of CloudWatchAgentServerPolicy
कसं करायचं (step by step)
- IAM → Roles → Create role → AWS service → EC2.
CloudWatchAgentServerPolicyattach करा. नावec2-cw-agent-role.- Instance ला role attach करा (Actions → Security → Modify IAM role).
- Instance वर:
sudo yum install -y amazon-cloudwatch-agent. - Wizard चालवा:
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard, मग agent start करा.
CLI ने verify करा:
aws cloudwatch list-metrics --namespace CWAgent --region ap-south-1
Expected output:
"MetricName": "mem_used_percent"
हे नसेल तर काय तुटतं
Role नसेल तर agent log मध्ये AccessDenied किंवा NoCredentialProviders. Memory graph नाही.
6. उदाहरण 5: ECS Fargate task role vs task execution role
हे का लागतं?
Fargate ला दोन roles असतात. ते मिसळणं हा ECS interview मधला मोठा trap.
हे काय आहे?
Task execution role ECS साठी: ECR मधून image pull, container logs. Task role तुमच्या app code साठी: S3, DynamoDB, SQS call.
Trust policy (role कोण वापरू शकतो):
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Principal": { "Service": "ecs-tasks.amazonaws.com" },
"Action": "sts:AssumeRole"
}]
}
// same trust for both roles
Permissions policy (role काय करू शकतो):
// task execution role: attach AWS managed
// AmazonECSTaskExecutionRolePolicy
// task role (your app):
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::ravi-app-files/*"
}]
}
कसं करायचं (step by step)
- IAM → Create role → AWS service → Elastic Container Service Task.
- Role 1:
AmazonECSTaskExecutionRolePolicyattach. नावecsTaskExecutionRole. - Role 2: तुमची S3 read policy attach. नाव
orders-task-role. - ECS → Task definitions → Create → Task execution role = role 1, Task role = role 2.
CLI ने verify करा:
aws ecs describe-task-definition --task-definition orders \
--query "taskDefinition.[taskRoleArn,executionRoleArn]" \
--region ap-south-1
Expected output:
[ "arn:aws:iam::111111111111:role/orders-task-role",
"arn:aws:iam::111111111111:role/ecsTaskExecutionRole" ]
हे नसेल तर काय तुटतं
Execution role नाही: task CannotPullContainerError ने थांबतो किंवा logs नाहीत. Task role नाही: app ला S3 वर AccessDenied.
7. उदाहरण 6: Cross-account access (account A, account B मधली role assume करतो)
हे का लागतं?
Company कडे dev account (A, 111111111111) आणि prod account (B, 222222222222) आहे. A मधल्या tester ला B मधले logs वाचायचे आहेत. B मध्ये user बनवू नका.
हे काय आहे?
B मध्ये account A ला trust करणारी role बनवा. A मधला user sts assume-role call करतो आणि B च्या temporary keys मिळवतो.
Trust policy (role कोण वापरू शकतो):
// in account B (222222222222)
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Principal": { "AWS": "arn:aws:iam::111111111111:root" },
"Action": "sts:AssumeRole",
"Condition": { "StringEquals": { "sts:ExternalId": "ravi-2026" } }
}]
}
Permissions policy (role काय करू शकतो):
// in account B: role permissions
// attach AWS managed CloudWatchLogsReadOnlyAccess
// in account A: user/group permission to assume
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": "sts:AssumeRole",
"Resource": "arn:aws:iam::222222222222:role/prod-log-reader"
}]
}
कसं करायचं (step by step)
- Account B मध्ये → IAM → Create role → AWS account → Another AWS account →
111111111111टाका. - Require external ID tick →
ravi-2026. CloudWatchLogsReadOnlyAccessattach. नावprod-log-reader.- Account A मध्ये tester group ला वरची assume policy attach करा.
CLI ने verify करा:
aws sts assume-role \
--role-arn arn:aws:iam::222222222222:role/prod-log-reader \
--role-session-name ravi-tester --external-id ravi-2026
# export the 3 values, then:
aws sts get-caller-identity
Expected output:
"Account": "222222222222",
"Arn": "arn:aws:sts::222222222222:assumed-role/prod-log-reader/ravi-tester"
हे नसेल तर काय तुटतं
B मध्ये trust नसेल तर A ला AccessDenied ... not authorized to perform: sts:AssumeRole. Role नसेल तर teams prod user keys share करतात.
8. उदाहरण 7: GitHub Actions OIDC role ने AWS ला deploy करतो
हे का लागतं?
GitHub secrets मध्ये AWS_ACCESS_KEY_ID ठेवणं risky. Keys expire होत नाहीत आणि logs किंवा forks मधून leak होऊ शकतात.
हे काय आहे?
GitHub प्रत्येक workflow run ला signed OIDC token देतो. AWS GitHub ला identity provider म्हणून trust करतो आणि token च्या बदल्यात temporary keys देतो.
Trust policy (role कोण वापरू शकतो):
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Principal": {
"Federated": "arn:aws:iam::111111111111:oidc-provider/token.actions.githubusercontent.com"
},
"Action": "sts:AssumeRoleWithWebIdentity",
"Condition": {
"StringEquals": {
"token.actions.githubusercontent.com:aud": "sts.amazonaws.com"
},
"StringLike": {
"token.actions.githubusercontent.com:sub": "repo:ravindrabagale/site:ref:refs/heads/main"
}
}
}]
}
Permissions policy (role काय करू शकतो):
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": ["s3:PutObject", "s3:ListBucket"],
"Resource": [
"arn:aws:s3:::ravi-site-bucket",
"arn:aws:s3:::ravi-site-bucket/*"
]
}]
}
कसं करायचं (step by step)
- IAM → Identity providers → Add provider → OpenID Connect.
- Provider URL
https://token.actions.githubusercontent.com, audiencests.amazonaws.com→ Add. - IAM → Create role → Web identity → हा provider → GitHub org, repo, branch टाका.
- S3 deploy policy attach. नाव
github-deploy-role. - Workflow मध्ये
permissions: id-token: writeआणिaws-actions/configure-aws-credentialsstep,role-to-assumeवaws-region: ap-south-1सोबत.
CLI ने verify करा:
# workflow step
- run: aws sts get-caller-identity
Expected output:
"Arn": "arn:aws:sts::111111111111:assumed-role/github-deploy-role/GitHubActions"
हे नसेल तर काय तुटतं
id-token: write नसेल तर Credentials could not be loaded. sub चुकीचं असेल तर Not authorized to perform sts:AssumeRoleWithWebIdentity.
9. उदाहरण 8: Switch role ने developer read-only role
हे का लागतं?
Developer ला prod बघायचं आहे, बदलायचं नाही. Prod मध्ये full user देणं जास्त होतं.
हे काय आहे?
ReadOnlyAccess role. Developer console मध्ये Switch role दाबतो. Trust मध्ये MFA required.
Trust policy (role कोण वापरू शकतो):
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Principal": { "AWS": "arn:aws:iam::111111111111:user/priya" },
"Action": "sts:AssumeRole",
"Condition": { "Bool": { "aws:MultiFactorAuthPresent": "true" } }
}]
}
Permissions policy (role काय करू शकतो):
// attach AWS managed policy: ReadOnlyAccess
कसं करायचं (step by step)
- IAM → Create role → AWS account → This account (किंवा दुसरा) → Require MFA tick.
ReadOnlyAccessattach. नावdev-readonly.- Developer MFA ने sign in → वरच्या उजव्या account menu → Switch role.
- Account id, role
dev-readonly, display name आणि colour → Switch Role.
CLI ने verify करा:
# CLI profile in ~/.aws/config
[profile ro]
role_arn = arn:aws:iam::111111111111:role/dev-readonly
source_profile = default
mfa_serial = arn:aws:iam::111111111111:mfa/priya
aws ec2 describe-instances --profile ro --region ap-south-1
aws ec2 stop-instances --instance-ids i-0abc --profile ro
Expected output:
Enter MFA code for arn:aws:iam::111111111111:mfa/priya:
{ "Reservations": [ ... ] }
An error occurred (UnauthorizedOperation) ... stop-instances
हे नसेल तर काय तुटतं
Role नसेल तर “फक्त बघायला” full rights दिले जातात. एक चुकीचा click prod थांबवू शकतो.
10. उदाहरण 9: Service-linked role (Auto Scaling आणि ELB)
हे का लागतं?
Auto Scaling ला तुमच्यासाठी EC2 launch आणि stop करायचे असतात. ELB ला targets register करायचे असतात. त्यांना तुमच्या account मध्ये permission लागते.
हे काय आहे?
Service-linked role AWS service स्वतः बनवते आणि सांभाळते. नाव AWSServiceRoleFor ने सुरू. त्याच्या permissions तुम्ही edit करू शकत नाही.
Trust policy (role कोण वापरू शकतो):
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Principal": { "Service": "autoscaling.amazonaws.com" },
"Action": "sts:AssumeRole"
}]
}
// AWS writes this for you
Permissions policy (role काय करू शकतो):
// AWS managed, locked:
// AutoScalingServiceRolePolicy
// You only read it. You do not edit it.
कसं करायचं (step by step)
- पहिला Auto Scaling group किंवा load balancer बनवा. AWS role आपोआप बनवतो.
- IAM → Roles →
AWSServiceRoleForsearch करा. AWSServiceRoleForAutoScalingउघडा → Trust relationships आणि Permissions वाचा.- कोणताही Auto Scaling group असताना ते delete करू नका.
CLI ने verify करा:
aws iam get-role --role-name AWSServiceRoleForAutoScaling \
--query "Role.[Path,Arn]"
Expected output:
[ "/aws-service-role/autoscaling.amazonaws.com/",
"arn:aws:iam::111111111111:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling" ]
हे नसेल तर काय तुटतं
Force-delete केलं तर scaling fail होतं. AWS पुन्हा बनवेपर्यंत service-linked role not found सारख्या errors येतात.
11. उदाहरण 10: EC2 Secrets Manager आणि SSM Parameter Store वाचतो
हे का लागतं?
App ला DB password लागतो. .env किंवा Git मध्ये hard-code करणं हा classic leak.
हे काय आहे?
Password Secrets Manager मध्ये (किंवा SecureString parameter मध्ये) ठेवा. EC2 role फक्त तो एकच secret वाचतो.
Trust policy (role कोण वापरू शकतो):
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Principal": { "Service": "ec2.amazonaws.com" },
"Action": "sts:AssumeRole"
}]
}
Permissions policy (role काय करू शकतो):
{
"Version": "2012-10-17",
"Statement": [
{ "Effect": "Allow",
"Action": "secretsmanager:GetSecretValue",
"Resource": "arn:aws:secretsmanager:ap-south-1:111111111111:secret:prod/db-*" },
{ "Effect": "Allow",
"Action": "ssm:GetParameter",
"Resource": "arn:aws:ssm:ap-south-1:111111111111:parameter/app/db_host" }
]
}
कसं करायचं (step by step)
- Secrets Manager → Store a new secret → Other type → key
password→ nameprod/db. - Systems Manager → Parameter Store → Create →
/app/db_host. - वरची policy EC2 role ला add करा (inline किंवा customer managed).
- Role instance ला attach करा.
CLI ने verify करा:
aws secretsmanager get-secret-value --secret-id prod/db \
--query SecretString --output text --region ap-south-1
aws ssm get-parameter --name /app/db_host \
--query Parameter.Value --output text --region ap-south-1
Expected output:
{"password":"..."}
mydb.abc123.ap-south-1.rds.amazonaws.com
हे नसेल तर काय तुटतं
Policy नसेल तर AccessDeniedException ... secretsmanager:GetSecretValue. Secret तुमच्या स्वतःच्या KMS key ने असेल तर kms:Decrypt सुद्धा allow करा.
12. Role attach असेल तर code ला keys लागत नाहीत
हे का लागतं?
Students विचारतात: “Code मध्ये key कुठे टाकू?” उत्तर: कुठेच नाही.
हे काय आहे?
प्रत्येक AWS SDK default credential chain वापरतो. EC2 metadata, Lambda किंवा ECS मधून role keys तो स्वतः शोधतो.
कसं करायचं (step by step)
Python (boto3)
import boto3
s3 = boto3.client("s3", region_name="ap-south-1") # no keys
print(s3.list_objects_v2(Bucket="ravi-app-files")["KeyCount"])
Node.js (SDK v3)
import { S3Client, ListObjectsV2Command } from "@aws-sdk/client-s3";
const s3 = new S3Client({ region: "ap-south-1" }); // no keys
const r = await s3.send(new ListObjectsV2Command({ Bucket: "ravi-app-files" }));
console.log(r.KeyCount);
Java (SDK v2)
S3Client s3 = S3Client.builder()
.region(Region.AP_SOUTH_1) // no keys
.build();
System.out.println(s3.listObjectsV2(r -> r.bucket("ravi-app-files")).keyCount());
AWS CLI
aws s3 ls s3://ravi-app-files/ --region ap-south-1
# no aws configure needed on EC2 / Lambda / ECS with a role
13. Role vs access keys
| मुद्दा | Role | Access keys |
|---|---|---|
| Lifetime | Minutes ते hours, auto-rotate | Delete करेपर्यंत |
| कुठे ठेवतात | कुठेच नाही; run time ला मिळतात | Files, .env, CI secrets |
| Leak risk | कमी; लवकर expire | जास्त |
| कशासाठी | EC2, Lambda, ECS, CI, cross-account | Role assume न करू शकणारी जुनी tools |
14. नेहमीच्या errors आणि fix
| Error | कारण | Fix |
|---|---|---|
API call वर AccessDenied | Permissions policy मध्ये action किंवा resource ARN नाही | अचूक action आणि ARN add करा; IAM Policy Simulator ने test |
not authorized to perform: sts:AssumeRole | Trust मध्ये caller नाही, किंवा caller ला assume permission नाही | दोन्ही बाजू fix: trust Principal आणि caller policy |
| EC2 dropdown मध्ये role नाही | चुकीचा principal, उदा. ec2 ऐवजी lambda | Trust मध्ये ec2.amazonaws.com |
Unable to locate credentials | Instance ला role attach नाही | Instance वर Modify IAM role |
InvalidClientTokenId | assume-role नंतर AWS_SESSION_TOKEN विसरलात | तीनही values export करा |
15. Cleanup
- EC2 instances वरून roles detach करा आणि lab instances stop/terminate करा.
- Lab Lambda functions, ECS task definitions आणि log groups delete करा.
- IAM → Roles → तुम्ही बनवलेल्या lab roles delete करा (
AWSServiceRoleFor…नाही). - Customer managed lab policies delete करा.
- गरज नसेल तर GitHub OIDC provider काढा.
- Lab secret (7-day recovery) आणि parameter delete करा.
Ravindra Bagale's Tip
प्रत्येक नवीन project ला आधी विचारा: “हे कोणती role चालवणार?” उत्तर “माझी access key” असेल तर थांबा आणि role बनवा.
16. Interview
प्र. EC2 ला role credentials कसे मिळतात?
Instance profile मधून. Instance metadata service rotate होणाऱ्या temporary keys देतो.
प्र. Task role vs task execution role?
Execution role ने ECS images pull करतो आणि logs लिहितो. Task role तुमचा app code वापरतो.
प्र. GitHub Actions keys शिवाय deploy कसं करतो?
OIDC. Workflow token AssumeRoleWithWebIdentity ने temporary keys मध्ये बदलतो.
प्र. Cross-account मध्ये ExternalId का?
Confused deputy टाळण्यासाठी; तिसरी party चुकीची role assume करायला लावू नये.
प्र. Service-linked role edit करता येते का?
नाही. Permissions AWS च्या. Service वापरत असताना delete करू नका.
प्र. Code ला role keys कुठे मिळतात?
SDK default credential chain. Code मध्ये keys नाहीत.
घरी करून बघा
- Example 1 free-tier EC2 आणि एका छोट्या S3 bucket ने करा.
s3:ListBucketकाढा आणि अचूक error बघा.- तुमच्या account मधल्या सगळ्या
AWSServiceRoleForroles शोधा आणि एक trust policy वाचा.
थोडक्यात सांगायचं तर
- Role = trust (कोण) + permissions (काय).
- EC2 instance profile वापरतो; Lambda execution role.
- ECS ला दोन roles: execution आणि task.
- Cross-account आणि GitHub AssumeRole व OIDC वापरतात, stored keys नाहीत.
- SDK role keys स्वतः शोधतात; code मध्ये keys कधीच नाहीत.
सराव Tasks
São Paulo Coffee हा साओ पाउलो मधला कॉफी व्यापार व्यवसाय आहे. Ana Souza त्यांचं IT व cloud काम पाहतात. त्यांचे पैसे BRL मध्ये मोजले जातात आणि AWS resources sa-east-1 Region मध्ये चालतात. खालच्या tasks मध्ये तुम्ही या lesson मध्ये शिकलेलं वापरून त्यांची खरी कामं करता. सगळी नावं, account IDs, IP addresses व numbers सरावासाठी काल्पनिक आहेत.
0 / 12
मध्यम EC2 role साठी trust policy
का: Trust policy role कोण घेऊ शकतो ते सांगते.
काय करायचं: ec2.amazonaws.com ला role assume करू देणारी trust policy लिहा.
- { "Version": "2012-10-17", "Statement": [ ... ] } ने सुरू करा.
- प्रत्येक statement मध्ये Effect, Action व Resource लिहा.
- Task ला लागेल तेवढंच द्या (least privilege).
- Double quotes व commas नीट वापरा. Check answer दाबा.
मध्यम Lambda role साठी trust policy
का: Trust policy role कोण घेऊ शकतो ते सांगते.
काय करायचं: lambda.amazonaws.com ला role assume करू देणारी trust policy लिहा.
- { "Version": "2012-10-17", "Statement": [ ... ] } ने सुरू करा.
- प्रत्येक statement मध्ये Effect, Action व Resource लिहा.
- Task ला लागेल तेवढंच द्या (least privilege).
- Double quotes व commas नीट वापरा. Check answer दाबा.
मध्यम Role ला policy लावा
का: Role ला permissions हव्यात: काय करू शकतो ते policy ने सांगा.
काय करायचं: arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess ला role spcoffee-ec2-role ला attach करा.
- 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 दाबा.
मध्यम Role assume करा
का: AssumeRole दुसऱ्या role च्या, बहुदा दुसऱ्या account मधल्या, अल्पकालीन keys देतो.
काय करायचं: Role arn:aws:iam::117860693118:role/Auditor session नाव ana-audit ने assume करा.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
मध्यम ECS task role साठी trust policy
का: Trust policy role कोण घेऊ शकतो ते सांगते.
काय करायचं: ecs-tasks.amazonaws.com ला role assume करू देणारी trust policy लिहा.
- { "Version": "2012-10-17", "Statement": [ ... ] } ने सुरू करा.
- प्रत्येक statement मध्ये Effect, Action व Resource लिहा.
- Task ला लागेल तेवढंच द्या (least privilege).
- Double quotes व commas नीट वापरा. Check answer दाबा.
अवघड दुसऱ्या account ला role assume करू द्या
का: Access keys share करण्यापेक्षा cross-account roles सुरक्षित.
काय करायचं: Account 111122223333 ला हा role assume करू देणारी trust policy लिहा.
- { "Version": "2012-10-17", "Statement": [ ... ] } ने सुरू करा.
- प्रत्येक statement मध्ये Effect, Action व Resource लिहा.
- Task ला लागेल तेवढंच द्या (least privilege).
- Double quotes व commas नीट वापरा. Check answer दाबा.
अवघड एका role साठी PassRole allow
का: Role सह EC2 launch करायला त्या role वर iam:PassRole लागतं.
काय करायचं: फक्त arn:aws:iam::117860693118:role/spcoffee-ec2-role वर iam:PassRole allow करा.
- { "Version": "2012-10-17", "Statement": [ ... ] } ने सुरू करा.
- प्रत्येक statement मध्ये Effect, Action व Resource लिहा.
- Task ला लागेल तेवढंच द्या (least privilege).
- Double quotes व commas नीट वापरा. Check answer दाबा.
अवघड Role instance profile मध्ये टाका
का: Role जोडेपर्यंत profile रिकामं असतं.
काय करायचं: Role spcoffee-ec2-role ला instance profile spcoffee-ec2-profile मध्ये जोडा.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
अवघड Instance profile बनवा
का: EC2 role ला instance profile मधून वापरतो.
काय करायचं: spcoffee-ec2-profile नावाचं instance profile बनवा.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
अवघड Trust policy सह role बनवा
का: Role म्हणजे services/लोक "assume" करतात ती identity. Trust policy कोण assume करू शकतो ते सांगते.
काय करायचं: trust.json मधल्या trust policy ने spcoffee-ec2-role नावाचा role बनवा.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
अवघड चालू EC2 ला role द्या
का: Profile जोडल्यावर server वरच्या apps ना temporary keys आपोआप मिळतात.
काय करायचं: Instance profile spcoffee-ec2-profile ला instance i-0c113da0acb111a2b शी associate करा.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
उजळणी, तुलना आणि मुलाखत cards
हा lesson काही मिनिटांत revise करा. Cards phone वर save करा किंवा PNG download करा. प्रत्येक card वरचा QR हा lesson उघडतो.








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