【问题标题】:How can I get the file "service_account.json" for Google Translate API?如何获取 Google Translate API 的文件“service_account.json”?
【发布时间】:2018-02-27 11:04:30
【问题描述】:

我尝试在我的开发中使用 Google Translate API,但我找不到获取“service_account.json”文件的方法。

“Console Google Cloud Platform”上的步骤:

控制台步骤:

拜托,我需要详细的步骤,因为我从谷歌得到的东西对我没有用

【问题讨论】:

  • console.cloud.google.com/apis/credentials/serviceaccountkey> 这是您可以下载 JSON 或 P12 文件或现有服务帐户的链接。

标签: google-cloud-platform google-translate


【解决方案1】:

我花了一段时间才找到如何下载 json 密钥。

  1. 创建服务帐号
  2. 在您的云控制台中打开服务帐户并添加密钥
  3. 在下拉菜单中选择创建密钥 4.然后选择key类型json

【讨论】:

    【解决方案2】:

    服务帐户密钥只能在首次创建 sa 时检索,尤其是在您通过 GCP 控制台创建的情况下,这是一种安全机制。但是你可以删除旧的并创建一个新的没什么大不了的,就是这样,SA仍然保持不变,轮换密钥很好。

    如果您使用 GDM(Google 部署管理器)或 Terraform 等 IaC,您可以根据需要多次检索它。

    对于 Terraform,只需像这样配置必要的输出...

    ### Resources
    
    resource "google_service_account" "my_service_account_name" {
      account_id    = "my-sa"
      display_name  = "my-sa"
      description   = "This is for descriptions"
    }
    
    resource "google_service_account_key" "my_service_account_key" {
      service_account_id = google_service_account.my_service_account_name.name
    }
    
    ### Outputs
    
    output "my_service_account_key" {
      description = "This is for descriptions (for single use)."
      # sensitive   = true # you can add sensitive to avoid showing it in plain text each time you run the code in case you don't need to retrieve it each time
      value = base64decode(google_service_account_key.my_service_account_key.private_key)
    }
    

    对于 GDM,请记住 GCP 不再建议将其用于 IaC 管理,您仍然可以使用描述资源的 CLI 并为 sa 密钥资源添加基本 jq 查询来检索它...

    gcloud deployment-manager deployments describe my-gdm-deployment-name \
        --project project-name \
        --format json | jq -r '.outputs[] | select(.name==my-sa-key-resource-name") | .finalValue'| base64 --decode
    

    【讨论】:

    • 好消息。但这并没有解释如何使用 terraform 通过“secret_data”参数将输出文件(私钥)上传到秘密管理器。您能否建议并添加上述答案?
    【解决方案3】:

    获取 credential.js 的最新方法是点击“your_email_servicer”-> 选择 tab 键,然后点击 [add Key]

    【讨论】:

    • 这是创建一个新密钥,但如果我需要现有服务帐户的凭据怎么办
    • 这是正确的答案 - 但是谷歌没有回答或者这里是在哪里放置私钥?
    【解决方案4】:
    1. 转到https://console.cloud.google.com/apis/credentials
    2. 在左上角有一个蓝色的“创建凭据”按钮,单击它并选择“服务帐户密钥”。 (如果不存在,请参见下文)
    3. 选择所需的服务帐号,并选择“JSON”作为密钥类型。
    4. 它应该允许给你一个 json 来下载

    如果没有蓝色按钮:

    您需要在上面链接的页面上的“OAuth 同意屏幕”选项卡上填写所有必填字段,如果不存在则创建一个。

    如果仍然不起作用,您可能还需要创建一个客户端 ID(我不记得了,抱歉)。

    如果“服务帐户密钥”不是一个选项

    您需要创建一个服务帐号。

    转到https://console.cloud.google.com/iam-admin/serviceaccounts/project 并点击“创建服务帐户”

    【讨论】:

    • 如果我已经创建了服务帐户密钥,但我现在想重新下载它并且不想创建另一个,该怎么办?
    • 出于安全原因,Google 不会让您重新下载它(他们不存储私钥部分)
    • 所以谷歌在我电脑的某个地方下载了密钥而不问我在哪里?我不明白。
    • 我无法让它与 Firefox 一起使用。必须使用 Chrome 下载文件。
    猜你喜欢
    • 1970-01-01
    • 2017-03-27
    • 1970-01-01
    • 2019-07-10
    • 2014-07-28
    • 2018-06-17
    • 2023-04-02
    • 2015-07-25
    • 2015-03-18
    相关资源
    最近更新 更多