是否可以将 Google 服务帐户限制为项目内的特定 BigQuery 数据集?

2024-01-01

我已使用 GCP UI 为特定项目设置了一个服务帐号Project X。之内Project X有3个数据集:

Dataset 1

Dataset 2

Dataset 3

如果我分配角色BigQuery Admin to Project X目前所有 3 个数据集都继承了这一点。

目前,所有这些数据集都继承分配给项目级别服务帐户的权限。有没有办法修改服务帐户的权限,使其只能访问指定的数据集?例如允许访问Dataset 1但不是Dataset 2 or Dataset 3.

这种类型的配置可能吗?

我尝试在用户界面中添加一个条件,但是当我使用Name资源类型并将值设置为等于Dataset 1我无法访问任何数据集 - 可能该值不正确。或者数据集不是有效的名称资源。

UPDATE

添加一些关于我在发布之前已经尝试过的内容的更多细节,以及关于我正在做的事情的更多细节。

对于我的特定用例,我尝试执行 SQL 查询以及通过 API(使用 Python)修改 BigQuery 中的表。

Case A:我创建了一个具有以下角色的服务帐户“BigQuery 管理员”.

此角色将传播到项目内的所有数据集 - 该属性是继承的,我无法从任何数据集中删除此服务帐户角色。

在本例中,我能够使用 Python API 查询所有数据集和表 - 正如您所期望的那样。

Case B:我创建一个服务帐户无默认角色.

不会传播任何角色,我可以通过单击将角色分配给特定数据集“共享数据集”UI 中的选项来分配“BigQuery 管理员”对他们的作用。

在这种情况下,我无法查询任何数据集或表,如果我尝试,则会收到以下错误:

*Forbidden: 403 POST https://bigquery.googleapis.com/bq/projects/project-x/jobs: Access Denied: Project X: User does not have bigquery.jobs.create permission in project Project X.*

即使需要权限(bigquery.jobs.create在这种情况下)存在我想要的数据集,我无法查询数据,因为看起来bigquery.jobs.create使用 API 还需要项目级别的许可。


我发布了我找到的问题解决方案,以防它对尝试完成相同任务的其他人有用。

分配角色“BigQuery 职位用户”在项目级别以获得许可bigquery.jobs.create分配给该项目的服务帐户。

然后,您可以手动为特定数据集分配角色“BigQuery 数据编辑器”以便通过 Python 中的 API 查询它们。通过点击 BigQuery UI 中的“共享数据集”来执行此操作。所以对于这个例子,我已经“共享”Dataset 1 and Dataset 2与服务帐户。

您现在应该能够在 Python 中查询已分配 BigQuery 数据编辑器角色的数据集。

然而,对于Dataset 3,其中“BigQuery 数据编辑器”角色尚未分配,如果您尝试查询表,这应该返回错误:

Forbidden: 403 Access Denied: Table Project-x:dataset_1.table_1: User does not have permission to query table Project-x:dataset_1.table_1.

如上所述,我们现在有足够的权限来访问该项目,但不能访问其中的表Dataset 3- 按设计。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以将 Google 服务帐户限制为项目内的特定 BigQuery 数据集? 的相关文章

