セキュリティTiDB ダッシュボード
アクセスする前に TiDB ダッシュボードにサインインする必要がありますが、デフォルトでは、TiDB ダッシュボードは信頼できるユーザー エンティティによってアクセスされるように設計されています。 TiDB ダッシュボードを外部ネットワーク ユーザーまたは信頼されていないユーザーにアクセス用に提供する場合は、セキュリティの脆弱性を回避するために次の対策を講じてください。
TiDB ユーザーのセキュリティを強化する
TiDB root
ユーザーに強力なパスワードを設定する
TiDB ダッシュボードのアカウント システムは、 TiDB SQLユーザーのアカウント システムと一致しています。デフォルトでは、TiDB のroot
ユーザーにはパスワードがないため、TiDB ダッシュボードへのアクセスにパスワード認証は必要ありません。これにより、悪意のある訪問者に特権 SQL ステートメントの実行を含む高い権限が与えられます。
TiDB root
ユーザーには強力なパスワードを設定することをお勧めします。詳細はTiDB ユーザー アカウント管理を参照してください。または、TiDB root
ユーザーを無効にすることもできます。
TiDB ダッシュボード用の最小特権ユーザーを作成する
TiDB ダッシュボードのアカウント システムは、 TiDB SQLのアカウント システムと一致しています。 TiDB ダッシュボードにアクセスするユーザーは、 TiDB SQLユーザーの権限に基づいて認証および承認されます。したがって、TiDB ダッシュボードには限定され権限、または単に読み取り専用権限が必要です。最小権限の原則に基づいて TiDB ダッシュボードにアクセスするようにユーザーを構成できるため、高い権限を持つユーザーのアクセスを回避できます。
TiDB ダッシュボードにアクセスしてサインインするには、最小限の特権を持つ SQL ユーザーを作成することをお勧めします。これにより、権限の高いユーザーのアクセスが回避され、セキュリティが向上します。詳細はTiDB ダッシュボードのユーザー管理を参照してください。
ファイアウォールを使用して信頼できないアクセスをブロックする
TiDB ダッシュボードは、デフォルトでhttp://IP:2379/ダッシュボード/に設定されている PD クライアント ポートを介してサービスを提供します。 TiDB ダッシュボードには ID 認証が必要ですが、PD クライアント ポートで実行される PD の他の特権インターフェイス ( http://IP:2379/pd/api/v1/membersなど) は ID 認証を必要とせず、特権操作を実行できます。したがって、PD クライアント ポートを外部ネットワークに直接公開することは非常に危険です。
次の対策を講じることをお勧めします。
ファイアウォールを使用して、コンポーネントが外部ネットワークまたは信頼できないネットワーク経由で PD コンポーネントのクライアント ポートにアクセスすることを禁止します。
ノート:
TiDB、TiKV、およびその他のコンポーネントは、PD クライアント ポートを介して PD コンポーネントと通信する必要があるため、コンポーネント間の内部ネットワークへのアクセスをブロックしないでください。そうしないと、クラスターが使用できなくなります。
外部ネットワークへの別のポートで TiDB ダッシュボード サービスを安全に提供するようにリバース プロキシを構成する方法については、 リバース プロキシの背後で TiDB ダッシュボードを使用するを参照してください。
複数の PD インスタンスをデプロイするときに TiDB ダッシュボード ポートへのアクセスを開く方法
テスト環境では、外部アクセス用に TiDB ダッシュボード ポートを開くようにファイアウォールを構成する必要がある場合があります。
複数の PD インスタンスがデプロイされている場合、実際に TiDB ダッシュボードを実行する PD インスタンスは 1 つだけであり、他の PD インスタンスにアクセスするとブラウザーのリダイレクトが発生します。したがって、ファイアウォールが正しい IP アドレスで構成されていることを確認する必要があります。このメカニズムの詳細については、 複数の PD インスタンスを使用した展開を参照してください。
TiUP デプロイ ツールを使用する場合、次のコマンドを実行して、実際に TiDB ダッシュボードを実行する PD インスタンスのアドレスを表示できます ( CLUSTER_NAME
をクラスター名に置き換えます)。
tiup cluster display CLUSTER_NAME --dashboard
出力は、実際の TiDB ダッシュボード アドレスです。
ノート:
この機能は、
tiup cluster
展開ツールの新しいバージョン (v1.0.3 以降) でのみ使用できます。TiUPクラスタのアップグレード
tiup update --self tiup update cluster --force
次に出力例を示します。
http://192.168.0.123:2379/dashboard/
この例では、ファイアウォールは192.168.0.123
のオープン IP の2379
ポートのインバウンド アクセスで構成する必要があり、TiDB ダッシュボードはhttp://192.168.0.123:2379/ダッシュボード/経由でアクセスされます。
TiDB ダッシュボード専用のリバース プロキシ
[ファイアウォールを使用して信頼されていないアクセスをブロックする](#use-a-firewall-to-block-untrusted access) で述べたように、PD クライアント ポートで提供されるサービスには、TiDB ダッシュボード ( http://IP:2379/ダッシュボード/にあります) だけでなく、他のサービスも含まれます。 PD の特権インターフェイス ( http://IP:2379/pd/api/v1/membersなど)。したがって、リバース プロキシを使用してTiDB /dashboard
ボードを外部ネットワークに提供する場合は、外部ネットワークが PD の特権インターフェイスにリバース プロキシ。
リバース プロキシの背後で TiDB ダッシュボードを使用するを参照して、安全で推奨されるリバース プロキシ構成を学習することをお勧めします。
リバース プロキシの TLS を有効にする
トランスポートレイヤーのセキュリティをさらに強化するために、リバース プロキシに対して TLS を有効にしたり、mTLS を導入してユーザー証明書を認証したりすることもできます。
詳細については、 HTTPS サーバーの構成とHAProxy SSL 終了を参照してください。