使用 gcloud 创建 Api 密钥?

Create Api Key using gcloud?

我正在使用 "gcloud projects create [project-id]" 创建项目,然后 "gcloud services enable customsearch.googleapis.com" 启用自定义搜索。

现在我想创建一个 Api 密钥,但看不到任何方法。可能吗?

谢谢

您似乎必须通过 GCP Console 创建 API 密钥,但是 Feature Request 将来会提供此功能,以便 API 密钥可以使用 gcloud 创建。没有预计到达时间,但可以跟进上述 link 的任何进展。现在您可以使用 GCP 控制台:

documentation link 底部的“API 密钥”部分,您可以点击“获取密钥”。将弹出一个新的 window,要求您 select 您的项目。 Select 您想要密钥的项目,然后单击“下一步”。将为您的项目创建一个新的 API 密钥。

您可以通过 API Console 凭据菜单管理您的 API 密钥并提高其安全性,该菜单也可用于创建 API 密钥。

您还应该阅读以下内容documentation link which explains a bit more about the pros and cons of using API keys and their limitations which can be overcome using Service Accounts

现在可以使用 gcloud:

 gcloud beta iam service-accounts keys create OUTPUT-FILE --iam-account=IAM_ACCOUNT [optional flags]

您可能需要先 gcloud components install beta

据我了解,目前有两种验证 API 访问权限的方法:

  • "legacy"API键
  • 较新的服务帐户

但是有一些限制会造成某种死锁:

根据 this article,有一个未发布的 API 用于创建 API-key。

首先登录

gcloud auth login

然后获取访问令牌

gcloud auth print-access-token

然后使用令牌列出当前密钥。

curl https://apikeys.googleapis.com/v1/projects/{PROJECT_ID}/apiKeys?access_token={token}

{
  "keys": [
    {
      "keyId": "7d0e2b99-c30c-4b42-bc75",
      "displayName": "API key 1",
      "currentKey": "AIzaSyCT2zcnW0G6dS1N53...",
      "createTime": "2020-05-17T14:09:02.373Z",
      "createdBy": "your@gmail.com",
      "androidKeyDetails": {}
    }
  ]
}

并创建一个新的 API 密钥。

curl -X POST https://apikeys.googleapis.com/v1/projects/{PROJECT_ID}/apiKeys?access_token={token}

{
  "keyId": "0e00ca12-2198-46df-8635",
  "currentKey": "AIzaSyA4JSL7_wt7rVhOV...",
  "createTime": "2020-05-17T16:22:04.941Z",
  "createdBy": "korakot@gmail.com",
  "browserKeyDetails": {}
}

当前有可用的 gcloud alpha 命令。

https://cloud.google.com/sdk/gcloud/reference/alpha/services/api-keys/create

gcloud alpha services api-keys create --display-name="test name"

查看 examples