DynamoDB এর সাথে KMS Integration

Database Tutorials - ডাইনামোডিবি (DynamoDB) DynamoDB Security এবং Access Control |
216
216

AWS Key Management Service (KMS) হল একটি পরিষেবা যা আপনাকে ডেটা এনক্রিপশন কীগুলি তৈরি, ম্যানেজ এবং নিয়ন্ত্রণ করতে সাহায্য করে। DynamoDB-এর সাথে KMS Integration ব্যবহারের মাধ্যমে, আপনি আপনার ডেটাকে encryption at rest নিরাপদে সংরক্ষণ করতে পারবেন।

DynamoDB স্বয়ংক্রিয়ভাবে encryption at rest সমর্থন করে, তবে যদি আপনি কাস্টম এনক্রিপশন কীগুলি (Custom KMS Key) ব্যবহার করতে চান, তবে আপনাকে AWS KMS এর সাহায্যে এটি কনফিগার করতে হবে।

DynamoDB এবং KMS Integration এর সুবিধাসমূহ

  1. Data at Rest Encryption: DynamoDB-এর সমস্ত ডেটা (যেমন টেবিল, ইনডেক্স, এবং স্ট্রিমস) এনক্রিপ্ট করা থাকে। আপনি AWS KMS কীগুলি ব্যবহার করে এই এনক্রিপশন নিয়ন্ত্রণ করতে পারবেন।
  2. Custom Key Management: আপনি AWS KMS ব্যবহার করে কাস্টম কীগুলি তৈরি এবং ম্যানেজ করতে পারেন। এটি আপনাকে আরও নিয়ন্ত্রণ দেয়, যেমন কীগুলির রোটেশন এবং অনুমতি।
  3. Compliance: KMS আপনার ডেটা এনক্রিপশন এবং ডিক্রিপশন পরিচালনা করার মাধ্যমে আপনার অ্যাপ্লিকেশনকে নিয়মিত নিরাপত্তা ও কমপ্লায়েন্স স্ট্যান্ডার্ড পূরণে সাহায্য করতে পারে, যেমন HIPAA বা PCI DSS

DynamoDB এর সাথে KMS Integration কিভাবে কাজ করে?

১. DynamoDB Encryption at Rest এবং KMS ব্যবহারের সুবিধা:

  • Default Encryption: DynamoDB দ্বারা স্বয়ংক্রিয়ভাবে প্রদান করা default encryption হল AWS owned keys, যা AWS KMS ব্যবহারের মাধ্যমে ডেটাকে এনক্রিপ্ট করে।
  • Custom Key Management: আপনি চাইলে আপনার নিজস্ব Customer Managed Keys (CMK) তৈরি করতে পারেন, যা আপনার ডেটাকে আরও কাস্টমাইজড এবং নিরাপদে এনক্রিপ্ট করবে।

২. DynamoDB Table তৈরি করার সময় KMS Key নির্বাচন করা:

যখন আপনি DynamoDB টেবিল তৈরি করবেন, তখন আপনি KMS এনক্রিপশন কীগুলি কনফিগার করতে পারেন। এর মাধ্যমে আপনি নির্ধারণ করতে পারবেন কোন AWS managed key অথবা Customer managed key (CMK) ব্যবহার করা হবে।

Example: DynamoDB Table তৈরি কাস্টম KMS Key দিয়ে (AWS Console)

  1. DynamoDB Management Console-এ যান।
  2. একটি নতুন টেবিল তৈরি করুন অথবা বিদ্যমান টেবিল নির্বাচন করুন।
  3. Encryption সেকশন খুঁজে বের করুন।
  4. এখানে আপনি দুটি অপশন পাবেন:
    • AWS owned key (ডিফল্ট এনক্রিপশন)
    • Customer managed key (CMK): যদি আপনি কাস্টম KMS কীগুলি ব্যবহার করতে চান, তবে এখানে Select a KMS Key অপশন নির্বাচন করুন এবং আপনার পছন্দসই KMS কীগুলি নির্বাচন করুন।

