ログ編集

TiDB が詳細なログ情報を提供する場合、ログに機密データ (ユーザー データなど) が出力される可能性があり、データ セキュリティ リスクが発生します。このようなリスクを回避するために、各コンポーネント(TiDB、TiKV、PD) は、ログ編集を有効にしてユーザー データ値を保護できる構成項目を提供します。

TiDB側でのログ編集

TiDB 側でログ編集を有効にするには、 global.tidb_redact_logの値をONまたはMARKERに設定します。この構成値のデフォルトはOFFで、ログ編集が無効であることを意味します。

set構文を使用してグローバル変数tidb_redact_log設定できます。

set @@global.tidb_redact_log = ON;

設定後、新しいセッションで生成されたすべてのログが編集されます。

create table t (a int, unique key (a)); Query OK, 0 rows affected (0.00 sec) insert into t values (1),(1); ERROR 1062 (23000): Duplicate entry '1' for key 't.a'

上記のINSERTステートメントのエラー ログは次のように出力されます。

[2024/07/02 11:35:32.686 +08:00] [INFO] [conn.go:1146] ["command dispatched failed"] [conn=1482686470] [session_alias=] [connInfo="id:1482686470, addr:127.0.0.1:52258 status:10, collation:utf8mb4_0900_ai_ci, user:root"] [command=Query] [status="inTxn:0, autocommit:1"] [sql="insert into `t` values ( ... )"] [txn_mode=PESSIMISTIC] [timestamp=450859193514065921] [err="[kv:1062]Duplicate entry '?' for key 't.a'"]

上記のエラー ログから、値tidb_redact_logONに設定されている場合、データ セキュリティ リスクを回避するために、機密情報が TiDB ログ内の?マークに置き換えられていることがわかります。

さらに、TiDB にはMARKERオプションがあります。 tidb_redact_logの値をMARKERに設定すると、TiDB はログ内の機密情報を直接置き換えるのではなく、 ‹›でマークするため、編集ルールをカスタマイズできます。

set @@global.tidb_redact_log = MARKER;

上記の構成の後、新しいセッションによって生成されるすべてのログで機密情報が置き換えられるのではなく、マークされます。

create table t (a int, unique key (a)); Query OK, 0 rows affected (0.07 sec) insert into t values (1),(1); ERROR 1062 (23000): Duplicate entry '‹1›' for key 't.a'

エラーログは次のとおりです。

[2024/07/02 11:35:01.426 +08:00] [INFO] [conn.go:1146] ["command dispatched failed"] [conn=1482686470] [session_alias=] [connInfo="id:1482686470, addr:127.0.0.1:52258 status:10, collation:utf8mb4_0900_ai_ci, user:root"] [command=Query] [status="inTxn:0, autocommit:1"] [sql="insert into `t` values ( ‹1› ) , ( ‹1› )"] [txn_mode=PESSIMISTIC] [timestamp=450859185309483010] [err="[kv:1062]Duplicate entry '‹1›' for key 't.a'"]

前述のエラー ログからわかるように、 tidb_redact_logMARKERに設定すると、TiDB はログで‹ ›使用して機密情報をマークします。必要に応じて、ログ内の機密情報を処理するための編集ルールをカスタマイズできます。

TiKV側でのログ編集

TiKV 側でログ編集を有効にするには、 security.redact-info-logの値をtrueまたは"marker"に設定します。この構成値のデフォルトはfalseで、ログ編集が無効であることを意味します。

PD側でのログ編集

PD 側でログ編集を有効にするには、 security.redact-info-logの値をtrueまたは"marker"に設定します。この設定値のデフォルトはfalseで、ログ編集が無効であることを意味します。

TiFlash側でのログ編集

TiFlash側でログ編集を有効にするには、 tiflash-server のsecurity.redact_info_log値と tiflash-learner のsecurity.redact-info-log値の両方をtrueまたは"marker"に設定します。両方の設定値はデフォルトでfalseに設定されており、これはログ編集が無効であることを意味します。

このページは役に立ちましたか?