AWS Global Infrastructure

AWS Region (রিজিয়ন)

রিজিয়ন হলো পৃথিবীর একটি নির্দিষ্ট ভৌগোলিক এলাকা (যেমন: উত্তর ভার্জিনিয়া, মুম্বাই বা টোকিও)। প্রতিটি রিজিয়ন একে অপরের থেকে সম্পূর্ণ আলাদা থাকে।

Availability Zones - AZ (অ্যাভেইলিবিলিটি জোন)

একটি রিজিয়নের ভেতরে থাকা এক বা একাধিক বিচ্ছিন্ন ডেটা সেন্টারকে বলা হয় Availability Zone। প্রতিটি জোনের নিজস্ব পাওয়ার, কুলিং এবং নেটওয়ার্কিং ব্যবস্থা থাকে।

Edge Locations (এজ লোকেশন)

এগুলো রিজিয়ন বা AZ-এর মতো বড় ডেটা সেন্টার নয়, বরং এগুলো ছোট ছোট সার্ভিস পয়েন্ট যা সারা বিশ্বের প্রধান শহরগুলোতে ছড়িয়ে আছে। এটি মূলত AWS-এর CDN (Content Delivery Network) যেটাকে Amazon CloudFront বলা হয়, তার জন্য কাজ করে।

🌐 ইউজার রিকোয়েস্ট ফ্লো (User Request Flow)

একটি রিকোয়েস্ট ইউজার থেকে মেইন সার্ভার পর্যন্ত কীভাবে পৌঁছায়, তার ধাপগুলো নিচে দেওয়া হলো:

ধাপ (Step) অবস্থান ও প্রক্রিয়া (Process) বর্ণনা (Description)
১. User আপনার ল্যাপটপ/মোবাইল ইউজার কোনো ওয়েবসাইট বা ডাটার জন্য রিকোয়েস্ট পাঠায়।
২. Edge Location ইউজারের সবথেকে কাছের পয়েন্ট এখানে চেক করা হয় ডাটা Cache করা আছে কি না।
Cache Hit: এখান থেকেই ডাটা ফিরে যায়।
Cache Miss: পরবর্তী ধাপে যায়।
৩. Regional Cache বড় ইন্টারমিডিয়েট স্টোরেজ (ঐচ্ছিক) যদি Edge-এ না থাকে, তবে আঞ্চলিক ক্যাশ মেমোরিতে খোঁজা হয়।
৪. AWS Region মেইন জিওগ্রাফিক্যাল এরিয়া রিকোয়েস্টটি মূল ক্লাউড রিজিয়নে প্রবেশ করে।
৫. Availability Zone নির্দিষ্ট ডেটা সেন্টার (AZ) রিজিয়নের ভেতরে থাকা ফিজিক্যাল ডেটা সেন্টারে পৌঁছায়।
৬. Main Server/DB মেইন অ্যাপ্লিকেশন ও ডাটাবেস আপনার কোড যেখানে রান করছে; এখান থেকে ফাইনাল ডাটা প্রসেস হয়।

🛠️ মূল শব্দসমূহ (Key Concepts):

প্রো-টিপ: ওয়েবসাইট সুপার ফাস্ট করার জন্য CDN (Content Delivery Network) ব্যবহার করা হয়, যা এই Edge Location-কে কাজে লাগিয়ে কন্টেন্ট সার্ভ করে।

IaaS (Infrastructure as a Service)

এটি অনেকটা “কাঁচা বাজার করে আনা”-র মতো। আপনি দোকান থেকে ময়দা, চিজ, সস কিনে আনলেন, কিন্তু রান্নাটা আপনাকেই করতে হবে।

PaaS (Platform as a Service)

এটি অনেকটা “পিৎজা হোম ডেলিভারি”-র মতো। আপনার নিজের রান্না করার দরকার নেই, ওভেন বা গ্যাসেরও দরকার নেই। শুধু অর্ডার দিবেন আর টেবিল সাজিয়ে খাবেন।

SaaS (Software as a Service)

