web-dev-qa-db-ja.com

バージョン管理セキュリティ

バージョン管理ツールを探しています。個人的には、Gitを使用するのはかなりクールだと思います。ただし、上司はTFSを推奨しています。彼は、TFSやSourceAnywhereなどのSQL Severベースのツールを使用する方がはるかに安全だと私に言った。

また、上司から link も送られてきました。

私の質問は、ビジネスでの使用にGitまたはSVNを使用するのに十分安全/強力ですか?

7
LYQ

「かなりクール」という理由だけでGitを使用するのではなく、ワークフローに適合する方法で問題を解決するために使用します。

TFSについては... Martin Fowler 少し調査をしました

とにかく、「セキュリティ」を定義する必要があります-権限のないユーザーからソースを保護しますか、または一部の領域に読み取り専用フラグを設定しますか、あるいは一部の人々が特定の領域を見るのを防ぎますか?これはSVNで簡単に実行でき、VisualSvnサーバーを使用して、ツリー内の任意のフォルダーにr/rwセキュリティコントロールを適用できます。 TFSも同じです。一方、Gitはこれ用に設計されていません。 Gitは、すべてのソースが各開発者のワークステーションに「コピー」されるという原則に基づいて機能するため、常にすべてを入手できます。 gitが特別な理由の1つです。すべてのソースをローカルに取得すると、マージと分岐をすばやく簡単に実行できますが、企業の制限も適用されません。

バックエンドの選択は無意味です。ファイルベースのシステムまたはSQLServerベースのシステムを使用します。すべて同じですが、セキュリティアクセスのレベルは、ツールが許可するもの(およびバックエンドデータの管理ポリシー、saパスワードが 'のSQLServer)によって異なりますsa 'または無制限のWindows認証さえあれば、誰でもデータベースにアクセスできます)。

9
gbjbaanb

彼は、SQL Severベースのツールを使用する方がはるかに安全であると私に言った

「安全」を定義する(または上司に伝える):データ損失またはアクセス制御からのセキュリティ?

後者は確かにTFSの方が簡単です(そして私はそれが彼/彼女が望んでいることだと思います)。だから問題はあなたが誰からのアクセスをブロックするのですか?

複数のGitリポジトリを使用して、制限されたユーザーが他のユーザーから指定された "マスター"(リリースの取得元)へのプルを実行すると、コードのレビューが確実に行われるようにしながら、ほとんど同じ制御が提供されます。

(一部の開発者をブロックするためにTFSセキュリティを使用しました1 チェックインから。これは悲惨な反応でした2 コードの品質。 TFSセキュリティを使用することで、コードを取得して変更することはできましたが、チェックインすることはできませんでした。むしろ、私または別の人が確認してチェックインするために、シェルフセットを提出する必要がありました(コマンドラインを使用して)。ほとんど、特に最初は、提出は拒否されました。)

Update 3番目の方法があるかもしれません。サーバー上のTFSとクライアント上のGit。 TFS2012に依存します(RTMについてのみ)。 Brian Harryの Announcing Git Integration with TFS を参照してください。


1アンチパターンのアウトソーシング:ここには6人の優れた開発者、CVに関する多くの主張があります。したがって、彼らは優れている必要があり、インタビュー/検証する必要はありません。彼らは今や開発のほとんどを行うでしょう。

2 考えてみてください http://thedailywtf.com/ 提出候補者...

7
Richard

オープンソースプロジェクトはgitを使用して、完全に信頼されていない開発者からの何千もの貢献を受け入れます。常にマルウェアを導入せずに、どうやってそれを達成するのか疑問に思っている経営者はいませんか?または、なぜ最も信頼されていない貢献者を持つ人々が実際にprefer gitなのか?

自分の開発者を読み取りアクセスで信頼できない場合は、他にも一連の問題があります。ただし、gitを使用するのも簡単です。独自のサーバーに制限付きアクセスコードを配置するだけです。これは、単一のサーバーでのアクセス許可よりも安全です。

人々がする次の議論は、「うん、でもgitでは最新バージョンだけでなく履歴全体をコピーする」というものです。お知らせがあります。 VCSへの読み取りアクセス権がある場合は、誰も知らないgitリポジトリを作成するための十分なアクセス権があります。人々は、経営陣が彼らの上に劣ったVCSをだましているとき、いつもこれをします。それはあなたがそれを恐れる悪夢の問題を実際に作成しないので、あなたはそれについて知りません。

企業がgitよりも別のVCSを選択する理由はたくさんあります。セキュリティはその1つではありません。おそらく最大の理由は、gitが統合システムよりもVCSの1つのコンポーネントであることです。独自の認証と承認、CIとの統合、バグ追跡などを追加する必要があります。また、gitには多くの能力がありますが、それに伴い、その能力の誤った使用を防ぐためにサーバーをロックダウンする必要があり、さらに多くのトレーニングが必要です。より高度なワークフローについて知らない、または望まない場合、gitは不必要に複雑なバージョンのsvnのように見えます。

3
Karl Bielefeldt