IAM ServiceAccount用于CloudRun服务端点调用

时间:2019-09-25 13:20:06

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

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

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

端点由运行在GKE集群上的pod调用。

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

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

对于集群本身,还是说运行k8s节点的VM?

1 个答案:

答案 0 :(得分:2)

您可以在集群,节点和Pod级别上使用服务帐户。我将使用Kubernetes Secrets(用于粒度控制)或集群默认服务帐户来授权Cloud Run(最简单)。

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

服务帐户不需要任何角色。将IAM成员添加到Cloud Run时,授予IAM角色FileResult

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

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