代码之家  ›  专栏  ›  技术社区  ›  cbdeveloper

在JSON格式的Google Cloud服务帐户密钥中,哪些字段应该保持私有?

  •  0
  • cbdeveloper  · 技术社区  · 4 年前

    这是我从Google获得的JSON服务帐户密钥的形状。

    {
      "type": "service_account",
      "project_id": "",
      "private_key_id": "",
      "private_key": "",
      "client_email": "",
      "client_id": "",
      "auth_uri": "",
      "token_uri": "",
      "auth_provider_x509_cert_url": "",
      "client_x509_cert_url": "",
    }
    

    哪些字段应该是秘密的?我的意思是,我会把它的大部分添加到我的Git回购中,我会添加私有比特作为env变量。

    正在保护 private_key 足够地

    例如:

    账户.ts

    {
      "type": "service_account",
      "project_id": "VALUE",
      "private_key_id": "VALUE",
      "private_key": process.env.PRIVATE_KEY,  // Populating it via env variables
      "client_email": "VALUE",
      "client_id": "VALUE",
      "auth_uri": "VALUE",
      "token_uri": "VALUE",
      "auth_provider_x509_cert_url": "VALUE",
      "client_x509_cert_url": "VALUE",
    }
    

    我是否也应该隐藏 private_key_id ?

    0 回复  |  直到 4 年前
        1
  •  4
  •   John Hanley    4 年前

    这个 private_key 必须加以保护。如果该值与 project_id ,有人可以轻松创建授权令牌并破坏您的谷歌云项目。如果服务帐户具有正确的IAM角色,他们可以控制您的项目。

    仍然可以在不披露的情况下创建授权令牌 项目id 但这将需要更多的时间,因为项目ID可以通过其他方式推导出来。

    这个 private_key_id 用于查找RSA公钥以验证由 private_key 。密钥ID是公开的,它们的公开不是问题。

    只有 private_key 是个秘密。其他值是敏感数据或公共数据。

    最佳实践:保护整个服务帐户。