【问题标题】:IAM ServiceAccount for CloudRun service endpoint invocation用于 Cloud Run 服务端点调用的 IAM 服务帐号
【发布时间】:2020-01-25 16:55:53
【问题描述】:

我创建了 CloudRun 服务。它按预期由端点公开,我可以在外部调用它。

想要保护它,我只需要提供内部连接。

端点将被 GKE 集群上运行的 pod 调用。

为了仅提供内部连接,您需要设置适当的 IAM 配置。

我的问题是我必须将适当的 ServiceAccount 分配给谁? (已被授予适当的角色)?

集群本身,或者说运行 k8s 节点的虚拟机?

【问题讨论】:

    标签: google-cloud-platform google-kubernetes-engine google-cloud-run google-iam google-cloud-iam


    【解决方案1】:

    您可以在集群、节点和 pod 级别使用服务帐户。我会使用 Kubernetes Secrets(用于精细控制)或集群默认服务帐户来授权 Cloud Run(最简单)。

    除非您更改了集群配置,否则已经为您的集群分配了一个 Compute Engine 默认服务帐户。您可以使用此服务帐号而无需进行额外更改来提供访问 Cloud Run 的身份。

    服务帐号不需要任何角色。将 IAM 成员添加到 Cloud Run 时授予 IAM 角色 roles/run.invoker

    要访问受 IAP 保护的 Cloud Run,您需要添加一个 HTTP Header “authorization: Bearer TOKEN”。令牌是身份令牌。您的代码/程序必须添加此标头,因为 Kubernetes 不会代表您这样做。

    您可以从节点的元数据服务器请求身份令牌。此元数据服务器提供一个带有服务帐户身份的身份令牌。输入服务帐号的电子邮件地址作为 Cloud Run 的会员 ID。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-09
      • 2019-10-30
      • 1970-01-01
      • 2020-05-18
      • 1970-01-01
      • 1970-01-01
      • 2021-09-23
      • 2020-11-16
      相关资源
      最近更新 更多