如何使用Python创建/管理GCP API密钥

时间:2020-10-08 14:38:49

标签: google-cloud-platform google-api google-api-python-client

我正在尝试使用Python之类的客户端库访问Google Cloud API服务,但是在文档here中找不到任何内容。该文档确实令人困惑。请帮忙。

我需要为可以使用API​​密钥访问API网关的客户使用客户端库创建API密钥。

3 个答案:

答案 0 :(得分:1)

目前没有公共API可通过编程方式创建API密钥。我一个月前看到了Beta版,但现在不再可用。

我最近使用Googler的新API观看了一个视频,但未公开记录。

因此,您可以使用此API调用(不是文档,如有更改,恕不另行通知。使用后果自负)


curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -X POST https://apikeys.googleapis.com/v1/projects/PROJECT_ID/apiKeys

答案 1 :(得分:0)

如果您想使用Google的API,最好创建服务帐户并在Python代码中使用它。 https://cloud.google.com/docs/authentication/production?hl=en

如果您已经创建了服务,并且想使用API​​密钥公开API,则可以按照您提到的链接中的说明进行操作。

答案 2 :(得分:0)

根据official documentation,如果您使用API​​密钥进行身份验证,则必须首先为服务启用API密钥支持,然后再使用服务帐户来标识向API发送请求的服务

话虽如此,您可以create a service account key使用Cloud Console,gcloud工具,serviceAccounts.keys.create()方法,文档中包含以下示例,以使用Python创建服务帐户密钥。

import os

from google.oauth2 import service_account
import googleapiclient.discovery

def create_key(service_account_email):
    """Creates a key for a service account."""

    credentials = service_account.Credentials.from_service_account_file(
        filename=os.environ['GOOGLE_APPLICATION_CREDENTIALS'],
        scopes=['https://www.googleapis.com/auth/cloud-platform'])

    service = googleapiclient.discovery.build(
        'iam', 'v1', credentials=credentials)

    key = service.projects().serviceAccounts().keys().create(
        name='projects/-/serviceAccounts/' + service_account_email, body={}
        ).execute()

    print('Created key: ' + key['name'])

您可以在此link

中找到另一个示例