【发布时间】:2020-08-16 01:16:28
【问题描述】:
“不要在源代码中嵌入与身份验证相关的秘密” - one may hear frequently。好的,所以我使用Key Management Service 和Secret Manager。
但是,如何从 Compute Engine 的虚拟机和本地开发环境中正确访问存储在其中的机密?
我可以想到任何一个:
-
使用 default Service Account credentials 访问机密,但是我如何在本地开发环境和本地 Docker 容器内部(即,计算引擎外部)访问机密?
李> -
使用custom Service Account 访问机密,但是我需要将其 JSON 密钥存储在某处并从我的代码中访问它。为此,我有两个选择:
2.1。将其与源代码一起存储,因此我将其保存在开发机器和 Docker 容器中。但这违背了开场白“不要在源代码中嵌入秘密......”。坏主意。
2.2。将它存储在我的开发机器上的某个地方。但是我的 Docker 容器如何访问它呢?我可以将密钥作为 Docker 机密提供,但那不会又是 “嵌入源代码” 吗?在我的虚拟机上启动容器后,我需要从某个地方提供该秘密,再次回到秘密如何首先到达虚拟机的问题。
我知道Application Default Credentials (ADC) 可以尝试使用选项 2,然后回退到选项 1 - 但是,我该如何解决选项 2 的冲突?服务帐户凭据应该驻留在哪里才能在我的本地开发人员和本地容器中访问 - 而不是嵌入到源代码中?
【问题讨论】:
标签: google-cloud-platform google-compute-engine gcloud credentials service-accounts