安全な読み取り専用セルフホスティングGitスクリプトストア

安全な読み取り専用セルフホスティングGitスクリプトストア

特定のユーザーがリポジトリへの読み取りおよび書き込みアクセス権を持ち、このリポジトリを使用していくつかのスクリプトを実行する管理サーバーは、gitサーバー上の同じリポジトリへの読み取り専用アクセス権を持つgitサーバーを構築する必要があります。

子サーバートポロジ

設定はできるだけ安全でなければなりません。これまで私はこれをやってきました。珪藻土devicesリポジトリの構成は次のとおりです。

repo devices
    RW     =   eng1
    RW     =   eng2
    RW     =   eng3
    R      =   graphs

ユーザーのSSHキーペアはサーバーのユーザーホームディレクトリにgraphs保存され、秘密キーはそのユーザーのみを読み書きできます。この秘密鍵はパスワードで保護されません。mgmt-svrgraphsgraphs

これを達成するためのより安全な方法はありますか? HTTPSを使用してgitサーバーとネイティブアクセス認証のリポジトリにアクセスすることを検討しましたが、devices現在SSHベースの設定に比べて利点はありません。それでも、graphsユーザーのホームディレクトリのどこかにアクセス資格情報を保存する必要があります。 。

ベストアンサー1

gitlabCIの展開に重要な機能を使用できます。この機能は、Community Edition(ce)でも使用できます。

グローバルに共有される配布キーを使用すると、GitLabインストール全体ですべてのリポジトリへの読み取り専用または読み取り/書き込み(有効な場合)アクセスを設定できます。

これは、ストレージをセキュアな共有インテリジェント統合(CI)サービスまたは他の共有サービスに統合するのに役立ちます。 GitLab管理者は、GitLabでグローバル共有配布キーを設定し、すべての共有システムに秘密鍵を追加できます。プロジェクトマネージャ(またはそれ以上)がプロジェクトで使用するグローバル共有展開キーを承認すると、個々のリポジトリはこれらのキーを使用してリポジトリを公開することを選択します。

グローバル共有鍵は、ターゲット統合システムの管理者だけが秘密鍵を知って構成する必要があるため、プロジェクトごとに鍵を配布するよりも強力なセキュリティを提供します。

GitLab 管理者は、管理領域の配布キーセクションでグローバル配布キーを設定します。キーに意味のあるタイトルがあることを確認してください。これは、プロジェクトのメンテナンス担当者と所有者が追加する正しいGlobal Deployキーを識別する主な方法であるためです。たとえば、キーがSaaS CIインスタンスへのアクセスを許可している場合は、キー名にサービス名を使用します(それがすべての場合)。グローバル共有配布キーを生成するときは、キーの粒度を考慮してください。キーの目的は、特定のサービスにのみ適用されるのと同じくらい狭くてもよく、「読み取りアクセス権が必要なすべての場所」など、より一般的な用途です。リポジトリに" "。

GitLab管理者がグローバル展開キーを追加すると、プロジェクトメンテナと所有者は展開キーセクションを展開し、[公開展開キー]の下にリストされている対応するキーの横にある[アクティブ化]をクリックしてプロジェクトの設定>リポジトリページに追加します。できます。すべてのプロジェクトで使用されます。」

https://docs.gitlab.com/ee/ssh/#deploy-keys


編集する
gitea.と比較して、より軽量の自己ホスティングGitサービスですgitlab。依存関係のない静的単一バイナリのみがあります。 goを使用してプログラムされています(もちろん、構成ファイルとシステムサービスまたは同様のサービスを追加する必要があります)。ウェブサイトには、その機能の良い概要があります。 https://docs.gitea.io/en-us/

おすすめ記事