【问题标题】:Google cloud service account keys console vs api谷歌云服务帐户密钥控制台 vs api
【发布时间】:2022-01-14 06:31:38
【问题描述】:

当我通过控制台 https://cloud.google.com/iam/docs/creating-managing-service-account-keys#iam-service-account-keys-create-console 创建服务帐户密钥时,它会生成一个看起来像这样的密钥

{
  "type": "service_account",
  "project_id": "...",
  "private_key_id": "...",
  "private_key": "-----BEGIN PRIVATE KEY-----abc1234\n-----END PRIVATE KEY-----\n",
  "client_email": "...",
  "client_id": "...",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://oauth2.googleapis.com/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "..."
}

但是通过 api https://cloud.google.com/iam/docs/reference/rest/v1/projects.serviceAccounts.keys/create 使用 node.js 库并使用一组 oauth2 凭据,它会生成一个看起来像这样的密钥

{
  "name": "...",
  "keyType": "USER_MANAGED",
  "keyOrigin": "GOOGLE_PROVIDED",
  "keyAlgorithm": "KEY_ALG_RSA_2048",
  "privateKeyData": "...",
  "privateKeyType": "TYPE_GOOGLE_CREDENTIALS_FILE",
  "validAfterTime": "2021-12-09T10:32:14Z",
  "validBeforeTime": "9999-12-31T23:59:59Z"
}

第一个适用于GOOGLE_APPLICATION_CREDENTIALS,但后者不适用。

【问题讨论】:

  • 如果有人知道这两种不同的密钥文件类型的名称可能有助于我搜索

标签: google-cloud-platform google-cloud-iam


【解决方案1】:

是的,这很正常。您提供 API 调用的答案。在该 API 调用中,JSON 密钥文件(如果在属性 privateKeyData 中提供)。 Base64 解码内容,瞧!

【讨论】:

    【解决方案2】:

    privateKeyData 字段实际上包含整个 Google 凭据文件。它只是编码为 base64 字符串。仅在 keys.create 响应中提供。确保确保私钥数据安全,因为它允许声明服务帐户身份。当 base64 解码后,私钥数据可用于通过 Google API 客户端库和gcloud auth activate-service-account 进行身份验证。

    有关通过 API 获取服务帐户密钥的更多信息,请参阅 Resource:ServiceAccountKeystackpost

    【讨论】:

      【解决方案3】:

      响应包含您的服务帐户的密钥。返回的密钥格式如下,其中 ENCODED_PRIVATE_KEY 是公钥/私钥对的私有部分,采用 base64 编码。

      所以你只需要将 privateKeyData 从 base64 解码为 asci 就可以了。

      https://cloud.google.com/iam/docs/creating-managing-service-account-keys#iam-service-account-keys-create-rest

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-05-23
        • 2013-12-18
        • 2019-07-11
        • 2020-06-28
        • 1970-01-01
        • 1970-01-01
        • 2023-03-22
        相关资源
        最近更新 更多