使用 Kubernetes 服务帐户中的 Google 服务帐户密钥文件作为 GKE 工作负载身份的测试环境替代品
Using a Google service account keyfile in a Kubernetes serviceaccount as a testing environment replacement for GKE workload identity
我有一个 GKE 应用,它使用链接到 google 服务帐户的 kubernetes 服务帐户,用于 api 应用内授权。
到目前为止,为了在本地测试这些图像,我有两个版本的图像——一个有测试,一个没有测试——keyfile.json 复制到它们中以获得授权。 (生产图像使用服务帐户进行授权,测试环境将忽略服务帐户,而是寻找在图像构建期间复制的密钥文件。)
我想知道是否有办法将图像合并为一个,并让两者 prod/test 使用 Kubernetes serviceaccount 进行授权。在生产环境中,使用 GKE 的工作负载标识,在测试环境中,使用与 Kubernetes 服务帐户链接或注入的密钥文件。
这可能吗?是否有更好的方法在本地测试环境中模拟 GKE 工作负载身份?
我不知道在非 Google Kubernetes 集群上模拟工作负载身份的方法,但您可以更改您的应用程序以从 volume/file 或元数据服务器读取身份验证凭据,取决于环境设置。有关如何使用本地凭据或 Google SA 根据环境进行身份验证的示例,请参阅 this article (and particularly the code linked there) variables.The 文章还展示了如何使用 Pod 覆盖将生产与开发更改与批量配置。
我有一个 GKE 应用,它使用链接到 google 服务帐户的 kubernetes 服务帐户,用于 api 应用内授权。
到目前为止,为了在本地测试这些图像,我有两个版本的图像——一个有测试,一个没有测试——keyfile.json 复制到它们中以获得授权。 (生产图像使用服务帐户进行授权,测试环境将忽略服务帐户,而是寻找在图像构建期间复制的密钥文件。)
我想知道是否有办法将图像合并为一个,并让两者 prod/test 使用 Kubernetes serviceaccount 进行授权。在生产环境中,使用 GKE 的工作负载标识,在测试环境中,使用与 Kubernetes 服务帐户链接或注入的密钥文件。
这可能吗?是否有更好的方法在本地测试环境中模拟 GKE 工作负载身份?
我不知道在非 Google Kubernetes 集群上模拟工作负载身份的方法,但您可以更改您的应用程序以从 volume/file 或元数据服务器读取身份验证凭据,取决于环境设置。有关如何使用本地凭据或 Google SA 根据环境进行身份验证的示例,请参阅 this article (and particularly the code linked there) variables.The 文章还展示了如何使用 Pod 覆盖将生产与开发更改与批量配置。