tencent cloud

Cloud Log Service

ログのマスキング

ダウンロード
フォーカスモード
フォントサイズ
最終更新日: 2026-10-12 14:51:41
AI翻訳

シナリオ1

シナリオ説明

ある会社のログでは、一部のログにユーザー氏名、身分証明書番号、銀行カード番号などの機密情報が含まれる可能性があります。ログ書き込み仕様を最適化するために、ログ内の機密データを検出および統計する必要があります。

元のログ

[
{
"operation_time": "2025-04-12 15:32:01",
"user_info": "張三さんはサービス開通を申請し、身分証明書番号は522301199201230123です"、
「operation_detail」:「成約金額200元」
},
{
"operation_time": "2025-04-12 15:32:01",
"user_info": "李四さんはサービス開通を申請し、身分証明書番号は522301199201230123、銀行カード番号は6228880123456789123です"、
「operation_detail」:「成約金額100元」
},
{
"operation_time": "2025-04-12 15:32:01",
"user_info": "王五さんはサービス開通を申請し、身分証明書番号は522***1992****0123、銀行カード番号は6228****2345****123です"、
「operation_detail」:「成約金額500元」
}
]

シナリオ分析

データ加工を使用して、元のログから身分証明書番号、銀行カード番号などの機密情報を検出します。機密情報を検出した後、そのログにフィールドSENSITIVE_FLAGSを追加します。このフィールドは、検出された機密情報項目を格納するために使用されます。加工結果をターゲットログトピックに書き込みます。その後、ターゲットログトピックでSQLを使用して機密情報のタイプと件数を統計できます。

DSL加工関数

//scope=ALL_FIELDSは、ログ全体のすべてのフィールドを検索することを意味します。
//sample_ratio=1はすべてのログに対して機密情報検出を行うことを意味し、0.5は50%のログに対して検出を行うことを表します。
sensitive_detection(scope="ALL_FIELDS", sample_ratio=1, discover_items="CHINA_IDCARD,DEBIT_CARD")

加工結果

[
//1番目のデータには身分証明書の機密情報項目のみが含まれています。
{
"SENSITIVE_FLAGS":"CHINA_IDCARD",
「operation_detail」:「成約金額200元」、
"operation_time":"2025-04-12 15:32:01",
「user_info」:「張三さんはサービス開通を申請し、身分証明書番号は522301199201230123です」
},
//2番目のデータには身分証明書と銀行カードの2種類の機密情報項目が含まれています。
{
"SENSITIVE_FLAGS":"CHINA_IDCARD,DEBIT_CARD",
「operation_detail」:「成約金額100元」、
"operation_time":"2025-04-12 15:32:01",
「user_info」:「李四さんはサービス開通を申請し、身分証明書番号は522301199201230123、銀行カード番号は6228880123456789123です」
},
//3番目のデータは安全であるため、SAFEとしてマークされます。
{
"SENSITIVE_FLAGS":"SAFE",
「operation_detail」:「成約金額500元」、
"operation_time":"2025-04-12 15:32:01",
「user_info」:「王五さんはサービス開通を申請し、身分証明書番号は522***1992****0123、銀行カード番号は6228****2345****123です」
}
]

機密項目の統計分析

select
case when
SENSITIVE_FLAGS like '%CHINA_ID%'
then '身分証明書の数'
when
SENSITIVE_FLAGS like '%DEBIT_CARD%'
then '銀行カードの数' else 'other'
end as type ,
count(*) as 「機密情報項目」
group by type HAVING type != 'other'
limit 10000
統計分析結果:


シナリオ2

シナリオ説明

あるユーザーがログをCLS(Cloud Log Service)に収集します。ログデータにはユーザーID(dev@12345)、ログインIPアドレス(11.111.137.225)、携帯電話番号(13912345678)が含まれています。ユーザーはこれらの機密情報をマスキングしたいと考えています。

シナリオ分析

このログ自体は構造化されたログであるため、フィールドに対して直接マスキング処理を行うことができます。

元のログ

{
"Id": "dev@12345",
"Ip": "11.111.137.225",
"phonenumber": "13912345678"
}

DSL加工関数

fields_set("Id",regex_replace(v("Id"),regex="\\d{3}", replace="***",count=0))
fields_set("Id",regex_replace(v("Id"),regex="\\S{2}", replace="**",count=1))
fields_set("phonenumber",regex_replace(v("phonenumber"),regex="(\\d{0,3})\\d{4}(\\d{4})", replace="$1****$2"))
fields_set("Ip",regex_replace(v("Ip"),regex="(\\d+\\.)\\d+(\\.\\d+\\.\\d+)", replace="$1***$2",count=0))

DSL加工関数の詳細解説

1. Idフィールドをマスキング処理し、結果はdev@***45です。
fields_set("Id",regex_replace(v("Id"),regex="\\d{3}", replace="***",count=0))
2. Idフィールドに対して二次マスキング処理を行い、結果は**v@***45です。
fields_set("Id",regex_replace(v("Id"),regex="\\S{2}", replace="**",count=1))
3. phonenumberフィールドをマスキング処理し、中間の4桁を****に置換し、結果は139****5678です。
fields_set("phonenumber",regex_replace(v("phonenumber"),regex="(\\d{0,3})\\d{4}(\\d{4})", replace="$1****$2"))
4. IPフィールドをマスキング処理し、第2セグメントを***に置換し、結果は11.***.137.225です。
fields_set("Ip",regex_replace(v("Ip"),regex="(\\d+\\.)\\d+(\\.\\d+\\.\\d+)", replace="$1***$2",count=0))

加工結果

{"Id":"**v@***45","Ip":"11.***.137.225","phonenumber":"139****5678"}


ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック