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]>
我在做什么错了?
答案 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)