Желательно ли просить сотрудников создавать «рабочие» учетные записи GitHub?

91

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

Обновление Спасибо за все полезные идеи. Я не буду считать ответ принятым из-за субъективной природы вопроса / ответов и из-за того, что я взял лучшие моменты из нескольких разных ответов.

Я решил пойти по этому пути: я напомню сотрудникам, что на электронную почту GitHub необходимо будет отправлять уведомления о работе по практическим соображениям. Поэтому было бы больше смысла создавать рабочие учетные записи GitHub. Если они хотят использовать свои личные учетные записи GitHub и подключить их к своим рабочим учетным записям электронной почты, тогда это нормально. В любом слючаеСотрудники должны будут письменно согласиться с рядом условий, связанных с использованием GitHub. Они связаны с безопасностью учетной записи: выбор безопасного пароля с использованием безопасного генератора случайных паролей, который не используется ни с какой другой учетной записью, не доступ к GitHub через компьютеры, не принадлежащие им и не управляемые ими, и т. Д. В конце дня сотрудникам придется решайте сами, имеет ли для них больший смысл или нет.

fiorenti
источник
Рабочий аккаунт будет одинаково легко компромиссным, не так ли?
Борис Янков
10
GitHub добавил маршрутизацию электронной почты для каждой организации в августе 2012 года. Github.com/blog/1204-notifications-stars
Пол Шрайбер
2
@BorisYankov рабочий аккаунт может быть сложнее поставить под угрозу, если у вас нет публичной активности и логин не имеет отношения к вашему имени. Это безопасность по неизвестности, но это, безусловно, помогает. Вы можете создать рабочий процесс, в котором все электронные письма, отправляемые github, также отправляются руководителю группы разработчиков и т. Д. Еще один момент: в качестве рабочего аккаунта вы можете принять решение и даже провести комплексную проверку, проверяя аккаунты и проверяя, соответствуют ли они тому, что было согласовано. между компанией и сотрудником. Третий важный момент: как только пользователь уволится с работы, вы можете перенять его аккаунт.
VP.
7
Это противоречит условиям обслуживания GitHub для физических лиц, которые поддерживают более одного аккаунта. «Одно физическое или юридическое лицо не может иметь более одного бесплатного аккаунта». help.github.com/articles/github-terms-of-service
Райли Майор
2
Об этом последнем комментарии. Проверил сроки, пункт А.7. Так что же произойдет, если у вас будет личный аккаунт, а ваша компания создаст другой аккаунт от вашего имени и вы им пользуетесь? Будет ли закрыт ваш личный аккаунт, даже если вы не ошиблись?
Маттео Моска

Ответы:

63

Если бы была польза, это было бы просто больно. Но ничто не сосет хуже, чем больно и бессмысленно. Просто иметь единый личный кабинет. Две причины:

  • Github имеет невероятно хороший контроль доступа в своих организациях. Если сотрудник уходит, вы можете мгновенно лишить его доступа. Если бы у них был корпоративный аккаунт, вам бы пришлось каким-то образом восстановить аккаунт, чтобы получить заявленные преимущества. На практике вы, вероятно, просто удалите доступ к учетной записи, так же, как если бы у них была личная учетная запись.

  • Наличие более одного аккаунта - это больно. Вход и выход между учетными записями причиняет боль, а также добавление комментариев, подписок и всего прочего в социальных сетях при использовании разных учетных записей.

Ссылки: Я делаю CI-сервер с интеграцией GitHub , поэтому у меня есть много тестовых учетных записей, и я общался с клиентами со всеми видами странных конфигураций, включая отдельные рабочие и личные учетные записи. Это всегда приводит к неприятностям.

Пол Биггар
источник
25

Код вашей компании в публичных или частных хранилищах? Если они (или, по крайней мере, некоторые) являются общедоступными, и вы позволили своим сотрудникам использовать их собственные учетные записи GitHub, то для них было бы стимулом написать хороший код. Их имя буквально будет прикреплено к нему, публично. Тем не менее, я предполагаю, что все ваши репозитории являются частными.

