如何使用不同的服务帐户凭据验证谷歌API?

2024-01-28

任何曾经不幸以编程方式与 Google CLI 二进制文件进行交互的人都会意识到,可以使用以下工具进行身份验证gcloud, gsutil, bq等远非直观或琐碎,尤其当您需要跨不同项目工作时。

我正在为不同的项目运行与 Google Cloud Storage 和 BigQuery 交互的各种 cron 作业。由于 cron 作业可能会重叠,因此重命名配置文件显然不是一个选择,任何理智的人也不会采取这种方法。

肯定有某种方法将服务帐户的密钥对文件的路径传递给这些 CLI 二进制文件,但是bq help什么也不产生。

Google 文档虽然冗长,但基本上没有什么用处,它让人们了解了 OAuth2 的工作原理等,而不是解释什么肯定是一个非常常见的要求,即如何在不运行的情况下实际验证服务帐户修改中央配置文件的命令。

任何开明的人都可以告诉我谷歌的工程师是否决定添加一个像将服务帐户的密钥对文件的路径传递给类似这样简单的功能gsutil and bq?或者也许我可以简单地导出一些变量,以便他们知道使用哪个密钥对文件进行身份验证?

我意识到这些简单化的方法可能是对情报的侮辱,但我们并不关心如何利用核聚变,因此我们甚至不需要考虑相比之下亚马逊的身份验证方法如此正确......


Cloud SDK 中的配置对于用户来说是全局的,但您可以指定在每个命令的基础上使用该配置的哪些方面。为了完成您正在尝试做的事情,您可以:

gcloud auth activate-service-account [email protected] /cdn-cgi/l/email-protection --key-file ...
gcloud auth activate-service-account [email protected] /cdn-cgi/l/email-protection --key-file ...

此时,两组凭据都位于您的全局凭据存储中。 现在你可以运行:

gcloud --account [email protected] /cdn-cgi/l/email-protection some-command
gcloud --account [email protected] /cdn-cgi/l/email-protection some-command

并行地,每个人都将使用给定的帐户而不会干扰。


其更大的扩展是“配置”,它执行相同的操作,但针对您的整套配置(包括帐户和项目等设置)。

# Create first configuration
gcloud config configurations create myconfig
gcloud config configurations activate myconfig
gcloud config set account [email protected] /cdn-cgi/l/email-protection
gcloud config set project foo

# Create second configuration
gcloud config configurations create anotherconfig
gcloud config configurations activate anotherconfig
gcloud config set account [email protected] /cdn-cgi/l/email-protection
gcloud config set project bar

您可以根据每个命令指定要使用的配置。

gcloud --configuration myconfig some-command
gcloud --configuration anotherconfig some-command

您可以通过运行以下命令来阅读有关配置的更多信息:gcloud topic configurations


所有属性都有相应的环境变量,允许您为单个命令调用或终端会话设置特定属性。它们的形式如下:

CLOUDSDK_<SECTION>_<PROPERTY>

例如:CLOUDSDK_CORE_ACCOUNT

您可以通过运行以下命令查看所有可用的配置设置:gcloud help config

--configuration 标志的等效项是:CLOUDSDK_ACTIVE_CONFIG_NAME


如果您确实想要完全隔离,您还可以通过设置更改Cloud SDK的config目录CLOUDSDK_CONFIG到您选择的目录。请注意,如果您这样做,配置将完全独立,包括凭证存储、所有配置、日志等。

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

