一、Security Group 是什么(一句话先记住)
Security Group = 实例级别的“虚拟防火墙”
特点(必考):
只允许(Allow),没有拒绝(Deny)
有状态(Stateful)
作用在 ENI(网卡)/ 资源级别
二、创建 Security Group(AWS Console 实操)
Step 1:进入 Security Groups
路径:
AWSConsole→ EC2 →Network&Security→SecurityGroups点击 Create security group
Step 2:填写基本信息
| 配置项 | 示例 |
|---|---|
| Security group name | web-sg |
| Description | Allow HTTP/SSH |
| VPC | 选择你的 VPC(非常重要) |
⚠️ Security Group 一定属于某个 VPC
Step 3:配置 Inbound Rules(入站规则)
点击 Add rule
示例:Web 服务器常见配置
1️⃣ 允许 HTTP
| Type | Protocol | Port | Source |
|---|---|---|---|
| HTTP | TCP | 80 | 0.0.0.0/0 |
2️⃣ 允许 SSH(更安全写法)
| Type | Protocol | Port | Source |
|---|---|---|---|
| SSH | TCP | 22 | 你的公网 IP |
📌 不推荐:
SSH → 0.0.0.0/0
Step 4:配置 Outbound Rules(出站规则)
默认会有一条:
Alltraffic →0.0.0.0/0通常 保持默认即可
Step 5:创建
点击 Create security group
✅ Security Group 创建完成
三、Security Group 生效的前提(非常容易错)
1️⃣ 必须绑定到资源
Security Group 自己不生效,必须关联:
EC2
ALB / NLB
RDS
Lambda(VPC 模式)
2️⃣ 一个资源可以绑定多个 SG
规则是 取并集(OR)
四、实战示例:给 EC2 绑定 SG
方法 1:创建 EC2 时
LaunchEC2 →Networksettings →Selectsecurity group方法 2:EC2 创建后修改
EC2 →Instances→ 选中实例Actions→Security→Changesecurity groups五、Security Group vs Route Table(很多人混)
| 项目 | Security Group | Route Table |
|---|---|---|
| 控制什么 | 谁能访问我 | 流量往哪走 |
| 层级 | 实例级 | 子网级 |
| 是否有状态 | 有状态 | 无状态 |
| 允许/拒绝 | 只允许 | 隐式拒绝 |
六、典型错误(真实踩坑)
❌ SG 开了 80 但访问不了
👉 Route Table / IGW / NACL 问题
❌ 子网是 Public,但 EC2 无法访问
👉 SG 没放行端口
❌ 能出不能进
👉 入站没放行
七、考试 & 面试必背点
Security Group 是 Stateful
只支持 Allow
默认 Inbound 全拒绝
默认 Outbound 全放行
绑定在 ENI / 实例级别
八、一个完整例子
SecurityGroup:web-sgInbound:-HTTP80from0.0.0.0/0-SSH22fromMyIPOutbound:-Alltrafficto0.0.0.0/0