我尝试在Google Kubernetes(GKE)中以自动方式创建角色。
为此,我使用python客户端库,但我不想对kubectl和kubeconfig或gcloud有任何依赖,
我用…
所以,如果你看一下代码 这里 对于 print-access-token 您可以看到访问令牌通常是在没有范围的情况下打印的。你看:
print-access-token
try: creds = client.GoogleCredentials.get_application_default() except client.ApplicationDefaultCredentialsError as e: log.debug(e, exc_info=True) raise c_exc.ToolException(str(e)) if creds.create_scoped_required(): ...
然后就此而言 文件 你看:
def create_scoped_required(self): """Whether this Credentials object is scopeless. create_scoped(scopes) method needs to be called in order to create a Credentials object for API calls. """ return False
显然,在您的代码中,您将获得带有令牌的令牌 https://www.googleapis.com/auth/cloud-platform 范围。您可以尝试删除它或尝试使用 USER_EMAIL_SCOPE 因为你指定: "iss": self._service_account_key["client_email"] 。
https://www.googleapis.com/auth/cloud-platform
"iss": self._service_account_key["client_email"]
你总能检查一下 gcloud auth activate-service-account --key-file=credentials.json 商店下 ~/.config 。所以你知道 gcloud auth print-access-token 使用。请注意,按照 这个 和 这个 看起来商店就在 源码 格式。
gcloud auth activate-service-account --key-file=credentials.json
~/.config
gcloud auth print-access-token