В целом, похоже, вы бы предпочли, чтобы учетные записи вашего сотрудника не были публично видны на GitHub. К сожалению, они зарабатывают деньги, продавая GitHub Enterprise, поэтому я полагаю, что это одна из причин, почему они не позволяют создавать частные учетные записи для организаций. В любом случае наличие (по сути) заблокированных рабочих учетных записей было бы очень нелогичным после выбора очень социального сайта для размещения ваших репозиториев.

Представим, что вы создали рабочие учетные записи для своих сотрудников. Будете ли вы применять какие-либо ограничения на использование этих учетных записей? Вы позволите им добавлять код в неработающие проекты для рабочих целей? Если это так, то их учетные записи станут общедоступными, что вернет вас к вашей первоначальной озабоченности. Вы можете просто позволить им делать вклады со своими личными счетами, но тогда вы создаете для них логистическую проблему. Лично я бы посоветовал своим сотрудникам вносить код в другие проекты, как они сами. Это не только придает им уверенности, но и позволяет им получить ценный опыт и завоевать доверие.

В любом случае, я не думаю, что стоит иметь рабочие аккаунты. Интерфейс GitHub позволяет легко контролировать, кто имеет доступ к чему-либо, поэтому удаление доступа в любом случае просто. Я также не думаю, что наличие отдельных учетных записей действительно «проводит черту» между личным и рабочим проектами больше, чем интерфейс GitHub.

Также имейте в виду, как вы планируете справляться с этим по мере роста вашей компании. Будут ли установленные вами политики масштабироваться с точки зрения управления? Управление 5 учетными записями сейчас может быть хорошо, но что произойдет, когда вы возрастете до 20 или 50? Но как только вы дойдете до этого момента, возможно, GitHub Enterprise станет доступным решением. В этом случае я бы хотел выяснить, можно ли перенести учетные записи GitHub в установки GitHub Enterprise. Если это так, я вижу, что это одна из положительных причин иметь рабочие счета.

Джереми Хейлер
источник
Замечательные моменты, спасибо. Да, хранилища являются частными. Что касается работы над неработающими проектами на работе, меня это совсем не беспокоит. Это просто безопасность аккаунта.
fiorenti
Я отредактировал этот конкретный комментарий, так как он не был актуален.
Джереми Хейлер
19

Не может быть и речи, и на самом деле довольно хорошая идея.

Как это ни прискорбно, вам нужно планировать уход своих сотрудников из организации в какой-то момент жизни компании. Как вы собираетесь вытащить свои личные учетные записи из хранилища компании на тот момент?

Что вы будете делать, если сотрудник уйдет в плохих отношениях? В идеальном мире все останется профессиональным, и между фирмой и бывшим сотрудником не будет никакой вражды. Вам было бы разумно планировать не идеальные обстоятельства.

Хотя ведение двух учетных записей является проблемой, ваши сотрудники должны приветствовать эту возможность. Это обеспечивает более четкую грань между тем, что принадлежит им, и тем, что принадлежит компании.

Изменить: Здесь важно обеспечить четкое разделение между личным вкладом сотрудника в проекты X, Y, Z и т. Д. И их оплачиваемой работой над продуктом вашей компании. Использование отдельной рабочей учетной записи помогает определить границы, необходимые для определения, кому принадлежит какая интеллектуальная собственность и связанные с ней авторские права.

Например, если сотрудник использует свою личную учетную запись и вносит свой вклад как в компанию, так и в Project X, как вы определяете, какую роль сотрудник выполнял в эти моменты времени? Был ли вклад в X от имени вашей компании или по собственному усмотрению? Владеет ли сотрудник или компания авторскими правами на эту работу, переданную X? В связи с этим, если вы разрешаете вносить внешние взносы в работу вашей компании, как вы можете отличить, был ли сотрудник сотрудником или добровольным?

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

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

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

Обратите внимание, что это может быть спорным вопросом, если все продукты вашей компании выпущены как открытый исходный код при разрешающем лицензировании, и / или вы вообще не беспокоитесь о потенциальных проблемах с брендингом.
(Шляпная подсказка Полу Биггару за запрос этого редактирования)


