我想检查实例信息,特别是存储是否为只读,Full或通过gcloud shell进行读/写
答案 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
以提取相关信息。