首页 > 解决方案 > 安全地允许 Google App Engine 访问 Google Apps 脚本的内部公司网络/服务器

问题描述

有据可查的是,Google Apps 脚本在无法访问公司内部网络/服务器的 Google App Engine 服务器上运行:

根据文档,如果您希望 Google Apps 脚本项目能够访问内部网络/服务器,那么您必须将 Google 的 IP 列入白名单。但我们都知道这不是最安全的选择。事实上,文档甚至是这样说的:

请注意,使用静态 IP 地址过滤不被视为安全有效的保护手段。例如,攻击者可以设置恶意 App Engine 应用程序,该应用程序可以与您的应用程序共享相同的 IP 地址范围。相反,我们建议您使用OAuthCerts采取深度防御方法。

问题是我找不到任何文档、参考资料或关于组织应该如何最好地按照其建议行事的文章。

所以我的问题是,使用 G-Suite Enterprise 的组织如何安全地允许 Google Apps 脚本项目访问公司的内部网络?

标签: securitygoogle-apps-scriptfirewallnetwork-security

解决方案


文档说得很清楚,因为 App Scripts 在共享的 App Engine 实例上运行,所以不可能使用 IP 进行限制,这也意味着网络能力将非常有限(即没有 VPC 对等或类似的)。因此,就像在突出显示的块中一样,他们建议仅通过 IP 限制实施身份验证。

除了身份验证,App Script 还支持使用 SSL 加密和验证服务器示例代码)。这应该可以保护连接在通过 Internet 发送时不被窃听。

此外,您可以实现“半 IP 限制”机制,技术上称为Port Knocking,其工作原理如下:

  1. 首先创建一个特殊的端点,需要身份验证,接受 IP 地址作为输入。当请求时,您打开防火墙以在有限的时间内(例如 5 分钟)接受从该 IP 到您的内部网络的连接。
  2. 在您的应用程序脚本中,使用 URL Fetch 请求该端点,以便您的脚本实例暂时被允许访问您的网络。

当然这并不完美,因为一个 App Engine 实例同时运行许多脚本并且白名单会在设定的时间内打开,但这仍然比持续向所有 Google(App Engine)IP 开放端口要好得多。


推荐阅读