Ayant travaillé en tant que développeur et administrateur / support informatique pour une équipe de développement, je suis tombé sur de nombreux types d'environnement, du complètement verrouillé au complètement non. Dans mon expérience de support limitée, je pense que cela a été moins d'effort pour prendre en charge avec une machine moins verrouillée et j'ai certainement pensé que c'était plus facile, mais bien sûr, cela pourrait être un parti pris. J'aimerais savoir quel est le point de vue du support informatique, est-il vraiment plus difficile de soutenir les développeurs qui ont des machines non verrouillées?
user-permissions
Preet Sangha
la source
la source
Réponses:
Le plus gros problème de ne pas verrouiller une machine de développeur est que tout logiciel qu'ils développent nécessitera des privilèges d'administrateur complets pour s'exécuter. L'accès des développeurs doit être le même que l'environnement dans lequel ils devront s'exécuter. S'ils doivent être "auto-supportables" ou "auto-installables", donnez-leur un autre compte administrateur, par exemple Bruce.admin, qu'ils doivent utiliser lors de l'administration mais pas utilisé au jour le jour.
Tout comme aucun administrateur UNIX décent digne de ce nom n'utilisera un compte root pour son travail quotidien non administrateur.
la source
La plupart des développeurs sont techniquement avertis et savent ce qu'ils font. Ils ont souvent besoin d'installer de nombreuses applications spécialisées, d'avoir à obtenir la permission de le faire et de faire en sorte que le service informatique tombe en panne et l'ajoute peut être très frustrant, en particulier dans les grandes entreprises, pour les deux parties.
J'ai trouvé que ce qui fonctionne le mieux est de leur permettre de faire ce qu'ils veulent en ce qui concerne l'installation de logiciels sur leurs machines, mais s'ils rencontrent des problèmes avec quelque chose que nous ne prenons pas en charge, alors ils sont seuls. La plupart des développeurs en sont satisfaits et préfèrent de toute façon pouvoir s'occuper de leur propre machine.
Verrouiller quelqu'un dans la comptabilité pour utiliser uniquement IE et Word ouvert est bien, mais si vous êtes un développeur qui a besoin d'installer 4 types de navigateur différents et qui doit installer rapidement une application pour résoudre un problème, cela peut être ennuyeux.
D'après mon expérience, les entreprises qui ont beaucoup de connaissances techniques, donc les ateliers de développement, les fournisseurs informatiques, etc., qui font confiance à leurs employés et les laissent décider ce qu'ils veulent installer sont beaucoup plus heureuses et dérangent moins l'informatique
la source
Voir cette publication Stackoverflow pour un débat animé sur les avantages de verrouiller les machines de développement. (Avertissement: j'ai écrit la réponse acceptée).
Du point de vue d'un administrateur système, l'accès aux systèmes de production est sensible et vous devez restreindre cet accès aux personnes qui en ont besoin pour faire leur travail (cela peut inclure les développeurs qui ont des responsabilités de support de niveau 3 pour l'application). Les droits d'administrateur local sur un PC de développement ou un serveur de développement ne compromettent pas de manière significative la sécurité de vos systèmes de production.
Créez une image que vous pouvez utiliser pour reconstruire les machines avec si nécessaire. L'installation manuelle de SQL Server dev edition, Visual Studio, Cygwin et MikTex ainsi que de nombreuses autres applications prend beaucoup de temps. Une image avec ces grandes applications installées sera raisonnablement précieuse si vous devez beaucoup recréer l'image des machines.
Du point de vue du développement, je trouve que je peux résoudre la plupart des problèmes avec la machine et que je n'ai généralement besoin que de l'aide du personnel de support réseau en de rares occasions. Les environnements trop restrictifs ont tendance à générer un trafic de support de développement parasite pour effectuer des travaux que les développeurs sont parfaitement capables de faire eux-mêmes.
Un autre endroit où les développeurs ont généralement besoin de beaucoup de travail administratif est sur les serveurs de bases de données hébergeant des environnements de développement. La plupart des développeurs sont capables d'apprendre facilement les tâches DBA de routine et devraient de toute façon en avoir une connaissance pratique (IMHO en principe). Les stratégies d'accès administrateur trop restrictives sur les serveurs de développement peuvent être sous-jacentes de plusieurs manières.
Un réseau de développement à zéro est une bonne idée s'il peut être organisé - vous pouvez le pare-feu à partir de vos serveurs de production si nécessaire.
Lorsque les développeurs peuvent facilement répliquer la structure d'un environnement de production, cela favorise une culture de tests de déploiement où un test d'intégration peut être synthétisé sans passer par des cercles. Cela aura tendance à améliorer la qualité des versions de production et du déploiement.
La possibilité d'émuler un environnement de production permet également de prendre conscience des problèmes de déploiement et de support de la production. Il encourage le personnel de développement à réfléchir à la façon dont une application peut être prise en charge en production, ce qui encouragera probablement les architectures conçues dans cet esprit.
Si ce réseau possède un contrôleur de domaine, vous pouvez établir une relation d'approbation afin qu'il approuve votre contrôleur de domaine principal et ses comptes. Cette relation de confiance ne doit pas être réciproque, elle ne compromet donc pas la sécurité de votre infrastructure de réseau de production. Cela peut vous permettre d'avoir un réseau de développement non fiable, mais permet toujours aux développeurs d'accéder aux ressources authentifiées par domaine telles que les comptes Exchange ou les serveurs de fichiers.
Vous voulez que les développeurs aient une marge de manœuvre raisonnable pour l'expérimentation sans avoir à sauter à travers des cercles. Placer des obstacles politiques sur le chemin de ces travaux a tendance à encourager le collage de solutions de plâtre qui sont politiquement opportunes mais génèrent une dette technique à long terme (et souvent non reconnue). En tant qu'administrateur système ou analyste de support, devinez qui peut récupérer les pièces ...
J'ajouterai que c'est beaucoup moins un problème sur un environnement unix ou linux; les utilisateurs peuvent assez fortement personnaliser leur propre environnement à partir de leur
.profile
. Vous pouvez compiler et installer des choses sous votre propre/home/bloggsj/bin
répertoire pour le plus grand plaisir de votre cœur. Les «droits d'administrateur local» sont principalement un problème Windows, bien qu'il y ait encore quelques choses qui nécessitent un accès root sous Unix.la source
L'option la plus sensée que j'ai jamais vue (qui a été des deux côtés - et qui l'est toujours) - est simplement déverrouillée et non prise en charge . Donnez-leur la liberté, et s'ils bousillent, tout ce qu'ils peuvent obtenir est un restage avec une image standard .... Dans cette situation, je trouve que c'est un bon plan de les mettre sur une certaine forme de réseau "non fiable".
En ce qui concerne le (non) sens du verrouillage des bureaux des développeurs: je suis sûr que tout le verrouillage ne fait que nuire à la productivité de toute façon, de plus, tout développeur raisonnablement qualifié trouvera facilement les trous ....
la source
La réponse est vraiment: il n'y a pas de réponse simple oui ou non. Mais la sécurité est au moins aussi importante pour vos utilisateurs de développement que pour n'importe qui d'autre.
D'une part, oui, les développeurs ont tendance à être techniquement plus avertis. D'un autre côté, leur travail est souvent stressant et leurs étapes de développement sont susceptibles de prendre le pas sur les soins supplémentaires nécessaires pour maintenir leur propre système en tant qu'environnement sécurisé. Ce n'est pas une critique des développeurs; c'est une considération directe de leurs tâches quotidiennes.
Si vous allez donner aux développeurs un accès complet et sans entrave à leurs systèmes, vous devriez vraiment envisager les mesures supplémentaires suivantes:
Si vous envisagez de verrouiller des systèmes de développement, vous devez prendre en compte les éléments suivants:
Quoi qu'il en soit, vous devez admettre que les développeurs sont un cas spécial et qu'ils ont besoin d'un support supplémentaire quelconque. Si vous ne prévoyez pas de budget pour cela, les problèmes s'atténuent probablement en ce moment ... ou le seront à l'avenir.
En remarque, j'ai vu des arguments très similaires se produire avec les administrateurs système. Sur au moins deux tâches différentes, j'ai vu des administrateurs système se disputer assez acrimoniquement lorsqu'il a été suggéré qu'ils devraient eux-mêmes avoir verrouillé les systèmes, ou au moins utiliser deux connexions (une avec des privilèges root / admin; une sans). De nombreux administrateurs système ont estimé qu'ils ne devaient en aucun cas être verrouillés et ont vigoureusement plaidé contre de telles mesures. Tôt ou tard, un administrateur opposé au verrouillage aurait un incident de sécurité et l'exemple aurait un effet éducatif sur nous tous.
J'étais l'un de ces administrateurs système qui fonctionnaient avec des privilèges d'administrateur tout le temps. Lorsque j'ai changé de compte double et que je n'ai augmenté que si nécessaire, j'avoue que c'était assez frustrant au cours des premiers mois. Mais la médaille d'argent dans le cloud était que j'en apprenais beaucoup plus sur la sécurité des systèmes que j'administrais, lorsque mon compte normal vivait sous les mêmes restrictions que celles que j'imposais aux utilisateurs. Cela m'a fait un meilleur administrateur! Je soupçonne que c'est la même chose pour les développeurs. Et heureusement, dans le monde Windows, nous avons maintenant l'UAC, ce qui facilite l'exécution en tant qu'utilisateur limité et n'élève que lorsque cela est nécessaire.
Personnellement, je ne pense pas que quiconque devrait être au-dessus d'une certaine forme de pratiques de sécurité. Tout le monde (administrateurs système, développeurs, cadres supérieurs inclus) devrait être soumis à suffisamment de procédures de sécurité et de surveillance pour les garder sur leurs gardes. Dire le contraire, c'est dire que les systèmes et les données de l'entreprise ne valent pas la peine d'être protégés.
Mettons les choses autrement. Si Mark Russinovich peut être capturé par un rootkit , tout le monde le peut!
la source
Lorsque vous avez quelques développeurs, l'approche pour leur donner des serveurs de développement est une possibilité, mais si vous avez un étage complet de développeurs, je suis tout à fait contre leur donner des droits d'administrateur.
Le problème est que vous vous retrouverez avec un étage entier de développeurs, chacun faisant ce qu'il fait, généralement la plupart ne sont même pas soucieux de la sécurité et veulent simplement que leur application fonctionne. Ensuite, vous serez frappé par une demande de - "Nous avons terminé la phase de développement, veuillez répliquer notre environnement de développement sur test, pré-prod et prod".
Ils prennent également l'habitude d'installer des fichiers indésirables (logiciels mal emballés), puis vous délèguent de les installer sur la douzaine de serveurs des autres niveaux.
Je fais la politique assez simple:
su
ousudo
à l'utilisateur de l'application - qui sera verrouillé pour n'avoir AUCUN accès au shell. (C'est pour la comptabilité / audit).sudoers
fichier.Ce qui précède leur permettra avant tout de réfléchir à ce qui sera et ne sera pas autorisé au moment de déplacer le projet sur les serveurs de test et ci-dessus.
la source
Le verrouillage des machines des développeurs demande plus d'efforts qu'il n'en vaut la peine. Cela nuit gravement à la productivité, car vous ne pouvez pratiquement rien faire sans droits administratifs. Bien sûr, le système finira par être gâché, mais votre responsable informatique ne fournit certainement pas de support pour tous ces outils tiers utilisés dans le développement?
Ainsi, comme l'a suggéré Vincent De Baere, la meilleure solution serait de simplement restaurer le système à partir d'une image, bien sûr, l'environnement doit être restauré après cela, mais cela ne devrait pas être le problème informatique. Si cela se produit N fois, vous pouvez mettre une telle personne sur une sorte de "liste noire" et, oui, abandonner ses droits administratifs pendant un certain temps.
Quoi qu'il en soit, l'environnement doit être configuré de manière à garantir qu'une machine infectée (ou autrement gâchée) n'affecte aucune autre machine ou, par exemple, n'envoie pas de spam ou quelque chose (ok, maintenant Je dis juste des choses évidentes, désolé).
la source
Eh bien, cela peut dépendre en partie de l'environnement dans lequel vous exécutez (par exemple Linux contre Windows); Cependant, en supposant un environnement Windows, cela pose généralement plus de problèmes que cela ne vaut simplement parce que certains logiciels de développement nécessitent que vous ayez des autorisations élevées pour travailler. Par exemple, Visual Studio est connu pour nécessiter des autorisations d'administrateur , en tant que tel, je ne vois pas l'avantage de faire passer quelqu'un à travers des cerceaux pour une partie requise de son travail.
Cependant, si l'entreprise exige que les choses soient verrouillées, votre meilleur pari est susceptible de donner à tous les développeurs des machines virtuelles sur leurs systèmes dans lesquelles ils peuvent devenir fous. Bien que certains puissent ne pas aimer cela, cela vous donnera probablement le meilleur des deux. mondes (par exemple, un bureau normal restrictif et un environnement entièrement personnalisable).
Mise à jour - Du côté de Windows, il y a un peu plus à noter, apparemment, Visual Studio nécessitant des droits d'administrateur est un peu daté et il existe maintenant des moyens explicites de définir les autorisations nécessaires (fichier PDF). Cependant, je ne pense pas que cela change mon option autant dans la mesure où la plupart des développeurs que je connais, moi-même inclus, ont tendance à utiliser des outils supplémentaires au-delà de Visual Studio et savoir ce dont tous ont besoin en termes d'autorisations peut être difficile à prévoir.
la source
Je suis d'accord avec l'idée d'utiliser des machines virtuelles sur un bureau restreint-
Sauf indication contraire, je pense que la meilleure configuration est un bureau Linux restreint avec un vm gratuit pour tous. Linux réduit les frais généraux pour moi, un vm peut non seulement être le système d'exploitation qu'ils veulent, mais également être restauré en instantanés ou en sauvegardes, et généralement le monde semble un peu plus lumineux lorsqu'il n'y a pas toute une série de configurations différentes nécessitant soutien.
la source
Je (en tant que développeur moi-même) préfère avoir le plein contrôle de mes machines, ce qui signifie; en cours d'exécution en tant qu'administrateur en cas de besoin.
Vous pouvez fournir une formation spéciale aux développeurs avant qu'ils ne soient autorisés à accéder à leurs ordinateurs. Définissez-leur des règles, et vous pourriez peut-être faire un audit de temps en temps pour voir si elles suivent les meilleures pratiques.
La plupart du temps, ils devront en savoir plus sur l'infrastructure informatique du point de vue de l'administration informatique / du support informatique, des éléments liés à la sécurité, ainsi que pourquoi ne pas développer avec des droits élevés. (et comment vous en assurer, vous ne le faites pas ...)
"Ne nous faites pas aveuglément confiance lorsque nous vous disons que nous savons tout ce que nous devons savoir sur les ordinateurs" ;-)
Vous devrez toujours les soutenir avec la mise en réseau, les domaines et les comptes, les installations de logiciels d'outils non-dev, etc.
la source
Mon expérience concerne une population d'utilisateurs qui était à peu près également répartie entre les personnes qui n'avaient besoin que d'une machine verrouillée et d'autres (développeurs, scientifiques) qui avaient besoin d'un accès administrateur. Ils ont utilisé beaucoup de logiciels différents, certains en interne, d'autres non, mais beaucoup d'entre eux avaient besoin d'un administrateur pour fonctionner, et leurs tâches les obligeaient à utiliser beaucoup de packages, donc il était plus logique de laisser les gens faire eux-mêmes.
Nous nous sommes retrouvés avec les processus suivants:
Nous aurions aimé mettre toutes les personnes avec un accès administrateur sur un vlan "non fiable", mais nous n'y sommes jamais arrivés.
la source