是否可以在 Google Cloud Platform 防火墙中阻止用户代理?我需要阻止一个特定的代理。但是,当我将 SSL 卸载到负载均衡器时,它会向服务器发出请求,而不是原始用户。因此我无法在 IIS 级别进行阻止。如果可以,有人可以告诉我怎么做吗?
答案1
假设您正在使用全局 HTTP(S) 负载平衡 (LB),并将 SSL 卸载到其上,则无法使用 GCP 防火墙规则来限制来自特定用户的流量,因为它们应用于数据中心级别,而不是 LB 工作的 Google 网络边缘。但是,您可以利用 Google Cloud Armor 根据特定用户的 IP 地址阻止来自该用户的流量。
通过创建 Cloud Armor 安全策略,您可以为 HTTP(S) 负载平衡启用 IP 黑名单/白名单。您需要做的是创建 Cloud Armor 安全策略,向该策略添加黑名单和白名单规则,并将 Cloud Armor 安全策略附加到您想要控制访问的 HTTP(S) 负载平衡器的后端服务。
有关 Cloud Armor 安全策略的更多信息,请参阅此处帮助中心文章。
答案2
以下是用于创建阻止指定用户代理的规则的示例 CLI 命令。此示例适用于 Windows。
你需要计算安全管理员角色来执行此命令。
set USER_AGENT=User-Agent-To-Block
set GCP_PROJECT=Your-Project-ID
set POLICY_NAME=Your-Cloud-Armor-Policy-Name
set RULE_PRIORITY=1000
gcloud compute security-policies rules create %RULE_PRIORITY% ^
--project %GCP_PROJECT% ^
--security-policy %POLICY_NAME% ^
--description "Block this user-agent" ^
--expression "has(request.headers['user-agent']) && request.headers['user-agent'].contains('%USER_AGENT%')" ^
--action "deny-403"
上述命令为现有安全策略添加(创建)一条规则。必须将安全策略分配给 HTTP(S) 负载均衡器后端。