У меня есть кластер CoreOS, работающий на GCE, и одна проблема, которую я заметил со всеми экземплярами GCE, заключается в том, что пока вы авторизованы с проектом на платформе Google Cloud, вы можете войти в систему как угодно на серверы. Для меня это проблема, потому что любой член команды или любой, кто участвует в проекте, может подключиться к серверу по ssh как любой другой. Я хотел бы отключить это и просто использовать пользователей, которых я создал в моем файле облачной конфигурации, которые указали ключи ssh и пароли, срок действия которых истекает. При этом мне любопытно, как Google создает пользователей на GCE? А кто-нибудь нашел способ это отключить?
С марта 2017 г. вы можете запретить создание учетных записей, отключив демон учетных записей, который развернут на всех образах в GCE.
Для этого:
Создайте /etc/default/instance_configs.cfg.template
файл со следующим содержанием:
[Daemons]
accounts_daemon = false
Бегать /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 для добавления функции.