【问题标题】:Use Cloud Armor with Cloud Run and avoid bypass将 Cloud Armor 与 Cloud Run 结合使用并避免绕过
【发布时间】:2021-04-13 09:35:48
【问题描述】:

引用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 中运行的应用配置为仅接受具有正确标头/令牌的调用,但我不希望在应用中这样做。

【问题讨论】:

    标签: google-cloud-platform google-cloud-run google-cloud-load-balancer google-cloud-armor


    【解决方案1】:

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

    gcloud beta run services update SERVICE --ingress internal-and-cloud-load-balancing
    

    【讨论】:

    • 谢谢,最好更新 cloud.google.com/load-balancing/docs/https/… 文档,指定您现在可以(尽管处于 Beta 版)配置 Cloud Run 入口。我还注意到,这似乎在 google-beta Terraform 提供程序中不可用。
    猜你喜欢
    • 2020-09-14
    • 2020-02-10
    • 2021-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-02
    • 2014-11-05
    • 2021-02-21
    相关资源
    最近更新 更多