HackCert
Intermediate 10 min read May 25, 2026

IaC Security: ইনফ্রাস্ট্রাকচার অ্যাজ কোড ব্যবহারে সাইবার নিরাপত্তা এবং কমপ্লায়েন্স!

Terraform, CloudFormation, Ansible-এর মতো IaC টুল ব্যবহারে নিরাপত্তা ঝুঁকি, vulnerability scanning এবং compliance enforcement-এর বিস্তারিত পদ্ধতি।

Abdullah Al Mamun
DevSecOps Engineer
share
IaC Security: ইনফ্রাস্ট্রাকচার অ্যাজ কোড ব্যবহারে সাইবার নিরাপত্তা এবং কমপ্লায়েন্স!
Overview

গত এক দশকে cloud computing-এর বিপ্লব আমাদের infrastructure পরিচালনার পদ্ধতি সম্পূর্ণ বদলে দিয়েছে। আগে যেখানে server প্রস্তুত করতে দিনের পর দিন লাগত, এখন কয়েক মিনিটের মধ্যে হাজার হাজার resource provision করা সম্ভব। এই পরিবর্তনের পিছনে সবচেয়ে গুরুত্বপূর্ণ ভূমিকা পালন করছে Infrastructure as Code বা IaC — একটি প্যারাডাইম যেখানে infrastructure-কে software code-এর মতো declarative ফাইলে লিখে provision এবং manage করা হয়। Terraform, AWS CloudFormation, Azure ARM Template, Pulumi, এবং Ansible-এর মতো টুল এই বিপ্লবের প্রধান হাতিয়ার।

কিন্তু এই গতি এবং নমনীয়তার সাথে এসেছে নতুন নিরাপত্তা চ্যালেঞ্জ। একটি ভুল configuration line এখন হাজার হাজার server বা কোটি কোটি data record-কে exposed করতে পারে। তাই IaC Security আধুনিক cloud security strategy-র একটি অপরিহার্য অংশ।

IaC-এর মৌলিক ধারণা ও Adoption

Infrastructure as Code-এর কেন্দ্রীয় ধারণা হলো infrastructure-কে version-controlled, repeatable, এবং auditable পদ্ধতিতে define করা। আগে যেখানে একজন admin manually console-এ ক্লিক করে server, network, এবং database সেট আপ করতেন, এখন সেই কাজ একটি .tf বা .yaml ফাইলে লিখে git repository-তে commit করা হয়।

এর সুবিধা অসংখ্য — consistency, repeatability, faster deployment, এবং সবচেয়ে গুরুত্বপূর্ণ, comprehensive audit trail। যেকোনো infrastructure change এখন git history-তে দৃশ্যমান, এবং প্রতিটি change কেন করা হয়েছে তা commit message-এ documented।

জনপ্রিয় টুলগুলোর মধ্যে Terraform multi-cloud capability-র জন্য সবচেয়ে বেশি ব্যবহৃত। HashiCorp Configuration Language বা HCL ব্যবহার করে এটি AWS, Azure, GCP, এবং শতাধিক provider-এর জন্য একই syntax-এ resource define করতে পারে। CloudFormation শুধু AWS-এর জন্য, কিন্তু AWS service-এর সবচেয়ে গভীর integration প্রদান করে। Pulumi একটি নতুন approach নিয়ে এসেছে যেখানে infrastructure-কে TypeScript, Python, বা Go-এর মতো general-purpose programming language-এ লেখা যায়।

কিন্তু এই সবগুলো টুলের সাথে একটি common challenge — security misconfiguration। গবেষণা দেখায় যে cloud breach-এর প্রায় ৮০% misconfiguration-এর কারণে ঘটে, এবং এর একটি বিশাল অংশ IaC-এর মাধ্যমে introduce হয়।

সাধারণ IaC Misconfiguration

