BigQuery 访问、安全和成本控制?

BigQuery access, security and cost controls?

我是 BQ 的新手,正在尽可能多地学习。如果我创建多租户环境,我不确定访问和成本控制如何工作。

这是我的用例,我有不同的客户向我发送数据,我正在提供分析。我的想法是通过 API/cloudrun-->pubsub-->dataflow/my analytics-->BQ

接受这个

在 BQ 中,我打算为每个客户创建一个数据集和 tables,以便将不同客户的数据分开。但我在想,也许我需要做更多的事情,是否有更好的方法来保护每个客户的每个数据集?我还可以对每个数据集实施限制,这样如果特定客户的报告过多 运行 那么我可以管理我的预算吗?

最后,我是 BQ 的新手,所以如果有其他我应该考虑的注意事项,我将不胜感激任何反馈。

编辑 - 澄清一下,我看到了 IAM 的访问控制,但这些客户没有直接的 IAM 帐户,他们在我们的平台上有逻辑帐户(firebase 和我们自己的 table 具有用户属性),所以我不确定除了通过应用程序逻辑之外限制访问,但我可能在这里遗漏了一些东西。

根据您的所有要求,我强烈建议为每个客户创建 1 个项目。您可能对该设计有优势:

  • 每个项目的成本更低,每个客户都可以拥有它
  • 在 BigQuery 上,您可以设置配额以仅限制每个项目的成本(而不是每个数据集)
  • 您可以像今天在单个项目中一样使用 IAM。

关于 IAM,您的客户没有 Google 帐户,您不能与他们一起使用 IAM。在这种情况下,您必须授予 API 端点解决方案访问 BigQuery 的权限(在您创建的所有项目中)并手动处理客户可以请求的项目。

我建议记录该路由,以便能够审核出现问题或配置错误时发生的情况。