Как дать разрешение учетной записи службы IAM для запуска док-контейнера в виртуальной машине GCP?

Я пытаюсь запустить образ докера при запуске виртуальной машины Google Cloud. Я выбрал новую учетную запись службы, которую я создал в качестве учетной записи службы в разделе Сведения об экземпляре виртуальной машины через консоль. По какой-то причине команда docker run в сценарии запуска не работает. Я подозреваю, что это связано с тем, что учетная запись службы не авторизована для запуска команды "docker" на виртуальной машине, которая была установлена ​​с помощью установки yum. Может кто-нибудь сказать мне, как это можно сделать, т.е. дать этой учетной записи службы разрешение на запуск команды docker?

Редактировать. Внутри сценария запуска я бегу docker login Команда для входа в Реестр контейнеров Google с последующим docker run запустить изображение.

2 ответа

Я нашел решение и хочу поделиться им здесь, чтобы оно помогло кому-то еще, желающему сделать то же самое. Пользователь, выполняющий команду docker (без sudo), должен иметь группу docker. Поэтому я попытался добавить учетную запись службы как пользователь и присвоил ей группу докеров, и все. docker login чтобы gcr работал и так делал docker run, Таким образом, проблема решена, но это поднимает пару дополнительных вопросов.

Во-первых, это правильный способ сделать это? Если нет, то что? Если это действительно правильный путь, то, возможно, учетная запись службы, выбранная при создании ВМ, должна быть добавлена ​​в качестве пользователя при ее создании (ВМ). Я понимаю, что это приводит к некоторым осложнениям, таким как то, что происходит при изменении учетной записи службы. Удаляется ли старая учетная запись пользователя службы или ее следует сохранить? Но я думаю, что, по крайней мере, можно добавить вариант добавления пользователя учетной записи службы в виртуальную машину - что-то вроде флажка в консоли - чтобы конечный пользователь мог принять вызов. Надеюсь, что кто-то из GCP читает это.

Как указано в этой статье, предпринятые вами шаги - правильный способ сделать это. Добавление пользователей в группу "docker" позволит пользователям запускать команды docker от имени пользователя root. Если вы создаете новую учетную запись службы и хотите, чтобы эта учетная запись службы запускала команды docker в экземпляре виртуальной машины, вам также необходимо добавить эту учетную запись службы в группу docker.

Если вы измените учетную запись службы в экземпляре виртуальной машины, тогда старая учетная запись службы все еще сможет выполнять команды Docker, если старая учетная запись службы не удалена из группы Docker и не была удалена из Cloud IAM; однако вам все равно нужно будет добавить новую учетную запись службы в группу Docker, чтобы позволить ей запускать команды Docker от имени пользователя root.

Другие вопросы по тегам