источник
Спасибо, я также приветствовал бы эту политику, если бы я был сотрудником по указанным причинам. Интерфейс GitHub позволяет легко удалять доступ пользователей из частных репозиториев. Я также предполагаю, что если сотрудник уйдет в очень плохих условиях, в большинстве случаев у него будет достаточно времени, чтобы нанести ущерб, если захочет.
fiorenti
23
Я не понимаю этот ответ. GitHub имеет мелкозернистый контроль доступа. Когда сотрудник уходит, вы удаляете его доступ из вашей организации. Что в этом сложного? На самом деле, проще удалить их личный аккаунт, чем «вернуть» их рабочий аккаунт.
Пол Биггар
2
@fiorenti: предположительно, у пользователя также будет полная проверка кода, что будет происходить независимо от того, где размещен код!
Пол Биггар
2
@PaulBiggar - я обновил свой ответ, чтобы охватить некоторые более широкие проблемы. Это в первую очередь юридическая проблема атрибуции, которая заставляет меня рекомендовать отдельные аккаунты. Я видел ряд случаев, когда неразличение личных и рабочих счетов приводило к серьезным головным болям в последствии. MMV каждого, и каждая ситуация должна быть рассмотрена на основе духа компании.
Спасибо, что указали на потенциальную юридическую проблему минного поля, с которой вы можете столкнуться
RidiculousRichard
10

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

Просто для полноты контекста: меня ничего не спрашивали об учетных записях, на самом деле GitHub неизвестен большинству людей на моем рабочем месте. Я просто смог получить зеленый свет для проекта с открытым исходным кодом, над которым я буду работать, и пошел с наименьшим количеством работы, то есть используя свой личный кабинет.

С точки зрения сотрудника, я действительно ненавижу одну вещь: получать уведомления на свою личную электронную почту о работе.

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

Тогда, конечно, нужно найти баланс с тем фактом, что ваша личная репутация может выиграть благодаря вашему вкладу в работу. Но опять же, может быть наоборот, если ваше имя будет связано с плохим проектом ...

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


В качестве дополнительного примечания, касающегося безопасности, поскольку в других ответах, кажется, есть некоторое легкое отклонение:

Конечно, «рабочая» учетная запись не будет более или менее безопасной, чем «личная» учетная запись в отношении паролей. Но когда вы используете GitHub, вам разрешено нажимать клавишу SSH. И этот ключ обычно находится в сеансе… Итак, личная учетная запись может скомпрометировать все рабочие репозитории простым кражей персонального компьютера (без знания пароля), тогда как выделенная рабочая учетная запись, вероятно, будет иметь свой ключ только на рабочей машине, что делает ее более физически безопасным (надеюсь).

MattiSG
источник
+1: два момента, о которых я не думал: электронная почта и ключи SSH. Хотя наличие отдельных писем на GitHub является проблемой, вы можете настроить несколько ключей SSH для своей учетной записи.
Джереми Хейлер
@JeremyHeiler Что вы имеете в виду, говоря, что «наличие отдельных писем на GitHub - это проблема?» . Я использую три разных электронных письма (старое, текущее личное, рабочее), как только вы добавили их в свой профиль, GitHub сопоставляет их с вашей учетной записью без проблем :)
MattiSG
Я имел в виду эту суть . Вы хотите сказать, что если вы поместите свой рабочий адрес электронной почты в свой файл git.config на своем рабочем компьютере и добавите его в свою учетную запись, все связанные с работой уведомления будут отправлены на ваш рабочий адрес электронной почты? Если это так, это здорово!
Джереми Хейлер
@JeremyHeiler О нет, хорошо, у нас было небольшое недопонимание того, что является «проблемой» с электронными письмами :) Нет, действительно, как я уже сказал в своем ответе, вы всегда получаете уведомления на свой «основной» (обычно личный) аккаунт. Но это не «проблема», так как вам потребуется учетная запись для каждого отправляющего адреса: вы можете связать столько сообщений, сколько хотите, с вашей учетной записью, но только одно письмо получает уведомления от вашей учетной записи.
MattiSG
Извините, да, я должен был быть более конкретным в своем первоначальном комментарии :-P
Джереми Хейлер
9

Я бы проголосовал "Нет". Это доставляет немало хлопот вашим разработчикам и обеспечивает вам безопасность за счет неясности: если кто-то активно нацеливается на ваших разработчиков, есть множество других направлений атак, чтобы кто-то мог получить ваш код.

