【问题标题】:How to view external ip on a google cloud platform compute engine?如何在谷歌云平台计算引擎上查看外部 IP?
【发布时间】:2020-08-11 00:14:00
【问题描述】:

我通过 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]

【问题讨论】:

    标签: google-cloud-platform google-compute-engine


    【解决方案1】:

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

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

    【讨论】:

    • 您说得对,先生!我正在使用“默认访问”并且“计算实例”被“禁用”。我猜“gcloud services enable compute.api.google.com”或者任何被命名的东西也被禁用了。我会调查的。感谢您快速准确的回复。
    • 要添加这个确实正确的答案,实际上谷歌推荐的做法是在实例上设置完整的云平台访问范围,然后根据 IAM 角色安全地限制服务帐户的访问documentation.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-21
    • 2020-05-05
    • 1970-01-01
    • 1970-01-01
    • 2019-05-27
    相关资源
    最近更新 更多