KMS, ACM और एन्क्रिप्शन पैटर्न
AWS KMS से एन्क्रिप्शन कुंजियाँ प्रबंधित कीजिए, ACM से TLS प्रमाणपत्र उपलब्ध कराकर घुमाइए और क्लाइंट-पक्ष, सर्वर-पक्ष तथा ट्रांज़िट एन्क्रिप्शन में चयन कीजिए।
KMS, ACM और एन्क्रिप्शन पैटर्न, CoddyKit पर Cloud & IT Cert Prep का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Cloud & IT Cert Prep सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Cloud & IT Cert Prep पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
AWS पर Encryption: अवलोकन
Encryption एक मूलभूत security control है, जो storage media के compromised होने या किसी अन्य माध्यम से access प्राप्त हो जाने पर भी data confidentiality की रक्षा करता है। AWS data at rest (databases, S3 और EBS में stored) तथा in transit (networks के बीच moving) encryption प्रदान करता है। मुख्य services: AWS Key Management Service (KMS) at-rest encryption के लिए encryption keys को manage करता है। AWS Certificate Manager (ACM) in-transit encryption के लिए TLS certificates को provision और manage करता है। SAA-C03 के Security Architecture domain के लिए यह समझना आवश्यक है कि प्रत्येक को कब और कैसे लागू करना है।
# Encryption coverage on AWS:
# At rest (KMS):
# S3, EBS, RDS, DynamoDB, EFS, SQS,
# Lambda env vars, Secrets Manager, SSM Parameter Store
# In transit (ACM/TLS):
# ALB listeners (HTTPS), API Gateway, CloudFront,
# Direct Connect, VPN, inter-service communication
# Both:
# S3 Server-Side Encryption + HTTPS only policyAWS KMS: Key Management Service
AWS KMS encryption keys बनाने और नियंत्रित करने की पूरी तरह managed service है। KMS keys की सुरक्षा के लिए Hardware Security Modules (HSMs) का उपयोग करता है — key material encrypted हुए बिना कभी HSM से बाहर नहीं जाता। KMS अधिकांश AWS services के साथ server-side encryption के लिए integrate होता है। Keys के प्रकार: AWS Managed Keys (निःशुल्क, हर वर्ष auto-rotated, आप इन्हें सीधे नियंत्रित नहीं कर सकते), Customer Managed Keys (CMK) ($1/month प्रत्येक, आप rotation, key policy और deletion नियंत्रित करते हैं)। Custom Key Store compliance requirements के लिए आपके अपने CloudHSM cluster का उपयोग करता है, जहाँ dedicated HSMs अनिवार्य हों।
# Create a Customer Managed Key (CMK)
aws kms create-key \
--description 'Production database encryption key' \
--key-usage ENCRYPT_DECRYPT \
--origin AWS_KMS \
--tags TagKey=Purpose,TagValue=RDS-Encryption
# Create an alias for the key
aws kms create-alias \
--alias-name alias/prod-db-key \
--target-key-id arn:aws:kms:us-east-1:123:key/abc-def
# CMK costs: $1/month + $0.03 per 10,000 API callsKMS Key Policies और Grants
प्रत्येक KMS key की एक key policy होती है — यह resource-based policy है, जो नियंत्रित करती है कि key का उपयोग और प्रबंधन कौन कर सकता है। IAM policies के विपरीत, जो identity-based होती हैं, key policies आवश्यक होती हैं: IAM policies को प्रभावी होने के लिए key policy में access स्पष्ट रूप से grant किया जाना चाहिए। सर्वोत्तम अभ्यास: key administration (कौन key manage कर सकता है) को key usage (कौन-सी services और roles encrypt/decrypt कर सकती हैं) से अलग रखें। अस्थायी delegated access के लिए key grants का उपयोग करें — उदाहरण के लिए, key policy बदले बिना किसी job के लिए EMR cluster को KMS key के अस्थायी उपयोग की अनुमति दें।
# KMS key policy: grant RDS and admin access
{
'Statement': [
{
'Sid': 'Enable root account full access',
'Principal': {'AWS': 'arn:aws:iam::123:root'},
'Action': 'kms:*',
'Effect': 'Allow'
},
{
'Sid': 'Allow RDS to use this key',
'Principal': {'Service': 'rds.amazonaws.com'},
'Action': ['kms:Encrypt','kms:Decrypt','kms:GenerateDataKey'],
'Effect': 'Allow'
}
]
}KMS Envelope Encryption
KMS बड़ी मात्रा में डेटा की कुशलतापूर्वक सुरक्षा के लिए envelope encryption का उपयोग करता है। आप KMS key से सीधे 4 KB से अधिक डेटा encrypt नहीं कर सकते। इसके बजाय: KMS एक Data Encryption Key (DEK) बनाता है — यह एक random key होती है, जिसका उपयोग आपके वास्तविक डेटा को स्थानीय रूप से encrypt करने के लिए किया जाता है। इसके बाद आपकी KMS key (जिसे Key Encryption Key कहा जाता है) DEK को encrypt करती है। आप encrypted DEK को encrypted data के साथ store करते हैं। Decrypt करने के लिए पहले DEK को decrypt करने हेतु KMS को call करें, फिर data को decrypt करने के लिए plaintext DEK का स्थानीय रूप से उपयोग करें। S3, EBS और RDS encryption पर्दे के पीछे इसी तरह काम करते हैं।
# Generate a Data Key (for envelope encryption)
aws kms generate-data-key \
--key-id alias/my-key \
--key-spec AES_256
# Response contains:
# Plaintext: base64-encoded DEK (use to encrypt data locally)
# CiphertextBlob: KMS-encrypted DEK (store alongside data)
# To decrypt:
# 1. Call kms:Decrypt(CiphertextBlob) -> plaintext DEK
# 2. Use plaintext DEK to decrypt data locally
# 3. Zeroize plaintext DEK from memory
aws kms decrypt --ciphertext-blob fileb://encrypted-dek.binKMS Key Rotation
Key rotation एक security best practice है, जिसमें cryptographic key material को समय-समय पर बदला जाता है। इससे key के compromised होने पर exposure window सीमित रहती है। Customer Managed Keys के लिए आप automatic annual rotation enable कर सकते हैं — KMS नया key material generate करता है और नए encrypt operations के लिए उसका उपयोग करता है, जबकि मौजूदा data को decrypt करने के लिए पुराने key material को सुरक्षित रखता है। AWS Managed Keys हर वर्ष अपने-आप rotate होती हैं। Imported key material automatic rotation का समर्थन नहीं करता (आपको manually rotate करना होगा)। Rotation के बाद नए KMS operations नए key material का स्वतः उपयोग करते हैं और application में कोई बदलाव आवश्यक नहीं होता।
# Enable automatic annual key rotation
aws kms enable-key-rotation \
--key-id alias/prod-db-key
# Verify rotation is enabled
aws kms get-key-rotation-status \
--key-id alias/prod-db-key
# Manual rotation (for imported key material):
# 1. Create a new CMK
# 2. Update all services to use new key
# 3. Re-encrypt existing data with new key
# 4. Schedule old key for deletion (minimum 7-day waiting period)S3 Server-Side Encryption Options
S3 server-side encryption के तीन options का समर्थन करता है: SSE-S3 — S3 AES-256 का उपयोग करके keys manage करता है, यह निःशुल्क है और इसमें नियंत्रण न्यूनतम है। SSE-KMS — KMS key (AWS managed या CMK) का उपयोग करता है, CloudTrail में key audit trail प्रदान करता है, key policies का समर्थन करता है और प्रति KMS API call शुल्क लेता है। SSE-C — प्रत्येक request के साथ आप key material प्रदान और manage करते हैं; S3 key को कभी store नहीं करता। जब आपको यह audit control चाहिए कि key का उपयोग किसने और कब किया, तब SSE-KMS का उपयोग करें। जहाँ डेटा की sensitivity कम हो और simplicity तथा cost महत्वपूर्ण हों, वहाँ SSE-S3 का उपयोग करें। ऐसी bucket policy से encryption लागू करें, जो encryption के बिना PutObject को deny करती हो।
# Enforce SSE-KMS on all new S3 objects
aws s3api put-bucket-policy \
--bucket my-secure-bucket \
--policy '{
"Statement": [{
"Effect": "Deny",
"Principal": "*",
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::my-secure-bucket/*",
"Condition": {
"StringNotEquals": {
"s3:x-amz-server-side-encryption": "aws:kms"
}
}
}]
}'
# Set default encryption for bucket
aws s3api put-bucket-encryption \
--bucket my-secure-bucket \
--server-side-encryption-configuration '{"Rules":[{"ApplyServerSideEncryptionByDefault":{"SSEAlgorithm":"aws:kms","KMSMasterKeyID":"alias/my-key"}}]}'AWS Certificate Manager (ACM)
AWS Certificate Manager (ACM) AWS services के लिए SSL/TLS certificates को निःशुल्क provision, manage और auto-renew करता है। ACM certificates का उपयोग ALB, NLB, CloudFront, API Gateway, और AppSync के साथ किया जा सकता है। ACM certificate lifecycle को स्वचालित रूप से संभालता है — यह expiry से 60 दिन पहले certificates renew करता है और renewal को पारदर्शी ढंग से deploy करता है। आप अपने स्वामित्व वाले domains के लिए certificates request कर सकते हैं (DNS या email से validated) या third-party certificates import कर सकते हैं। ACM certificates NOT downloadable होते हैं — वे उस AWS service से bound होते हैं, जिसके साथ वे associated हैं।
# Request a public ACM certificate
aws acm request-certificate \
--domain-name app.example.com \
--subject-alternative-names '*.example.com' \
--validation-method DNS
# ACM returns a CNAME record to add to Route 53
# Add the CNAME -> ACM validates domain ownership
# Certificate is issued and auto-renews annually
# Attach to ALB listener (HTTPS:443)
aws elbv2 create-listener \
--load-balancer-arn <ALB-ARN> \
--protocol HTTPS --port 443 \
--certificates CertificateArn=arn:aws:acm:us-east-1:123:certificate/abc \
--default-actions Type=forward,TargetGroupArn=<TG-ARN>ACM Private Certificate Authority
ACM Private CA (Certificate Authority) आपको आंतरिक संसाधनों — EC2 इंस्टेंस, कंटेनर, आंतरिक API और IoT डिवाइस — के लिए प्रमाणपत्र जारी करने हेतु पूरी तरह managed, निजी CA पदानुक्रम बनाने की सुविधा देता है। सार्वजनिक ACM प्रमाणपत्रों के विपरीत (जिनका उपयोग इंटरनेट-सामना करने वाली सेवाओं के साथ किया जाता है), निजी CA प्रमाणपत्र किसी भी आंतरिक होस्टनाम या IP पते के लिए जारी किए जा सकते हैं। Private CA का उपयोग इन कार्यों के लिए करें: माइक्रोसर्विस के बीच पारस्परिक TLS (mTLS), VPN के लिए प्रमाणपत्र-आधारित प्रमाणीकरण और आंतरिक PKI के लिए अनुपालन आवश्यकताएँ। Private CA की लागत CA के लिए $400/माह और जारी किए गए प्रत्येक प्रमाणपत्र के लिए $0.75 है।
# Create ACM Private Certificate Authority
aws acm-pca create-certificate-authority \
--certificate-authority-type ROOT \
--certificate-authority-configuration '{
"KeyAlgorithm": "RSA_2048",
"SigningAlgorithm": "SHA256WITHRSA",
"Subject": {
"Country": "US",
"Organization": "Example Corp",
"CommonName": "Example Corp Internal CA"
}
}'
# Issue certificate from private CA
aws acm request-certificate \
--domain-name internal-service.example.internal \
--certificate-authority-arn arn:aws:acm-pca:us-east-1:123:certificate-authority/xxxEBS और RDS Encryption
EBS वॉल्यूम Encryption के लिए, वॉल्यूम बनाते समय इसे Enable करें (या Encryption Enable करके किसी मौजूदा वॉल्यूम की प्रतिलिपि बनाएँ)। वॉल्यूम का पूरा डेटा, जिसमें स्नैपशॉट भी शामिल हैं, आपके द्वारा निर्दिष्ट KMS Key का उपयोग करके Encrypt किया जाता है। EBS Encryption ऑपरेटिंग सिस्टम के लिए पारदर्शी है — Application में किसी बदलाव की आवश्यकता नहीं होती। RDS Encryption के लिए, डेटाबेस इंस्टेंस बनाते समय इसे Enable करें; मौजूदा unencrypted RDS इंस्टेंस को सीधे Encrypt नहीं किया जा सकता। उपाय: unencrypted इंस्टेंस से एक encrypted स्नैपशॉट बनाएँ, फिर उसे एक नए encrypted इंस्टेंस में Restore करें। EBS और RDS दोनों के encrypted स्नैपशॉट कॉपी किए जाने पर भी encrypted रहते हैं।
# Enable account-level EBS default encryption
aws ec2 enable-ebs-encryption-by-default
aws ec2 modify-ebs-default-kms-key-id \
--kms-key-id alias/prod-ebs-key
# Encrypt an existing unencrypted RDS instance:
# 1. Create unencrypted snapshot
aws rds create-db-snapshot \
--db-instance-identifier mydb \
--db-snapshot-identifier mydb-plain-snapshot
# 2. Copy snapshot with encryption
aws rds copy-db-snapshot \
--source-db-snapshot-identifier mydb-plain-snapshot \
--target-db-snapshot-identifier mydb-encrypted-snapshot \
--kms-key-id alias/prod-db-keyClient-Side बनाम Server-Side Encryption
SAA-C03 परीक्षा के लिए server-side और client-side Encryption के बीच का अंतर समझना महत्वपूर्ण है। Server-side Encryption: AWS डेटा प्राप्त करने के बाद उसे Encrypt करता है और भेजने से पहले Decrypt करता है — आपके Application और AWS के बीच डेटा plaintext में रहता है। Client-side Encryption: आप AWS को भेजने से पहले डेटा Encrypt करते हैं — AWS केवल ciphertext को Store करता है और plaintext को कभी नहीं देखता। ऐसी स्थिति में client-side Encryption का उपयोग करें जहाँ डेटा की संवेदनशीलता सबसे अधिक हो और आप cloud provider पर plaintext संभालने के लिए भरोसा न कर सकें, जैसे कड़े नियमों के अंतर्गत स्वास्थ्य या वित्तीय डेटा।
# Client-side encryption with AWS Encryption SDK
# (conceptual Python example)
# 1. Application encrypts data locally using KMS DEK
# from aws_encryption_sdk import KmsKeyProvider, encrypt
# key_provider = KmsKeyProvider(key_ids=['alias/my-key'])
# ciphertext, _ = encrypt(
# source=b'Sensitive patient data',
# key_provider=key_provider
# )
# 2. Send ciphertext to S3
# s3.put_object(Bucket='hipaa-data', Key='record.enc', Body=ciphertext)
# AWS only stores ciphertext - cannot decrypt without your key policyKMS Cross-Account Access
Cross-account Encryption परिदृश्यों के लिए KMS keys को विभिन्न AWS accounts में साझा किया जा सकता है। उदाहरण के लिए, यदि Account A का Application, Account B के स्वामित्व वाले S3 bucket में encrypted डेटा लिखता है, तो Account A की KMS key को Account B के principal को उसका उपयोग करने की अनुमति देनी होगी। Account A में KMS key policy को Configure करके cross-account access प्रदान करें, फिर Account B में एक IAM policy बनाएँ, जो role को Account A की key का उपयोग करने की अनुमति दे। यह पैटर्न data-sharing और multi-account architectures में सामान्य है, जहाँ एक केंद्रीय account Encryption keys को manage करता है।
# KMS key policy: allow cross-account access
# (in Account A's key policy)
{
'Sid': 'Allow Account B to use this key',
'Effect': 'Allow',
'Principal': {
'AWS': 'arn:aws:iam::999999999999:root'
},
'Action': [
'kms:Encrypt',
'kms:Decrypt',
'kms:ReEncrypt*',
'kms:GenerateDataKey*',
'kms:DescribeKey'
],
'Resource': '*'
}
# Account B IAM policy also needed to allow the role to use itत्वरित जाँच
इस lesson में दिए गए AWS Solutions Architect (SAA-C03) concepts की अपनी समझ जाँचें।
पाठ का पुनरावलोकन
इस lesson में आपने सीखा: KMS, HSM सुरक्षा के साथ Encryption keys को manage करता है और सूक्ष्म access control तथा audit trails के लिए CMKs का समर्थन करता है, ACM AWS services के लिए बिना किसी शुल्क के TLS certificates का प्रावधान और automatic renewal करता है, और Encryption को server-side (KMS) या client-side लागू किया जा सकता है; AWS-native workloads में server-side सबसे सामान्य pattern है। unencrypted operations को deny करने वाली bucket policies के साथ Encryption लागू करें। आगे हम GuardDuty, Inspector और Macie का अध्ययन करेंगे।
एआई शिक्षक के साथ Cloud & IT Cert Prep सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 150
- पाठ
- 600
अक्सर पूछे जाने वाले प्रश्न
क्या “KMS, ACM और एन्क्रिप्शन पैटर्न” पाठ निःशुल्क है?
हाँ—“KMS, ACM और एन्क्रिप्शन पैटर्न” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Cloud & IT Cert Prep पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Cloud & IT Cert Prep पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“KMS, ACM और एन्क्रिप्शन पैटर्न” में मैं क्या सीखूँगा?
AWS KMS से एन्क्रिप्शन कुंजियाँ प्रबंधित कीजिए, ACM से TLS प्रमाणपत्र उपलब्ध कराकर घुमाइए और क्लाइंट-पक्ष, सर्वर-पक्ष तथा ट्रांज़िट एन्क्रिप्शन में चयन कीजिए। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Cloud & IT Cert Prep का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Cloud & IT Cert Prep शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Cloud & IT Cert Prep शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।
“KMS, ACM और एन्क्रिप्शन पैटर्न” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Cloud & IT Cert Prep पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Cloud & IT Cert Prep पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- KMS, ACM और एन्क्रिप्शन पैटर्न
- GuardDuty, Inspector और Macie
- Secrets Manager और Parameter Store
- WAF, Shield और Network Firewall