প্রথমেই আসে public-facing storage bucket-এর সমস্যা। Terraform-এ একটি সাধারণ aws_s3_bucket resource তৈরি করার সময় যদি ACL public-read সেট করা হয় বা bucket policy যথাযথভাবে restrict না করা হয়, তবে সংবেদনশীল data ইন্টারনেটে exposed হয়ে যেতে পারে। Capital One-এর ১০০ মিলিয়ন গ্রাহকের data breach-এর পিছনে এই ধরনের misconfiguration ছিল একটি প্রধান কারণ।

দ্বিতীয় common issue হলো overly permissive IAM policy। অনেক ডেভেলপার সময় বাঁচানোর জন্য Action: "*" এবং Resource: "*" লিখে দেন, যা least-privilege principle-এর সম্পূর্ণ বিপরীত। এই ধরনের wildcard permission পরবর্তীতে privilege escalation-এর সুযোগ তৈরি করে।

Hardcoded secret IaC-এর সবচেয়ে বিপজ্জনক anti-pattern। API key, password, এবং certificate সরাসরি Terraform file-এ লিখে git-এ commit করার ঘটনা প্রায়ই দেখা যায়। GitHub-এর secret scanning report অনুযায়ী প্রতি মাসে লক্ষ লক্ষ secret accidentally public repository-তে leak হয়।

Unencrypted resource আরেকটি গুরুত্বপূর্ণ ঝুঁকি। অনেক cloud service-এ encryption default-এ enable থাকে না — উদাহরণস্বরূপ, EBS volume, RDS database, এবং SNS topic। IaC code-এ যদি explicit encryption configuration না থাকে, তবে এই resource-গুলো plaintext-এ data সংরক্ষণ করে।

Security group এবং firewall rule-এ overly permissive ingress একটি ধারাবাহিক সমস্যা। 0.0.0.0/0 দিয়ে SSH (port 22) বা RDP (port 3389) open করা — এই ভুল প্রতিটি cloud security audit-এ পাওয়া যায়।

IaC Security Scanning Tool

বর্তমানে অসংখ্য open-source এবং commercial টুল রয়েছে যা IaC code-কে নিরাপত্তার দৃষ্টিকোণ থেকে বিশ্লেষণ করতে পারে। Checkov হলো সবচেয়ে জনপ্রিয় open-source সলিউশন। Bridgecrew (এখন Palo Alto Networks-এর অংশ) দ্বারা maintained, এটি Terraform, CloudFormation, Kubernetes, Helm, এবং অন্যান্য IaC format support করে।

Checkov ব্যবহার করা অত্যন্ত সহজ:

pip install checkov
checkov -d /path/to/terraform/code --framework terraform
checkov -f main.tf --output json --output-file results.json

এর built-in policy library 1000+ এরও বেশি check রয়েছে, যা CIS Benchmark, AWS Well-Architected Framework, এবং বিভিন্ন compliance standard-এর সাথে aligned।

Terrascan আরেকটি শক্তিশালী টুল যা OPA (Open Policy Agent) বা Rego language-এ লেখা policy ব্যবহার করে। এটি custom policy তৈরির অসাধারণ flexibility প্রদান করে।

tfsec বিশেষভাবে Terraform-এর জন্য optimized এবং fast feedback দেয়। এটি IDE plugin-এ integrate করা যায়, যা ডেভেলপারদের code লেখার সময় instant feedback দেয়।

Commercial সলিউশনের মধ্যে Snyk IaC, Wiz, Lacework, এবং Prisma Cloud উল্লেখযোগ্য। এগুলো শুধু scanning নয়, runtime drift detection, attack path analysis, এবং automated remediation-এর মতো advanced feature প্রদান করে।

Policy as Code এবং OPA

Policy as Code একটি extension হলো IaC-এর — যেখানে security এবং compliance policy-গুলোকেও code হিসেবে লেখা হয়। Open Policy Agent বা OPA এই ক্ষেত্রে সবচেয়ে জনপ্রিয় open-source সলিউশন।