Кроме того, если вы запускаете стартап, если у вас нет большого количества волшебных алгоритмов типа секретного соуса, кто-то, получающий ваш код, будет смущающим, ужасным и неприятным, но не должен приводить к значительному конкурентному преимуществу (кто может на законных основаниях использовать ваш код). код?) или заставить вас выйти из бизнеса.

Такая низкая вероятность против производительности разработчика? Я бы взял производительность разработчиков, но это мое исчисление. :)

Мэтт Рогиш
источник
2

Я бы сказал, что выбор должен оставаться за сотрудником. Я бы сказал, что не заставляйте их использовать свой личный аккаунт на github, если они этого не хотят. Я был в компании, которая использовала GitHub, и хотя это не было требованием, я лично хотел создать отдельную учетную запись. Основной причиной была защита моих личных проектов. Я не хотел, чтобы компания пыталась сказать, что один из моих личных проектов принадлежал им, потому что он находился под той же учетной записью github, которая использовалась для их совместных проектов (не уверен, что это когда-либо будет иметь место в суде, однако я не очень верю в правовой системе, когда дело доходит до таких вещей). Я думаю, что иметь это чистое отделение может быть хорошей вещью.

ryanzec
источник
2

Мы делаем это в нашей компании. Я не хочу начинать обсуждение «что безопаснее, github или сервер под вашей таблицей, чтобы у всех были права суперпользователя, не уверен, работает ли резервная копия и т. Д.». Наш подход был:

  • каждый разработчик должен создать новую учетную запись, не связанную с его личной учетной записью GitHub
  • он должен использовать электронную почту компании.
  • Он должен соответствовать нашим правилам безопасности (имя пользователя и пароль).
  • Они не могут показывать / иметь публичную активность.
  • Это собственность компании. Не его / ее счет.
  • Все учетные записи связаны с компанией, а также случайным именем. Общественной деятельности тоже нет.
VP.
источник
2
Вы не можете применить требование к сложности пароля, так как у вас нет возможности проверить пароль GitHub, так зачем вообще его иметь?
Ramhound
хорошо, вы говорите, что если вы не можете технически обеспечить что-то, вы не применяете это. Я говорю, что если сотрудник читает политику безопасности и если он подписывает ее, зная последствия, то это принудительное исполнение.
VP.
3
Я говорю, что у вас нет возможности узнать, что что-то не делается, потому что у вас нет возможности проверить, что сотрудник создал пароль учетной записи GitHub.
Ramhound
хорошо, если, например, учетная запись взломана, и мы, как-то узнаем, что пароль был abc123, мы можем «дать ответ» сотруднику. Я не вижу здесь проблемы. Еще один момент: где написано, что я его поддерживаю? Я написал это должен (теперь я обновил до должен) ...
В.П.
Этот подход должен быть ограничен соглашением о том, что это имя также принадлежит им, и вы не будете предпринимать никаких действий от их имени .
Майкл
0

Я признаю, что этим вопросам и ответам уже несколько лет, поэтому, возможно, они не были доступны раньше, но в них конкретно говорится о различиях между учетными записями пользователей и организаций, которые:

Может быть заманчиво иметь более одной учетной записи пользователя, например, для личного и коммерческого использования, но вам нужна только одна учетная запись.

GitHub создал хорошие инструменты для включения / выключения уведомлений по хранилищу, и, более того, кажется, что объединение личных / рабочих имеет смысл.

scojomodena
источник
О чем был этот провал, а? Я думаю, что это хороший ответ.
Джон МакГи
-2

Люди еще не доверяют облачным исходным серверам. Github может похвастаться множеством веб-компаний нового поколения, подписанных с ними, но реальный факт заключается в том, что у большинства людей есть свои собственные серверы для поддержки исходного кода. По моему опыту, большинство из них использует либо Clear-case, либо SVN. Git еще не адаптирован в корпоративной среде. Даже корпоративные почтовые серверы не очень ценятся за пределами компании.

Сарат
источник
1
В настоящее время я работаю в сервисной компании, обучаю их работе с Git, и большинство их клиентов (например, крупных компаний) мигрируют из ClearCase или готовятся сделать это в своих следующих проектах…
MattiSG