データセキュリティプラグインを使用して、機密データをマスキングおよび暗号化します。
プラグイン効果の例
次の表は、Simple Log Service に保存された後の生ログのデータ構造を示しています。この表では、ネイティブのデータマスキングプラグインを使用した場合の結果と、プラグインを使用しない場合の結果を比較しています。
生ログ | プラグインなし | データマスキングプラグインあり |
| 内容: "[{'account':'1812213231432969','password':'04a23f38'}, {'account':'1812213685634','password':'123a'}]" | 内容: "[{'account':'1812213231432969','password':'********'}, {'account':'1812213685634','password':'********'}]" |
データセキュリティプラグインの概要
Simple Log Service は、次の種類のデータセキュリティプラグインを提供します。ニーズに応じてプラグインを選択できます。
プラグイン名 | タイプ | 説明 |
データマスキング | ネイティブ | ログフィールドをマスキングして置き換えます。 |
データマスキング | 拡張 | 機密データを指定された文字列または MD5 ハッシュに置き換えます。 |
フィールドの暗号化 | 拡張 | 指定されたフィールドのコンテンツを暗号化します。 |
データのエンコーディングとデコーディング | 拡張 | Base64 からデータをデコードするか、データを Base64 または MD5 にエンコードします。 |
エントリポイント
Logtail プラグインを使用してログを処理する場合は、Logtail 構成を作成または変更するときに Logtail プラグイン構成を追加できます。詳細については、「概要」をご参照ください。
ネイティブプラグインと拡張プラグインの違い
ネイティブプラグインは、パフォーマンス向上のために C++ で実装されています。
拡張プラグインは、豊富で柔軟なエコシステムを提供するために Go で実装されています。ビジネスログが複雑すぎてネイティブプラグインで処理できない場合は、拡張プラグインを使用できます。
拡張プラグインのパフォーマンス制限
拡張プラグインを使用してログを処理すると、LoongCollector はより多くのリソース (主に CPU) を消費します。必要に応じて、LoongCollector パラメーター設定を調整して、長いログ転送レイテンシーの最適化を実行できます。
生データの生成速度が 5 MB/s を超える場合は、プラグインの複雑な組み合わせを使用してログを処理しないでください。拡張プラグインを使用して単純な処理を行い、データ変換を使用してさらに処理できます。
ログ収集の制限
拡張プラグインは、テキストログをラインモードで処理します。これは、
__tag__:__path__や__topic__などのファイルレベルのメタデータが各ログに保存されることを意味します。拡張プラグインを追加すると、タグに関連する機能に影響します:
コンテキストクエリと LiveTail 機能は使用できなくなります。これらの機能を使用するには、アグリゲーター構成を追加する必要があります。
__topic__フィールドは__log_topic__に名前が変更されます。アグリゲーター構成を追加すると、__topic__フィールドと__log_topic__フィールドの両方がログに存在します。__log_topic__フィールドが必要ない場合は、フィールド削除プラグインを使用して削除できます。__tag__:__path__などのフィールドには、ネイティブフィールドインデックスがなくなります。それらのためにフィールドインデックスを作成する必要があります。
データマスキングプラグイン (ネイティブ)
データマスキングプラグインはログをマスキングします。
構成の説明
パラメーター | 説明 |
ソースフィールド | 解析前のログコンテンツを保存するソースフィールド。 |
マスキング方法 | マスキング方法。有効な値:
|
置換文字列 | [マスキング方法] を [const] に設定した場合は、機密コンテンツを置き換える文字列を入力します。 |
プレフィックスコンテンツ式 | 機密コンテンツの前にあるコンテンツの式。この式は、機密コンテンツを見つけるために使用されます。式は RE2 構文に従う必要があります。詳細については、「RE2 構文」をご参照ください。 |
置換コンテンツの式 | 機密コンテンツの式。式は RE2 構文に従う必要があります。詳細については、「RE2 構文」をご参照ください。 |
すべての一致を置換 |
|
データマスキングプラグイン (拡張)
processor_desensitize プラグインを使用して、ログ内の機密データを指定された文字列または MD5 ハッシュに置き換えることができます。このセクションでは、パラメーターについて説明し、processor_desensitize プラグインの例を示します。
制限
フォームベースの構成: テキストログとコンテナーの標準出力を収集する場合に利用できます。
JSON 構成: テキストログを収集する場合には利用できません。
構成手順
processor_desensitize プラグインは Logtail 1.3.0 以降でサポートされています。
フォームベースの構成
[プロセッサータイプ] を [データマスキング] に設定します。次の表にパラメーターを示します。
パラメーター
パラメーター
説明
ソースフィールド
ログフィールドの名前。
マスキング方法
マスキング方法。有効な値:
文字列置換: 機密コンテンツを文字列に置き換えます。[置換文字列] パラメーターで宛先文字列を指定できます。
md5: 機密コンテンツを対応する MD5 ハッシュに置き換えます。
機密データコンテンツ
機密コンテンツを抽出する方法。有効な値:
フィールド全体: すべてのコンテンツを抽出します。これにより、宛先フィールドのすべてのコンテンツが置き換えられます。
正規表現: 正規表現を使用して機密コンテンツを抽出します。
置換文字列
機密コンテンツの置換に使用される文字列。
このパラメーターは、[マスキング方法] を [文字列置換] に設定した場合に必要です。
機密コンテンツのプレフィックスの正規表現
機密コンテンツのプレフィックスに一致する正規表現。
このパラメーターは、[機密データコンテンツ] を [正規表現] に設定した場合に必要です。
機密コンテンツの正規表現
機密コンテンツに一致する正規表現。
このパラメーターは、[機密データコンテンツ] を [正規表現] に設定した場合に必要です。
例
宛先フィールドのすべてのコンテンツを文字列に置き換えます。
生ログ
"password" : "123abcdefg"Logtail プラグイン処理構成

