使用 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键
- 较新的服务帐户
但是有一些限制会造成某种死锁:
- 遗留 API 密钥无法使用 gcloud 创建 api
- 可以使用 gcloud api 创建服务帐户,但需要分配角色和权限。目前无法为非常常见的网络 api 分配权利(f.e。地图、位置等 https://developers.google.com/maps/premium/overview#client-id)
根据 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。
我正在使用 "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键
- 较新的服务帐户
但是有一些限制会造成某种死锁:
- 遗留 API 密钥无法使用 gcloud 创建 api
- 可以使用 gcloud api 创建服务帐户,但需要分配角色和权限。目前无法为非常常见的网络 api 分配权利(f.e。地图、位置等 https://developers.google.com/maps/premium/overview#client-id)
根据 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。