【发布时间】:2017-09-21 06:01:33
【问题描述】:
我想在 Google Cloud Dataflow 中运行一个管道(之前暂存的模板)(使用 Google Cloud Function 中的 GAPI JS 库,如 https://shinesolutions.com/2017/03/23/triggering-dataflow-pipelines-with-cloud-functions/ 所示)。如何限制此管道可以访问的资源?例如,我不希望它能够写入所有 Pub/Subs、项目下的所有存储桶等。我什至不希望管道能够例如做一个 HTTP 请求。
根据我在https://cloud.google.com/dataflow/security-and-permissions 阅读的内容,我只能在从本地计算机运行管道时这样做,因为访问权限由我的用户访问权限决定。但是,当在云中运行时,它会在 Cloudservices 帐户和 Compute Engine 服务帐户下运行,而我无法限制这些帐户,这样我就不会在其他地方破坏东西......对吗?
我想要这个的原因是我正在构建一个多租户系统,该系统将在可用于查询之前利用 DF 来 ETL 客户数据。管道将由数据工程师/顾问编写(根据客户的数据形状量身定制),这些人可能会犯错误——原则上,默认情况下代码必须是不可信的。
那么,如果不从本地计算机执行它,我该如何限制它可以做什么和不能做什么呢?完全独立的项目?一个权限严重受限的项目,然后使用跨项目访问权限调优,一一分配桶等资源? 或者我是否通过设置一些安装了 gcloud util 的微型实例来“模拟”本地,然后使用单独的用户从那里运行它?
改用 Dataproc(并接受更低抽象和更多 devops 工作的代价)会有帮助吗?
【问题讨论】:
标签: security google-cloud-dataflow access-control