結果
"password":"********"
JSON 構成
type を processor_desensitize に設定します。次の表に detail のパラメーターを示します。
パラメーター
パラメーター
タイプ
必須
説明
SourceKey
文字列
はい
ログフィールドの名前。
Method
文字列
はい
マスキング方法。有効な値:
const: 機密コンテンツを文字列に置き換えます。ReplaceString パラメーターで宛先文字列を指定できます。
md5: 機密コンテンツを対応する MD5 ハッシュに置き換えます。
Match
文字列
いいえ
機密コンテンツを抽出する方法。有効な値:
full (デフォルト): すべてのコンテンツを抽出します。これにより、宛先フィールドのすべてのコンテンツが置き換えられます。
regex: 正規表現を使用して機密コンテンツを抽出します。
ReplaceString
文字列
いいえ
機密コンテンツの置換に使用される文字列。
このパラメーターは、Method を const に設定した場合に必要です。
RegexBegin
文字列
いいえ
機密コンテンツのプレフィックスに一致する正規表現。
このパラメーターは、Match を regex に設定した場合に必要です。
RegexContent
文字列
いいえ
機密コンテンツに一致する正規表現。
このパラメーターは、Match を regex に設定した場合に必要です。
例
例 1
宛先フィールドのすべてのコンテンツを文字列に置き換えます。これを行うには、Method を const に、Match を full に設定します。
生ログ
"password" : "123abcdefg"Logtail プラグイン処理構成
{ "type" : "processor_desensitize", "detail" : { "SourceKey" : "password", "Method" : "const", "Match" : "full", "ReplaceString": "********" } }結果
"password":"********"
例 2
正規表現を使用して宛先フィールドの機密コンテンツを指定し、対応する MD5 ハッシュに置き換えることができます。これを行うには、Method を md5 に、Match を regex に設定します。
生ログ
"content" : "[{'account':'1234567890','password':'abc123'}]"Logtail プラグイン処理構成
{ "type" : "processor_desensitize", "detail" : { "SourceKey" : "content", "Method" : "md5", "Match" : "regex", "RegexBegin": "'password':'", "RegexContent": "[^']*" } }結果
"content":"[{'account':'1234567890','password':'e99a18c428cb38d5f260853678922e03'}]"
フィールド暗号化プラグイン (拡張)
processor_encrypt プラグインを使用して、指定されたフィールドを暗号化できます。このセクションでは、パラメーターについて説明し、processor_encrypt プラグインの例を示します。
構成の説明
フォームベースの構成
[プロセッサータイプ] を [フィールド暗号化] に設定します。次の表にパラメーターを示します。
パラメーター | 説明 |
ソースフィールド | 暗号化するソースフィールド。複数のフィールドを追加できます。 |
キー | 暗号鍵。キーは 64 文字の 16 進文字列である必要があります。 |
初期化ベクトル | 暗号化のための初期化ベクトル (IV)。IV は 32 文字の 16 進文字列である必要があります。デフォルト値は |
保存パス | 暗号化パラメーターを読み取るファイルパス。このパラメーターが構成されていない場合は、Logtail 構成の [入力構成] で指定されたファイルパスが使用されます。 |
失敗時にソースデータを保持 | このオプションを選択し、暗号化に失敗した場合、システムは元のフィールド値を保持します。 このオプションを選択せず、暗号化に失敗した場合、フィールド値は |
JSON 構成
type を processor_encrypt に設定します。次の表に detail のパラメーターを示します。
パラメーター | タイプ | 必須 | 説明 |
SourceKey | 文字列の配列 | はい | ソースフィールドの名前。 |
EncryptionParameters | オブジェクト | はい | キーの構成。 |
Key | 文字列 | はい | 暗号鍵。キーは 64 文字の 16 進文字列である必要があります。 |
IV | 文字列 | いいえ | 暗号化のための初期化ベクトル (IV)。IV は 32 文字の 16 進文字列である必要があります。デフォルト値は |
KeyFilePath | ブール値 | いいえ | 暗号化パラメーターを読み取るファイルパス。このパラメーターが構成されていない場合は、Logtail 構成の [入力構成] で指定されたファイルパスが使用されます。 |
KeepSourceValueIfError | 文字列 | いいえ | 暗号化に失敗した場合に元のフィールド値を保持するかどうかを指定します。
|
データエンコーディングおよびデコーディングプラグイン (拡張)
processor_base64_encoding、processor_base64_decoding、または processor_md5 プラグインを使用して、フィールド値をエンコードまたはデコードできます。このセクションでは、各プラグインのパラメーターと例について説明します。
制限
フォームベースの構成: テキストログとコンテナーの標準出力を収集する場合に利用できます。
JSON 構成: テキストログを収集する場合には利用できません。
Base64 エンコーディング
Base64 デコーディング
MD5 エンコーディング
リファレンス
API 操作を呼び出して Logtail パイプラインを構成する:
コンソールで処理プラグインを構成する:
