愿景 API quota/budget 限制和 API 密钥安全

Vision API quota/budget limit and API key security

我以前从未使用过 Vision API,但最近我发现它对我的一个项目来说非常强大。但是,我对它的预算限制有两个担忧,以免收到意外账单:

  1. 是否可以设置每月费用限额?我已经习惯了 Compute Engine,它能给我几乎准确的月度成本,但这在这里似乎是不可能的。由于我将使用 API 进行标记,因此我已将每分钟和每个用户的标签检测请求设置为特定数量,同时确保我已将每分钟和每个用户的全局请求设置为相同数量,所有其他配额为 0。如果我理解正确,将每分钟最大调用配额设置为 4,例如,应该每月最多提供 178560 次调用,对吗?这应该限制我的预算吗?我安全吗?
  2. API 将用作移动应用程序中的 API 键。我已经按照 iOS & Android 的代码示例进行操作,并且我已经看到密钥写在代码中。这样安全吗?为了更好的安全性,我将密钥限制为 iOS/Android 应用程序包和 Cloud Vision API。这是一个足够安全的选择吗?

感谢大家的帮助!

  1. 是的,可以设置每月费用限额。有关创建预算、设置预算范围、预算金额和阈值的更多信息,请参阅此 doc。是的,您的理解是正确的,将每分钟的最大调用配额设置为 4,它应该每月提供最多 178560 次调用。它不应该限制最大配额。

  2. API 代码中嵌入的密钥不安全。

Do not embed API keys directly in code. API keys that are embedded in code can be accidentally exposed to the public. For example, you may forget to remove the keys from code that you share. Instead of embedding your API keys in your applications, store them in environment variables or in files outside of your application's source tree.

有关保护 API 密钥的最佳实践的详细信息,请参阅此 doc

根据评论中的问题进行编辑:

可以将配额视为硬性限制吗?

  • 仅当您的 GCP 项目中除 Vision API 请求外没有任何其他资源 运行 时,配额才可能被视为硬性限制。有关上限 API 用法的更多信息,请参阅此 doc
  • 如果您想设置硬限制并禁用计费,请配置一个 Cloud Function 来调用 Cloud Billing API,它会按照 GCP doc 中的描述为项目禁用计费。

注意:仅当您想停止支出并且可能愿意在达到预算限制时关闭所有 Google 云服务和使用时才使用此功能。