4

引用https://cloud.google.com/load-balancing/docs/https/setting-up-https-serverless#enabling

虽然可以使用 Cloud Run(全托管)、Cloud Functions 和 App Engine 后端为后端服务配置 Google Cloud Armor,但此功能存在一定的限制,尤其是 Cloud Run(全托管)和 App Engine。有权访问 Google Cloud 分配给这些服务的默认 URL 的用户可以绕过负载平衡器并直接访问服务 URL,从而绕过任何已配置的 Google Cloud Armor 安全策略。

避免攻击者针对 Cloud Run URL ( *.run.app) 绕过 Cloud Armor 的最佳方法是什么?

通常我会让 Cloud Run 只能由服务帐户调用,但 Cloud Load Balancer 不能使用服务帐户来调用 Cloud Run。另一种方法是将 Cloud Load Balancer 配置为在标头中使用令牌,并将在 Cloud Run 中运行的应用配置为仅接受具有正确标头/令牌的调用,但我不希望在应用中这样做。

4

1 回答 1

8

您应该将服务的入口限制为“内部和负载平衡”,以禁用来自默认域的访问,并且只允许来自 Cloud Armor 的流量:

gcloud beta run services update SERVICE --ingress internal-and-cloud-load-balancing
于 2021-01-07T17:55:03.163 回答