強化 - アプリケーションに関する推奨事項
一般的な強化ガイドラインについては、主要な強化ドキュメントを参照してください。
WebインターフェースからGitLabインスタンスの強化に関する推奨事項を管理できます。
システムフック
- 左側のサイドバーの下部で、管理者を選択します。
- システムフックを選択します。
一般的な強化された環境では、内部情報は送信されず、システムの外部に保存されません。オフライン環境システムでは、これは暗黙の了解事項です。トリガーに基づいて、システムフックは、環境内のローカルイベントが環境外の情報を伝達する方法を提供します。
この機能のユースケースはサポートされており、特にリモートシステムを介したシステムのモニタリングです。ただし、システムフックのデプロイには細心の注意を払う必要があります。強化されたシステムの場合、オフライン環境にすることを目的とする場合は、相互に通信できる信頼できるシステムの境界を適用する必要があります。したがって、フック(システム、Web、またはファイル)は、それらの信頼できるシステムとのみ通信する必要があります。システムフックを介した通信には、TLSを強くお勧めします。
プッシュルール
- 左側のサイドバーの下部で、管理者を選択します。
- プッシュルールを選択します。
次の項目が選択されていることを確認してください:
- 未認証のユーザーを拒否する
git pushでGitタグを削除することをユーザーに許可しない- コミットの作成者がGitLabのユーザーであるかどうかを確認します
- シークレットファイルのプッシュを防止
この調整は、確立され認証されたユーザーへのプッシュを制限するのに役立ちます。
デプロイキー
- 左側のサイドバーの下部で、管理者を選択します。
- デプロイキーを選択します。
パブリックデプロイキーは、インスタンス上のすべてのプロジェクトへの読み取りまたは読み取り/書き込みアクセスを許可するために使用され、プロジェクトにアクセスするためのリモート自動化を目的としています。パブリックデプロイキーは、強化された環境では使用しないでください。デプロイキーを使用する必要がある場合は、プロジェクトデプロイキーの代わりにプロジェクトを使用してください。詳細については、デプロイキーとプロジェクトデプロイキーに関するドキュメントを参照してください。
一般
- 左側のサイドバーの下部で、管理者を選択します。
- 設定 > 一般を選択します。
強化の調整は、4つのセクションで行うことができます。
表示レベルとアクセス制御
次の設定のデフォルトはプライベートです:
- Default project visibility(デフォルト)のプロジェクト表示レベル
- Default snippet visibility(デフォルト)のスニペット表示レベル
- Default group visibility(デフォルト)のグループ表示レベル
プロジェクト、スニペット、またはグループへの特定のアクセス権を付与されたユーザーのみが、これらのリソースにアクセスできます。これは、必要に応じて後で、または作成時に調整できます。これは、偶発的または悪意のある情報の開示を防ぐのに役立ちます。
セキュリティポリシーとポスチャによっては、認証されていないユーザーがユーザープロファイルを閲覧できないように、Restricted visibility level(制限付き)の表示レベルを公開に設定することをお勧めします。
ソースをインポートでは、本当に必要なソースのみを選択します。
一般的なデプロイでは、有効なGitアクセスプロトコルがSSHとHTTP(S)の両方に設定されていますが、Gitプロトコルのいずれかがユーザーで使用されていない場合は、それに応じてSSHのみまたはHTTP(S)のみに設定します。これにより、アタックサーフェスが縮小されます。
SSHキーのタイプでは、次のものが推奨されます。ED25519(およびED25519-SK)、RSA、およびECDSA(およびECDSA-SK)の順に推奨されます。ED25519は、RSAが2048ビット以上に設定されている場合、RSAと同程度に安全であると考えられていますが、ED25519キーは小さく、アルゴリズムははるかに高速です。
ED25519-SKとECDSA-SKはどちらも「セキュリティキー」を表す-SKで終わります。これらの-SKタイプは、FIDO/U2F標準と互換性があり、ハードウェアトークン(YubiKeyなど)での使用に関連しています。
DSAは「禁止」に設定する必要があります。DSAには既知の欠陥があり、多くの暗号研究者はECDSAの使用を疑っており、サポートしていません。
GitLabがFIPSモードの場合、以下を使用します:
- FIPSモードで実行している場合:
RSAを使用し、Must be at least 2048 bits(少なくとも2048ビット)に設定します。ECDSA(およびECDSA-SK)を使用し、Must be at least 256 bits(少なくとも256ビット)に設定します。- 他のすべてのキーのタイプをAre forbidden(禁止)に設定します。
RSAとECDSAはどちらもFIPSでの使用が承認されています。
- FIPSモードで実行していない場合は、
ED25519を使用する必要があり、RSAも使用できます:ED25519(およびED25519-SK)をMust be at least 256 bits(少なくとも256ビット)に設定します。RSAを使用している場合は、Must be at least 2048 bits(少なくとも2048ビット)に設定します。- 他のすべてのキーのタイプをAre forbidden(禁止)に設定します。
- 新しいユーザーグループのインスタンスをセットアップする場合は、セキュリティを強化するために、ユーザーSSHキーポリシーを最大ビット数で定義します。
強化された環境では、RSSフィードは通常必要ありません。フィードトークンで、Disabled feed token(フィードトークンを無効にする)チェックボックスを選択します。
すべてのユーザーが特定のIPアドレスからアクセスしている場合は、Global-allowed IP ranges(グローバル許可IP範囲)を使用して、それらのアドレスのみを明示的に許可します。
Visibility and access control(表示レベルとアクセス制御)の詳細については、表示レベルとアクセス制御を参照してください。SSH設定の詳細については、SSHキーの制限を参照してください。
アカウントと制限
強化を目的とする場合は、Gravatarを有効化の横にあるチェックボックスが選択されていないことを確認してください。すべての無関係な通信を削減する必要があり、一部の環境では制限される場合があります。アカウントアバターは、ユーザーが手動でアップロードできます。
このセクションの設定は、ユーザーに対する独自の特定の標準のカスタム実装を強制するのに役立つことを目的としています。さまざまなシナリオが非常に多く、多岐にわたるため、アカウントと制限設定に関するドキュメントを確認し、変更を適用して独自のポリシーを適用する必要があります。
サインアップの制限
強化されたインスタンスでオープンサインアップが無効になっていることを確認してください。サインアップは有効ですチェックボックスが選択されていないことを確認してください。
メールの確認設定で、ハードが選択されていることを確認します。アクセス権が付与される前に、メールアドレスのユーザー確認が強制されるようになりました。
パスワードの最小文字数デフォルト設定は12で、追加の認証手法が使用されている限り問題ありません。パスワードは複雑である必要があるため、次の4つのチェックボックスがすべて選択されていることを確認してください:
- 数字が必要
- 大文字が必要
- 小文字が必要
- 記号が必要
すべてのユーザーが、メールアドレスに特定のドメインを使用する同じ組織に属している場合は、サインアップに許可されたドメインにそのドメインをリストします。これにより、他のドメインのメールアドレスを持つユーザーがサインアップできなくなります。
詳細については、サインアップ制限を参照してください。
サインインの制限
2要素認証(2FA)は、すべてのユーザーに対して有効にする必要があります。2要素認証(2FA)の横にあるチェックボックスが選択されていることを確認してください。
2要素認証の猶予期間の猶予期間のデフォルト設定は48時間です。これは、8時間など、はるかに低い値に調整する必要があります。
管理者モードを有効にするの横にあるチェックボックスが選択されていることを確認して、管理者モードがアクティブになるようにします。これにより、管理者アクセス権を持つユーザーは、管理タスクを実行するために追加の認証を使用する必要があり、ユーザーによる追加の2FAを強制します。
不明なサインインのメール通知で、メール通知を有効化が選択されていることを確認します。これにより、認識されていない場所からサインインが発生すると、ユーザーにメールが送信されます。
詳細については、サインイン制限を参照してください。
インテグレーション
- 左側のサイドバーの下部で、管理者を選択します。
- 設定 > インテグレーションを選択します。
一般に、管理者がユースケースを制御およびモニタリングしている限り、強化された環境ではインテグレーションは問題ありません。ローカルプロセスまたは認証されたユーザーが実行した場合に制限または監査するアクセスレベルを通常必要とするアクションとプロセスをトリガーする、外部システムからのアクションを許可するインテグレーションについては注意してください。
メトリクスとプロファイリング
- 左側のサイドバーの下部で、管理者を選択します。
- 設定 > メトリクスとプロファイリングを選択します。
強化のための主な焦点は使用状況の統計です:
バージョンチェックを有効にするが選択されていることを確認する必要があります。これにより、最新バージョンのGitLabを実行しているかどうかが確認されます。新しい機能とセキュリティパッチを備えた新しいバージョンが頻繁にリリースされるため、最新の状態に保つことができます。
環境が隔離されている場合、または組織の要件により、ソフトウェアベンダーへのデータ収集と統計レポートが制限されている場合は、Enable service ping(Service Ping)機能をオフにする必要がある場合があります。
ネットワーク
- 左側のサイドバーの下部で、管理者を選択します。
- 設定 > ネットワークを選択します。
レート制限を有効にする設定については、必ず選択されていることを確認してください。デフォルト値で問題ありません。さらに、アクセスを有効にする設定が多数あり、これらはすべてクリアする必要があります。
これらの調整を行った後、パフォーマンスとユーザーのニーズに合わせてシステムを微調整できます。これには、レート制限の無効化と調整、またはアクセスの有効化が必要になる場合があります。留意すべき注目すべき点を次に示します:
アウトバウンドリクエストで、限られた数のシステムへのアクセスを開く必要がある場合は、IPアドレスまたはホスト名を指定して、それらのシステムへのアクセスのみを制限できます。また、このセクションでは、アクセスを許可する場合は、Enforce DNS rebinding attack protection(DNSリバインディング攻撃保護を適用する)を選択したことを確認してください。
Notes rate limit(メモのレート制限)とUsers API rate limit(ユーザーAPIレート制限)では、必要に応じて、これらの制限から特定のユーザーを除外することができます。