【发布时间】:2020-01-06 06:20:09
【问题描述】:
我创建了一个服务帐号,并将 Dataflow 开发人员角色、Compute Viewer 角色和 Storage Object Admin 角色分配给临时存储桶。然后,我使用名为 gs://outputbucket 的管理员用户帐户(具有项目所有者角色)创建了另一个存储桶。最后,我使用以下 cmd 提交了一个数据流作业:
export GOOGLE_APPLICATION_CREDENRTIALS=<path-to-credential>
TMPBUCKET=temporarybucket
OUTBUCKET=outputbucket
PROJECT=myprojectid
python -m apache_beam.examples.wordcount \
--input gs://dataflow-samples/shakespeare/kinglear.txt \
--output gs://$OUTBUCKET/wordcount/outputs \
--runner DataflowRunner \
--project $PROJECT \
--temp_location gs://$TMPBUCKET/tmp/
同样,我创建了一个从现有 Cloud Pub/Sub 到 BigQuery 模板的 Dataflow 作业。它可以在未经许可的情况下写入同一项目中的任何表。谁能解释这怎么可能?
此外,根据 Google 的Principle of Least Privilege,这是否是一个潜在的安全问题?
【问题讨论】:
-
在您的代码示例中,您是否使用新的服务帐户来运行数据流?
-
我将环境变量 GOOGLE_APPLICATIONS_CREDENRTIALS 设置为服务帐户 cred json 文件的路径,我将其更新为命令行。
标签: google-cloud-platform dataflow