Zugriff verweigert, um Änderungen direkt an der Live-Site vorzunehmen

Als Junior-Entwickler arbeite ich seit 4 Monaten an einem Projekt. Mein Projekt wurde über das Versionskontrollsystem TFS konfiguriert, während das Projekt meines Teamkollegen über SVN konfiguriert wurde. Das Projekt befindet sich in Wartung, daher finden dort keine regulären Arbeiten statt. Wenn unser Kunde jedoch eine Änderungsanforderung sendet, bin ich meistens derjenige, der die Änderung vornimmt, nachdem ich die Komponenten getestet und den Quellcode in TFS eingecheckt habe. Es liegt wiederum in meiner Verantwortung, diese Änderungen an meinen Teamkollegen zu senden, der mir vorgesetzt ist, der sie überprüft und den Code für die Produktion bereitstellt.

Ich habe meinen Vorgesetzten gebeten, mir den FTP-Zugang für den Produktionsstandort zu übergeben, daher werde ich ihn bei jeder erforderlichen Änderung unter den folgenden Bedingungen an PROD freigeben:

  1. Wenn er mit anderen Projekten beschäftigt ist
  2. Ist er nicht verfügbar (Bus-Faktor), werde ich eine Notfreigabe vornehmen.

Er zögert, mir den FTP-Zugang zu überlassen. Einmal habe ich unseren Leiter zu diesem Thema gefragt, aber auch unser Teamleiter schwieg.

Meine Fragen:

  1. Was muss ich beachten, bevor ich den Zugriff auf die Prod-Site beantrage?

  2. Wie kann ein Business Case erstellt werden, dass mir als Backup Zugriff auf PROD gewährt wird, falls mein Kollege im Interesse der Geschäftskontinuität plötzlich nicht verfügbar ist?

Ihrer Geschichte scheinen einige Details zu fehlen. Sie sagten zum Beispiel, Sie hätten Ihren Lead um einen FTP-Zugang gebeten, aber „er hat geschwiegen“. Was bedeutet das genau? Außerdem ist mir nicht klar, warum Sie FTP-Zugriff benötigen, wenn es in der Verantwortung Ihres Vorgesetzten liegt, die Änderung auf der Live-Site bereitzustellen.
Warum die negativen Stimmen? Wenn Sie mit der Perspektive des OP nicht einverstanden sind, ist das eine Sache, aber es erfordert Mut, die Leute hier zu fragen!
Ich sehe hier den Grund für die Down/Close-Stimmen nicht. Die Frage hier scheint (zumindest für mich) ziemlich klar zu sein.
Fragen Sie Ihren Chef. Ihr Chef kann den „Senior“ bitten, den Zugang zu übergeben, wenn dies erwünscht ist. Ansonsten machen Sie einfach weiter mit dem, was Sie bisher getan haben.
Fragen Sie „Was soll ich tun, wenn X nicht verfügbar ist, wenn Änderungen am Produktionsstandort vorgenommen werden müssen?“. Gehen Sie nicht davon aus, dass die Antwort Ihnen direkten Zugang gibt. Es kann sein, dass eine ranghöhere Person oder jemand in einer anderen Abteilung oder Passwortinformationen in einem Tresor ... für diese Situation bereit sind.
@Pete Ich war der erste enge Wähler, also lass es mich erklären. Als ich abstimmte, lautete der Titel der Frage „Ein Zustand der Verwirrung mit Zögern“, was keinen Zusammenhang mit der Beschreibung hatte, obwohl es sich wie ein großartiger Titel für ein Gedicht anhört. Außerdem: "Gibt es etwas, das ich nicht verstehe?" hat ein Fragezeichen, aber das macht es nicht zu einer eindeutigen Frage. Es war nicht klar, was genau das OP brauchte, was übrigens in den Details des engen Grundes erwähnt wird.
Es hört sich nicht so an, als ob Sie Zugriff benötigen. Du willst es einfach.
Gibt es eine Entwicklungsumgebung? ein Ort, an dem Sie die Änderungen ablegen können, bevor Sie sie einer Live-Umgebung hinzufügen?
Lesen Sie diesen Artikel: thedailywtf.com/articles/the-helpful-manager darüber, was schief gehen kann, wenn Benutzer Zugriff haben, den sie nicht benötigen. Ja, es ist extrem, und es endet damit, dass der Manager seinen Job verliert.
Ich möchte hinzufügen, dass es eine große Verantwortung ist, Zugang zu einem kritischen System zu haben, das für Ihren Job nicht viral ist. Wenn auf dem FTP ein Fehler auftritt, stellen Sie sicher, dass sie Ihnen gegenüber vor dem Senior misstrauisch sind.
Technisch gesehen sollte niemand diesen FTP-Zugang physisch haben, sondern ein Deployment-System jeglicher Art. Dadurch würden nur wenige Personen (die dieses System konfigurieren) über diese Informationen verfügen, und die Bereitstellung wäre völlig transparent. Von Loadbalancing gar nicht zu reden...