কাস্টম KMS Key ব্যবহার করার জন্য কমান্ড:

import boto3

# DynamoDB client তৈরি
dynamodb = boto3.client('dynamodb')

# টেবিল তৈরি করার সময় কাস্টম KMS Key ব্যবহার
response = dynamodb.create_table(
    TableName='YourTableName',
    KeySchema=[
        {
            'AttributeName': 'ID',
            'KeyType': 'HASH'  # Partition Key
        }
    ],
    AttributeDefinitions=[
        {
            'AttributeName': 'ID',
            'AttributeType': 'S'
        }
    ],
    ProvisionedThroughput={
        'ReadCapacityUnits': 5,
        'WriteCapacityUnits': 5
    },
    SSESpecification={
        'Enabled': True,
        'SSEType': 'KMS',
        'KMSMasterKeyId': 'arn:aws:kms:region:account-id:key/key-id'  # KMS Key ARN
    }
)

print(response)

DynamoDB Streams এবং KMS Integration

DynamoDB Streams-এর মাধ্যমে আপনি আপনার টেবিলের ডেটার পরিবর্তনগুলি ট্র্যাক করতে পারেন। আপনি যদি KMS এনক্রিপশন ব্যবহার করেন, তবে DynamoDB Streams এর ডেটা এনক্রিপ্টেড থাকবে। যখন আপনি স্ট্রিমের ডেটা অ্যাক্সেস করবেন, তখন সেই ডেটা ডিক্রিপ্ট করতে KMS Key ব্যবহার করা হবে।

Streams Example (Python):

import boto3

# DynamoDB Streams এর মাধ্যমে KMS দ্বারা এনক্রিপ্টেড ডেটা পাওয়ার উদাহরণ
dynamodbstreams = boto3.client('dynamodbstreams')

# Stream ARN এর মাধ্যমে ডেটা পড়া
response = dynamodbstreams.get_records(
    StreamArn='arn:aws:dynamodb:region:account-id:stream/stream-id'
)

# এনক্রিপ্টেড ডেটা ডিক্রিপ্ট করার জন্য KMS ব্যবহার করুন
# (এটি KMS API কলের মাধ্যমে করা হয়)

KMS Key রোটেশন এবং নিরাপত্তা

KMS-এ আপনি কাস্টম কীগুলি রোটেট করতে পারেন। যখন আপনার টেবিলের KMS Key রোটেট হবে, তখন DynamoDB স্বয়ংক্রিয়ভাবে আপনার ডেটাকে পুরানো কীগুলি থেকে নতুন কীগুলির সাথে সংযোগ করবে। এই রোটেশন প্রক্রিয়া ডেটার নিরাপত্তা নিশ্চিত করে এবং কোনও ডেটার অ্যাক্সেস ব্যাহত হয় না।

Key Rotation এবং Audit Logs এর মাধ্যমে আপনি আপনার কীগুলির ব্যবহারের উপর নজর রাখতে পারেন এবং নিরাপত্তা কনফিগারেশনগুলি সঠিকভাবে বজায় রাখতে পারেন।


সারাংশ

  • DynamoDB এবং AWS KMS Integration আপনাকে আপনার ডেটা এনক্রিপশন কাস্টমাইজ এবং ম্যানেজ করার সুযোগ দেয়।
  • KMS ব্যবহার করে আপনি কাস্টম কীগুলি তৈরি করতে পারেন এবং ডেটার উপর কঠোর নিয়ন্ত্রণ রাখতে পারেন।
  • DynamoDB স্বয়ংক্রিয়ভাবে encryption at rest সমর্থন করে, তবে আপনি চাইলে কাস্টম KMS Keys ব্যবহার করতে পারেন আরও নিরাপত্তা এবং নিয়ন্ত্রণের জন্য।
common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion