正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

強化 - アプリケーションの推奨事項

一般的な強化のガイドラインについては、メインの強化ドキュメントを参照してください。

GitLabのインスタンスの強化に関する推奨事項は、ウェブインターフェースから制御します。

前提条件

管理者アクセス権が必要です。

システムフック

  1. 右上隅で、管理者を選択します。
  2. システムフックを選択します。

一般的に強化された環境では、内部情報はシステム外に送信または保存されません。オフライン環境のシステムでは、これは当然のことです。システムフックは、環境内のローカルイベントがトリガーに基づいて環境外に情報を通信する手段を提供します。

この機能のユースケースはサポートされており、特にリモートシステムを介したシステムのモニタリングが該当します。ただし、システムフックをデプロイする際には、細心の注意を払う必要があります。強化されたシステムの場合、オフライン環境として意図されているのであれば、相互に通信を許可された信頼できるシステムの境界を強制する必要があり、したがって、あらゆるフック(システム、ウェブ、またはファイル)は、それらの信頼できるシステムとのみ通信する必要があります。システムフックを介した通信には、TLSを強く推奨します。

プッシュルール

  1. 右上隅で、管理者を選択します。
  2. プッシュルールを選択します。

次の項目が選択されていることを確認してください:

  • 未認証のユーザーを拒否する
  • git pushでGitタグを削除することをユーザーに許可しない
  • コミットの作成者がGitLabのユーザーであるかどうかを確認します
  • シークレットファイルのプッシュを防止

これらの調整により、確立され認証されたユーザーへのプッシュを制限できます。

デプロイキー

  1. 右上隅で、管理者を選択します。
  2. デプロイキーを選択します。

公開デプロイキーは、インスタンス上のすべてのプロジェクトに読み取りまたは読み取り/書き込みアクセスを付与するために使用され、リモート自動化がプロジェクトにアクセスするために意図されています。公開デプロイキーは、強化された環境では使用すべきではありません。デプロイキーを使用する必要がある場合は、代わりにプロジェクトデプロイキーを使用してください。詳細については、デプロイキーおよびプロジェクトデプロイキーに関するドキュメントを参照してください。

一般

  1. 右上隅で、管理者を選択します。
  2. 設定 > 一般を選択します。

強化の調整は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を含む) の順に推奨されます。RSAが2048ビット以上に設定されている場合、ED25519RSAと同程度に安全であると考えられますが、ED25519キーはより小さく、アルゴリズムははるかに高速です。

ED25519-SKECDSA-SKはどちらも「Security Key」を表す-SKで終わります。The -SKタイプはFIDO/U2F標準と互換性があり、例えばYubiKeyなどのハードウェアトークンでの使用に関連します。

DSAは「禁止されています」に設定する必要があります。DSAには既知の欠陥があり、多くの暗号学者はECDSAの使用に懐疑的であり、支持していません。

GitLabがFIPSモードの場合は、以下を使用してください:

  • FIPSモードで実行している場合:
    • RSAを使用し、Must be at least 2048 bitsに設定します。
    • ECDSA (ECDSA-SKを含む) を使用し、Must be at least 256 bitsに設定します。
    • その他のすべてのキータイプはAre forbiddenに設定します。RSAECDSAはどちらもFIPSでの使用が承認されています。
  • FIPSモードで実行していない場合は、ED25519を使用し、RSAも使用できます:
    • ED25519 (ED25519-SKを含む) をMust be at least 256 bitsに設定します。
    • RSAを使用する場合は、Must be at least 2048 bitsに設定します。
    • その他のすべてのキータイプはAre forbiddenに設定します。
  • 新しいユーザーグループのためにインスタンスを設定する場合は、セキュリティ強化のためにユーザーSSHキーポリシーを最大ビット設定で定義してください。

強化された環境では、通常RSSフィードは必要とされず、フィードトークンDisabled feed tokenチェックボックスを選択します。

すべてのユーザーが特定のIPアドレスから来ている場合、Global-allowed IP rangesを使用して、それらのアドレスのみを具体的に許可します。

Visibility and access controlの詳細については、表示レベルとアクセス制御を参照してください。SSH設定に関する情報については、SSHキー制限を参照してください。

アカウントと制限

強化の目的で、Gravatarを有効化の横にあるチェックボックスが選択されていないことを確認してください。すべての不要な通信は削減されるべきであり、一部の環境では制限される場合があります。アカウントアバターは、ユーザーが手動でアップロードできます。

このセクションの設定は、ユーザーに対して独自の特定の標準をカスタムで適用するのに役立つことを意図しています。さまざまなシナリオが多すぎて多岐にわたるため、アカウントと制限設定のドキュメントを確認し、独自のポリシーを適用するために変更を加えてください。

サインアップ制限

強化されたインスタンスでオープンサインアップが無効になっていることを確認してください。サインアップは有効ですチェックボックスが選択されていないことを確認してください。

メールの確認設定で、ハードが選択されていることを確認してください。メールアドレスのユーザー検証は、アクセスが許可される前に強制されるようになりました。

パスワードの最小文字数のデフォルト設定は12ですが、追加の認証技術が使用されている限りは問題ないはずです。パスワードは複雑であるべきなので、これら4つのチェックボックスすべてが選択されていることを確認してください:

  • 数字が必要
  • 大文字が必要
  • 小文字が必要
  • 記号が必要

すべてのユーザーがメールアドレスに特定のドメインを使用する同じ組織に属している場合、そのドメインをサインアップに許可されたドメインにリストしてください。これにより、他のドメインのメールアドレスを持つユーザーがサインアップするのを防ぎます。

詳細については、サインアップ制限を参照してください。

サインイン制限

すべてのユーザーに対して2要素認証(2FA)を有効にする必要があります。2要素認証(2FA)の横にあるチェックボックスが選択されていることを確認してください。

2要素認証の猶予期間のデフォルト設定は48時間です。これは、例えば8時間など、はるかに低い値に調整する必要があります。

管理者モードを有効にするの横にあるチェックボックスが選択されていることを確認し、管理者モードがアクティブになるようにします。これにより、管理者アクセスを持つユーザーは、管理タスクを実行するために追加の認証を使用する必要があり、ユーザーによる追加の2FAが強制されます。

不明なサインインのメール通知で、メール通知を有効化が選択されていることを確認してください。これにより、認識されない場所からのサインインが発生した場合に、ユーザーにメールが送信されます。

詳細については、サインイン制限を参照してください。

インテグレーション

  1. 右上隅で、管理者を選択します。
  2. 設定 > インテグレーションを選択します。

一般的に、管理者が使用状況を制御およびモニタリングしている限り、インテグレーションは強化された環境で問題ありません。外部システムからのアクションを許可するインテグレーション、つまりローカルプロセスまたは認証済みユーザーによって実行された場合に通常制限または監査するアクセスレベルを必要とするアクションやプロセスをトリガーするものについては注意してください。

メトリクスとプロファイリング

  1. 右上隅で、管理者を選択します。
  2. 設定 > メトリクスとプロファイリングを選択します。

強化の主な焦点は使用量の統計です:

  • バージョンチェックを有効にするが選択されていることを確認する必要があります。これは、GitLabの最新バージョンを実行しているかどうかを確認し、新機能とセキュリティパッチを備えた新しいバージョンが頻繁にリリースされるため、最新の状態を維持するのに役立ちます。

  • 環境が分離されている、または組織の要件がデータ収集と統計レポートをソフトウェアベンダーに制限している場合、Enable service ping機能をオフにする必要がある場合があります。

ネットワーク

  1. 右上隅で、管理者を選択します。
  2. 設定 > ネットワークを選択します。

レート制限を有効にするすべての設定が選択されていることを確認してください。デフォルト値で問題ないはずです。さらに、アクセスを有効にする多数の設定があり、これらはすべてクリアする必要があります。

これらの調整を行った後、システムのパフォーマンスとユーザーのニーズに合わせてシステムを微調整できます。これには、レート制限を無効にして調整したり、アクセスを有効にしたりする必要がある場合があります。注意すべき点をいくつか示します:

  • アウトバウンドリクエストで、限られた数のシステムへのアクセスを開放する必要がある場合は、IPアドレスまたはホスト名を指定して、それらのシステムのみにアクセスを制限できます。また、このセクションで、何らかのアクセスを許可している場合は、Enforce DNS rebinding attack protectionが選択されていることを確認してください。

  • Notes rate limitおよびUsers API rate limitの下で、必要に応じて特定のユーザーをこれらの制限から除外することができます。