iT邦幫忙

2025 iThome 鐵人賽

DAY 5
0
Build on AWS

AWS 雲原生,學起來比泡咖啡還快系列 第 5

防火牆誰來管?Security Group 出馬

  • 分享至 

  • xImage
  •  

在 AWS 上,Security Group(安全群組)就像是幫 EC2、RDS 等資源設立的一道虛擬防火牆,它控制著「誰可以進來、誰可以出去」。

Security Group 是什麼?

是一種 虛擬防火牆(Virtual Firewall),用來保護 VPC 中的資源。
適用於:EC2、RDS、Lambda(VPC 模式)、ECS、Elastic Load Balancer 等。
運作在「資源層級(instance-level)」,而不是子網層級。
同一個資源可以套用多個 Security Group。

流量控制方式

1.Inbound(入站)規則:誰可以連進來?

控制哪些 IP/Port/協定可以「對我發出連線請求」。
範例:只允許 TCP:22(SSH)從公司 IP 進來。
https://ithelp.ithome.com.tw/upload/images/20250905/201454625PBTZgl20f.png
2.Outbound(出站)規則:我可以連出去嗎?

控制這個資源「可以連出去哪些地方」。
預設是開放所有出站(0.0.0.0/0),可以修改限制範圍。
https://ithelp.ithome.com.tw/upload/images/20250905/20145462w9bgFAzcI7.png

設計 Security Group 時的 6 個關鍵原則

1.最小權限原則(Least Privilege)

  • 只開放需要的 port 和 IP。
  • 不要用 0.0.0.0/0 + 所有 port 除非你知道你在幹嘛。
  • 例: 允許 TCP:22 從公司 IP 203.0.113.5/32 進來,允許 TCP:443 從全球訪問(給 ALB 用)

2.支援狀態追蹤(Stateful)

Security Group 是「狀態式(Stateful)」防火牆: 如果 A 開放入站給 B,B 自動可以回應。
無需在出站也加規則。
例:你開 port 80 給外部訪問網站,不需手動設出站規則。

3.支援跨 SG 引用(相互信任)

Security Group 可以 引用另一個 SG 作為來源。
非常適合「服務對服務」之間的安全連線:
例:

App Server SG 入站允許:來自 Database SG on port 3306
好處:動態、IP 不固定也 OK

4.不能拒絕,只能允許(只做 allow)

Security Group 不支援 deny 規則。
這意味著:沒被允許的,就是預設拒絕。
如果你需要細緻的「拒絕某些 IP」,請用 NACL(Network ACL)。

5.預設的 Security Group 是允許「自我通訊」的

預設 VPC 的 SG 允許自己和自己通訊。
適合用於:ECS Service、Auto Scaling Group 等動態建立的資源群彼此互連。

6.請幫你的 Security Group 加 Tag 和說明

一但環境變複雜,你會看到一堆叫 sg-12345678 的鬼東西。
建議命名範例:
sg-prod-web-serversg-dev-rds-mysqlsg-shared-bastion

Tag:標記專案、環境(env)、負責人等,方便日後管理。

小補充: 真實慘案,之前在幫客戶進行review的時候,一定常常會發現有莫名其妙的IP出現在DB的SG,出現在那裏也不敢刪也不敢動,擔心會影響到線上的系統,所以標籤千萬注意。

常見實作範例

資源類型 入站規則 出站規則
EC2 Bastion TCP 22 from 公司 IP All outbound
Web Server TCP 80/443 from 0.0.0.0/0 TCP 443 to 外部 API
App Server TCP 8080 from Web Server SG TCP 3306 to RDS SG
RDS TCP 3306 from App SG 通常不開放任何出站

注意事項總整理

注意點 說明
不要亂開 0.0.0.0/0 除非真的要對外提供服務,否則只允許內部或特定 IP
多用 SG 引用 跨服務安全通訊更方便,也不怕動態 IP 變更
分環境設 SG dev / staging / prod 請用不同的 SG,以防誤打誤撞
定期審查 每季檢查 SG,刪除不必要的 port 或已廢棄的規則
日誌記錄 搭配 VPC Flow Logs 查看實際流量,有助於除錯與稽核

小結一句話:

Security Group 就是 AWS 上的「誰可以來找我」規則,一定要控好、控精、控細。


上一篇
路由表(Route Table) & 閘道器(Gateway):讓資料不迷路
系列文
AWS 雲原生,學起來比泡咖啡還快5
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言