Отказано в доступе для внесения изменений непосредственно на работающий сайт

Как младший разработчик, я работал над проектом 4 месяца. Мой проект настроен с помощью системы контроля версий TFS, тогда как проект моего товарища по команде настроен с помощью SVN. Проект находится на техническом обслуживании, поэтому никакой регулярной работы там не происходит. Однако, когда наш клиент отправляет запрос на изменение, в большинстве случаев я сам вношу изменения после модульного тестирования и проверки исходного кода в TFS. Я снова обязан отправить эти изменения моему товарищу по команде, который старше меня, который проверит их и развернет код в рабочей среде.

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

  1. Если он занят другими проектами
  2. Если он недоступен (автобусный фактор), после чего я сделаю аварийный выпуск.

Он не хочет передавать мне FTP-доступ. Как-то я спросил нашего ведущего, на эту тему, но наш тимлид тоже промолчал.

Мои вопросы:

  1. Что мне нужно учитывать, прежде чем запрашивать доступ к рабочему сайту?

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

В вашей истории, кажется, отсутствуют некоторые детали. Например, вы сказали, что попросили у своего лидера доступ к FTP, но «он промолчал». Что это означает? Кроме того, мне не совсем понятно, зачем вам нужен FTP-доступ, если за развертывание изменений на действующем сайте отвечает ваш руководитель.
Почему отрицательные голоса? Если вы не согласны с точкой зрения ОП, это важно, но для того, чтобы спросить людей здесь, требуется мужество!
Я не вижу здесь причин для голосов против/закрытия. Вопрос здесь кажется (по крайней мере мне) довольно ясным.
Спроси своего босса. Ваш босс может сказать «старшему» передать доступ, если это будет сочтено желательным. В противном случае просто продолжайте делать то, что вы делали.
Спросите: «Что делать, если X недоступен, когда необходимо внести изменения в рабочий сайт?». Не думайте, что ответ заключается в том, чтобы предоставить вам прямой доступ. Может быть, есть более высокопоставленный человек или кто-то из другого отдела, или информация о пароле в сейфе... готова к такой ситуации.
@ Пит, я был первым близким избирателем, поэтому позвольте мне объяснить. Когда я голосовал, заголовком вопроса было «Состояние замешательства с нерешительностью», что не имело никакого отношения к описанию, хотя звучит как отличное название для стихотворения. Более того: «Есть ли что-то, чего я не могу понять?» есть вопросительный знак, но это не делает вопрос ясным. Было неясно, что именно нужно ОП, что, кстати, упоминается в деталях близкой причины.
Не похоже, что вам нужен доступ. Вы просто хотите этого.
Есть ли среда разработки? место, куда вы можете поместить измененное, прежде чем добавлять его в живую среду?
Прочтите эту историю: thedailywtf.com/articles/the-helpful-manager о том, что может пойти не так, если у людей будет доступ, который им не нужен. Да, это крайность, и это заканчивается тем, что менеджер теряет работу.
Я бы добавил, что иметь доступ к критической системе, которая не является вирусной для вашей работы, — это большая ответственность. Если на FTP произойдет ошибка, будьте уверены, вас заподозрят раньше старшего.
С технической точки зрения, ни у кого не должно быть физического доступа к FTP, кроме любой системы развертывания. Это оставило бы только несколько человек (настроивших эту систему) с этой информацией, и развертывание было бы полностью прозрачным. Не говоря уже о балансировке нагрузки...

Ответы (8)

Не воспринимайте это лично или как оскорбление. Вероятно, это никак не связано с вашей компетентностью как разработчика.

Есть определенные обязанности, которые зарезервированы для менеджеров, руководителей групп и старших; основная ответственность заключается в доступе к живым/производственным системам. Предоставление доступа к критически важной системе младшему разработчику, скорее всего, противоречит политике компании и в целом не является хорошей практикой. Это хорошая идея, чтобы ваш код прошел через более старшего разработчика, просто чтобы дважды проверить код и убедиться, что ничего не сломается. Компания снижает вероятность того, что плохой код попадет в производство, ограничивая количество людей, которые могут его развернуть.

Дело даже не в старшинстве. Наличие второй пары глаз для просмотра изменений до того, как они будут запущены в производство, всегда является хорошей идеей, даже если рецензент значительно моложе, чем первоначальный автор.
Стоит также отметить, что в финансовых корпорациях считается критическим операционным риском управлять тем, что любому, кто непосредственно знает, как манипулировать выходными данными финансовой ИТ-системы, НЕ предоставляется доступ к производственным серверам, независимо от стажа.
@toadflakz: точно. В более общем плане это часть тяжеловесных процессов, которые, к сожалению, неизбежны в больших магазинах. Вам это не нравится? Работа в небольшом магазине.
Это не имеет ничего общего с большими и маленькими @gazz, регулируемыми и нерегулируемыми, да.
Я должен сказать следующее: как «одинокий рейнджер» в моей компании по разработке, я фактически создал отдельные удостоверения в Active Directory для своих ролей разработчика и менеджера выпуска, просто чтобы гарантировать, что я не сделаю что-то случайно. не глядя на него дважды.

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

