Google cloud platform 使用`gcloud auth'创建访问令牌时是否可以设置作用域`

Google cloud platform 使用`gcloud auth'创建访问令牌时是否可以设置作用域`,google-cloud-platform,gcloud,Google Cloud Platform,Gcloud,我在示例Java代码中看到,当请求刷新令牌时,可以添加作用域: credential.createScope(Arrays.asList(“someapi”)).refreshToken 我在Python中也看到了同样的情况。但cli中没有作用域的配置选项 gcloud auth应用程序默认打印访问令牌 没有gcloud auth--scopes=“someapi”应用程序默认打印访问令牌 您知道如何在cli中设置自定义作用域的访问密钥吗?我认为通过gcloud auth应用程序默认打印访问令牌

我在示例Java代码中看到,当请求刷新令牌时,可以添加作用域:

credential.createScope(Arrays.asList(“someapi”)).refreshToken

我在Python中也看到了同样的情况。但cli中没有作用域的配置选项

gcloud auth应用程序默认打印访问令牌

没有
gcloud auth--scopes=“someapi”应用程序默认打印访问令牌


您知道如何在cli中设置自定义作用域的访问密钥吗?

我认为通过
gcloud auth应用程序默认打印访问令牌
命令请求自定义作用域在设计上不可用

原因是您可以使用用户帐户或服务帐户登录到Google Cloud SDK。如果您使用
gcloud auth application default login
登录到用户帐户,则云SDK仅请求作用域以完全访问GCP API


因此,当您运行
gcloud auth application default print access token
时,Google Cloud SDK无法通过您的登录帐户访问除GCP之外的任何API,因此,它无法打印具有自定义作用域的访问令牌。

我认为通过
gcloud auth应用程序默认打印访问令牌命令请求自定义作用域在设计上不可用

原因是您可以使用用户帐户或服务帐户登录到Google Cloud SDK。如果您使用
gcloud auth application default login
登录到用户帐户,则云SDK仅请求作用域以完全访问GCP API


因此,当您运行
gcloud auth应用程序默认打印访问令牌时,Google Cloud SDK无法通过您登录的帐户访问除GCP之外的任何API,因此,它无法打印具有自定义范围的访问令牌。

在API中,就像在
gcloud auth print access token
命令中一样,如果在用户帐户上设置作用域,它将失败。只能限定服务帐户的作用域,而不能限定用户帐户的作用域

事实上,您可以在用户帐户凭据上设置作用域,如
gcloud auth application default login--scopes=…
,然后,当您生成令牌时,它将自动正确设置作用域


请记住,您尤其需要确定凭据的范围,以便在API中不访问Google Cloud API(工作区、地图、Youtube等)

就像在
gcloud auth print access token
命令中一样,如果您在用户帐户上设置范围,它将失败。只能限定服务帐户的作用域,而不能限定用户帐户的作用域

事实上,您可以在用户帐户凭据上设置作用域,如
gcloud auth application default login--scopes=…
,然后,当您生成令牌时,它将自动正确设置作用域


请记住,您尤其需要确定您的凭证范围,以访问非Google Cloud API(工作区、地图、Youtube等)

以下工具有助于获取使用API的承载令牌:

oauth2l头文件——json路径\服务\帐户\关键业务通信


[
brew安装oauth2l
或https://github.com/google/oauth2l ]以下工具有助于获取与API一起使用的承载令牌:

oauth2l头文件——json路径\服务\帐户\关键业务通信

[
brew安装oauth2l
或https://github.com/google/oauth2l ]