代码之家  ›  专栏  ›  技术社区  ›  netskink

如何在google云平台计算引擎上查看外部ip?

  •  0
  • netskink  · 技术社区  · 5 年前

    我通过ssh登录到计算引擎。我正在使用我的个人ssh密钥进行ssh。是的 gcloud compute ssh --project someproj --zone somezone someserver 登录。然后我试着去做 gcloud compute instances list 查看外部ip。上面说我没有足够的特权。我的理解是,虽然我自己使用ssh登录,但实际上我使用的是服务帐户。因此,我编辑了服务帐户以便 Role: Compute Viewer

    请注意 我知道我可以从控制台或使用cli通过pc查看外部IP。我更感兴趣的是,在给定IAM设置的情况下,为什么compute实例看不到它。

    $ 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]
    
    1 回复  |  直到 5 年前
        1
  •  2
  •   Kolban    5 年前

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

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