随机推荐

  • Django可以自动创建相关的一对一模型吗?

    我在不同的应用程序中有两个模型 ModelA and ModelB 他们有一对一的关系 有没有办法让django自动创建并保存ModelB when ModelA被救了吗 class ModelA models Model name mod
  • 如何在 ASP.NET MVC 中禁用客户端和代理缓存?

    在 ASP NET MVC 中禁用页面缓存的正确 与浏览器无关 方法是什么 尝试这个 OutputCache NoStore true Duration 0 VaryByParam public ActionResult NonCachea
  • Python:Groupby 第一个非 NaN 值

    我有以下数据框 id number 1 13 1 13 1 NaN 1 NaN 2 11 2 11 2 11 2 NaN 我想找到每个 id 的第一个非 NaN 值并用 1 标记它 结果应如下所示 id number code 1 13 N
  • 如何在D3中点击添加或拖动?

    我的印象是这个问题太简单了 没有人费心去制作它的演示 但我对 D3 的了解还不够多 无法看出我做错了什么 我正在寻找的行为是 如果用户单击没有圆圈的地方 它将在那里创建一个圆圈 如果他们拖动现有的圆圈 则不会创建新的圆圈 但他们拖动的圆圈将
  • Firebase - 创建临时用户直到用户注册

    我有一个用例 用户 A 可以说用户 B 从用户 A 借了一些钱 类似于 Splitwise 等应用程序 我正在使用 firestore 来存储数据 在这种特殊情况下 我将其作为文档存储在 Transactions 集合中 该集合将具有以下字
  • CEdit::GetLine() Windows 7

    我有以下代码段 其中m edit是一个 CEdit 控件 TCHAR lpsz MAX PATH 1 get the edit box text m edit GetLine 0 lpsz MAX PATH 这在运行 Windows XP
  • 在 C# 中使用原始套接字

    我想用 C 编写一个端口扫描器 但无法使用 SocketType Raw 因为原始套接字是从 Windows 桌面版本中取出的 我无法使用 SharpPcap 或 Winpcap 的其他包装器 因为我使用 PPPoE 进行互联网连接 而 W
  • 检查奇数时 & 比 % 更快吗?

    要检查奇数和偶数 最低位检查是否比使用模数更有效 gt gt gt def isodd num return num 1 and True or False gt gt gt isodd 10 False gt gt gt isodd 9
  • MySQL 有命名约定吗?

    我是这样做的 表名是小写的 使用下划线分隔单词 并且是单数 例如foo foo bar etc 我通常 并非总是 有一个自动增量 PK 我使用以下约定 tablename id e g foo id foo bar id etc 当表包含作
  • xmlHttpRequest.onerror 处理程序用例

    什么样的情况会导致调用此处理程序 我没有找到此方法引发错误的任何实例 我尝试让设备离线 我得到xmlHttpRequest status 0但没有错误 问题是我可以创建什么样的情况来测试此处理程序的功能 var xmlhttp new XM
  • C++/CLI 中的文字字段与常量变量

    我正在阅读一些 C CLI 材料 并且遇到了文字字段的概念 literal int inchesPerFoot 12 这比 const 更好吗 因为 constFIELD不能存在 因为字段无法初始化自身 所以 class aClass pr
  • 如何通过 Azure DevOps 在 Dockerfile 中设置环境变量

    在我的项目 Docker 文件中 我有一些环境变量 如下所示 ENV ACCEPT EULA Y ENV SA PASSWORD Password ENV MSSQL PID Developer ENV MSSQL TCP PORT 143
  • 在应用程序域之间来回传递集合对象

    以下示例基于 在应用程序域之间来回传递值 https stackoverflow com questions 1250774 passing values back and forth appdomains 其中 Marc Gravell
  • 扩展运算符类似物

    我有一个结构体和该结构体的实例 type Obj struct ssid string code string mit string and other props 23 var ValidObject Obj ssid AK93 KADJ
  • Android 应用程序连接到网络服务 - 不工作

    我正在尝试将我的应用程序连接到我在 asp net 中创建的 WCF 服务 该服务在我的本地计算机上运行 http localhost 8080 Service svc http localhost 8080 Service svc 但由于
  • 批量归一化 - Tensorflow

    我看过一些 BN 的例子 但还是有点困惑 所以我目前正在使用这个函数 它调用这里的函数 https github com tensorflow tensorflow blob master tensorflow g3doc api docs
  • 解压 sys.argv 时 Pylint 误报

    我有一个解压脚本sys argv到一个函数中 像这样 import sys def do something a b It doesn t matter what this function does print a b if name m
  • WPF 链绑定

    我想创建一个像这样的链绑定 我有一个用户控件 在具有类似依赖属性的窗口内具有依赖属性 我想将用户控件的依赖属性绑定到窗口的依赖属性 我创建了一个示例项目来演示我的问题 用户控件1 XAML
  • 打印到终端末尾

    Like this picture of apt get how can I print something at the end of the line just like the speed on the screen Although
  • 是否可以将 Google 服务帐户限制为项目内的特定 BigQuery 数据集?

    我已使用 GCP UI 为特定项目设置了一个服务帐号Project X 之内Project X有3个数据集 Dataset 1 Dataset 2 Dataset 3 如果我分配角色BigQuery Admin to Project X目前