Google cloud platform 您如何确保您的Google Cloud Run应用程序不会因请求过载而受到保护?

Google cloud platform 您如何确保您的Google Cloud Run应用程序不会因请求过载而受到保护?,google-cloud-platform,google-cloud-run,google-cloud-billing,Google Cloud Platform,Google Cloud Run,Google Cloud Billing,我创建了一个简单的Google Cloud Run helper程序(不处理任何个人数据,也不使用任何存储设施),并在网站中为其实现了一个公共界面(使用HTML请求)。我不打算添加任何用户身份验证,我也在Cloud Run容器中公开了代码 我是否应该采取任何进一步的步骤来保护容器免受恶意用户的攻击?是否有人会用请求超载应用程序,超过容器的免费调用限制(导致我自己被计费)?我主要是想确保我永远不会为云计算应用付费,因为它只是作为一个小的辅助工具为有限数量的用户服务 谢谢 您有两种解决方案 内置的

我创建了一个简单的Google Cloud Run helper程序(不处理任何个人数据,也不使用任何存储设施),并在网站中为其实现了一个公共界面(使用HTML请求)。我不打算添加任何用户身份验证,我也在Cloud Run容器中公开了代码

我是否应该采取任何进一步的步骤来保护容器免受恶意用户的攻击?是否有人会用请求超载应用程序,超过容器的免费调用限制(导致我自己被计费)?我主要是想确保我永远不会为云计算应用付费,因为它只是作为一个小的辅助工具为有限数量的用户服务

谢谢

您有两种解决方案

  • 内置的解决方案是设置一个限制繁殖实例的数量并降低成本。但是,恶意攻击者可以通过可持续的流量拒绝您的服务(没有足够的实例来满足所有请求,无论好坏!)
  • 添加API管理层,如CloudEndpoint或Apigee。但这是实施和支付的附加层。我不太了解Apigee,但它是一个企业级(和定价)解决方案,我确信它实现了IP的费率限制
我是否应该采取任何进一步的步骤来保护容器免受恶意用户的攻击

始终,保护您的应用程序和服务免受恶意用户的攻击始终是必须的。正如约翰·汉利(John Hanley)很好地指出的那样,如果不使用任何类型的身份验证,那么与实施某种身份验证相比,您将为更多的恶意攻击/用户打开一扇门

正如他所提到的,如果您启用了
允许未经验证的
,那么您基本上就是向公众开放您的云运行服务。这并不完全是坏事,但它是恶意用户攻击您的服务的另一种方式

您将找到有关未经验证的访问的更多信息

如果可以,我强烈建议您始终验证您的云运行服务。如合同所述:

默认情况下,所有云运行服务都是私有部署的,这意味着如果不在请求中提供身份验证凭据,就无法访问这些服务

此外,默认情况下,服务只能由项目所有者编辑云运行管理员和开发人员调用

要对云运行服务中的最终用户进行身份验证,您可以参考提供的,但概括而言:

大多数应用程序处理来自最终用户的请求,最好的做法是将访问权限限制为仅允许的最终用户。为了实现这一点,您可以集成Google登录并授予用户角色/run.invoker IAM role,或者实施Firebase身份验证并手动验证其凭据

请注意,Cloud Run不帮助在容器实例之间共享会话,因此不能保证会话与特定容器实例的关联性

此外,您将发现有关云运行中安全提示的更多信息,这些信息可以帮助您提高云运行服务的安全性

最后,正如Kolban所说,您还可以使用云端点来限制每分钟请求的数量和数量,正如所见,这将确保您不会收到比您希望的更多的账单

您将发现一个可以与Cloud Run一起使用的应用程序,不仅可以改善最终用户体验,还可以提高安全性


我希望这会有所帮助。

这是一个广泛的、开放式的问题,可能会因为“缺乏重点”而关闭,请参阅。搜索“拒绝服务攻击”网站,了解问题介绍和一些解决方案。您还可以在谷歌云上搜索,查看是否有工具/设置/策略可以在超过某个计费阈值时关闭访问。如果您将问题缩小到“如何在请求$x后关闭访问”或类似的问题,可能会缩小到可以,但这可能仍然属于ServerFault.com而不是这里。如果您启用了
允许未经验证的
,则任何人都可以访问您的云运行服务。你没有保护。实现授权,只允许授权用户访问端点。要限制每分钟的呼叫数。。。谢谢大家的意见!感谢您的输入@guillaume!我想我会尝试大幅降低maxInstance参数,并尝试加载云端点限制。在这种情况下,请对http 429错误代码设置警报。根据您在云上运行的可用/可能实例,如果请求过多,将返回此代码。感谢您的详细回复!不幸的是,我认为如果我添加某种形式的用户身份验证,这将使应用程序的使用更加麻烦,并降低其价值。我将尝试添加云端点以限制请求的数量,并监控计费以防止任何不必要的问题发生。