ログの編集

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

TiDB 側でのログ編集

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

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

set @@global.tidb_redact_log=1;

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

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ステートメントのエラー ログは次のように出力されます。

[2020/10/20 11:45:49.539 +08:00] [INFO] [conn.go:800] ["command dispatched failed"] [conn=5] [connInfo="id:5, addr:127.0.0.1:57222 status:10, collation:utf8_general_ci, user:root"] [command=Query] [status="inTxn:0, autocommit:1"] [sql="insert into t values ( ? ) , ( ? )"] [txn_mode=OPTIMISTIC] [err="[kv:1062]Duplicate entry '?' for key 't.a'"]

上記のエラー ログから、 tidb_redact_logを有効にした後、 ?使用してすべての機密情報がシールドされていることがわかります。このようにして、データセキュリティのリスクが回避されます。

TiKV 側でのログ編集

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

PD側でのログ編集

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

TiFlash側でのログ編集

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

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