【问题标题】:Can you stop Google Cloud Shell prompting for "Authorise Cloud Shell" when running gcloud commands?您可以在运行 gcloud 命令时停止 Google Cloud Shell 提示“授权 Cloud Shell”吗?
【发布时间】:2021-09-06 12:26:00
【问题描述】:

在 Google Cloud Shell 中运行某些 gcloud 命令时,例如

  • gcloud 授权列表
  • gcloud auth 打印访问令牌

出现以下弹窗:

有没有办法停止或自动接受这个提示?

我想通过 Cloud Shell 运行一些自动化,但此弹出窗口会中断该过程。我不确定为什么需要它,因为可以在本地安装的 SDK 上运行相同的命令而不会受到任何中断。在这两种情况下,活跃用户都是相同的,我也尝试过服务帐户,但我得到了相同的结果。

当我编写使用服务帐户(json 密钥、激活、使用帐户)的过程时,我什至可以点击“拒绝”授权,它仍然有效。建议这个提示并没有提供任何有用的安全性。

有人有什么想法吗?谢谢。

【问题讨论】:

    标签: google-cloud-platform sdk google-cloud-shell


    【解决方案1】:

    我不确定为什么需要它,因为相同的命令可以在本地安装的 SDK 上运行而不会中断。

    每个会话出现身份验证提示的原因是 Cloud Shell 是短暂的,它会尝试代表用户访问 Google API。任何尝试访问 Cloud API 的用户帐户都会受到用户同意屏幕的约束,因此您会在控制台中看到。有关更多详细信息,您可以查看此link。

    为此,当您首次通过 Cloud Shell 进行 Google Cloud API 调用或使用需要凭据的命令行工具(例如 gcloud 命令行工具、bq、gsutil 等)时,Cloud Shell 会通过“授权 Cloud Shell”对话框提示您。正如here所说的那样。

    当您启动 Cloud Shell 时,它会预配一个运行基于 Debian 的 Linux 操作系统的 Google Compute Engine 虚拟机。 Cloud Shell 实例是基于每个用户、每个会话进行配置的。当您的 Cloud Shell 会话处于活动状态时,该实例仍然存在;一个小时不活动后,您的会话将终止,其 VM 将被丢弃。其他详情请见here。

    Cloud Shell 专为交互式使用而设计,因此如果您正在运行自动化,它可能与您的用例不匹配,我的建议是继续在您的计算机上使用 Cloud SDK。更多详情,您也可以查看here。

    【讨论】:

    • 谢谢。您知道是否可以停止此提示或自动接受它?我仍然不明白为什么基于所有可用文档的 Cloud Shell 上的 SDK 行为不同,除了这是一个故意的障碍,因为 Google 不希望在其上运行脚本。如果是这样,这可能是简短的答案。
    • 不幸的是,这不可能。每当您在新的 Cloud Shell 会话上运行 gcloud 命令时,总会出现用户提示。但是,一旦接受同意,就有一个选项可以使用全局标志 --quiet,因此会话中询问提示的后续命令可以以非交互方式运行。有关详细信息,请参阅here。
    • 谢谢。是的,我熟悉 quiet 标志,我希望它会有所帮助,但它不会阻止提示出现,并且在提示被接受后,它不会在会话期间再次出现。我认为安静是用于命令行提示的。
    猜你喜欢
    • 1970-01-01
    • 2020-08-21
    • 1970-01-01
    • 2021-12-01
    • 2022-01-19
    • 2019-12-22
    • 1970-01-01
    • 2017-12-21
    • 1970-01-01
    相关资源
    最近更新 更多