Thuta Learning
ရှာဖွေရန်
IntermediateDevOpsbeginner

EC2 Deep Dive (Security Groups, Elastic IP)

စိတ်လျှော့ပါ။ ဒီခန်းကို စာအုပ်လိုမဟုတ်ဘဲ စကားပြောသလိုပဲ၊ နားလည်လွယ်အောင် ရှင်းပါမယ်။

ဒီခန်းပြီးရင် ဘာတတ်သွားမလဲ

  • EC2 Deep Dive (Security Groups, Elastic IP) ကို ကြောက်စရာမလိုအောင် နားလည်မယ်
  • ကိုယ်တိုင် AWS CLI/Console ကို run ကြည့်တတ်မယ်
  • Real project ထဲမှာ ဒီ concept ကို ချက်ချင်း အသုံးချတတ်မယ်

ခဏလေး ဒီလိုပဲ စဉ်းစားကြည့်

Security Group က EC2 instance ရဲ့ virtual firewall ပါ — inbound rule (instance ထဲကို ဘယ် port/IP ကနေ ဝင်ခွင့်ပြုမလဲ) နဲ့ outbound rule (instance ကနေ ဘယ်ကို ထွက်ခွင့်ပြုမလဲ) ကို သတ်မှတ်ပါတယ်။ Default ဖြင့် outbound အားလုံး ခွင့်ပြု, inbound အားလုံး ပိတ်ထားပါတယ် — SSH (port 22), HTTP (port 80), HTTPS (port 443) စတဲ့ port ကို လိုအပ်သလောက်ပဲ ဖွင့်ပေးရပါတယ် (least privilege)။ Elastic IP ကတော့ EC2 instance ကို attach ထားနိုင်တဲ့ fixed public IP address ပါ — Instance ကို restart လုပ်ရင် (default) public IP ပြောင်းသွားနိုင်ပေမယ့် Elastic IP ချိတ်ထားရင် IP မပြောင်းပါဘူး.

လက်တွေ့ scenario နဲ့ ချိတ်ကြည့်မယ်

Web server EC2 instance ကို HTTP (80)/HTTPS (443) ကို 'anywhere' ဖွင့်ပေးပြီး, SSH (22) ကို ကိုယ့် office IP ကနေပဲ ဖွင့်ပေးထားရင် — public user တွေက website ကို ဝင်ကြည့်နိုင်ပေမယ့် attacker တွေက SSH ကနေ ဝင်ရောက်ဖို့ ခက်ခဲပါတယ်။ Instance ကို stop/start ထပ်လုပ်ရင် Elastic IP မချိတ်ထားရင် public IP ပြောင်းသွားနိုင်လို့, DNS record (Route 53) ကို ချိတ်ထားရင် Elastic IP ချိတ်ထားသင့်ပါတယ်.

အတူတူ ကြည့်မယ်

bash
# Allow HTTP/HTTPS from anywhere, SSH only from your IP
aws ec2 authorize-security-group-ingress \
  --group-id sg-0123456789abcdef0 \
  --protocol tcp --port 80 --cidr 0.0.0.0/0

aws ec2 authorize-security-group-ingress \
  --group-id sg-0123456789abcdef0 \
  --protocol tcp --port 22 --cidr 203.0.113.10/32

# Allocate and associate an Elastic IP
aws ec2 allocate-address
aws ec2 associate-address --instance-id i-0123456789abcdef0 --allocation-id eipalloc-0123456789abcdef0
You should see
$ aws ec2 describe-security-groups --group-ids sg-0123456789abcdef0
# Shows inbound rules: 80/tcp from 0.0.0.0/0, 22/tcp from 203.0.113.10/32

၅ မိနစ် စမ်းကြည့်

EC2 instance (Basic chapter) ရဲ့ Security Group ကို HTTP (80) port ဖွင့်ထားပြီး, Elastic IP တစ်ခု allocate/associate လုပ်ကြည့်ပါ — instance ကို stop/start ထပ်လုပ်ကြည့်ပြီး public IP မပြောင်းကြောင်း confirm လုပ်ကြည့်ပါ။

သတိလေးတစ်ချက်

Elastic IP ကို instance နဲ့ associate မလုပ်ဘဲ (idle) ထားရင် cost ဖြစ်ပေါ်ပါတယ် (associate ထားရင်တော့ EC2 running ချိန် အခမဲ့ပါ) — Free Tier limit ကို သတိထားပါ။

ဒီနေရာမှာ လူအများမှားတတ်တယ်

  • SSH port ကို 0.0.0.0/0 (anywhere) ဖွင့်ချထားခြင်း — brute-force attack ခံရနိုင်ပါတယ်
  • Elastic IP ကို allocate ထားပြီး instance ကို မချိတ်ဆက်ဘဲ idle ထားခြင်း — AWS က idle Elastic IP ကို hourly charge ပေးပါတယ်

အခု ကိုယ်တိုင် စမ်းကြည့်

EC2 instance (Basic chapter) ရဲ့ Security Group ကို HTTP (80) port ဖွင့်ထားပြီး, Elastic IP တစ်ခု allocate/associate လုပ်ကြည့်ပါ — instance ကို stop/start ထပ်လုပ်ကြည့်ပြီး public IP မပြောင်းကြောင်း confirm လုပ်ကြည့်ပါ။

You'll know it worked when: $ aws ec2 describe-security-groups --group-ids sg-0123456789abcdef0 # Shows inbound rules: 80/tcp from 0.0.0.0/0, 22/tcp from 203.0.113.10/32

EC2 Deep Dive (Security Groups, Elastic IP) | Thuta Learning