এটি হলো “রেস্টুরেন্টে গিয়ে পিৎজা খাওয়া”-র মতো। আপনার রান্নার চিন্তা নেই, টেবিল পরিষ্কার করারও চিন্তা নেই। শুধু যাবেন, খাবেন আর বিল দিয়ে চলে আসবেন।

Identity and Access Management

IAM-এর ৪টি প্রধান পিলার বা ‘Under-the-hood’ মেকানিক্স সহজভাবে দেওয়া হলো:

  1. Users
  1. Groups
  1. Policies
  1. Roles

উদাহরণ: আপনার একটি সার্ভার (EC2) আছে যেটিকে S3 থেকে ছবি ডাউনলোড করতে হবে। আপনি সার্ভারের ভেতর আপনার পাসওয়ার্ড লিখে রাখবেন না (সেটা রিস্কি)। বরং আপনি একটি Role বানাবেন এবং সার্ভারকে বলবেন, “তুমি এই রোলে ছদ্মবেশ ধরো এবং কাজ শেষ করো।”

IAM শেখার সময় ৩টি গোল্ডেন রুল (Best Practices)

  1. Least Privilege: কাউকে প্রয়োজনের চেয়ে এক বিন্দু বেশি ক্ষমতা দেবেন না। যদি কারো কাজ শুধু ফাইল দেখা হয়, তাকে ডিলিট করার ক্ষমতা দেবেন না।
  2. MFA (Multi-Factor Authentication): আপনার ফোনের Google Authenticator বা Authy দিয়ে ২-স্টেপ ভেরিফিকেশন অবশ্যই অন করবেন।
  3. Never Use Root: রুট ইউজারের পাসওয়ার্ড লকারে তালা মেরে রাখুন। প্রতিদিনের কাজের জন্য একটি অ্যাডমিন ইউজার বানিয়ে নিন।

Root User এবং IAM Administrator-এর মধ্যে পার্থক্য কী?

রুট ইউজার হলো অ্যাকাউন্টের মালিক, যার কাছে বিলিং এবং অ্যাকাউন্ট ডিলিট করার ক্ষমতা থাকে। রুট ইউজারকে কোনো পলিসি দিয়ে আটকানো যায় না। অন্যদিকে, IAM Administrator হলো একজন ইউজার যাকে অ্যাডমিন ক্ষমতা দেওয়া হয়েছে, কিন্তু তাকে চাইলে অন্য কেউ বা রুট ইউজার ব্লক করতে পারে।

‘Least Privilege Principle’ বলতে কী বোঝায়?

এটি ক্লাউড সিকিউরিটির মূল মন্ত্র। এর মানে হলো, একজন ইউজারকে ঠিক ততটুকুই পারমিশন দেওয়া যতটুকু তার কাজের জন্য প্রয়োজন। যেমন: যদি কেউ শুধু ফাইল পড়তে চায়, তাকে ReadOnly এক্সেস দিতে হবে, FullAccess নয়।

IAM Role আর IAM User-এর মধ্যে মূল পার্থক্য কী? কখন কোনটা ব্যবহার করবেন?

User হলো একজন নির্দিষ্ট ব্যক্তি বা পার্মানেন্ট এনটিটি যার নির্দিষ্ট পাসওয়ার্ড বা কি (key) থাকে। আর Role হলো অস্থায়ী (Temporary)। যখন কোনো সার্ভিস (যেমন EC2) অন্য কোনো সার্ভিসকে (যেমন S3) কল করতে চায়, তখন আমরা Role ব্যবহার করি কারণ এটি বেশি সিকিউর এবং এতে কোনো পাসওয়ার্ড হার্ডকোড করে রাখতে হয় না।

আপনি যদি আপনার Access Key হারিয়ে ফেলেন, তবে প্রথম কাজ কী হবে?

সাথে সাথে AWS কনসোলে গিয়ে ওই Access Key-টিকে Deactivate বা Delete করতে হবে। এরপর একটি নতুন কি জেনারেট করতে হবে।

