【问题标题】:Securely allow Google App Engine to internal company network/servers for Google Apps Scripts安全地允许 Google App Engine 访问 Google Apps 脚本的内部公司网络/服务器
【发布时间】:2020-02-23 20:51:55
【问题描述】:

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

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

请注意,使用静态 IP 地址过滤并不是一种安全有效的保护手段。例如,攻击者可以设置恶意 App Engine 应用程序,该应用程序可以与您的应用程序共享相同的 IP 地址范围。相反,我们建议您采用defense in depth 方法,使用OAuthCerts

问题是我找不到任何文档、参考材料或文章,说明组织应该如何最好地执行它的建议。

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

【问题讨论】:

    标签: security google-apps-script firewall network-security


    【解决方案1】:

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

    除了身份验证,App Script 还支持encrypting and authenticating the server with SSL (sample code)。这应该可以防止连接在通过 Internet 发送时被窃听。

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

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

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

    【讨论】:

    • 加密和认证链接用于连接数据库。我们不想连接到数据库。我们想对内部服务器进行 API 调用。而且我知道端口敲门系统可以工作,但它仍然不安全。我很惊讶谷歌没有官方的方式来支持这一点。
    【解决方案2】:

    在您使用 G Suite 服务时,

    Apps Script 是一种用于简化任务的出色工具,但遗憾的是,您想要实现的功能不可用。另外,请记住,Apps 脚本不是基于 App Engine 构建的,它是一个完全不同的产品。

    因此,如果文档中显示的内容不能满足您的要求,请查看其他 Google 替代品,例如 App EngineGoogle Cloud Platform,而不是 G Suite

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-23
      • 2013-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-11
      相关资源
      最近更新 更多