使用 REST API 将角色添加到 Google Cloud Platform 上的服务帐号

2024-01-17

我想使用调用 REST API 的 python 脚本在 GCP 上创建一个服务帐户,然后赋予它特定的角色 - 最好是一些角色these https://cloud.google.com/iam/docs/viewing-grantable-roles, 例如roles/logging.logWriter.

首先我请求创建帐户 https://cloud.google.com/iam/reference/rest/v1/projects.serviceAccounts/create效果很好,我可以在控制台/IAM 中看到该帐户。
其次我想给它这个角色this https://cloud.google.com/iam/reference/rest/v1/projects.serviceAccounts/setIamPolicy似乎是正确的方法。然而,它并不接受roles/logging.logWriter,说 HttpError 400,"Role roles/logging.logWriter is not supported for this resource.">
相反,如果我在控制台中设置所需的策略,则尝试getIamPolicy方法(使用 gcloud 工具),我得到的只是响应etag: ACAB,没有提及我设定的实际角色。因此我认为这些角色指的是不同的事物。

知道如何使用 API 为服务帐户编写角色/范围脚本吗?


您可以向 GCP 项目中的 GCP 服务帐号授予权限,而无需重写整个项目政策!

Use the gcloud projects add-iam-policy-binding ...命令(docs https://cloud.google.com/sdk/gcloud/reference/projects/add-iam-policy-binding).

例如,给定环境变量GCP_PROJECT_ID and GCP_SVC_ACC以下命令授予所有权限container.admin所选服务帐户的角色:

gcloud projects add-iam-policy-binding ${GCP_PROJECT_ID} \
    --member=serviceAccount:${GCP_SVC_ACC} \
    --role=roles/container.admin

要回顾您所做的事情:

$ gcloud projects get-iam-policy $GCP_PROJECT_ID \
    --flatten="bindings[].members" \
    --format='table(bindings.role)' \
    --filter="bindings.members:${GCP_SVC_ACC}"

Output:

ROLE
roles/container.admin

(或更多角色,如果之前已授予这些角色)

Notes:

  • 环境变量GCP_SVC_ACC预计包含服务帐户的电子邮件符号。
  • 感谢这个答案 https://stackoverflow.com/a/50485552/145400以获得格式良好的读数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 REST API 将角色添加到 Google Cloud Platform 上的服务帐号 的相关文章

随机推荐

  • Silverlight AutoCompleteBox 大写输入

    我需要在 Silverlight 4 应用程序的 AutoCompleteBox 中强制输入大写字母 在 TextBox 中 可以通过替换 KeyDown 事件上的 Text 属性来完成 例如 control Text enteredCha
  • Internet Explorer 中的 JavaScript 故障排除工具

    我大量使用 Firebug 和 Mozilla JS 控制台 但时不时地会遇到仅 IE 的 JavaScript bug 这真的很难定位 例如 第 724 行错误 当源 HTML 只有 200 行时 我想要一个轻量级的 JS 工具 a la
  • 火花提交:--jars 不起作用

    我正在为 Spark Streaming 作业构建指标系统 在系统中 指标是在每个执行器中收集的 因此需要在每个执行器中初始化指标源 用于收集指标的类 指标源被打包在一个jar中 提交作业时 使用参数 jars 将jar从本地发送到每个执行
  • 使用Java读取名称中带有空格的文件?

    文件的原始名称是1 00100 0042 jpg 我有个问题 java net URISyntaxException Illegal character in path at index 49 file opt storage user d
  • F# - 了解使用泛型的类型

    我将在 10 天后参加 F 考试 由于我目前正在做旧的考试集 因此我在理解泛型尤其是具有两个多态参数的类型时遇到了问题 这些问题应该很容易解决 但它在语法上是如何运作的 我不确定 旧考试题如下 以下类型Sum lt a b gt 包含两种不
  • 如何评估 JSF 复合组件中的 MethodExpressions

    我不确定处理复合组件中的方法表达式的 正确 方法 我的组合使用带有操作方法的支持类 这些执行一些默认操作或委托给复合用户作为属性传递的操作方法 使用页面中
  • Flutter mlkit 阿拉伯语文本检测器

    嗨 我正在使用 fluttermlkit https pub dev packages mlkit with firebase https firebase google com docs ml kit 从图像中提取文本 如果语言是英语 一
  • 当我单击下载链接时,如何强制 chrome 显示“另存为”对话框? [复制]

    这个问题在这里已经有答案了 我在 chrome 中使用 WebKitBlobBuilder 在用户端生成文本文件 现在 我需要显示一个另存为对话框 让用户决定放置新生成的文件的文件夹 在 Chrome 中 另存为对话框 无需浏览器配置 如何
  • 如何在小块中禁用 Haskell 警告?

    我想仅禁用某些代码块的警告 我搜索了 Google 但只找到文件范围或全局范围禁用方法 使用 cabal 文件或 pragma OPTIONS GHC 我可以禁用特定功能的警告吗 不可以 目前在 GHC 9 2 1 中还不能 The OPT
  • 如何指定div的高度?

    我想为前两个 div 指定固定高度 并为接下来的两个 div 指定百分比值 最后一个 div 应该占据前一个 div 留下的所有空间 到浏览器窗口的底部 我如何在CSS中实现这个 这是我的 css html
  • 内联块元素和垂直对齐推理

    我使用 display inline block 有 2 个彼此相邻的 div 框 如果没有内容 两个内联块 div 都会与顶部垂直对齐 如果两者都有内容 它们也会垂直对齐到顶部 如果其中只有一个具有文本内容 则具有文本内容的 div 框将
  • SQLite - 存储多个值

    如何在 SQLite 数据库中存储和检索同一列的同一行的多个值 即我有一个产品列 另一列是商店 我在其中放入所有可以获得该产品的商店 Product iLamp Stores River s McWay Lonnie s 我怎样才能实现这个
  • Xcode 4.1 代码签名问题

    我已经阅读了很多线程 但在这里找不到类似我的问题的内容 我认为这是一个简单的修复 但我似乎找不到答案 我正在使用 Xcode 4 1 Gold Master 基本上 当我归档我的 Mac 应用程序时 它会经历所有正常流程 构建成功 但是 当
  • 有没有办法像 C# 中的 @"string" 一样转义 powershell 中的字符串

    有没有办法在 powershell 中转义完整的字符串 就像 string 在 C 中的工作方式一样 我正在编写一个脚本 其中有几个如下所示的字符串 D A CCLCSWRPWPDTLOCRRC SY A CCDCLCSWRPWPDTLOC
  • Laravel / Eloquent hasMany 关系 sum()

    我不知道如何立即加载关系列的总和 数据库 简化 如下 TABLES PRODUCT PRODUCT VARIATIONS ID ID NAME NAME AVAILABLE STOCK 我的关系设置如下 public function va
  • 如何在扩展到匹配文件之前访问文字通配符参数?

    背景 我正在编写一个必须接收这些参数的 bash 脚本 文件名 包含一组规则的文件 文件名列表 要处理的文件 可以使用通配符 目标文件夹 将存储文件的处理版本 理论上有 3 个参数 但实际上第二个参数会扩展 因此如果通配符匹配多个文件 参数
  • 关于round_up宏的问题

    define ROUND UP N S N S 1 S S 通过上面的宏 有人可以帮助我理解 s 1 部分 为什么呢 还有宏 例如 define PAGE ROUND DOWN x ULONG PTR x PAGE SIZE 1 defin
  • setter 和 getter 的模板

    我不熟悉模板 但我想知道是否可以将它们用于 setter 和 getter 方法 例如在这种情况下 double exmlClass getA void const return a void exmlClass setA const do
  • 无法使 NSTimer 无效(停止)[重复]

    这个问题在这里已经有答案了 可能的重复 NSTimer 不会停止 https stackoverflow com questions 1031554 nstimer doesnt stop 我正在使用 NSTimer 在播放音频时更新滑块的
  • 使用 REST API 将角色添加到 Google Cloud Platform 上的服务帐号

    我想使用调用 REST API 的 python 脚本在 GCP 上创建一个服务帐户 然后赋予它特定的角色 最好是一些角色these https cloud google com iam docs viewing grantable rol