Azure VM 与最小安全组合
Azure 上最接近前两家云平台组合的是:Virtual Machine + NSG + Managed Disk + Managed Identity。网络安全逻辑与 AWS Security Group 类似,但命名和挂载方式不同。
Azure 最小组合图
graph LR
A[Internet] --> B[NSG 入站规则]
B --> C[Azure VM Ubuntu]
C --> D[Managed Disk 数据盘]
C --> E[Managed Identity]
E --> F[Storage Account / Azure Monitor 等服务]
Azure 与 AWS / GCP 对应关系
| AWS | GCP | Azure | 关键差异 |
|---|---|---|---|
| EC2 | Compute Engine | Virtual Machine | Azure 机器类型命名:Standard_B1s |
| Security Group | VPC Firewall | NSG | NSG 可挂在子网或网卡上,粒度更细 |
| EBS | Persistent Disk | Managed Disk | Azure Managed Disk 默认强加密 |
| IAM Role | Service Account | Managed Identity | 系统分配(System-assigned)或用户分配 |
用 Azure CLI 创建基础环境
# 登录 Azure
az login
# 创建资源组
az group create --name myapp-rg --location eastasia
# 创建一台 Ubuntu 22.04 VM
az vm create \
--resource-group myapp-rg \
--name myapp-vm \
--image Ubuntu2204 \
--size Standard_B1s \
--admin-username ubuntu \
--ssh-key-values ~/.ssh/id_rsa.pub \
--assign-identity
# 开放 HTTP/HTTPS(NSG 规则)
az vm open-port --port 80 --resource-group myapp-rg --name myapp-vm
az vm open-port --port 443 --resource-group myapp-rg --name myapp-vm --priority 901
# SSH 端口仅对可信 IP 开放(修改 NSG 规则)
az network nsg rule update \
--resource-group myapp-rg \
--nsg-name myapp-vmNSG \
--name default-allow-ssh \
--source-address-prefixes 203.0.113.0/32
常见误区
- 以为 NSG 只能挂在虚拟机上:NSG 可挂在子网(Subnet)或网络接口(NIC)上。子网级 NSG 影响整个子网流量,NIC 级 NSG 只影响该 VM,生产环境通常两级都配
- 默认 SSH 规则允许所有 IP:Azure VM 创建时 NSG 默认有
default-allow-ssh,来源是*(所有 IP),必须修改为可信来源 - Public IP 默认为动态 IP:VM 停止后 Public IP 会释放。生产环境应创建静态(Static)Public IP 绑定到 NIC
本节执行清单
- [ ] 创建资源组,在指定区域启动 Ubuntu VM
- [ ] 修改 NSG 的 SSH 规则,来源改为可信 IP
- [ ] 启用 System-assigned Managed Identity,用于访问 Storage Account 等服务
- [ ] 用
ssh ubuntu@<VM-IP>确认正常登录
下一节:Azure DNS、Storage、Monitor 落地——把入口、备份、监控补齐。