【问题标题】:What is the appropriate way to manage API secrets within a Google Apps script?在 Google Apps 脚本中管理 API 机密的适当方法是什么?
【发布时间】:2019-04-11 08:44:30
【问题描述】:

如果我编写了一个谷歌应用程序脚本,并且在脚本中我需要调用第三方 API 或进行数据库调用,那么管理 API 密钥和密码的适当方法是什么?

如果我将脚本作为 API 发布但不共享对包含 Google Apps 脚本的 Google 云端硬盘位置的访问权限,那么将机密直接放在脚本中是否有任何风险

【问题讨论】:

  • 例如,根据您的情况使用 Web Apps 怎么样?我认为您可以在 Web Apps 的脚本中使用密钥。示例流程如下。 1. 使用包含密钥的 Google Apps 脚本创建脚本。 2. 将其部署为 Web 应用程序。 3. 您像 API 一样调用 Web 应用程序并通过运行脚本来检索值。在这种情况下,包含 Web Apps 端点的 ID 不是脚本 ID,也不需要共享脚本。 developers.google.com/apps-script/guides/web如果这不是你想要的,我很抱歉。
  • 另外,将其存储在User Properties
  • @OP - 您是否设法找到了比将其保留在脚本中更好的解决方案?
  • @Anshu Prateek 不幸的是,用户属性似乎是唯一的选择。这不是一个伟大的孤子。
  • @Master_Yoda 为什么用户属性不是一个很好的解决方案?

标签: security google-apps-script authorization secret-key key-management


【解决方案1】:

没有正确或错误的答案。有很多因素需要考虑:

  • 如果这是针对/在 G-Suite 中,那么您的 G-Suite 管理员将拥有(或可以获得)任何东西的访问权限。这可能是也可能不是问题。
  • 如果您将数据放在工作表中,任何对该工作表具有读取权限的人都可以看到数据。
  • 您可以使用PropertiesService,但随后人们可以按照文档中的说明进行访问。用户属性是一种方式,但可能不适用于所有用例——比如另一个用户正在执行代码。如果您的用例可行,您可以使用可安装的触发器。
  • 如果人们需要能够使用您的密钥进行 API 调用,您可以编写一个他们可以调用但看不到源代码的代理网络应用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-07
    • 1970-01-01
    相关资源
    最近更新 更多