Antworten (8)

Nimm es nicht persönlich oder als Beleidigung. Es hat wahrscheinlich nichts mit Ihrer Kompetenz als Entwickler zu tun.

Es gibt bestimmte Verantwortlichkeiten, die Managern, Teamleitern und Senioren vorbehalten sind; Die Hauptverantwortung liegt im Zugriff auf Live-/Produktionssysteme. Einem Junior-Entwickler Zugang zu einem kritischen System zu gewähren, verstößt höchstwahrscheinlich gegen die Unternehmensrichtlinien und ist insgesamt keine gute Praxis. Es ist eine gute Idee, Ihren Code von einem erfahreneren Entwickler durchlaufen zu lassen, um den Code noch einmal zu überprüfen und sicherzustellen, dass nichts kaputt geht. Das Unternehmen verringert die Wahrscheinlichkeit, dass fehlerhafter Code in die Produktion gelangt, indem es die Anzahl der Personen begrenzt, die ihn bereitstellen können.

Es ist nicht einmal nur eine Frage des Dienstalters. Es ist immer eine gute Idee, Änderungen mit einem zweiten Augenpaar zu betrachten, bevor sie in Produktion gehen, selbst wenn der Rezensent wesentlich jünger ist als der ursprüngliche Autor.
Es ist auch erwähnenswert, dass es in Finanzunternehmen als kritisches betriebliches Risiko angesehen wird, zu verwalten, dass jeder, der direkte Kenntnisse darüber hat, wie die Ausgabe eines Finanz-IT-Systems manipuliert wird, KEINEN Zugriff auf die Produktionsserver erhält, unabhängig von seinem Dienstalter.
@toadflakz: genau. Im Allgemeinen gehört es zu den schwergewichtigen Prozessen, die in großen Geschäften leider unvermeidlich sind. Gefällt es dir nicht? Arbeite für einen kleinen Laden.
Es hat nichts mit groß vs. klein @gazz zu tun, reguliert vs. unreguliert, ja.
Ich muss sagen: Als „Lone Ranger“ in meiner Firma für die Entwicklung habe ich eigentlich getrennte Identitäten im Active Directory für meine Rollen als Entwickler und als Release-Manager erstellt, nur um sicherzustellen, dass ich nichts aus Versehen mache ohne zweimal hinzusehen.

Sie gehen davon aus, dass der leitende Entwickler berechtigt ist, Ihnen Zugriff auf den Produktionsserver zu gewähren.

In vielen Entwicklungsumgebungen stimmt das nicht. Ich arbeite mit Unternehmen zusammen, in denen keiner der Entwickler Zugriff auf das Backend der Produktionsserver hat. Nur das Sicherheitsteam und das Systemadministrationsteam haben Zugriff auf die Server auf SSH-Ebene. Entwickler können ein automatisiertes Bereitstellungssystem verwenden, um Änderungen auf die Produktionsserver zu übertragen, aber erst, nachdem das Sicherheitsteam die vorgeschlagenen Codeänderungen überprüft und den entsprechenden Zweig mit dem Produktionszweig zusammengeführt hat.

