如何在Google Cloud Platform计算引擎上查看外部IP?

问题描述

我已通过ssh登录到计算引擎。我正在使用我的个人ssh密钥进行ssh输入。我做了gcloud compute ssh --project someproj --zone somezone someserver登录。然后,我尝试执行gcloud compute instances list以查看外部ip。它说我没有足够的特权。我的理解是,尽管我以ssh登录为自己,但实际上我正在使用服务帐户。因此,我将服务帐户编辑为具有Role: Compute Viewer,但是仍然出现错误。我在做什么错了?

请注意,我知道我可以从控制台或使用cli通过我的电脑查看外部IP。我对为什么在IAM设置下为何计算实例看不到它感兴趣。

这是实际错误:

$ gcloud compute instances list
ERROR: (gcloud.compute.instances.list) Some requests did not succeed:
 - Insufficient Permission: Request had insufficient authentication scopes.

这是我的gcloud sdk配置:

$ gcloud config list
[core]
account = some-service-account@developer.gserviceaccount.com
disable_usage_reporting = True
project = some-project

Your active configuration is: [default]

解决方法

创建Compute Engine实例时,您可以指定“作用域”。范围是一种较旧的技术,我们可以根据允许的执行范围来限制请求。默认设置为“允许默认访问”,它允许某些GCP服务,而不允许其他GCP服务。其他两个选项是“允许完全访问”和“为每个API设置访问权限”。如果您指定“允许完全访问”,则对GCP服务的访问仅由IAM控制。如果它是默认设置或每个API的访问权限,那么您将同时受制于两个范围和IAM权限。

您可能正在使用默认访问权限,这会阻止您要运行的gcloud命令。设置“允许完全访问”或更改特定范围以允许“计算”范围。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...