gpt4 book ai didi

google-cloud-platform - GCP 通过 Compute Engine 的服务帐户访问和存储密码/凭据的正确方法

转载 作者:行者123 更新时间:2023-12-04 10:06:49 24 4
gpt4 key购买 nike

“不要在源代码中嵌入与身份验证相关的 secret ”- one may hear frequently .好的,所以我使用 Key Management ServiceSecret Manager .

但是,如何从 Compute Engine 的 VM 和我的本地开发环境正确访问存储在那里的 secret ?

我可以想到:

  • 使用 default Service Account credentials 访问 secret ,但是我如何访问本地开发环境中和本地 Docker 容器内部(即计算引擎外部)的 secret ?
  • 使用 custom Service Account 访问 secret ,但随后我需要将其 JSON key 存储在某处并从我的代码中访问它。为此,我有两个选择:

    2.1.将它与源代码一起存储,所以我将它放在开发机器和 Docker 容器中。但这与开场白“不要在源代码中嵌入 secret ......”背道而驰。馊主意。

    2.2.将它存储在我的开发机器上的某个地方。但是我的 Docker 容器如何访问它呢?我可以将 key 作为 Docker secret 提供,但这不会再次“嵌入源代码”吗?在我的 VM 上启动容器后,我需要从某个地方提供该 secret ,然后再次回到 secret 如何首先到达 VM 的问题。

  • 我知道 Application Default Credentials (ADC) 可以尝试使用选项 2,然后回退选项 1 - 但是,如何解决选项 2 的冲突?服务帐户凭据应位于何处才能在我的本地开发人员和本地容器中访问 - 而不是嵌入到源代码中?

    最佳答案

    我找到了一种方法来完成这项工作,(sortof):

  • 在本地开发环境依赖 GOOGLE_APPLICATION_CREDENTIALS指向从 GCP 手动下载的服务帐户凭据。
  • 在本地 Docker 容器上,提供相同的文件作为 secret 。我的应用程序然后搜索 /run/secrets/为它如果 GOOGLE_APPLICATION_CREDENTIALS未设置。
  • 在 Compute Engine VM 上,从 Google Storage 存储桶下载该文件(之前已上传)。 Given that the default Service Account is used如果没有指定其他凭据,我可以 gutils cp 存储桶中的该文件。然后将下载的文件作为容器的 secret 提供。

  • 尽管如此,我仍然不确定从不嵌入源代码的角度来看这是否好。从存储桶中上传和下载凭据也感觉非常手动。欢迎任何有关如何改进此身份验证的提示。

    关于google-cloud-platform - GCP 通过 Compute Engine 的服务帐户访问和存储密码/凭据的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61544349/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com