【发布时间】:2019-08-06 14:00:57
【问题描述】:
是否可以(以编程方式或通过 UI)将自定义角色分配给 BigQuery 数据集?我们希望在项目中拥有更细粒度的访问控制,但我找不到任何迹象表明它们受支持或不受支持。 BigQuery 中的“共享数据集”UI 没有提供明确的方式来指定哪些角色具有访问权限。
这是迄今为止我能做的最好的事情,但它会引发关于 entity_id 的错误
for dataset in datasets:
dataset_ref = bigquery.Dataset(dataset, frankie_client)
entry = bigquery.AccessGrant(
role='projects/xxxxxx/roles/custom_role1',
entity_type='specialGroup',
entity_id='projects/xxxxxx/roles/custom_role1')
assert entry not in dataset_ref.access_grants
entries = list(dataset_ref.access_grants)
entries.append(entry)
dataset_ref.access_grants = entries
dataset = dataset_ref.update() # API request
assert entry in dataset.access_entries
顺便说一句,谷歌的 API 非常不稳定,而且文档也很差......如果有人知道如何做到这一点,将不胜感激。
【问题讨论】:
-
您可以通过 gcloud 或 API 向数据集添加自定义角色。有关详细信息,请参见此处(检查代码示例部分中的 CLI 选项卡)cloud.google.com/bigquery/docs/dataset-access-controls
-
虽然这在理论上可以回答这个问题,it would be preferable 在此处包含答案的基本部分,并提供链接以供参考。
标签: security google-bigquery google-cloud-platform