使用 Google Workload Federation Identity 对本地应用程序进行身份验证

问题描述 投票:0回答:1

我们在本地服务器中有一个正在运行的应用程序。我想创建一个从 GCP 读取 BigQuery 表的应用程序。

我被限制使用服务帐户密钥,这也不是验证我的应用程序的最佳方式,对吧?

因此在谷歌上搜索并了解了这个“Google Workload Federation Identity”。

但我不知道它要求提供在创建时已填写的发行者 URL 和提供者属性。

任何人都可以帮助我,这个发行者(URL)是什么以及如何获取它?

到目前为止,我已经创建了一个工作负载身份池。

google-cloud-platform google-bigquery on-premises-instances
1个回答
0
投票

您好,据我了解,工作负载身份联合只是公钥/私钥身份验证/授权的另一个抽象。

现在假设您拥有想要将资源部署到的目标平台(虚拟机、存储等),例如GCP。

您有一个源平台,您可以在其中部署这些资源,例如Github 操作。

Github 在公共端点上公开公钥https://token.actions.githubusercontent.com/.well-known/jwks,主机基本上就是发行者 URL。

在 GCP 端,您必须配置服务帐户以信任 Github 操作,有两个主要组件

  • 发行者 - 用于检索公钥的 github 操作的 URL
  • 主题 - 识别运行 github actions 部署的唯一存储库

当配置完毕并且 github 操作想要执行部署时,它将向 GCP 请求此特定服务帐户的授权令牌来完成这项工作。

请求包含主题以及其他信息,并由 Github private 密钥签名。这意味着

  • GCP 可以使用该 URL 上公开的public 密钥来验证令牌请求是否确实来自 Github。
  • 您知道您执行部署的 github 存储库确实是您的(因为显然您创建了它并配置了主题)
  • 该请求无法被伪造,因为没有人不知道 Github 私钥

这基本上就是将处理秘密(私钥)的委托委托给其他服务(Github),并且作为该服务的用户,您可以无需密码。

如果您有一些,例如本地应用程序,并且您想要使用此方法向 GCP 授权,您必须自行处理。

  • 使用公钥公开公开可用的发行人 URL
  • 管理你自己的私钥
  • 定义主题
  • 进行令牌请求
  • 签字
  • 等等

我想有一些软件可以简化这个过程。但它仍然比使用一些为您执行此操作的云本机解决方案付出更多努力。

© www.soinside.com 2019 - 2024. All rights reserved.