我可以使用Terraform创建GCP API密钥吗? [英] Can I create GCP API keys using Terraform?

查看:63
本文介绍了我可以使用Terraform创建GCP API密钥吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想使用Terraform创建 API密钥.>

这可能吗?

解决方案

尚未,但是Google似乎正在努力公开用于API密钥管理的API.最新的Cloud SDK(经287.0.0测试)具有Alpha支持,如下所示:

  $ gcloud alpha服务api-keys错误:(gcloud.alpha.services.api-keys)预期的命令名称参数.gcloud alpha服务api-key的可用命令:克隆*(ALPHA)*使用相同的名称创建一个新的API密钥元数据作为输入键.创建*(ALPHA)*创建一个API密钥.删除*(ALPHA)*删除API密钥.describe *(ALPHA)*描述API密钥的元数据.get-key-string *(ALPHA)*获取API密钥的密钥字符串.list *(ALPHA)*列出API密钥.查找*(ALPHA)*查找键字符串的资源名称.取消删除*(ALPHA)*取消删除API密钥.更新*(ALPHA)*更新API密钥的元数据. 

当使用-log-http 列出项目API密钥时,您可以看到使用的API端点:

  $ gcloud alpha服务api键列表--project $ PROJECT --log-http...====请求开始====uri:https://apikeys.googleapis.com/v2alpha1/projects/$PROJECT/keys?alt = json... 

即使cloud sdk使用的是 v2alpha1 ,也可以使用 v2beta1 .像这样验证:

  $ curl -s -H授权:不记名$(gcloud auth print-access-token)" \https://apikeys.googleapis.com/v2beta1/projects/$PROJECT/keys{键":[{"name":项目/已编辑/键/已编辑","displayName":已编辑","createTime":"2019-04-15T10:39:53.558Z","updateTime":"2019-04-15T10:40:06.616639Z",限制": {"androidKeyRestrictions":{},"apiTargets":[{"service":"geocoding_backend"}]},"state":"ACTIVE"}]} 

由于terraform谷歌提供程序通常很快就可以添加新功能,因此我只能假设支持即将到来.您可能需要创建一个Github Issue来表达您的兴趣.或观看 beta提供程序的更改日志.

I'd like to create Google Cloud API keys using Terraform.

Is this possible?

解决方案

Not yet, but Google seems to be working on exposing an API for API key management. Latest cloud sdk (tested with 287.0.0) has alpha support, like this:

$ gcloud alpha services api-keys
ERROR: (gcloud.alpha.services.api-keys) Command name argument expected.

Available commands for gcloud alpha services api-keys:

      clone                   *(ALPHA)*  Create a new API key with the same
                              metadata as input key.
      create                  *(ALPHA)*  Create an API key.
      delete                  *(ALPHA)*  Delete an API key.
      describe                *(ALPHA)*  Describe an API key's metadata.
      get-key-string          *(ALPHA)*  Get key string of an API key.
      list                    *(ALPHA)*  Lists API keys.
      lookup                  *(ALPHA)*  Look up resource name of a key string.
      undelete                *(ALPHA)*  Undelete an API key.
      update                  *(ALPHA)*  Update an API key's metadata.

When listing project API keys with the --log-http you can see the API endpoint used:

$ gcloud alpha services api-keys list --project $PROJECT --log-http
...
==== request start ====
uri: https://apikeys.googleapis.com/v2alpha1/projects/$PROJECT/keys?alt=json
...

Even though cloud sdk is using v2alpha1, there is a v2beta1 available. Verified like this:

$ curl -s -H"Authorization: Bearer $(gcloud auth print-access-token)" \
   https://apikeys.googleapis.com/v2beta1/projects/$PROJECT/keys
{
  "keys": [
    {
      "name": "projects/REDACTED/keys/REDACTED",
      "displayName": "REDACTED",
      "createTime": "2019-04-15T10:39:53.558Z",
      "updateTime": "2019-04-15T10:40:06.616639Z",
      "restrictions": {
        "androidKeyRestrictions": {},
        "apiTargets": [
          {
            "service": "geocoding_backend"
          }
        ]
      },
      "state": "ACTIVE"
    }
  ]
}

Since the terraform google provider is usually pretty quick to add new features I can only assume support is coming soon. You may want to create a Github Issue to show your interest. Or watch the beta provider's change log.

这篇关于我可以使用Terraform创建GCP API密钥吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