Eine goldene Sicherheitsregel, wie Peter sagt, lautet: Wenn Sie keinen Zugriff haben, können Sie niemals beschuldigt werden.

Auch, wenn Sie von einem Vorgesetzten begutachtet werden und etwas schief geht. Es ist nicht deine Schuld allein. Die Person, die das Peer-Reviewing durchführt, ist gleichermaßen verantwortlich.

Nur weil sie Ihnen (in der Praxis) diese Art von Zugriff gewähren können , bedeutet das nicht, dass sie es tun sollten . Bei allem Blödsinn: Es gibt einen Grund, warum Unternehmen zwischen „Junior“ und „Senior“ unterscheiden. Als Junior-Entwickler wird von Ihnen erwartet, dass Sie viele Fehler machen und versäumen. Keiner, von der leitenden Person, die Sie beschreiben, Ihr Lead und ihre Chefs und die Chefs ihrer Chefs werden riskieren, ihre Hypotheken bezahlen zu können, wenn Sie sich in Ihrer Position dort sicherer fühlen.

Bei allem Respekt, jeder Dummkopf mit FTP-Zugang kann Dateien auf einem Server ablegen. Es braucht nicht einmal einen technischen Benutzer – nur jemanden mit einer Kopie von Filezilla, einem Hostnamen, Benutzernamen und Passwort. Viele Unternehmen haben Ausfälle erlebt, weil Nachwuchsentwickler sich beweisen wollten. Sie geben Ihnen also Zugriff, um eine Bereitstellung „on record“ durchzuführen, aber was hindert Sie daran, „inoffizielle“ Fehlerkorrekturen durchzuführen – Dinge, von denen Sie möglicherweise nicht wissen, wie Sie sie rückgängig machen können – und die Dinge immer schlimmer machen ? Warum sollten sie dir vertrauen? Es sind nur vier Monate vergangen, und es dauert viel länger, um die Arbeitsweise eines Mitarbeiters zu erspüren. Niemand hat wirklich Zeit , Ihnen das zu erklären, weshalb Sie keine Antwort erhalten haben.

Nehmen Sie zu diesem Zeitpunkt eine Chill-Pille ein. Erledigen Sie die Ihnen übertragenen Aufgaben so gut Sie können. Glänzen Sie mit dem, was Sie bereits haben. In etwa einem Jahr werden Sie mehr Nachwuchsentwickler hinter sich durch die Tür kommen sehen; und wenn Sie bei der Arbeit in den Fällen gut aufgepasst haben, in denen sh-- den Ventilator trifft und die Leute versuchen, negative Aufmerksamkeit von ihnen fernzuhalten, werden Sie dieses Paradigma viel, viel besser verstehen.

Als jemand, der im IT-Sicherheitsberuf arbeitet, gibt es sehr gute Gründe, die das Verhalten Ihres Vorgesetzten erklären. Die 2 relevantesten Konzepte sind

Aufgabentrennung

Das Prinzip von SOD besagt, dass inkompatible Aufgaben von zwei oder mehr Personen ausgeführt werden sollten , um geheime Absprachen und Sicherheitslücken zu minimieren. Die Codeentwicklung (was Sie derzeit tun) und die Codefreigabe (was Sie tun möchten) sind in den meisten Fällen unvereinbare Aufgaben. Ein Entwickler, der Zugriff auf die Produktion hatte, konnte Code entwickeln, schädlichen Code wie Hintertüren oder Logikbomben in legitimen Code einbetten und den Code dann für die Produktion freigeben, ohne entdeckt zu werden. Solche Aktivitäten sind für das Unternehmen äußerst riskant, und der Verlust kritischer IT-Ressourcen kann sich die Mehrheit der Unternehmen kaum leisten. Wenn die Daten, an denen gearbeitet wird, äußerst sensibel sind, könnte das Überleben des Unternehmens in Frage gestellt werden.

