Claude Code × AWS IAM संपूर्ण गाइड | न्यूनतम विशेषाधिकार पॉलिसी स्वचालित रूप से बनाएं
Claude Code से AWS IAM पॉलिसी डिज़ाइन को सरल बनाएं। न्यूनतम विशेषाधिकार पॉलिसी की स्वचालित जनरेशन, मौजूदा पॉलिसी की सुरक्षा समीक्षा, और CDK कार्यान्वयन—वास्तविक कोड उदाहरणों के साथ।
IAM पॉलिसी डिज़ाइन “सुस्त लेकिन गलत होने पर विनाशकारी” काम है। वाइल्डकार्ड (*) के दुरुपयोग वाली पॉलिसी सुरक्षा घटनाओं का केंद्र बन जाती हैं। लेकिन स्क्रैच से न्यूनतम विशेषाधिकार पॉलिसी लिखने में समय लगता है।
मैं प्रोडक्शन में Lambda, S3, DynamoDB और CloudWatch को मिलाकर एक सर्वरलेस आर्किटेक्चर संचालित करता हूं। IAM पॉलिसी डिज़ाइन और समीक्षा Claude Code को सौंपकर, मैंने काम का समय लगभग 70% कम किया। यह लेख व्यावहारिक चरणों की व्याख्या करता है।
3 मिनट में IAM की बुनियाद
पॉलिसी की संरचना
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["s3:GetObject", "s3:PutObject"],
"Resource": "arn:aws:s3:::my-bucket/*",
"Condition": {
"StringEquals": {
"s3:prefix": ["uploads/"]
}
}
}
]
}
- Effect: Allow (अनुमति) या Deny (अस्वीकार)
- Action: अनुमति/अस्वीकार करने वाले API एक्शन
- Resource: लक्ष्य संसाधन का ARN (अधिक विशिष्ट = अधिक सुरक्षित)
- Condition: अतिरिक्त शर्तें (IP प्रतिबंध, MFA आवश्यक, आदि)
न्यूनतम विशेषाधिकार का सिद्धांत
“केवल आवश्यक ऑपरेशन को, केवल आवश्यक संसाधनों पर अनुमति दें” IAM का स्वर्णिम नियम है।
❌ खतरनाक: वाइल्डकार्ड का दुरुपयोग
Action: "*"
Resource: "*"
✅ सुरक्षित: विशिष्ट रूप से निर्दिष्ट करें
Action: ["s3:GetObject", "s3:PutObject"]
Resource: "arn:aws:s3:::my-uploads-bucket/user-files/*"
Step 1: उपयोग का मामला बताएं और पॉलिसी स्वचालित रूप से जनरेट करें
Lambda के लिए पॉलिसी जनरेट करना
claude -p "
निम्नलिखित Lambda फ़ंक्शन के लिए JSON में न्यूनतम आवश्यक IAM पॉलिसी जनरेट करें।
[Lambda प्रोसेसिंग]
- S3 बकेट 'user-uploads-prod' से इमेज पढ़ना
- प्रोसेस की गई इमेज को 'user-thumbnails-prod' में सेव करना
- DynamoDB टेबल 'image-metadata' में परिणाम रिकॉर्ड करना
- त्रुटि पर SNS टॉपिक 'alert-topic' को सूचित करना
- CloudWatch Logs में लॉग लिखना
[प्रतिबंध]
- डिलीट ऑपरेशन की आवश्यकता नहीं है
- रिसोर्स ARN के लिए अकाउंट ID 123456789012, रीजन ap-northeast-1 उपयोग करें
- Condition के जरिए IP प्रतिबंध नहीं (Lambda के लिए आवश्यक नहीं)
"
जनरेट किया गया उदाहरण:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "S3ReadSourceBucket",
"Effect": "Allow",
"Action": ["s3:GetObject"],
"Resource": "arn:aws:s3:::user-uploads-prod/*"
},
{
"Sid": "S3WriteThumbnailBucket",
"Effect": "Allow",
"Action": ["s3:PutObject"],
"Resource": "arn:aws:s3:::user-thumbnails-prod/*"
},
{
"Sid": "DynamoDBWriteMetadata",
"Effect": "Allow",
"Action": ["dynamodb:PutItem", "dynamodb:UpdateItem"],
"Resource": "arn:aws:dynamodb:ap-northeast-1:123456789012:table/image-metadata"
},
{
"Sid": "SNSPublishAlert",
"Effect": "Allow",
"Action": ["sns:Publish"],
"Resource": "arn:aws:sns:ap-northeast-1:123456789012:alert-topic"
},
{
"Sid": "CloudWatchLogs",
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": "arn:aws:logs:ap-northeast-1:123456789012:log-group:/aws/lambda/*"
}
]
}
Step 2: मौजूदा पॉलिसी की सुरक्षा समीक्षा
Claude Code से मौजूदा पॉलिसी की समस्याओं के लिए समीक्षा करवाएं।
claude -p "
निम्नलिखित IAM पॉलिसी की सुरक्षा दृष्टिकोण से समीक्षा करें।
विशिष्ट समस्याओं की पहचान करें और ठोस सुधार सुझाव दें।
$(cat policy.json)
"
Claude Code द्वारा पहचानी जाने वाली विशिष्ट समस्याएं:
समस्या 1: Resource: "*" S3 पर पूर्ण एक्सेस प्रदान करता है
→ लक्ष्य बकेट और प्रीफिक्स को स्पष्ट रूप से निर्दिष्ट करें
समस्या 2: s3:DeleteObject शामिल है लेकिन प्रक्रिया द्वारा आवश्यक नहीं
→ डिलीट ऑपरेशन हटाएं
समस्या 3: iam:PassRole को वाइल्डकार्ड रिसोर्स के साथ अनुमति दी गई है
→ PassRole को केवल विशिष्ट रोल ARN तक सीमित करें (विशेषाधिकार वृद्धि जोखिम)
समस्या 4: CloudTrail सक्रियता की पुष्टि नहीं हो सकती
→ IAM ऑपरेशन लॉगिंग सक्षम करने की सिफारिश
Step 3: रोल डिज़ाइन का स्वचालन
कई सेवाओं में रोल डिज़ाइन
claude -p "
निम्नलिखित आर्किटेक्चर के लिए सभी आवश्यक IAM रोल डिज़ाइन करें:
[आर्किटेक्चर]
- API Gateway → Lambda (प्रमाणीकरण)
- Lambda → DynamoDB (उपयोगकर्ता डेटा पढ़ना/लिखना)
- Lambda → S3 (फ़ाइल स्टोरेज)
- Lambda → SES (ईमेल भेजना)
- CloudWatch Events → Lambda (बैच प्रोसेसिंग)
- CodePipeline → S3, CodeBuild, Lambda (डिप्लॉयमेंट)
[आउटपुट फॉर्मेट]
- प्रत्येक रोल का नाम और उद्देश्य
- Trust Policy
- Access Policy
- AWS CDK TypeScript कोड के रूप में आउटपुट
"
CDK में रोल कार्यान्वयन
// lib/iam-stack.ts
import * as cdk from "aws-cdk-lib";
import * as iam from "aws-cdk-lib/aws-iam";
import * as lambda from "aws-cdk-lib/aws-lambda";
export class IamStack extends cdk.Stack {
constructor(scope: cdk.App, id: string, props?: cdk.StackProps) {
super(scope, id, props);
// Lambda एक्सीक्यूशन रोल (न्यूनतम विशेषाधिकार)
const lambdaRole = new iam.Role(this, "ApiLambdaRole", {
assumedBy: new iam.ServicePrincipal("lambda.amazonaws.com"),
roleName: "api-lambda-role",
description: "API Lambda के लिए न्यूनतम विशेषाधिकार रोल",
});
// DynamoDB पढ़ने/लिखने की अनुमति (केवल विशिष्ट टेबल)
lambdaRole.addToPolicy(
new iam.PolicyStatement({
sid: "DynamoDBAccess",
effect: iam.Effect.ALLOW,
actions: [
"dynamodb:GetItem",
"dynamodb:PutItem",
"dynamodb:UpdateItem",
"dynamodb:Query",
],
resources: [
`arn:aws:dynamodb:${this.region}:${this.account}:table/users`,
`arn:aws:dynamodb:${this.region}:${this.account}:table/users/index/*`,
],
})
);
// S3 लिखने की अनुमति (केवल विशिष्ट बकेट और प्रीफिक्स)
lambdaRole.addToPolicy(
new iam.PolicyStatement({
sid: "S3FileUpload",
effect: iam.Effect.ALLOW,
actions: ["s3:PutObject", "s3:GetObject"],
resources: [
`arn:aws:s3:::user-files-${this.account}/uploads/*`,
],
})
);
// SES ईमेल भेजने की अनुमति
lambdaRole.addToPolicy(
new iam.PolicyStatement({
sid: "SESSendEmail",
effect: iam.Effect.ALLOW,
actions: ["ses:SendEmail", "ses:SendRawEmail"],
resources: ["*"],
conditions: {
StringEquals: {
"ses:FromAddress": "[email protected]",
},
},
})
);
// CloudWatch Logs में लिखने की अनुमति
lambdaRole.addManagedPolicy(
iam.ManagedPolicy.fromAwsManagedPolicyName(
"service-role/AWSLambdaBasicExecutionRole"
)
);
}
}
Step 4: IAM Access Analyzer के परिणामों की समीक्षा
Claude Code से IAM Access Analyzer आउटपुट की समीक्षा करवाएं।
# Access Analyzer के परिणाम प्राप्त करें
aws accessanalyzer list-findings --analyzer-arn arn:aws:access-analyzer:... \
--output json > analyzer-findings.json
claude -p "
निम्नलिखित IAM Access Analyzer परिणाम पढ़ें और:
1. गंभीरता के अनुसार वर्गीकृत करें (HIGH/MEDIUM/LOW)
2. तत्काल सुधार की आवश्यकता वाले आइटम पहचानें
3. प्रत्येक के लिए विशिष्ट सुधार चरण प्रदान करें
$(cat analyzer-findings.json)
"
Step 5: SCP डिज़ाइन (संगठन-स्तरीय गार्डरेल)
AWS Organizations का उपयोग करते समय, संपूर्ण खातों के लिए SCPs (Service Control Policies) से गार्डरेल स्थापित करें।
claude -p "
प्रोडक्शन AWS खातों पर लागू करने के लिए SCP डिज़ाइन करें।
निम्नलिखित आवश्यकताओं को पूरा करना चाहिए:
1. ap-northeast-1 (टोक्यो) और us-east-1 (वर्जीनिया) को छोड़कर सभी रीजन अक्षम करें
2. रूट खाते द्वारा API ऑपरेशन पर प्रतिबंध लगाएं
3. CloudTrail को अक्षम या हटाने पर प्रतिबंध लगाएं
4. GuardDuty को अक्षम करने पर प्रतिबंध लगाएं
5. एक विशिष्ट IAM रोल ('OrganizationAdminRole') में परिवर्तनों पर प्रतिबंध लगाएं
"
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "DenyUnsupportedRegions",
"Effect": "Deny",
"Action": "*",
"Resource": "*",
"Condition": {
"StringNotEquals": {
"aws:RequestedRegion": ["ap-northeast-1", "us-east-1"]
},
"ArnNotLike": {
"aws:PrincipalARN": [
"arn:aws:iam::*:role/OrganizationAdminRole"
]
}
}
},
{
"Sid": "DenyCloudTrailModification",
"Effect": "Deny",
"Action": [
"cloudtrail:DeleteTrail",
"cloudtrail:StopLogging",
"cloudtrail:UpdateTrail"
],
"Resource": "*"
}
]
}
4 सामान्य गलतियां
1. iam:PassRole में अत्यधिक विशेषाधिकार
// ❌ खतरनाक: कोई भी रोल पास किया जा सकता है
{
"Action": "iam:PassRole",
"Resource": "*"
}
// ✅ सुरक्षित: केवल विशिष्ट रोल
{
"Action": "iam:PassRole",
"Resource": "arn:aws:iam::123456789:role/MyLambdaRole",
"Condition": {
"StringEquals": {
"iam:PassedToService": "lambda.amazonaws.com"
}
}
}
2. AWS प्रबंधित पॉलिसी का अत्यधिक उपयोग
AmazonS3FullAccess जैसी प्रबंधित पॉलिसी सुविधाजनक हैं लेकिन आवश्यकता से कहीं अधिक अनुमतियां शामिल करती हैं। यदि Lambda केवल S3 से पढ़ता है, तो केवल s3:GetObject के साथ कस्टम पॉलिसी उपयोग करें।
3. इनलाइन पॉलिसी और कस्टम प्रबंधित पॉलिसी का मिश्रण
इनलाइन पॉलिसी को पुनः उपयोग नहीं किया जा सकता और ट्रैक करना कठिन है। प्रबंधित पॉलिसी पर मानकीकृत करें और संस्करण नियंत्रण करें।
4. Conditions के माध्यम से MFA आवश्यकता का अभाव
व्यवस्थापक रोल पर स्विच करते समय हमेशा MFA अनिवार्य करें।
{
"Condition": {
"BoolIfExists": {
"aws:MultiFactorAuthPresent": "true"
}
}
}
सारांश
| कार्य | Claude Code का योगदान |
|---|---|
| पॉलिसी जनरेशन | विवरण से न्यूनतम विशेषाधिकार पॉलिसी जनरेट करता है |
| सुरक्षा समीक्षा | मौजूदा पॉलिसी की समस्याएं पहचानता और सुधार सुझाता है |
| रोल डिज़ाइन | पूरी आर्किटेक्चर के लिए रोल संरचना डिज़ाइन करता है |
| CDK कार्यान्वयन | TypeScript IAM कोड स्वचालित रूप से जनरेट करता है |
| SCP डिज़ाइन | संगठन-स्तरीय गार्डरेल पॉलिसी जनरेट करता है |
IAM “एक बार सेट करके भूल जाने” वाला काम नहीं है—नियमित समीक्षा आवश्यक है। Claude Code को मासिक रूप से मौजूदा पॉलिसी की समीक्षा करने की आदत सुरक्षा जोखिम को निरंतर कम करने का एक सरल तरीका है।
संबंधित लेख
- Claude Code सुरक्षा सर्वोत्तम प्रथाएं संपूर्ण गाइड
- Claude Code × AWS Lambda संपूर्ण गाइड
- Claude Code × AWS DynamoDB संपूर्ण गाइड
संदर्भ
अपने Claude Code वर्कफ़्लो को अगले स्तर पर ले जाएँ
Claude Code में तुरंत कॉपी-पेस्ट करने योग्य 50 आज़माए हुए प्रॉम्प्ट टेम्पलेट।
मुफ़्त PDF: 5 मिनट में Claude Code चीटशीट
बस अपना ईमेल दर्ज करें और हम तुरंत A4 एक-पृष्ठ चीटशीट PDF भेज देंगे।
हम आपकी व्यक्तिगत जानकारी की सुरक्षा करते हैं और स्पैम नहीं भेजते।
लेखक के बारे में
Masa
Claude Code का गहराई से उपयोग करने वाले इंजीनियर। claudecode-lab.com चलाते हैं, जो 10 भाषाओं में 2,000 से अधिक पेजों वाला टेक मीडिया है।
संबंधित लेख
Claude Code × Amazon Bedrock संपूर्ण गाइड | AWS पर Claude को प्रोडक्शन में चलाएं
Claude Code के साथ Amazon Bedrock उपयोग करने की संपूर्ण गाइड। IAM प्रमाणीकरण, स्ट्रीमिंग, Lambda इंटीग्रेशन, RAG कार्यान्वयन से लेकर लागत अनुकूलन तक — Masa के वास्तविक प्रोडक्शन अनुभव पर आधारित।
Claude Code × AWS CodePipeline/CodeBuild पूर्ण गाइड | CI/CD पाइपलाइन स्वचालित रूप से बनाएं
Claude Code का उपयोग करके AWS CodePipeline और CodeBuild के साथ CI/CD स्वचालित रूप से बनाएं। पाइपलाइन डिज़ाइन, buildspec.yml जेनरेशन, टेस्ट ऑटोमेशन और CDK इन्फ्रास्ट्रक्चर के व्यावहारिक कोड उदाहरण।
Claude Code × AWS CloudWatch सम्पूर्ण गाइड | लॉग विश्लेषण, अलार्म सेटअप और डैशबोर्ड ऑटोमेशन
Claude Code से AWS CloudWatch को और प्रभावी बनाएं। लॉग पैटर्न विश्लेषण, स्वचालित अलार्म कॉन्फ़िगरेशन, मेट्रिक्स डैशबोर्ड और इंसिडेंट जांच के लिए व्यावहारिक कोड।