本文由【云老大】 TG@yunlaoda360 撰写
使用 Google Cloud Console
- 转到防火墙政策页面 :登录 Google Cloud Console,导航到 "VPC 网络" > "防火墙"。
- 创建防火墙规则 :点击 "创建防火墙规则",输入规则名称(项目中需唯一)。
- (可选)启用日志记录 :点击 "日志 > 开启",如需省略元数据,点击 "显示日志详细信息",清除 "包括元数据" 复选框。
- 指定网络及优先级 :为规则指定网络和优先级,数字越小优先级越高。
- 选择流量方向及操作 :选择 "入站" 或 "出站" 流量方向,以及对匹配项执行 "允许" 或 "拒绝" 操作。
- 设置规则目标 :可选择将规则应用于网络中所有实例、按网络标记或服务账号部分应用等。
- 保存规则 :点击 "创建"。
使用 gcloud 命令行工具
创建 VPC 防火墙规则的命令如下:
bash
css
gcloud compute firewall-rules create RULE_NAME \
[--network NETWORK; default="default"] \
[--priority PRIORITY;default=1000] \
[--direction (ingress|egress|in|out); default="ingress"] \
[--action (deny | allow )] \
[--target-tags TAG[,TAG,...]] \
[--target-service-accounts=IAM_SERVICE_ACCOUNT[,IAM_SERVICE_ACCOUNT,...]] \
[--source-ranges CIDR_RANGE[,CIDR_RANGE,...]] \
[--source-tags TAG,TAG,] \
[--source-service-accounts=IAM_SERVICE_ACCOUNT[,IAM_SERVICE_ACCOUNT,...]] \
[--destination-ranges CIDR_RANGE[,CIDR_RANGE,...]] \
[--rules (PROTOCOL[:PORT[-PORT]],[PROTOCOL[:PORT[-PORT]],...]] | all ) \
[--disabled | --no-disabled] \
[--enable-logging | --no-enable-logging]
例如,创建一条允许来自特定子网范围的入站 TCP 和 UDP 流量的规则:
bash
lua
gcloud compute firewall-rules create allow-subnet-tcp-udp \
--network my-network \
--action allow \
--direction ingress \
--rules tcp:0-65535,udp:0-65535 \
--source-ranges 10.0.0.0/24
对于出站流量规则,可使用 --destination-ranges
指定目标 IPv4 或 IPv6 地址范围。若省略 --source-ranges
,则出站流量来源默认为任何 IPv4 地址 0.0.0.0/0
。
使用 API
创建防火墙规则的 API 请求格式如下:
bash
bash
POST https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls
{
"name": "RULE_NAME",
"network": "projects/PROJECT_ID/global/networks/NETWORK",
"sourceRanges": ["SOURCE_RANGES"],
"allowed": [
{
"IPProtocol": "PROTOCOL",
"ports": ["PORTS"]
}
],
... other fields
}
请求参数需替换 PROJECT_ID
(项目 ID)、RULE_NAME
(规则名称)、NETWORK
(网络名称)等信息。
更新防火墙规则
- 使用控制台 :在 "防火墙政策" 页面点击要修改的规则,点击 "修改",修改后点击 "保存"。
- 使用 gcloud :命令如下:
bash
sql
gcloud compute firewall-rules update RULE_NAME \
[--priority=PRIORITY] \
[--description=DESCRIPTION] \
[--target-tags=TAG,...] \
[--target-service-accounts=IAM_SERVICE_ACCOUNT,_] \
[--source-ranges=CIDR_RANGE,...] \
[--source-tags=TAG,...] \
[--source-service-accounts=IAM_SERVICE_ACCOUNT,_] \
[--destination-ranges=CIDR_RANGE,...] \
[--rules=[PROTOCOL[:PORT[-PORT]],...]] \
[--disabled | --no-disabled] \
[--enable-logging | --no-enable-logging]
- 使用 API :使用 PATCH 可更新以下字段:
allowed
、description
、sourceRanges
、sourceTags
或targetTags
。对其他字段使用 PUT 或 POST。