gcloud auth print-identity-token 命令的 Python 等效命令

ade*_*e1e 5 python google-cloud-platform gcloud

gcloud auth print-identity-token命令打印指定帐户的身份令牌。

$(gcloud auth print-identity-token \
        --audiences=https://example.com \
        --impersonate-service-account my-sa@my-project.iam.gserviceaccount.com \
        --include-email)
Run Code Online (Sandbox Code Playgroud)

我如何使用 Python 来做同样的事情?

gui*_*ere 9

这是一个代码示例(不是那么简单且有详细记录)

import google.auth.transport.requests
from google.auth.impersonated_credentials import IDTokenCredentials
SCOPES = ['https://www.googleapis.com/auth/cloud-platform']

request = google.auth.transport.requests.Request()

audience = 'my_audience'

creds, _ = google.auth.default(scopes=SCOPES)
icreds = google.auth.impersonated_credentials.Credentials(
        source_credentials=creds,
        target_principal="SA TO IMPERSONATE",
        target_scopes=SCOPES)

id = IDTokenCredentials(icreds, target_audience=audience,include_email=True)
id.refresh(request)
print(id.token)
Run Code Online (Sandbox Code Playgroud)