谷歌计算引擎如何创建用户以及如何禁用他们?

谷歌计算引擎如何创建用户以及如何禁用他们?

我在 GCE 上运行了一个 CoreOS 集群,我注意到所有 GCE 实例都存在一个问题,那就是只要您在 Google Cloud 平台上通过项目获得授权,您就可以以任何身份登录服务器。这对我来说是个问题,因为团队中的任何人或任何进入项目的人都可以以任何人的身份直接 ssh 进入服务器。我想禁用此功能,只使用我在 cloud-config 文件中创建的用户,这些用户指定了过期的 ssh 密钥和密码。在此过程中,我很好奇谷歌如何在 GCE 上创建用户?有没有人找到禁用此功能的方法?

答案1

您可以通过确保 google-account-manager 服务不运行来阻止 GCE 实例添加帐户。在 CoreOS 上,您可以使用 停止此服务,sudo systemctl stop google-accounts-manager.service然后使用 永久禁用它sudo systemctl disable google-accounts-manager.service

你可能想要制作图像预先禁用服务(甚至删除单元文件),以便当您创建实例时,它不会在您禁用服务之前创建帐户。

答案2

自 2017 年 3 月起,您可以通过禁用部署在 GCE 中所有映像上的帐户守护程序来阻止创建帐户。

要做到这一点:

  1. 创建/etc/default/instance_configs.cfg.template包含以下内容的文件:

    [Daemons]
    accounts_daemon = false
    
  2. 跑步/usr/bin/google_instance_setup

即使在守护进程的软件包更新的情况下,这也应该会永久停止并禁用守护进程。


您可以在以下位置阅读有关 Google 在 GCE 系统镜像上部署的守护进程和其他内容的更多信息:GoogleCloudPlatform/计算映像包项目自述文件和代码。

答案3

如果用户对项目有“编辑”权限,他们可以通过 SSH 连接到任何虚拟机(无需密码即可sudo访问),因为他们可以编辑元数据对于任何给定的虚拟机或项目本身,将其公共 SSH 密钥添加到其中,这就是gcloud当您使用时会自动为您执行gcloud compute ssh或者如果您单击 UI 中的 [SSH] 按钮。

您无法禁用此功能,因为这样您也无法通过 SSH 连接到您自己新创建的实例:GCE VM 实例启动时没有任何用户帐户或 SSH 密钥,并从项目中继承它们,或者在运行后从对元数据的更改中继承它们,因此您可以通过更改元数据,VM 上的守护进程将自动为您创建一个用户帐户。

如果您想控制谁可以通过 SSH 访问哪个实例,请授予用户“查看”权限(而不是“编辑”),并手动将他们的 SSH 密钥仅添加到您希望他们访问的那些实例。或者启用基于密码的 SSH 并添加他们的用户帐户。

截至撰写本文时(2015 年 8 月 28 日),已有程序化用户账户访问您可以使用它在虚拟机上创建新的用户帐户。您可以请求将此 API 列入白名单,因为目前仅限邀请使用。

答案4

目前还无法实现。如果您的项目成员编辑或所有权权限然后他们可以 ssh 到 VM 实例

但是,您可以为不想与其他成员(编辑者/所有者)共享的 VM 实例创建不同的项目。另一种解决方法是使用allowusers文件/etc/ssh/sshd_config允许特定用户/IP 地址通过 SSH 访问 VM。

我建议在GCE 公共问题追踪添加该功能。

相关内容