2017-06-01 46 views

回答

0

有可能是一个更好,更直接的方式,但这里有一个方法做到这一点,可以在任何地方工作,GCE与否。 gcloud可以使用像这样的实例的凭据打印您的访问令牌:

$> curl 'https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=ya29.GlxcBCtxyP3xW1JwKL62vh4h_8W0vqH9awoCXgcYkOguBP2DKc4JxgHpX6HHuaaaaaaaaaaaaa' 
{ 
    "issued_to": "something.apps.googleusercontent.com", 
    "audience": "something.apps.googleusercontent.com", 
    "user_id": "1234567890", 
    "scope": "https://www.googleapis.com/auth/cloud-platform https://www.googleapis.com/auth/cloudkms https://www.googleapis.com/auth/appengine.admin https://www.googleapis.com/auth/compute https://www.googleapis.com/auth/plus.me", 
    "expires_in": 3578, 
    "email": "[email protected]", 
    "verified_email": true, 
    "access_type": "offline" 
} 

所以,一个完整的命令来获得:

$> gcloud auth print-access-token 
ya29.GlxcBCtxyP3xW1JwKL62vh4h_8W0vqH9awoCXgcYkOguBP2DKc4JxgHpX6HHuaaaaaaaaaaaaa 

然后,您可以标记直接与谷歌的OAuth API查询的是准入范围作用域列表可能是这样的(假设你有HTTPie和JQ安装):

$> http 'https://www.googleapis.com/oauth2/v1/tokeninfo' \ 
    access_token==`gcloud auth print-access-token` | 
    jq '.["scope"]' 
0

你不需要是在实例来获取这些信息。如果您运行

gcloud compute instances describe MY_INSTANCE --zone ZONE \ 
    --format="yaml(serviceAccounts)" 

它会显示由VM和设定范围的使用服务帐户有:

serviceAccounts: 
- email: [email protected] 
    scopes: 
    - https://www.googleapis.com/auth/devstorage.read_only 
    - https://www.googleapis.com/auth/logging.write 
    - https://www.googleapis.com/auth/monitoring.write 
    - https://www.googleapis.com/auth/servicecontrol 
    - https://www.googleapis.com/auth/service.management.readonly 
    - https://www.googleapis.com/auth/trace.append 

您可以使用--format标志做了很多什么jq工具,让你或设置--format=json并将其传送至jq以提取相关信息。