使用API​​调用为Google创建公钥/私钥

时间:2018-07-02 08:24:42

标签: python google-cloud-platform

docs说我可以通过此请求获取密钥:

POST https://iam.googleapis.com/v1/projects/PROJECT-ID/serviceAccounts/SA-NAME@PROJECT-ID.iam.gserviceaccount.com/keys

我创建了一个服务帐户。 对于示例,请说:

SA-NAME = xxx
PROJECT-ID = yy-zz

当我这样做(Python)

import requests
url = 'https://iam.googleapis.com/v1/projects/yy-zz/serviceAccounts/xxx@yy-zz.iam.gserviceaccount.com/keys'
try:
    g = requests.post(url, verify=True)
except requests.exceptions.HTTPError as err:
    print err
    sys.exit(1)
print g

我得到:

<Response [403]>

我在做什么错了?

1 个答案:

答案 0 :(得分:1)

您需要使用OAuth2进行身份验证才能使用该服务。您会收到403错误,因为您在尝试使用该服务之前未进行身份验证。

有关通过这些方法进行身份验证的一些信息,请参见以下链接: https://developers.google.com/identity/protocols/OAuth2

对服务进行身份验证可能类似于以下内容:

from google.oauth2 import service_account

SCOPES = ['https://www.googleapis.com/auth/sqlservice.admin']
SERVICE_ACCOUNT_FILE = '/path/to/service.json'

credentials = service_account.Credentials.from_service_account_file(
        SERVICE_ACCOUNT_FILE, scopes=SCOPES)