OPA-এর Rego language-এ একটি simple policy এমন দেখতে পারে:

package terraform.aws.s3

deny[msg] {
    resource := input.resource.aws_s3_bucket[name]
    resource.acl == "public-read"
    msg := sprintf("S3 bucket '%v' has public-read ACL", [name])
}

deny[msg] {
    resource := input.resource.aws_s3_bucket[name]
    not resource.server_side_encryption_configuration
    msg := sprintf("S3 bucket '%v' lacks encryption", [name])
}

এই ধরনের policy CI/CD pipeline-এ integrate করে যেকোনো non-compliant infrastructure deployment আগেই block করা যায়। HashiCorp Sentinel একই কাজ করে Terraform Cloud/Enterprise-এ।

Kyverno এবং Gatekeeper Kubernetes-এর জন্য policy enforcement প্রদান করে। যদিও এগুলো runtime-এ কাজ করে, এদের policy-গুলোকেও code হিসেবে maintain করা হয়।

Pipeline Integration ও Shift-Left Security

আধুনিক DevSecOps-এর মূল মন্ত্র হলো "shift left" — যত আগে possible security check পরিচালনা করা। IaC-এর ক্ষেত্রে এর অর্থ হলো local development environment থেকে শুরু করে git pre-commit hook, CI pipeline, এবং deployment time পর্যন্ত multiple layer-এ scanning করা।

একটি adarsho GitHub Actions workflow এমন দেখতে পারে:

name: IaC Security Scan
on: [pull_request]
jobs:
  security:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Checkov scan
        uses: bridgecrewio/checkov-action@master
        with:
          directory: ./terraform
          quiet: true
      - name: tfsec scan
        uses: aquasecurity/[email protected]
      - name: Terrascan
        uses: tenable/terrascan-action@main

Pre-commit hook-এ pre-commit framework ব্যবহার করে scanning চালানো যায়। এটি ডেভেলপারের local machine-এ commit-এর আগেই vulnerability ধরে ফেলে, যা git history-কে clean রাখে।

GitLab, Jenkins, CircleCI, এবং Azure DevOps-এর সবগুলোতেই অনুরূপ integration সম্ভব। গুরুত্বপূর্ণ হলো এই check-গুলোকে blocking হিসেবে কনফিগার করা যাতে non-compliant code merge না হতে পারে।

State File এবং Secret Management

Terraform state file একটি গুরুত্বপূর্ণ security concern। এই file-এ সমস্ত resource-এর current state সংরক্ষিত থাকে, এবং অনেক ক্ষেত্রে এতে sensitive information যেমন database password, API key plaintext-এ থাকতে পারে।

Best practice হলো state file কখনোই git-এ commit না করা। S3 (encryption সহ), Azure Storage, বা Terraform Cloud-এর মতো remote backend ব্যবহার করুন। State locking-এর জন্য DynamoDB বা equivalent mechanism configure করুন যাতে concurrent modification-এ corruption না ঘটে।

Secret management-এর জন্য AWS Secrets Manager, HashiCorp Vault, Azure Key Vault, বা GCP Secret Manager-এর মতো dedicated সার্ভিস ব্যবহার করুন। IaC code-এ secret-এর actual value না রেখে reference রাখুন:

data "aws_secretsmanager_secret_version" "db_password" {
  secret_id = "prod/database/password"
}

resource "aws_db_instance" "main" {
  password = data.aws_secretsmanager_secret_version.db_password.secret_string
}

Git history-তে accidentally leaked secret-এর জন্য git-secrets, truffleHog, এবং gitleaks-এর মতো টুল চালান। যদি secret leak হয়েই থাকে, শুধু git rewrite-ই যথেষ্ট নয় — সেই secret immediately rotate করতে হবে।

Compliance Framework Integration

বিভিন্ন regulatory framework-এর জন্য IaC-এ compliance enforce করা সম্ভব। CIS Benchmark, NIST 800-53, PCI-DSS, HIPAA, SOC 2-এর সবগুলোর জন্যই specific control set রয়েছে যা IaC scanning tool implement করেছে।

