根据本文,我对实施桑给巴尔论文(link)感兴趣:
Google的Cloud IAM系统是在Zanzibar的ACL存储和评估系统之上构建的。
但是我不了解数据模型如何处理GCP IAM策略:
示例:
Zepeling如何发现开发人员具有有效的bigquery.dataset.read权限来执行所需的操作?
这是我对数据模型的猜测:
+----------------------------------+------------+---------------------+----------------------------------------------------------------+
| object | relation | usertset | semantics |
+----------------------------------+------------+---------------------+----------------------------------------------------------------+
| group:G | member | dev | "dev is member of group G" |
| project:P | parent | folder:F#.. | "project P belongs to folder F" |
| dataset:D | parent | project:P#.. | "dataset D belongs to project P" |
| | | | |
| permission:bigquery.dataset.read | permission | role:BigQueryViewer | "BigQueryViewer role has the bigquery.dataset.read permission" |
| role:BigQueryViewer | role | group:G | "group G has the BigQueryViewer role" |
+----------------------------------+------------+---------------------+----------------------------------------------------------------+
但这无法正常工作,因为我无法正确表达“组G在文件夹B上具有BigQueryViewer角色”。缺了点什么。 GCP IAM是否定义其他关系?