Geringstes Privileg

Das Prinzip der geringsten Rechte besagt, dass ein Benutzer nur die minimalen Rechte haben sollte, die zur Erfüllung seiner Aufgaben erforderlich sind, und nicht mehr . Dieses Konzept ist auch eng mit der Sicherheitstriade der CIA verbunden . Die Befolgung einer solchen Praxis minimiert das Risiko, dass ein Benutzer IT-Ressourcen missbraucht oder unautorisierte Administrator-/Superuser-Befugnisse über ein System erlangt, in dem er oder sie im Grunde alles tun kann, was er oder sie will, wie z.

  1. Daten vernichten - Verletzung der Integrität und potenziellen Verfügbarkeit

  2. Verweigern Sie legitimen Benutzern den Zugriff – Verletzung der Verfügbarkeit

  3. Daten an Unbefugte weitergeben - Verletzung der Vertraulichkeit

Ihre Aufgabe als Junior-Entwickler ist es, Quellcode zu schreiben. Es scheint nicht, dass es die Freigabe für PROD beinhaltet. Daher befolgt Ihr Vorgesetzter bewährte Sicherheitsverfahren, indem er Ihnen den Zugriff verweigert.

So erstellen Sie einen Business Case als Backup für Notfalländerungen an PROD

Abgesehen davon sollte es eine Ersatzperson geben, die Live-Veröffentlichungen durchführen kann, falls Ihr Vorgesetzter nicht verfügbar ist. Die Geschäftskontinuität wird beeinträchtigt, wenn nur eine Person eine bestimmte Aufgabe erledigen kann, ein Risiko, das für ein vernünftiges Management wichtig ist. Bevor Sie Ihren Fall darlegen, sollten Sie jedoch die Protokollierungssysteme überprüfen, die zum Überwachen von Änderungen an der Produktionsumgebung verwendet werden. Wenn Sie dies nicht haben oder wenn Sie dies tun, aber nicht überwacht werden, oder überwacht, aber ohne einen Plan zur Reaktion auf Vorfälle, um auf die Erkennung nicht autorisierter Änderungen an der Produktion zu reagieren, dann gibt es größere Probleme in Ihrem Unternehmen. Wenn Sie dem Management versichern können, dass von Entwicklern gestellte Notänderungsanforderungen sicher protokolliert werden, damit Änderungen überprüft und nicht autorisierte Änderungen auf die verantwortliche Person zurückgeführt werden können, dann erhöht sich Ihr Fall, dass Ihnen Zugriff auf PROD gewährt wird, noch viel mehr. Damit ein Audit-Log als sicher definiert werden kann, sollten folgende Merkmale erfüllt sein:

  1. Der Zugriff auf das Protokoll wird auf die minimale Anzahl von Benutzern beschränkt, die dessen Inhalt kennen müssen. - Vertraulichkeit

  2. Protokolleinträge werden nach dem Festschreiben gesperrt, sodass spätere Änderungen zuvor geschriebene Protokolleinträge nicht ändern können. - Integrität

  3. Jedem Benutzer, der eine Änderung vornimmt, wird eine eindeutige Benutzer-ID zugeordnet, zusammen mit einem Zeitstempel, der angibt, wann die Änderung vorgenommen wurde. - Unleugbarkeit

Um einen weiteren Einblick in das zu bekommen, was passieren kann, wenn die Zugriffsrechte schlampig sind, werfen Sie einen Blick darauf, was mit dem OP in diesen beiden Fragen passiert ist:

  1. Ich habe bei einem Live-Projekt bei der Arbeit einen möglichen Fehler gemacht, wie gehe ich mit diesem Durcheinander um?

  2. Schriftliche Verwarnung des Arbeitgebers für die Befolgung der Anweisung des Managers, Bugfix direkt in der Produktion bereitzustellen

