如何在gcloud shell上查看实例信息

时间:2017-06-01 18:23:00

标签: google-cloud-storage gcloud

我想检查实例信息,特别是存储是否为只读,Full或通过gcloud shell进行读/写

2 个答案:

答案 0 :(得分: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": "some@email.com",
  "verified_email": true,
  "access_type": "offline"
}

然后,您可以直接使用Google的OAuth API查询该访问令牌的范围:

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

因此,获取范围列表的完整命令可能如下所示(假设您已安装HTTPie和jq):

Illuminate\Support\Arr

答案 1 :(得分:0)

您无需在实例上获取此信息。如果你运行

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

它将显示vm使用的服务帐户及其拥有的范围集:

serviceAccounts:
- email: xxx@bla.gserviceaccount.com
  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以提取相关信息。