如何使用不同的服务帐户凭据验证谷歌API? 的相关文章

  • sqlite3-ruby gem:无法构建 gem 本机扩展

    Update 看看这个后续问题 Windows 上的 Gem 更新 它坏了吗 https stackoverflow com questions 134581 gem update on windows is it broken 在 Win
  • ListItem 附加自定义值

    我在asp net中使用dropdownlist 它有代表下拉列表项目的ListItem集合 每个ListItem只有两个字段来保存数据 Value和Text字段 但这些还不够 我想保存更多数据对于每个项目 假设附加字段中有 Text1 和
  • java8 Collectors.toMap() 限制?

    我正在尝试使用java8Collectors toMap on a Stream of ZipEntry 这可能不是最好的想法 因为在处理过程中可能会发生异常 但我想这应该是可能的 我现在收到一个我不明白的编译错误 我猜是类型推理引擎 这是
  • Excel 2013 数据透视表不会更改当前页面,除非手动导航到

    我们有一小段 VBA 代码 多年来一直完美运行 本质上是 Me PivotTables APivot PivotFields AField CurrentPage Some text 这种方法一直有效 直到 Excel 2013 该行将失败
  • 如何在 iOS 中注册自定义文件类型

    我目前正在创建一个应用程序 我想让用户在其中备份他们的文件 plist m4a 我压缩文件并将扩展名更改为自定义扩展名 专门针对我的应用程序 例如 MyBackup 然后 用户可以通过电子邮件或 iTunes 文件共享进行导出 我已经阅读过
  • 多边形内的 SQL 地理点在 STIntersect 上不返回 true(但使用 Geometry 返回 true)

    我不想仅仅为了在 STIntersect 中返回 true 而将地理数据转换为几何图形 下面是 SQL 中的代码 DECLARE point GEOGRAPHY GEOGRAPHY Point 1 1 4326 DECLARE polygo
  • 如何将变量插入 PHP 数组?

    我在网上查了一些答案 但都不是很准确 我希望能够做到这一点 id result id info array id Example echo info 0 这有可能吗 您需要的是 不推荐 info array id Example varia
  • 如何更改 aptana studio 的背景颜色?

    如何将 Aptana IDE 或整个主题 的黑色背景更改为其他背景 例如蓝色 正如 gyozo 在评论中提到的 对于蓝色主题 请使用 窗口 gt 首选项 gt Aptana Studio gt 主题 并选择 Eclipse 主题
  • 如何获得 JavaScript 阶乘程序的循环来显示所使用的工作?

    你好 我面临着用 JavaScript 编写一个程序的挑战 尽管我对它不太了解 但它要求用户输入一个数字 然后计算该数字的阶乘 我使用了已经提出的问题并设法使计算正常工作 但无法获得所需的输出 我必须在以下输出中获取它 而不使用任何花哨的库
  • 用javascript调用外部网页(跨域)

    我正在尝试使用以下网络服务来验证提要这个问题 https stackoverflow com questions 11996430 check if a url is a valid feed 但浏览器不允许我向另一台服务器发送 ajax
  • 在Python中停止ThreadPool中的进程

    我一直在尝试为控制某些硬件的库编写一个交互式包装器 用于 ipython 有些调用对 IO 的影响很大 因此并行执行任务是有意义的 使用 ThreadPool 几乎 效果很好 from multiprocessing pool import
  • Jackson 将单个项目反序列化到列表中

    我正在尝试使用一项服务 该服务为我提供了一个带有数组字段的实体 id 23233 items name item 1 name item 2 但是 当数组包含单个项目时 将返回该项目本身 而不是包含一个元素的数组 id 43567 item
  • 我可以将 MongoDB 与实体框架一起使用吗?

    实体框架有可能支持MongoDB数据库吗 有人写过实体框架MongoDB Provider吗 简短的回答 不 这肯定是可能的 但不合理 MongoDB 是文档数据库 不支持集合之间的任何物理关系 EF 非常适合 SQL MySQL 等关系数
  • 不区分大小写的字符串比较 C++ [重复]

    这个问题在这里已经有答案了 我知道有一些方法可以进行忽略大小写的比较 其中涉及遍历字符串或一个good one https stackoverflow com questions 11635 case insensitive string
  • Biopython 可以执行 Seq.find() 来解释歧义代码吗

    我希望能够在 Seq 对象中搜索考虑歧义代码的子序列 Seq 对象 例如 以下内容应该是正确的 from Bio Seq import Seq from Bio Alphabet IUPAC import IUPACAmbiguousDNA
  • 使用适用于 Android 和 ios 的 Angular NativeScript 的透明选项卡栏和操作栏

    我想让标签栏透明 操作栏在滑动布局或页面上透明 操作栏或选项卡栏必须位于页面顶部 就像两层一样 我尝试过使用 css 使其透明 但它在页面上并没有变得透明
  • JQuery 删除和内存泄漏

    我正在开发一个游戏 我看到了很多内存消耗 我使用jquery animate 动画完成后 我 remove 元素 我的问题是 从 dom 树中删除一个元素后 对象还存在记忆中吗 Javascript 是一种垃圾收集语言 这意味着当没有代码保
  • ubuntu:升级软件(cmake)-版本消歧(本地编译)[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我的机器上安装了 cmake 2 8 0 来自 ubuntu 软件包 二进制文件放置在 usr bin cmake 中 我需要将 cmake 版本至少
  • 使用 IIS 发布:找不到服务器 DNS

    我正在尝试使用 IIS 发布我的项目 我能够通过 Visual Studio 发布它 La aplicaci n web se public correctamente file D www plataformafantasy com Co
  • 窗口未定义 - Next.js 13 - 服务器组件中的客户端组件 - [重复]

    这个问题在这里已经有答案了 Leaflet 被导入到一个导入到客户端组件的文件中 那么为什么服务器运行它并抛出此错误呢 它实际上在重试后确实有效 并最终使网站正常运行 我尝试在内部使用动态导入useEffect 没有骰子 Reference

随机推荐

  • 如何使用Android MediaCodec编码相机数据(YUV420sp)

    感谢您的关注 我想使用Android MediaCodec API对从Camera获取的视频帧进行编码 不幸的是 我没有成功做到这一点 我对 MediaCodec API 还不太熟悉 以下是我的代码 我需要你的帮助来弄清楚我应该做什么 1
  • 将参数传递给正在运行的应用程序

    我正在制作一个图像上传器 将图像上传到图像托管网站 并且在传递参数时遇到一些问题 图像位置到已运行的应用程序 首先 假设 MyApp exe 始终运行 每当我右键单击图像时 我都会在默认 Windows 上下文菜单中添加一个项目 显示 上传
  • RAM 如何以 O(1) 的速度访问内存中的任何位置

    我们被告知 RAM 内存的抽象是一个长字节数组 对于 CPU 来说 访问它的任何部分都需要相同的时间 能够同时访问 4 GB 在我的计算机上 中的任何字节的设备是什么 因为这对我来说似乎不是一个微不足道的任务 我问过同事和我的教授 但没有人
  • 减少 React.min.js 和 React-dom.min.js 的 Browserify 包

    我想将一些 React 库与 Browserify 捆绑在一起 require他们 但因文件大小而推迟 我使用以下 Browserify 命令 browserify path to react min js path to react do
  • 为 Uwsgi 编译插件

    我从官方网站编译了uwsgi版本x y zz ww 我使用官方文档中建议的命令编译了uwsgi 然后我用官方文档中的命令编译了Python建议的插件 我得到的错误输出是这样的 gt ubuntu ip xx yy zz ww tmp uws
  • 检测自定义形状 OpenCV

    我想在 OpenCV 中找到自定义形状 形状是预先定义的 我想使用网络摄像头实时检测该形状是否等于当前形状 我怎样才能做到这一点 如何比较预定义的自定义形状和当前形状 正如评论者所回避的那样 您可以使用模板匹配来检测自定义形状 那么什么是模
  • 检查对象类型失败并出现“不是类型”错误

    我试图检查一个对象是否属于给定类型 但收到错误 expectedClass 不是类型 我的代码如下 func testInputValue inputValue AnyObject isKindOfClass expectedClass A
  • Spring Boot 应用程序已弃用 java.security.egd=file:/dev/./urandom?

    我曾经配置过 Djava security egd file dev urandom在我的 Spring Boot 应用程序的 Dockerfile 中 In https spring io guides gs spring boot do
  • 将增量数据从 REST API 引入 SQL azure

    我的需求如下 需要将数据从第 3 方 API 提取到 SQL azure 中 每天都会查询 API 以获取增量数据 并且可能需要分页 因为默认情况下任何 API 响应都只会提供前 N 条记录 该 API 还需要一个身份验证令牌才能工作 这是
  • Android 应用程序中使用的服务器 Web 的 Google Places API 密钥请求被拒绝

    我正在尝试从 Android 应用程序的 Google Places API 获取信息 为此 我首先在我的 Google 帐户中启用了此 API 其次 我为浏览器创建了一个 API KEY 由于另一个 API 我已经有了一个 API KEY
  • Doctrine DQL 每组最大 n

    这是我的 Symfony2 项目的 2 个表 EVENT PHOTO id id event id likes 1 1 1 90 2 2 1
  • 将每个组扩展到最大 n 行

    如何将组扩展到最大组的长度 df lt structure list ID c 1L 1L 2L 3L 3L 3L col1 c A B O U L R class data frame row names c NA 6L ID col1
  • 如何在 Spring Integration 测试之间删除内存中的 h2db?

    我在 Spring Web 应用程序中使用 Liquibase 我有一堆实体 在每个实体 如用户 帐户 发票 许可证等 的集成测试中对 REST API 进行了数百次测试 我的所有集成测试在按类运行时都通过了 但其中很多在使用一起运行时失败
  • 如何修复ModuleNotFoundError:使用python源代码安装没有名为“pip._internal”的模块[重复]

    这个问题在这里已经有答案了 我通过编译源代码在redhat机器上安装了python3 7 但在处理pip3时遇到问题 安装后我已经执行了以下步骤 sudo ln usr local bin python3 7 usr bin python3
  • r中的2d矩阵到3d堆叠数组

    我有一个数据框data在 R 中 大小为 120000 行 x 5 列 每300行是在不同时间间隔测量的一帧 即400帧 Action 我尝试使用array data c 300 5 400 Expected 通过分割将此数据框变成 3d
  • 如何正确处理类中使用的字节数组?

    我有一个 StateObject 类 用于存储来自客户端和服务器的数据 这是代码 public class StateObject IDisposable public StateObject public String serviceNa
  • iPhone 自动对焦中到“兴趣点”的距离

    在iphone中 我想计算相机到拍摄对象的距离 我想知道也许 iPhone 相机的 主动自动对焦 为我提供了到拍摄对象 兴趣点 的距离 提前谢谢了 附注伙计们 如果您认为不可能 请告诉我 据我所知 这是不可能的 请参阅here http d
  • Pyside6:从 QTableWidget 复制粘贴、删除、撤消多个单元格

    我希望能够使用 control C control V 在 Pyside6 表 QTableWidget 之间进行复制和粘贴 主要是在 Excel 之间进行复制和粘贴 我找到了 Momo 2023 年 1 月的帖子 1 https stac
  • JavaScript 闭包。在循环中访问当前 i、j 变量[重复]

    这个问题在这里已经有答案了 我尝试动态生成 table 使用 jQuery 我想为每个单元格设置单击处理程序 因此当单元格单击时 弹出窗口将显示单元格的当前索引 我如何访问 CURRENTi and j循环中的变量 for var i 0
  • 如何使用不同的服务帐户凭据验证谷歌API?

    任何曾经不幸以编程方式与 Google CLI 二进制文件进行交互的人都会意识到 可以使用以下工具进行身份验证gcloud gsutil bq等远非直观或琐碎 尤其当您需要跨不同项目工作时 我正在为不同的项目运行与 Google Cloud