Simple Log Service (SLS) は、収集時にログ内の機密フィールドをマスク、暗号化、エンコードするプラグインを提供します。
例
次の表では、データマスキング プラグインを使用した場合と使用しない場合で、SLS に保存された生ログを比較します。
|
生ログ |
プラグインなし |
プラグインあり |
|
Content: "[{'account':'1812213231432969','password':'04a23f38'}, {'account':'1812213685634','password':'123a'}]" |
Content: "[{'account':'1812213231432969','password':'******'}, {'account':'1812213685634','password':'******'}]" |
データセキュリティプラグイン
SLS は、以下のデータセキュリティプラグインを提供します。
|
パラメーター |
タイプ |
説明 |
|
データマスキング |
ネイティブ |
ログフィールドをマスクします。 |
|
データマスキング |
拡張 |
機密データを指定された文字列または MD5 ハッシュに置き換えます。 |
|
フィールド暗号化 |
拡張 |
指定されたフィールドのコンテンツを暗号化します。 |
|
データのエンコードとデコード |
拡張 |
データの Base64 デコード、Base64 エンコーディング、および MD5 エンコードを行います。 |
エントリーポイント
Logtailプラグインを使用してログを処理する場合は、Logtail設定を作成または変更するときにLogtailプラグイン設定を追加できます。 詳細については、「概要」をご参照ください。
ネイティブプラグインと拡張プラグインの違い
ネイティブプラグイン: C++ で記述されており、より高いパフォーマンスを実現します。
拡張プラグイン: Go で記述されており、より豊富なエコシステムと高い柔軟性を提供します。 ネイティブプラグインでは処理できない複雑なビジネスログに使用します。
-
拡張プラグインのパフォーマンス制限
-
ログ収集の制限
-
拡張プラグインはテキストログを行モードで処理するため、
__tag__:__path__や__topic__などのファイルレベルのメタデータが各ログエントリに保存されます。 -
拡張プラグインを追加すると、タグに関連する機能に影響します:
-
アグリゲーター構成を追加しない限り、コンテキスト検索と LiveTail は利用できません。
-
__topic__フィールドの名前は__log_topic__に変更されます。 アグリゲーター構成を追加すると、__topic__と__log_topic__の両方のフィールドがログに存在します。__log_topic__フィールドが不要な場合は、「フィールド削除プラグイン」を使用して削除できます。 -
__tag__:__path__などのフィールドでは、ネイティブのフィールドインデックスが作成されなくなります。 これらのフィールドには フィールドインデックスを作成する 必要があります。
-
-
データマスキングプラグイン (ネイティブ)
データマスキングプラグインは、ログ内の機密データをマスクします。
設定
|
パラメーター |
説明 |
|
[元のフィールド] |
解析前の生ログコンテンツを格納するフィールドです。 |
|
[マスキング方法] |
マスキング方式です。有効値:
|
|
[文字列の置き換え] |
機密コンテンツを置き換える文字列です。 このパラメーターは、[マスキング方法] が const に設定されている場合にのみ必要です。 |
|
[置き換えられたコンテンツより前のコンテンツの式] |
先行するコンテンツに一致させて機密データを特定するための正規表現です。 式は RE2 構文 に従う必要があります。 |
|
[置き換えられたコンテンツの式] |
マスク対象の機密コンテンツに一致する正規表現です。 式は RE2 構文 に従う必要があります。 |
|
[一致するすべてのコンテンツを置き換える] |
|
データマスキングプラグイン
processor_desensitize プラグインは、ログ内の機密データを指定した文字列または MD5 ハッシュに置き換えます。
制限事項
-
フォームベースの設定:テキストログとコンテナの標準出力を収集する場合にサポートされます。
-
JSON ベースの設定:テキストログの収集ではサポートされません。
設定
Logtail バージョン 1.3.0 以降では、processor_desensitize プラグインがサポートされています。
フォーム
[プロセッサータイプ] を データマスキング に設定します。次の表では、関連パラメーターについて説明します。
-
パラメーター
パラメーター
説明
[元のフィールド]
ログフィールドの名前です。
[マスキング方法]
データマスキングの方法です。有効値:
-
[文字列の置き換え]: 機密コンテンツを文字列で置換する機能です。置換後の文字列は、文字列の置き換え パラメーターで指定できます。
-
md5: 機密コンテンツをその MD5 ハッシュで置き換えます。
[機密データコンテンツ]
機密コンテンツを抽出する方法です。有効値:
-
[フィールド全文]: 対象フィールドの値全体を置き換えます。
-
[正規表現指定]: 正規表現を使用して機密コンテンツを抽出します。
[文字列の置き換え]
機密コンテンツを置き換える文字列です。
マスキング方法 が 文字列の置き換え の場合に必須です。
[機密コンテンツのプレフィックス正規表現]
機密コンテンツのプレフィックスに一致する正規表現です。
機密データコンテンツ が [正規表現ベースの指定] の場合は必須です。
[機密コンテンツの正規表現]
機密コンテンツに一致する正規表現です。
機密データコンテンツ が 正規表現による指定 の場合、必須です。
-
-
設定例
ターゲットフィールドの値全体を文字列に置き換えます。
-
生ログ
"password" : "123abcdefg" -
Logtail プラグイン構成:[プロセッサータイプ] を [データマスキング] に設定し、[ソースフィールド] を
password、[データマスキング方法] を [文字列置換]、[機密データの内容] を [フィールド全体]、[置換文字列] を********に設定します。 -
処理結果
"password":"********"
-
JSON
type を processor_desensitize に設定します。detail オブジェクト内のパラメーターを次の表に示します。
-
パラメーター
パラメーター
タイプ
必須
説明
SourceKey
String
はい
ログフィールドの名前です。
Method
String
はい
データマスキングの方法です。有効値:
-
const:機密コンテンツを文字列に置き換えます。ReplaceStringパラメーターを使用して、ターゲット文字列を指定できます。 -
md5:機密コンテンツを MD5 ハッシュに置き換えます。
Match
String
いいえ
機密コンテンツを抽出する方法です。有効値:
-
full(デフォルト):フィールドの値全体を置き換えます。 -
regex:正規表現を使用して機密コンテンツを抽出します。
ReplaceString
String
条件付き
機密コンテンツを置き換える文字列です。
Methodがconstに設定されている場合に必要です。RegexBegin
String
条件付き
機密コンテンツのプレフィックスに一致する正規表現です。
Matchがregexに設定されている場合に必要です。RegexContent
String
条件付き
機密コンテンツに一致する正規表現です。
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 プラグインは、指定したフィールドの内容を暗号化します。
構成
フォーム
[プロセッサータイプ] を フィールド暗号化 に設定します。次の表に関連パラメーターを示します。
|
パラメーター |
説明 |
|
[元のフィールド] |
暗号化するソースフィールドです。複数のフィールドを追加できます。 |
|
[AccessKey ペア] |
暗号化キーです。64 文字の 16 進数文字列である必要があります。 |
|
[初期ベクトル] |
暗号化の初期化ベクトルです。32 文字の 16 進数文字列である必要があります。デフォルト値は |
|
[保存パス] |
暗号化パラメーターを含むファイルへのパスです。指定しない場合、プラグインは Logtail 構成の [入力] 設定にある [ファイルパス] を使用します。 |
|
[生データの保持に失敗しました] |
このオプションを選択すると、暗号化に失敗した場合にソースフィールドの値が保持されます。 このオプションを選択しない場合、暗号化に失敗するとフィールド値は |
JSON
type を processor_encrypt に設定します。次の表に detail パラメーターを示します。
|
パラメーター |
タイプ |
必須 |
説明 |
|
|
文字列の配列 |
はい |
暗号化するソースフィールドです。 |
|
|
オブジェクト |
はい |
暗号化設定です。 |
|
|
文字列 |
はい |
暗号化キーです。64 文字の 16 進数文字列である必要があります。 |
|
|
文字列 |
いいえ |
暗号化の初期化ベクトルです。32 文字の 16 進数文字列である必要があります。デフォルト値は |
|
|
文字列 |
いいえ |
暗号化パラメーターを含むファイルへのパスです。指定しない場合、プラグインは Logtail 構成の [入力] 設定にある [ファイルパス] を使用します。 |
|
|
ブール値 |
いいえ |
暗号化に失敗した場合にソース値を保持するかどうかを指定します。
|
データエンコーディングとデコーディング プラグイン
processor_base64_encoding、processor_base64_decoding、processor_md5 プラグインは、フィールド値をエンコードおよびデコードします。
制限事項
-
フォームベースの設定:テキストログとコンテナの標準出力を収集する場合に利用できます。
-
JSON ベースの設定:テキストログの収集ではサポートされていません。
Base64 エンコーディング
Base64 デコーディング
MD5 ハッシュ化
関連ドキュメント
-
API を使用した Logtail パイプライン設定の管理:
-
コンソールでの処理プラグインの設定: