【问题标题】:How do I create/manage GCP API keys using Python如何使用 Python 创建/管理 GCP API 密钥
【发布时间】:2020-10-08 14:38:49
【问题描述】:

我正在尝试使用 Python 等客户端库访问 Google Cloud API 服务,但是我无法从文档 here 中找到任何内容。文档真的很难找到。请帮忙。

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

【问题讨论】:

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


    【解决方案1】:

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

    话虽如此,您可以使用 Cloud Console、gcloud 工具、serviceAccounts.keys.create() 方法create a service account key,文档中包含以下示例,以使用 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找到另一个例子

    【讨论】:

    • 做得很好,谢谢!
    【解决方案2】:

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

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

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

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

    【讨论】:

      【解决方案3】:

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

      如果您已经创建了服务并且希望使用 API Key 公开 API,那么您可以按照您提到的链接中的说明进行操作。

      【讨论】:

      • 我想使用客户端库创建 API 密钥
      • 没有以编程方式创建 API 密钥的选项。您需要使用云控制台。
      猜你喜欢
      • 1970-01-01
      • 2021-03-30
      • 2020-07-04
      • 2010-09-29
      • 2020-01-30
      • 2018-01-25
      • 2020-04-15
      • 2018-09-01
      • 1970-01-01
      相关资源
      最近更新 更多