企業環境では、開発者はコンピューターの管理者権限を持っている必要がありますか?どうして?
技術的環境:
- Windows 7
- Visual Studio 2008および2010
- SQLサーバー
企業環境では、開発者はコンピューターの管理者権限を持っている必要がありますか?どうして?
技術的環境:
回答:
彼らはすべきですか?それは企業次第です。個人的には、いくつかのルールが理解されていれば問題ないと思います。
通常、私はイエスと言います。デバッガーのようなものは、正しく動作するために管理者でない場合はかなり高い権限を必要とします。開発者は多くの場合、ランダムなソフトウェアをインストールする必要があります。これは、チャネルを通過するときに数日または数週間かかる場合があります。その期間中、特に開発者がコンサルタントである場合、開発者の仕事は通常、会社に金以外の費用はかかりません。
開発には科学と芸術の両方があります。必要なものを「知る」ほど簡単ではありません。すでに答えがあった場合、仕事の半分は意味がありません。正しいアプローチを見つけることは多くの場合反復的であり、予測不可能な方法で複数のツールを使用する場合があります。これらのそれぞれをインストールする(多くの場合、待ち時間が長い)ことを仲介者に要求し、シナリオで「スーパーユーバーツールアドオン」が必要であることを見つける(約1時間)のは愚かです。
VMはこれに理想的ですが、VMで(適切に、またはまったく)実行できない開発ツールもたくさんあります。それら自体がVMであり、JVMのようなものを意味するものではありません。デバイスツールキットなどのフルマシンemus / vmsを意味します。互換性が向上しています。
さらに、ほとんどの開発ツールのフットプリントは非常に大きく、「通常の」ツールよりもはるかに大きく(VMのホスティングが予想以上に苦痛になります)、多くの場合、プロセスデバッガーの性質上、高いアクセスが必要です。GUI集約型である可能性があるという事実は言うまでもありません。VM GUIでフルタイムで実行しようとすると、非常に痛みを伴います。
パフォーマンスがある巨大なはここにあります。Wordでキーを押すたびにキーが登録されるのを3秒待っても問題ないと思いますか?私は冗談ではありません-VMなどの開発ツールはこんなに嫌なこともあります。ほとんどの開発目的には、応答性が必要です。脳からキーボードへの複雑なロジックの流れを中断すると、仕事を成し遂げることがほとんど不可能になります。そして、私はそれを言うことを嫌いますが、はい:開発時間は高価です。
Windows環境では、特にMicrosoft開発者製品を使用する場合、開発者はマシンの管理者権限を必要とします。あなたがそれらの権利を拒否すると、彼らの仕事をする能力は完全に妨げられない限り制限されます。
開発者である私は、基本ユーザーよりもシステム管理者よりも低いレベルの特権をランク付けしています。
開発環境で動作するように開発中のアプリケーションを取得するために、追加のライブラリをインストールする必要がある場合があります。つまり、「サードパーティライブラリを必要とするアプリケーションでは、ライブラリは、運用展開の前に、場合によってはアプリケーション開発の前に、サンドボックス環境にインストールする必要があります。」
一緒に作業しているシステム管理者はこれに同意します。2人の間で、このルールを積極的に実施し、「依存性チェック」に合格しなかったアプリケーションの展開を遅らせます。
ただし、あなたの質問に答えるには、はい、開発者は自分のマシンへのフルアクセスを許可する必要がありますが、それらのマシンは、アプリケーションが最終的にデプロイされる環境から隔離する必要があります。この場合、実稼働環境での展開が安全であると判断されるまで、アプリケーションの展開もサンドボックス化する必要があります。
免責事項:私は開発者です。
私には、この質問(および回答)が間違ったアプローチから問題を攻撃しているようです。つまり、議論は管理者が望むもの/必要なものと開発者が望むもの/必要なものに焦点を当てています。しかし、あなたは私たちが企業環境にいると指定したので、そのように見てみましょう。
したがって、ITまたは運用の責任者、または予算を管理している人の前でこれを議論していると想像して、これらの質問をしてください。
これらの質問に答えることで、情熱的な決断ではなく、情報に基づいた決断を下すことができます。
特定の環境では、管理者権限を必要とするものがいくつかあります(ユーザー権利とVisual Studioを参照)-それらを行っていない場合は、質問2〜4に答えることができます。
コンサルタントとして、私はこのポリシーの両極端を見てきました。また、マシンへの管理者アクセスを常に必要としていますが、場合によっては意味がありませんでした。そして、何が原因で何が効果なのかはわかりませんが、例外なく、開発者が管理者のアクセス権を持つWindows開発を行ったすべての場所は、ロックされた場所よりもすべての開発者の生産性が非常に高くなりました。
あなたは間違った質問をしていると思う、あなたは尋ねるべきです:
優れた開発者は、PCの管理者権限を与えない雇用主のために働きますか?
誰かが「必要とする」ものと彼らが期待するものは、多くの場合同じものではありません。開発者が勤務時間内にコーヒーを飲むことを許可する必要はありませんが、そうでなければ…
(面接の段階でポリシーを明確にしてください。そうしないと、管理者権限がないために、人々が仕事を引き受ける可能性があります。プログラマーがこの種のことを論理的に考えることを期待しないでください。 )
それは、実際に誰が実際にそれを必要とするかについて、誰に尋ねるかによります。企業のITおよびリスク管理グループに尋ねると、彼らはあなたの周りに恐怖の物語を投げかけます(そして彼らがあなたにそれを与える場合、彼らは責任を負わないという約束の聖なる絆で犠牲にされたヤギを要求します)、開発者一方、主に管理者権限を要求するのは、仕事にストレスがかかり、リークを受けるためにヘルプデスクから許可を求めることなく十分に要求するためです。悲しい事態は、今では力の闘争と力を発揮することよりも、ビジネスと生産性のニーズに関することです(たとえば、他の人が輪を駆け抜けるのは誰なのか)
私見、私が今日まで見た中で最高の職場環境は、2つのグループが分離されている場所です。開発者はフォレスト内に独自のドメインを持ち(これによりITはこのドメインとそのユーザーが会社の他の場所でできることを制御します)、彼らはすべてローカルドメイン管理者としてのMCSEを持つ経験豊富な人を持つローカル管理者であり、独自のテスト環境を持っていますまた、単一のITポリシー(海賊版ソフトウェアなし)を使用して、ローカルLAN上で必要なことや必要なことをほとんど実行できます。企業のITは責任を負わず、開発者にサポートを提供せず、一部の高レベルの企業ルール(ファイアウォール、Facebook、ポルノなどはファイアウォールを介さない、開発者は企業LANとの干渉を許可しない)のみを実施し、RSAベースのVPNが自宅から機能するLAN内に直接配置します。きちんとしましたね。
開発プロセスにとって管理者権限は重要だと思います。ただし、VMをサンドボックスに使用することは比較的容易であるため、VMに配置してセキュリティを維持できない理由はありません。
何もうまくいかず、数分でワイプして再構築できます。
依存します。開発者としては、常に最小特権の原則に基づいて操作する必要があります。政府の請負業者として働いている場合、たとえば、管理者アクセス権を持たない契約上の義務がある場合があります。
Java開発者として、私はマシン上で継続的に管理者権限を持つ必要はほとんどありませんでした。ただし、オンデマンドの管理者アクセスが必要な正当なケースがあります(つまり、ラップトップを物理的に別々のドメインに移動する必要があり、それに応じてNICを変更する必要があります)。私のマシンへの永続的で継続的な管理者アクセス。
ITのスタッフが不足している(または無能である、または赤テープに陥っている)ために管理者アクセスが必要になる場合があります。しかし、有能なIT部門で作業している場合、リモートでも」をクリックするだけで管理し、インストールしてください。)
答えは(再び)です-それは依存します。必要に応じて(または妥当な時間内に)インストールできる応答性の高いITスタッフがいますか?開発者は、実際に支払われるタスクに必要ですか?
開発者は、真にと合法的に(のように、それが必要な場合は、「私は、文字通りそれなしで何かをすることはできませんでしょう」(のような利便性ではなく)「私は、私が欲しいものは何でもインストールしたい」)、および ITがサポートしている場合(何らかの理由で)十分な応答性がない場合は、マシンへの管理者アクセスが必要です。
そうでなければ、いいえ。最小限の特権の原則、人々を思い出してください。
セキュリティを心配している企業の場合、セキュリティ担当者に指示して、開発およびシステムのモデルで機能するポリシーを施行しようとします。Windows環境では、ほとんどの人は、タスクを実行するために、開発中のホストで管理者権限が必要であると言うでしょう。
これは必ずしも真実ではありません...
カスタムポリシーを作成し、すべてのプログラムと機能をシステム上の開発ユーザーと連携させることができます。目的の設計に応じて、グループまたはカスタムグループを含むプログラム/システムディレクトリのカスタムアクセス許可を使用して、必要な情報を取得する必要があります。
多くの企業は、ハッカーが制御を取得して独自のツールのコンパイルを開始できるため、開発者がシステムをオープンネットワーク上に置くことは非常に危険であると言うでしょう。
私は(明らかに)異議を唱える声を提供し、ノーと言うだけでなく、「ヘックノー」と言わなければなりません。ネットワークにアクセスできないサンドボックス化されたVMの開発者に管理者権限を付与しても問題ありません。Zypherはそれをほぼ正しかった(太字の修正):
「1. 私のボックスで管理者になることは権利ではなく特権です。」これらのシステムは、私が最終的に責任を負う企業資産です。Joe DeveloperがMicrosoft Bobの海賊版をインストールするとき(「必要だったから」)、監査前にどのように見つからなかったかを説明しなければならないのは彼ではありません。開発者は、会社のルールがどういうわけか適用されないと考えます。サンドボックス化されたVMを提供することにより、他の全員が従わなければならないすべてのルールに従うことができます(現在、システムとの間でファイルをコピーできるのはITのみであるため)。魔法のようにリクエストシステムが再びデベロッパーに使用されるようになり、ジョーデベロッパーが開発ボックスを壊しても空は落ちなくなりました-彼は新しいボックスを要求するだけです(または、バックアップを要求された場合は復元します)
デニー氏は、開発者がアプリのインストールを待たなければならない場合、お金がかかると述べました、A。こんにちは...私の時間は、通常、Joe Developerと同じくらい貴重です(通常、既存のクラッパウェアを実行し続けているので、本当にそうですか? Joe開発者が彼の最後の傑作をデバッグするのに費やしたすべての時間に言及する必要があります)、およびB.アプリケーションを待っていたためにdevが予算を超過し、ITのせいにしようとすると、私は言うでしょう:
あなたがソフトウェアを書くために必要なものの計画の欠如は私の責任ではありません、私たちには標準的なツールのセットがあり、そのツールボックスに必要なものが欠けている場合、私をジャンプさせるのではなく、より多くのツールを手に入れるためのリクエストがあったはずですあなたの締め切りは明日なので、あなたのためにそれを得るためにフープを介して。
これらすべてを言ったが、もしあなたが彼らのベイウォッチコレクションを見る権利があり、それらを見るためにベイブウォッチプレーヤーをインストールできないことを知って怒っていると思うくだらないデベロッパーを取り除くことができれば、デベロッパーのデスクトップをロックダウンします。オープンソース」)を緩めることができる場合があります。しかし、優れた開発者がそれを「獲得する」たびに、あなたの会社がその2億ドルの垂直アプリケーションのためにさらに10を雇おうとしているので、注意する必要があります。
編集:私がさらされた開発者が異常に退屈している可能性はかなりあります(ある程度のベンチマークを与えるために、スタックオーバーフローについて聞いたのは現在の作物だけをポーリングすることです)。私が最初に考えるのは、「会社があなたのために支払っているものをどうする必要があるか」です。管理者権限が必要な場合、それらを取得しますが、それらをstqartするべきではありません。率直に言って、あなたがそれに対して何をするかを気にせず、それが機能するボックスを提供できるなら、私たちは両方とも良いです。