BigQuery访问、安全和成本控制



我对BQ完全陌生,并且尽可能多地学习。如果我创建一个多租户环境,我不确定访问和成本控制是如何工作的。

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

在BQ中,对于每个客户端,我将创建一个数据集和表,以便将不同客户端的数据分离。但我在想,也许我还需要做更多的事情,有没有更好的方法来为每个客户端保护每个数据集?我还可以对每个数据集强制执行限制吗?这样,如果特定客户运行的报告太多,我就可以管理预算了?

最后,我对BQ完全陌生,所以如果我还需要考虑其他问题,我将非常感谢任何反馈。

编辑-只是为了澄清,我看到了IAM的访问控制,但这些客户没有直接的IAM帐户,他们在我们的平台上有逻辑帐户(firebase和我们自己的带有用户属性的表(,所以我不确定是否要限制除应用程序逻辑之外的访问,但我可能在这里遗漏了一些内容。

鉴于您的所有需求,我强烈建议每个客户创建一个项目。这种设计可能有以下优点:

  • 每个项目的成本更容易,每个客户都可以
  • 在BigQuery上,您可以设置配额以仅限制每个项目的成本(而不是每个数据集的成本(
  • 您可以像现在在单个项目中使用IAM一样使用IAM

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

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

最新更新