Назад | Перейти на главную страницу

Как Google Compute Engine создает пользователей и как их отключать?

У меня есть кластер CoreOS, работающий на GCE, и одна проблема, которую я заметил со всеми экземплярами GCE, заключается в том, что пока вы авторизованы с проектом на платформе Google Cloud, вы можете войти в систему как угодно на серверы. Для меня это проблема, потому что любой член команды или любой, кто участвует в проекте, может подключиться к серверу по ssh как любой другой. Я хотел бы отключить это и просто использовать пользователей, которых я создал в моем файле облачной конфигурации, которые указали ключи ssh и пароли, срок действия которых истекает. При этом мне любопытно, как Google создает пользователей на GCE? А кто-нибудь нашел способ это отключить?

С марта 2017 г. вы можете запретить создание учетных записей, отключив демон учетных записей, который развернут на всех образах в GCE.

Для этого:

  1. Создайте /etc/default/instance_configs.cfg.template файл со следующим содержанием:

    [Daemons]
    accounts_daemon = false
    
  2. Бегать /usr/bin/google_instance_setup

Это должно остановить и навсегда отключить демон, даже в случае обновления пакета демона.


Вы можете узнать больше о демонах и других вещах, развернутых Google в образах систем GCE, в GoogleCloudPlatform / compute-image-пакеты проект README и код.

Вы можете запретить экземпляру GCE добавлять учетные записи, убедившись, что служба google-account-manager не запускается. В CoreOS вы можете остановить эту службу с помощью sudo systemctl stop google-accounts-manager.service а затем отключить его навсегда с помощью sudo systemctl disable google-accounts-manager.service.

Вы можете захотеть сделать образ с предварительно отключенной службой (или даже с удалением файла модуля), чтобы при создании экземпляров он не создавал учетные записи до отключения службы.

Если у пользователей есть доступ для редактирования проекта, они могут подключаться к любой виртуальной машине по SSH (и иметь пароль без пароля). sudo доступ), потому что они могут редактировать метаданные для любой данной виртуальной машины или самого проекта, чтобы добавить к нему свой открытый SSH-ключ, что и является gcloud делает для вас автоматически, когда вы используете gcloud compute ssh или если вы нажмете кнопку [SSH] в пользовательском интерфейсе.

Вы не можете отключить эту функцию, потому что тогда вы также не сможете подключиться к своим собственным вновь созданным экземплярам по SSH: экземпляры виртуальных машин GCE загружаются без каких-либо учетных записей пользователей или ключей SSH и наследуют их из проекта или из изменений в метаданные после их запуска, поэтому вы можете динамически добавлять пользователя к работающей виртуальной машине, изменив метаданные, и демон на виртуальной машине автоматически создаст для вас учетную запись пользователя.

Если вы хотите контролировать, кто может использовать SSH для какого экземпляра, дайте пользователям доступ к просмотру, а не к редактированию, и вручную добавьте их SSH-ключи только к тем экземплярам, ​​к которым вы хотите, чтобы они имели доступ. Или включите SSH на основе пароля и добавьте свои учетные записи пользователей.

На момент написания этой статьи (28 августа 2015 г.) существует альфа-версия программный доступ к учетной записи пользователя доступны, которые вы можете использовать для создания новых учетных записей пользователей на своих виртуальных машинах. Вы можете запросить включение этого API в белый список, поскольку в настоящее время это делается только по приглашению.

Сейчас это невозможно. Если у участников вашего проекта есть редактировать или владеть разрешениями, затем они могут использовать ssh для экземпляров ВМ.

Однако вы можете создать другой проект для экземпляров виртуальной машины, которым не хотите делиться с другими участниками (редакторами / владельцами). Другой обходной путь - использование allowusers в твоем /etc/ssh/sshd_config файл, чтобы разрешить конкретным пользователям / IP-адресам подключаться к виртуальным машинам по SSH.

Я предлагаю отправить запрос функции на Система отслеживания проблем GCE для добавления функции.