Во многих средах разработки это не так. Я работаю с компаниями, где ни один из разработчиков не имеет доступа к серверной части производственных серверов. Доступ к серверам на уровне SSH есть только у группы безопасности и группы системного администрирования. Разработчики могут использовать автоматизированную систему развертывания для отправки изменений на рабочие серверы, но только после того, как группа безопасности рассмотрит предложенные изменения кода и объединит соответствующую ветвь с производственной ветвью.

Золотое правило безопасности, как говорит Питер, гласит: если у вас нет доступа, вас никогда нельзя винить.

Кроме того, если вас рецензирует кто-то из старших, и что-то пойдет не так. Это не только твоя вина. Лицо, проводящее рецензирование, несет равную ответственность.

То, что (на практике) они могут предоставить вам такой доступ, не означает, что они должны это делать . Вся чушь в сторону: есть причина, по которой компании проводят различие между «младшими» и «старшими». Ожидается, что вы, как младший разработчик, сделаете много ошибок и оплошностей. Ни один из вышестоящих лиц, которых вы описываете, ни ваш руководитель, ни их боссы, ни боссы их боссов не рискнут платить по ипотечным кредитам в обмен на то, что вы почувствуете себя в большей безопасности на своем месте.

При всем уважении, любой дурак с FTP-доступом может скинуть файлы на сервер. Для этого даже не нужен технический пользователь — просто кто-то с копией Filezilla, именем хоста, именем пользователя и паролем. Многие компании сталкивались с перебоями в работе из-за того, что младшим разработчикам не терпелось проявить себя. Таким образом, они дают вам доступ к развертыванию «под запись», но что мешает вам попытаться исправить ошибки «не под запись» — вещи, которые вы, возможно, не знаете, как отменить — и сделать все еще хуже? ? Почему они должны вам доверять? Прошло всего четыре месяца, и требуется гораздо больше времени, чтобы почувствовать стиль работы сотрудника. Ни у кого действительно нет времени объяснять вам это, поэтому вы не получили ответа.

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

Как у человека, работающего в сфере ИТ-безопасности, есть очень веские причины, объясняющие поведение вашего старшего. Два наиболее важных понятия:

Распределение обязанностей

Принцип SOD гласит, что несовместимые обязанности должны выполняться двумя или более лицами , чтобы свести к минимуму сговор и уязвимости безопасности. Разработка кода (то, чем вы сейчас занимаетесь) и выпуск кода (что вы хотите делать) в большинстве случаев являются несовместимыми обязанностями. Разработчик, имевший доступ к рабочей среде, мог разработать код, внедрить вредоносный код, такой как бэкдоры или логические бомбы, в законный код, а затем выпустить код в рабочую среду, оставаясь при этом незамеченным. Такая деятельность чрезвычайно рискованна для бизнеса, и большинство компаний не может себе позволить потерю критически важных ИТ-ресурсов. Если обрабатываемые данные чрезвычайно конфиденциальны, выживание бизнеса может оказаться под вопросом.

Наименьшие привилегии

Принцип наименьших привилегий гласит, что пользователь должен иметь только минимальные привилегии, необходимые для выполнения своих рабочих обязанностей, и не более того . Эта концепция также тесно связана с триадой безопасности ЦРУ . Следование такой практике сводит к минимуму риск злоупотребления ИТ-ресурсами пользователем или получения неавторизованных прав администратора/суперпользователя над системой, где он или она может делать практически все, что захочет, например:

  1. Уничтожить данные — нарушение целостности и потенциальной доступности

  2. Запретить доступ законным пользователям — нарушение доступности

  3. Раскрытие данных неуполномоченным сторонам - нарушение конфиденциальности

Ваша работа в качестве младшего разработчика заключается в написании исходного кода. Похоже, это не включает выпуск в PROD. Таким образом, ваш старший следует рекомендациям по безопасности, отказывая вам в доступе.

Как сделать бизнес-кейс в качестве резервной копии для экстренных изменений в PROD

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

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

  2. Записи журнала блокируются после фиксации, поэтому последующие изменения не могут изменить ранее записанные записи журнала. - Честность

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

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

  1. Я сделал возможную ошибку в живом проекте на работе, как справиться с этим беспорядком?

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

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

Это могут быть регламенты.

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

Обычно тот, у кого есть доступ, несет ответственность, если что-то пойдет не так.

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

Теперь он может попытаться дать вам доступ, но это не снимет с него вины. Вместо этого он позволит вам делать все, что вы хотите, и если вы облажаетесь, это все равно его вина.

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

Что мне нужно учитывать, прежде чем запрашивать доступ к рабочему сайту?

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

Как сделать экономическое обоснование, чтобы мне был предоставлен доступ к PROD в качестве резервной копии на случай, если мой коллега внезапно будет недоступен в интересах обеспечения непрерывности бизнеса?

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

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

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

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

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

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