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

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

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

Ответы [ 2 ]

0 голосов
/ 02 марта 2019

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

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

Обновление: автоматизация создания учетной записи службы, когда при создании экземпляра виртуальной машины вручнуюутомительный.В вашем сценарии запуска вы должны сначала создать учетную запись службы, используя команды gcloud , а затем добавить соответствующие роли IAM .Как только это будет сделано, вам все равно придется добавить учетную запись службы в каталог группы докеров.

Было бы намного проще создать учетную запись службы из Консоли , когда экземпляр виртуальной машины установленсоздаетсяПосле создания экземпляра виртуальной машины вы можете добавить учетную запись службы в каталог docker groupadd.

Если вы хотите запросить новую функцию в GCE, вы можете отправить Public Issue Tracker, посетив этот сайт .

0 голосов
/ 23 февраля 2019

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

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

...