【问题标题】:Google cloud credentials retrieve private key from azure vault谷歌云凭证从 azure Vault 中检索私钥
【发布时间】:2021-07-27 09:50:50
【问题描述】:

目前我们将谷歌云凭证放在 json 文件中,并通过 GOOGLE_APPLICATION_CREDENTIALS 环境变量进行设置。

但出于安全原因,我们不想在 json 文件中硬编码私钥。我们想将私钥放在 Azure 密钥保管库中(是的,我们使用 azure key Vault),有没有办法以编程方式向 GCP 提供凭据。这样我就可以读取 azure key vault 并通过代码提供私钥。我试图检查和使用GoogleCredentials 和谷歌DefaultCredentialsProvider 等类,但我找不到合适的例子。

注意:google 凭据类型是服务凭据

非常感谢任何帮助。

【问题讨论】:

  • 我了解到您在 Google Cloud 上运行代码并希望从 azure key 故障中获取服务帐户密钥文件,对吗?
  • @guillaumeblaquiere 这是正确的

标签: google-cloud-platform


【解决方案1】:
  1. 将 Azure Key Vault 中编码的服务帐户 JSON base64 存储为字符串。
  2. 从 Key Vault 读回字符串并将 base64 解码回 JSON 字符串。
  3. 使用名称类似于 from_service_account_info() (Python SDK) 的 SDK 成员方法之一加载 JSON 字符串。

【讨论】:

  • 谢谢你的回答,我用的是java。我只将私钥存储在 keyvault 中,其余属性(如客户端 id、客户端电子邮件、令牌 uri 等)存储在应用程序属性文件和使用 ServiceAccountCredentials 类的代码中,构造了凭据并在 BigqueryBuilder 中使用。一切正常
  • @KalaiselvamM 必须保护客户端机密。不要将该秘密存储在应用程序属性中。
【解决方案2】:

如果您想从 Azure 保管库加载机密,John 的答案是正确的。

但是,如果您需要 Google Cloud 环境中的服务帐号凭据,则不需要服务帐号密钥文件,您可以使用自动加载的服务帐号进入metadata server

在几乎所有的 Google Cloud 服务中,您都可以自定义要使用的服务帐号。在最坏的情况下,您需要为上下文使用默认服务帐户,并为其授予正确的权限。

在 Google Cloud 产品上使用服务帐号密钥文件并不是一个好的做法。这是一个长期存在的凭证,你必须自己轮换,保守秘密,......

【讨论】:

    猜你喜欢
    • 2018-12-29
    • 2020-08-11
    • 2020-02-07
    • 1970-01-01
    • 1970-01-01
    • 2014-07-11
    • 2019-01-27
    • 2013-06-03
    • 1970-01-01
    相关资源
    最近更新 更多