বাংলাদেশের ব্যাংকিং সেক্টর-এ Bangladesh Bank-এর IT Security Guidelines অনুসারে নির্দিষ্ট control থাকতে হবে। এর অনেকগুলো প্রযুক্তিগত control IaC-এর মাধ্যমে enforce করা সম্ভব — encryption at rest, audit logging, network segmentation, এবং access control।

Checkov এবং Prisma Cloud-এর মতো টুলে compliance pack রয়েছে যা একটি click-এ specific framework-এর সমস্ত applicable check enable করে দেয়। আপনার organization-এর প্রযোজ্য framework-গুলো identify করে সেগুলোর জন্য continuous compliance monitoring স্থাপন করুন।

Drift Detection ও Continuous Monitoring

IaC deploy করার পর infrastructure-এ manual change হতে পারে — সাধারণত emergency response বা troubleshooting-এর সময়। এই changes IaC code-এর সাথে যদি sync না থাকে, তবে "drift" তৈরি হয়।

Drift detection-এর জন্য Terraform-এর terraform plan command, AWS Config, Azure Policy, এবং dedicated সলিউশন যেমন driftctl ব্যবহৃত হয়। নিয়মিত drift detection job চালান এবং discrepancy-গুলো investigate করুন।

Runtime monitoring-এর জন্য AWS Config Rules, Azure Policy, এবং GCP Security Command Center configure করুন। এগুলো IaC-এর পরিপূরক হিসেবে কাজ করে — IaC যেখানে deployment-time check করে, এই tool-গুলো runtime configuration monitor করে।

প্রতিরোধ ও Best Practices

প্রথমত, সমস্ত IaC code git repository-তে রাখুন এবং mandatory code review প্রক্রিয়া অনুসরণ করুন। কোনো single individual যাতে production infrastructure-এ change push করতে না পারে।

দ্বিতীয়ত, module-based architecture ব্যবহার করুন। Security-related configuration যেমন encryption, logging, এবং network policy-কে reusable module-এ encapsulate করুন। এতে consistency নিশ্চিত হয় এবং security best practice-গুলো automatically propagate করে।

তৃতীয়ত, environment separation কঠোরভাবে বজায় রাখুন। Development, staging, এবং production-এর জন্য আলাদা workspace, state file, এবং credentials ব্যবহার করুন।

চতুর্থত, automated remediation framework deploy করুন। যখন non-compliant resource detect হয়, তখন automated workflow-এর মাধ্যমে সেটি ঠিক করুন বা শাটডাউন করুন।

পঞ্চমত, team-কে নিয়মিত IaC security training দিন। নতুন vulnerability pattern, এবং নতুন tool সম্পর্কে updated থাকা অপরিহার্য।

Key Takeaways

Infrastructure as Code আধুনিক cloud era-র অপরিহার্য প্রযুক্তি, কিন্তু এর সাথে আসে অনন্য নিরাপত্তা চ্যালেঞ্জ। একটি ভুল line of code এখন কোটি কোটি ডলার মূল্যের data breach-এর কারণ হতে পারে। তাই IaC Security শুধু "good to have" নয়, বরং প্রতিটি cloud-native organization-এর জন্য "must have"। সঠিক টুল, সুপ্রতিষ্ঠিত process, এবং trained team-এর সমন্বয়ে আপনি IaC-এর সুবিধা পুরোপুরি কাজে লাগাতে পারবেন একই সাথে আপনার security posture উন্নত করতে পারবেন। মনে রাখবেন, security কোনো destination নয়, এটি একটি journey — এবং IaC এই journey-কে দ্রুততর এবং repeatable করার সবচেয়ে কার্যকর উপায়।

আপনার জ্ঞান যাচাই করতে প্রস্তুত? আজই HackCert-এ IaC Security MCQ Quiz-টি দিন!

Related articles

back to all articles