প্রশ্ন: “আরিফকে আমি S3FullAccess দিয়েছি, কিন্তু আমি (Admin) আবার আরিফের জন্য একটি আলাদা পলিসি লিখে সেখানে S3 Access ‘Deny’ করে দিয়েছি। এখন আরিফ কি S3 এক্সেস পাবে?”

Least Privilege Example

  1. JSON Policy তৈরি করা (The Technical Blueprint)
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListAllMyBuckets",
                "s3:GetBucketLocation",
                "s3:ListBucket",
                "s3:GetObject",
                "s3:PutObject"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Deny",
            "Action": [
                "s3:DeleteObject",
                "s3:DeleteBucket"
            ],
            "Resource": "*"
        }
    ]
}
  1. আন্ডার-দ্য-হুদ ব্রেকডাউন

ListAllMyBuckets: সে দেখতে পারবে আপনার অ্যাকাউন্টে কয়টি বাকেট আছে।

GetObject: সে ফাইল ডাউনলোড বা ওপেন করতে পারবে।

PutObject: সে নতুন ফাইল আপলোড করতে পারবে।

DeleteObject ও DeleteBucket: আমরা সরাসরি বলে দিলাম, সে যেন ভুলেও কিছু Delete করতে না পারে।

যদি আরিফের গ্রুপে ‘Allow’ থাকেও, এই ‘Deny’ থাকা মানে সে আর ডিলিট করতে পারবে না। (Explicit Deny always wins!)

আমি আরিফকে S3-তে ফাইল আপলোড করার পারমিশন দিয়েছি (PutObject), কিন্তু সে যখন আপলোড করতে যাচ্ছে তখন ‘Access Denied’ দেখাচ্ছে। এর সম্ভাব্য কারণ কী হতে পারে?

“এর ৩টি প্রধান কারণ থাকতে পারে:

  1. Missing ListBucket Permission: অনেক সময় ফাইল আপলোড করার আগে কনসোল চেক করে ওই বাকেটটি আছে কি না। ListBucket পারমিশন না থাকলে সে বাকেটের ভেতরেই ঢুকতে পারবে না।

  2. KMS Encryption: যদি বাকেটটি এনক্রিপ্টেড থাকে, তবে আরিফের কাছে ওই ডাটা এনক্রিপ্ট করার (KMS Key) পারমিশনও থাকতে হবে।

  3. S3 Bucket Policy: IAM-এ পারমিশন থাকলেও, যদি ওই নির্দিষ্ট S3 বাকেটের নিজস্ব Bucket Policy-তে আরিফকে ব্লক করা থাকে, তবে সে এক্সেস পাবে না।”

Interview Questions

  1. IAM Policy এবং IAM Role-এর মধ্যে পার্থক্য কী?

IAM Role: এটি কোনো নির্দিষ্ট ব্যক্তির জন্য নয়। এটি একটি অস্থায়ী (Temporary) সত্তা। যখন কোনো সার্ভিস (যেমন EC2) বা বাইরের কোনো ইউজারকে সাময়িকভাবে কোনো পারমিশন দিতে হয়, তখন Role ব্যবহার করা হয়। রোলের কোনো পাসওয়ার্ড থাকে না, এটি ‘Sts:AssumeRole’ মেকানিজম ব্যবহার করে।

  1. একজন ইউজারকে ভুলেও “AdministratorAccess” দিয়েছেন। এখন তাকে কীভাবে ব্লক করবেন দ্রুত?

দুইটি উপায়ে করা যায়:

  1. AWS-এ “Shared Responsibility Model” বলতে কী বোঝায়?
  1. "Least Privilege" বলতে কী বোঝেন এবং এটি কীভাবে ইমপ্লিমেন্ট করবেন?
  1. যদি কেউ তার Access Key আর Secret Key লিক করে ফেলে বা হারিয়ে ফেলে, তবে আপনার অ্যাকশন কী হবে?
  1. IAM Group-এ পারমিশন দিলে সুবিধা কী?