Google计算引擎如何创build用户以及如何禁用它们?

我有一个在GCE上运行的CoreOS集群,我注意到所有GCE实例中的一个问题是,只要您在Google Cloud平台上的项目被授权,您就可以login到任何东西服务器。 这对我来说是一个问题,因为团队中的任何人或任何进入该项目的人都可以正确地进入服务器。 我想禁用这个,只是使用我在我的云configuration文件中创build的用户指定了过期的ssh密钥和密码。 在这样做的时候,我很好奇谷歌是如何在GCE上创build用户的? 有没有人find一种方法来禁用这个?

您可以通过确保Google帐户pipe理器服务不运行来阻止GCE实例添加帐户。 在CoreOS上,你可以用sudo systemctl stop google-accounts-manager.service这个服务,然后用sudo systemctl disable google-accounts-manager.service永久地禁用它, sudo systemctl disable google-accounts-manager.service

您可能想要使用预先禁用的服务来创build映像 (或者甚至删除单元文件),以便在创build实例时不会创build帐户,然后禁用该服务。

截至2017年3月,您可以通过禁用部署在GCE中的所有图像上的帐户守护程序来防止创build帐户。

要做到这一点:

  1. 使用以下内容创build/etc/default/instance_configs.cfg.template文件:

     [Daemons] accounts_daemon = false 
  2. 运行/usr/bin/google_instance_setup

这应该永久停止和禁用守护进程,即使在守护进程的程序包更新的情况下也是如此。

您可以在GoogleCloudPlatform / compute-image-packages项目的自述文件和代码中阅读有关Google在GCE系统映像上部署的守护程序和其他内容的更多信息。

如果用户具有对项目的“编辑”权限,他们可以通过SSH连接到任何虚拟机(并具有无密码sudo访问权限),因为他们可以编辑任何给定虚拟机的元数据 ,或项目本身来添加其公共SSH密钥,是gcloud自动执行gcloud compute ssh或者在用户界面上单击[SSH]button时自动为您执行的操作。

您无法禁用此function,因为那样您将无法通过SSH连接到您自己的新创build的实例:GCE VM实例在没有任何用户帐户或SSH密钥的情况下启动,并从项目inheritance它们,或从更改为元数据一旦运行,您就可以通过更改元数据dynamic地将用户添加到正在运行的虚拟机,虚拟机上的守护程序将自动为您创build一个用户帐户。

如果您想要控制谁可以通过SSH连接到哪个实例,请为用户提供查看访问权限(而不是编辑权限),并手动将其SSH密钥添加到您希望他们访问的实例。 或者启用基于密码的SSH并添加他们的用户帐户。

截至撰写本文时(2015年8月28日),您可以使用可编程用户帐户访问权限的一个字母来在您的虚拟机上创build新的用户帐户。 您可以申请成为该API的白名单,因为此时只有邀请。

这是不可能的。 如果您的项目成员具有编辑或所有权权限,那么他们可以ssh到VM实例 。

但是,您可以为不想与其他成员(编辑者/所有者)共享的VM实例创build不同的项目。 另一个解决方法是在/etc/ssh/sshd_config文件中使用allowusers来允许特定的用户/ IP地址通过SSH连接到虚拟机。

我build议在GCE公共问题追踪器上提交function请求以添加该function。