Da Sie noch ein Junior-Entwickler sind, hat Ihr Senior angesichts der Risiken von Fehlern in der Live-Produktionsumgebung möglicherweise nicht genug Vertrauen in Sie gesetzt. Dies sollte nicht persönlich genommen werden, da Ihre Erfahrung mit der Zeit in Ihrem Unternehmen wächst. Es sollte auch etwas beruhigend für Sie sein zu wissen, dass Sie ohne Zugriff nicht verdächtig wären, wenn etwas schief gehen sollte, da Sie niemals auf die Produktion hätten zugreifen können, selbst wenn Sie wollten.

Das können Vorschriften sein.

In meiner Tätigkeit als Entwickler ist mir der Zugriff auf Produktionsumgebungen ausdrücklich untersagt. Dies ist eine Sicherheitsmaßnahme. Diejenigen, die die Software herstellen, sollten nicht die Personen sein, die sie produzieren, denn dann besteht die Möglichkeit eines Interessenkonflikts.

Normalerweise ist derjenige mit Zugriff verantwortlich, wenn etwas schief geht.

Da der Senior die Änderungen genehmigt und implementiert, wird er im Idealfall beschuldigt, wenn es Probleme gibt.

Jetzt kann er versuchen, Ihnen Zugang zu verschaffen, aber das würde die Schuld nicht von ihm abwenden. Stattdessen würde er dir erlauben, zu tun, was du willst, und wenn du es vermasselst, ist es immer noch seine Schuld.

Das sollte erklären, warum er dir keinen Zugang gewähren will.

Was muss ich beachten, bevor ich den Zugriff auf die Prod-Site beantrage?

Das Wichtigste, was Sie berücksichtigen müssen, ist das Risiko, dass je mehr Sie auf den Zugriff drängen, desto größer die Sorge ist, dass Sie zu sehr darauf aus sind, ihn zu bekommen, und ihn auf irgendeine Weise überbeanspruchen oder missbrauchen würden. Könnte man sich wirklich darauf verlassen, dass Sie den direkten Zugang nur in Notfällen nutzen, oder könnten Sie anfangen, die normalen Kontrollen unnötig zu umgehen?

Wie kann ein Business Case erstellt werden, dass mir als Backup Zugriff auf PROD gewährt wird, falls mein Kollege im Interesse der Geschäftskontinuität plötzlich nicht verfügbar ist?

Sie müssen wissen, was zu tun ist, wenn Ihr Kollege plötzlich nicht verfügbar ist und Änderungen am Server erforderlich sind. Wenn Sie es nicht wissen, sollten Sie jetzt danach fragen und nicht warten, bis sich die Situation ergibt.

Ihnen direkten Zugriff zu gewähren, ist nur eine der möglichen Antworten und keine besonders wahrscheinliche. Beispielsweise kann es einen oder mehrere Stellvertreter geben, die nicht am normalen Ablauf beteiligt sind, aber bei Bedarf eine Aktualisierung vornehmen könnten. Oder vielleicht können die Änderungen auf Ihren Kollegen oder einen Ersatz warten.

Wenn Sie versuchen, daraus einen Business Case für den direkten Zugriff zu machen, kann dies der Lösung des eigentlichen Problems im Wege stehen, nicht zu wissen, was in dieser Situation zu tun ist.

Ich denke, Sie müssen tiefer in Ihre Argumentation eintauchen und herausfinden, wie dies dem Kunden zugute kommt. Lassen Sie Ihren Chef erklären, dass es in Ordnung ist, die Anwendung von Updates zu verzögern. Vielleicht verstehen die Kunden das oder die Art ihres Geschäfts ist nicht ganz so zeitsensibel. Stellen Sie sicher, dass Ihr Chef die Risiken versteht.

Worst-Case-Szenario, Client erwartet/braucht dringend die Lösung. Sollen Sie ihnen sagen, dass es nicht passieren wird, weil Ihr Chef nicht verfügbar ist? Wenn nicht, welche Lüge schlägt er vor?

Jemand im Unternehmen sollte die Konsequenzen tragen, und ich denke nicht, dass Sie es sein sollten, aber Sie werden der Überbringer schlechter Nachrichten sein.