使用 gcloud 创建 API 密钥?
Posted
技术标签:
【中文标题】使用 gcloud 创建 API 密钥?【英文标题】:Create Api Key using gcloud? 【发布时间】:2018-09-01 12:54:25 【问题描述】:我使用“gcloud projects create [project-id]”创建项目,然后“gcloud services enable customsearch.googleapis.com”启用自定义搜索。
现在我想创建一个 Api Key,但看不到任何方法。有可能吗?
谢谢
【问题讨论】:
【参考方案1】:您似乎必须通过 GCP 控制台创建 API 密钥,但是将来会提供此功能的 Feature Request,以便可以使用 gcloud 创建 API 密钥。没有预计到达时间,但可以通过上述链接了解任何进展。现在您可以使用 GCP Console:
在“API 密钥”部分的此 documentation 链接的底部,您可以单击“获取密钥”。将弹出一个新窗口,要求您选择项目。选择您想要密钥的项目,然后单击下一步。将为您的项目创建一个新的 API 密钥。
您可以通过API Console Credentials 菜单管理您的 API 密钥并提高其安全性,该菜单也可用于创建 API 密钥。
您还应该阅读以下 documentation 链接,其中详细说明了使用 API 密钥的优缺点以及可以使用 Service Accounts 克服的限制。
【讨论】:
【参考方案2】:目前有一个 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。
【讨论】:
【参考方案3】:根据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":
【讨论】:
【参考方案4】:据我了解,目前有两种方法可以对 API 访问进行身份验证:
“旧版”API 密钥 较新的服务帐户但是有一些限制会造成死锁:
无法使用 gcloud api 创建旧版 API 密钥 可以使用 gcloud api 创建服务帐户,但需要分配角色和权限。目前无法为非常常见的 Web api 分配权限(例如地图、位置等。https://developers.google.com/maps/premium/overview#client-id)【讨论】:
您能否在您的答案中添加一些示例代码,以便即使链接网站的内容发生变化,此答案仍然有用。【参考方案5】:现在可以使用 gcloud:
gcloud beta iam service-accounts keys create OUTPUT-FILE --iam-account=IAM_ACCOUNT [optional flags]
您可能需要先gcloud components install beta
。
【讨论】:
这绝对是有价值的,但命令是为服务帐户创建密钥 - 而不是创建 API 密钥。以上是关于使用 gcloud 创建 API 密钥?的主要内容,如果未能解决你的问题,请参考以下文章
我可以使用 Terraform 创建 GCP API 密钥吗?
从节点池开始GKE非常慢 - 集群和k8s / gcloud api不可用