当前位置: 首页 > 知识库问答 >
问题:

GKE工作负载标识池与来自工作负载标识联合的工作负载标识池

吴哲
2023-03-14

Google docu表示,工作负载标识可以用来授权GKE POD使用Google API提供的服务(而且效果很好)。它还表示,将有一个自动创建的标识池,名为PROJECT\u ID.svc。id.goog。

关于工作负载标识联合的Docu说:“您可以使用工作负载标识池来组织和管理外部标识。”

在我按照这里所述配置了工作负载标识(并且工作正常)之后,我正在尝试检索项目中现有的工作负载标识池,我希望看到project\u ID.svc。id.goog。我使用此命令列出池:gcloud beta iam workload identity pools list--location=“global”--显示已删除的池,作为输出,我得到:

local@local:~/$ gcloud beta iam workload-identity-pools list --location="global"
Listed 0 items.

那么,GKE工作负载标识池和来自工作负载标识联合的工作负载标识池仅仅是两个绝对独立的实体吗?或者它只是测试版API,而不是完全工作的atm?还是第三个?


共有1个答案

程俊健
2023-03-14

有时很难找到正确的产品名称。2种不同产品的非常相似的名称。-

工作负载标识是一个GKE插件。在深入研究之前,您必须知道,在谷歌云平台上,您不需要使用服务帐户密钥文件,因为服务帐户会自动加载到每个服务上(计算引擎、应用引擎、云运行、云功能、云构建等)并可通过元数据服务器访问。Google云客户端库自动检测环境并使用元数据服务器(如果存在)。

GKE的问题是,您可以在几个不同的计算引擎实例(节点)上运行容器,并且您的不同服务(K8S服务)可以具有不同的授权级别。如果您依赖计算引擎服务帐户(没有Workload identity插件的默认行为),那么相同实例上的所有POD都使用相同的服务帐户(因此具有相同的权限)。

为了解决这个问题,Workload Identity插件创建了一个代理来拦截元数据服务器调用,并在GKE上使用此pod/service的正确绑定服务号进行回复

工作负载身份池完全不同。原则是配置第三方身份提供者(例如AWS、Okta,甚至自定义)并定义接受第三方令牌的条件(电子邮件、索赔、...)。

当令牌被接受时,您可以执行调用来模拟服务号,从而生成一个新令牌(这次是符合Google的令牌),您将能够在后续调用中使用该令牌。

这里的原则是避免使用服务帐户密钥文件,并依赖第三方身份提供商与GCP交互。例如,在AWS上,您需要调用BigQuery,您可以使用工作负载标识池和您的AWS标识创建一个令牌,然后调用BigQuery,而无需在平台之间交换机密。

注意:保守秘密的最好方法是不要有秘密!

 类似资料:
  • 我试图在Composer 2环境中运行GKEStartPodOperator/KubernetesPodOperator任务,该环境在自动驾驶模式下使用GKE集群。我们有一个现有的Composer 1环境,GKE集群不处于自动驾驶模式。我们使用谷歌云平台服务(BigQuery、GCS等)进行身份验证的任务在Composer 2环境中失败,但在Composer 1环境中成功。 在日志文件中,我可以看

  • 有人知道如果有任何其他方式的认证/授权访问谷歌云存储除了服务帐户密钥,当我使用@谷歌云/存储Node.js模块从这里?我读过关于“工作负载标识联合”的文章,但是在我看来,当我使用@google-Cloud/存储库时,我不能使用这种方法。我找不到任何合适的构造函数,只有这两个: 有什么建议吗?谢谢你们

  • 我使用Cloud Composer在Kubernetes中运行任务来安排作业。我在与composer相同的GKE中设置了一个新的节点池,并使用它来运行Kubernetes任务。在该节点池中,我使用默认服务帐户,但将该帐户绑定到与Composer节点池相同的服务帐户,使用IAM策略绑定,并启用工作负载标识。 然而,我可以从错误中看到kubernetes服务号缺少作曲家服务号可以访问的一些东西的权限。

  • 我目前正在使用GKE Workload Identity从GKE内部访问谷歌云平台资源。这对谷歌云存储和其他平台资源非常有效。 然而,当我试图使用GKE Workload Identity访问Google工作表时,我遇到了一个“身份验证范围不足”的问题。 当我为服务帐户生成密钥文件并在代码中使用它时,我可以手动将作用域设置为。它的工作原理与预期一样,我可以访问该表。如果我将范围更改为,我得到了与G

  • 我目前正在测试这个Github操作,以使用Workload Identity Federation对gcloud资源进行身份验证。 我创建了一个工作负载标识提供程序,它具有自定义的属性映射Github存储库和使用Github Action的分支: 在授予服务帐户模拟权限时,我可以使用此命令确保Github操作从存储库的分支触发: 虽然这非常适合匹配一个确切的分支名称,但我也想使用同样的方法来使用通

  • 我最近一直在使用GKE工作负载标识特性。我想更详细地了解组件的工作原理。 GCP客户端代码(或其他语言SDK)适用于GCE元数据方法 我想现在对我来说主要的难题是验证呼叫舱的身份。最初我认为这将使用令牌评论API,但现在我不确定谷歌客户端工具如何知道使用安装到pod中的服务号令牌... 编辑后续问题: 问题1:在第2步和第3步之间,是对通过节点池上的设置GKE_metadata_服务器路由到GKE