文档说我可以通过此请求获取密钥:
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]>
我做错了什么?
您需要使用 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)