このトピックでは、Simple Log Service (SLS) のデータ変換機能を使用して、ログが永続化される前に機密データを自動的にマスキングする方法について説明します。この方法により、LLM アプリケーションのインタラクションログ内の機密情報を効果的に保護できます。これにより、その後の運用保守、分析、監査におけるデータセキュリティが確保され、データセキュリティとコンプライアンス要件を満たすことができます。
シナリオ
インテリジェントカスタマーサービスや注文処理など、LLM アプリケーション上に構築されたアプリケーションでは、システムとユーザーのインタラクションログに、電話番号、配送先住所、銀行カード番号、内部インターフェース認証情報などの大量の機密データが記録されます。これらの生ログを直接保存すると、その後のクエリ、共有、または分析中にデータ侵害のリスクが生じます。この慣行は、個人情報保護法などの規制のデータ最小化の原則に違反します。このソリューションは、元のログ構造と分析価値を保持しながら、自動化されたリアルタイムの機密データマスキングを提供します。これにより、すべての担当者がマスキングされた安全なデータのみにアクセスできるようになり、ソースからデータセキュリティ防御を構築します。
ソリューションアーキテクチャ
このトピックでは、E コマース Copilot デモを例として、ビジネスロジックを変更することなく、Simple Log Service (SLS) のデータマスキング機能を使用してデータプライバシーとセキュリティを確保する方法を示します。LoongCollector をアプリケーションサーバにデプロイして、ログを SLS に送信できます。ログデータが Logstore にインジェストされる前に、SLS のデータ変換機能を使用して、事前設定された SPL マスキングスクリプトを実行し、指定されたフィールドをマスキングできます。処理された安全なログは、その後の分析のために保存されます。
-
Dify プラットフォーム: Copilot の中心ハブであり、ユーザーインテント認識、サービス呼び出しオーケストレーション、および LLM 応答生成を担当します。
-
ビジネスサービスレイヤー: 返金、注文、物流などのコア API を提供します。
-
ログパイプライン: LoongCollector は、さまざまなサービスからログを統一的に収集し、SLS にプッシュするために使用されます。
-
SLS マスキング: ログが Logstore にインジェストされる前に、機密フィールドが自動的にマスキングされます。
-
使用レイヤー: マスキングされたログは、運用保守、運用、セキュリティチームによる安全な使用が可能です。
事前準備
ログを収集する前に、Project と Logstore を作成して管理および保存する必要があります。これらのリソースをすでに持っている場合は、この手順をスキップして、「ステップ 1: マシングループの構成 (LoongCollector のインストール)」に進むことができます。
実装手順
次の手順では、ログの収集からマスキングルールの構成までのプロセス全体を説明します。
ステップ 1: マシングループの構成 (LoongCollector のインストール)
事前準備を完了したら、LoongCollector をサーバーにインストールし、マシングループに追加する必要があります。
次のインストール手順は、ログソースが Alibaba Cloud ECS インスタンスであり、そのインスタンスと SLS Project が同じ Alibaba Cloud アカウントに属し、同じリージョンにある場合にのみ適用されます。
ECS インスタンスと Project が異なるアカウントまたはリージョンにある場合、またはログソースが自己管理型サーバーである場合は、「LoongCollector のインストールと構成」をご参照ください。
次の手順に従います。
-
Logstore ページで、ターゲット Logstore 名の左側にある
をクリックして Logstore を展開します。 -
[データ取り込み] の横にある
アイコンをクリックします。表示されるダイアログボックスで、[クイックデータ取り込み]、[単一行テキストログ] の順に選択し、[今すぐ取り込む] をクリックします。 -
[マシン グループの設定] ページで、以下のパラメーターを設定します。
-
シナリオ: ホストシナリオ
-
インストール環境: ECS
-
マシングループの構成: ターゲットサーバーの LoongCollector インストールステータスとマシングループ構成に基づいて操作を選択します。
-
LoongCollector がインストール済みで、すでにマシングループに追加されている場合は、[ソース マシングループ] リストで直接確認し、[適用済み マシングループ] リストに追加します。再度作成しないでください。
-
LoongCollector がインストールされていない場合、[マシングループの作成] をクリックできます:
次の手順では、ワンクリックインストール機能を使用して LoongCollector を自動的にインストールし、マシングループを作成する方法について説明します。
-
システムは、Project と同じリージョンにある ECS インスタンスを自動的にリストします。ログを収集するインスタンスを 1 つ以上選択します。
-
[インストールおよびマシングループとして作成] をクリックします。システムは、選択した ECS インスタンスに LoongCollector を自動的にインストールします。
-
マシングループの [名前] を設定し、[OK] をクリックします。
説明インストールが失敗するか、保留状態のままになる場合は、ECS インスタンスが Project と同じリージョンにあるかどうかを確認してください。
-
-
-
-
ハートビートステータスの確認: [次へ] をクリックすると、[マシングループのハートビートステータス] ページが表示されます。 [ハートビート] ステータスを確認できます。 ステータスが OK の場合、マシングループは正常に接続されています。 [次へ] をクリックして Logtail 構成ページに進みます。
ステータスが FAIL の場合、ハートビート接続の確立に時間がかかる場合があります。約 2 分待ってからハートビートステータスをリフレッシュしてください。ステータスがまだ FAIL の場合は、「ハートビート例外のトラブルシューティング」をご参照ください。
ステップ 2: ログ収集の構成
LoongCollector のインストールおよびマシングループの構成を完了した後、[Logtail 構成] ページに移動して、ログ収集および処理ルールを設定できます。
グローバル設定:
-
[設定名]:収集設定のカスタム名を入力します(例:
llm-app-log-collection)。
入力設定:
-
タイプ: テキストログ収集。
-
ファイルパス:アプリケーションログファイルのパスと名前を指定します。 たとえば、
/logs/app/*.logと指定すると、/logs/app/ディレクトリ内で、末尾が.logのファイルがすべて収集されます。 -
最大ディレクトリモニタリングの深さ: [ファイルパス] で
**ワイルドカードが一致する最大のディレクトリの深さです。デフォルト値は 0 で、現在のディレクトリレベルのみをモニタリングすることを示します。
グローバル構成および入力構成を完了したら、[次へ] をクリックして、[クエリおよび分析の構成] ページに移動します:
-
システムはデフォルトでフルテキストインデックスを有効にします。これにより、キーワードを使用して生ログコンテンツを検索できます。
-
フィールドによる完全一致検索を実行するには、[プレビュー データ] が読み込まれた後に、[自動インデックス生成] をクリックします。Simple Log Service は、プレビュー データ内の最初のエントリに基づいて、フィールドインデックス を生成します。
構成の完了後、[次へ] をクリックして、セットアップを完了します。
ステップ 3: インジェスト側マスキングルールの構成
このトピックの E コマース Copilot ログの場合、プロジェクトでデータプロセッサを作成して、IP アドレスやメールアドレスなどの機密コンテンツをインテリジェントに識別し、マスキングできます。電話番号、ID カード番号、クレジットカード番号、名前、住所情報については、プレフィックスとサフィックスの保持をカスタマイズできます。
SLS が提供するマスク機能は、ビルトインマッチングとキーワードマッチングの 2 つのモードをサポートしています。これらのモードは、ログ内の機密情報を効率的かつ正確に識別し、マスキングします。
-
ビルトインマッチング (
buildin): マスク機能は、電話番号、ID カード、メールアドレス、IP アドレス、固定電話番号、銀行カード番号の 6 種類の一般的な機密情報を識別するビルトイン機能を備えた即時使用可能機能です。 -
キーワードマッチング(
キーワード):このモードでは、一般的なキーと値のペア形式(例: "key":"value"、'key':'value'、key=value)に準拠する任意のテキスト内の機密情報を、インテリジェントに特定します。
-
左側のナビゲーションウィンドウで、
を選択します。 -
[インジェストプロセッサー]タブで、[作成]をクリックし、次のパラメーターを設定します。
-
プロセッサ名: プロセッサのカスタム名 (例: masking_processor) を入力します。
-
処理失敗: 生データを保持。
-
SPL:
* | extend content = mask (content,' [ {"mode":"buildin","types":["IP_ADDRESS","EMAIL", "LANDLINE_PHONE"]}, {"mode":"buildin","types":["PHONE","IDCARD","CREDIT_CARD"],"maskChar":"*","keepPrefix":3,"keepSuffix":4}, {"mode":"keyword","keys":["address"],"maskChar":"*","keepPrefix":3,"keepSuffix" :1}, {"mode":"keyword","keys":["name"],"maskChar":"*","keepPrefix":1}]')
-
-
SPL マスキングスクリプトをデバッグします。検証後、[保存] をクリックします。
ステップ 4: インジェストプロセッサの関連付けとログの表示
-
左側のナビゲーションウィンドウで、
を選択し、ターゲット Logstore 名の横にある
をクリックして展開します。 -
をクリックします。[Logstore プロパティ] ページで、[取り込みプロセッサ] をクリックします。 -
[変更] をクリックし、新しく作成されたインジェストプロセッサを選択して、[保存] をクリックします。
-
右上隅の [クエリと分析] をクリックすると、処理されたログが表示され、マスキングの前後で比較できます:


マスキング前のデータとの比較により、次のことが明らかになります。
-
セキュリティと可用性のバランスを取るために、必要に応じてデータを保持: さまざまな機密フィールドのプレフィックスとサフィックスの保持をカスタマイズできます。たとえば、電話番号の最初の 3 桁と最後の 4 桁を保持することで、ユーザーのプライバシーを保護しながら、運用保守エンジニアが問題のトラブルシューティングやユーザー ID の検証を行うのに役立ちます。これにより、セキュリティとデータの可用性のバランスが取れます。
-
正規表現なしの簡素化された構成: キーワードマッチングモードでは、ネストされた多層 JSON 構造であっても、最も内側のキーを構成するだけで値を正確に一致させ、マスキングできます。これにより、さまざまなキーと値のペアの形式に対応するための複雑な正規表現が不要になり、構成が大幅に簡素化されます。中国語文字の正確なマスキング: 名前と住所は、構成されたルールに従って正確にマスキングされ、エンコーディングの問題によって引き起こされるマスキングの失敗を防ぎます。
さらに、マスク機能は、マスキングに正規表現を使用する場合と比較して、パフォーマンス上の大きな利点を提供します。これにより、ログ処理レイテンシーが効果的に削減され、特に複雑なシナリオや大量のデータの場合に、全体的なパフォーマンスが向上します。
ログ分析
データマスキングは、同じログを 3 つの視点から提供します。
-
運用保守: プライベートデータにアクセスすることなく、コールチェーンとパフォーマンスボトルネックを表示します。
-
運用: 個々のユーザーではなく、傾向、効率、エクスペリエンスを表示します。
-
セキュリティ: 漏れを心配することなく、ポリシーの実行と監査証跡を表示します。
このシステムでは、データは孤立した島ではなく、有界でインテリジェントなアセットです。データコンプライアンス、分析、トラブルシューティングは並行して進めることができます。
運用保守エンジニア: 特定
運用保守チームにとって、トラブルシューティングは多くの場合、ユーザーの電話番号、住所、アカウント番号を含むプレーンテキストログに依存しており、高いコンプライアンスリスクを伴います。マスキングされたログは、ソースからこのプロセスを保護します。トラブルシューティングシナリオでは、`trace_id` を使用してコールチェーン全体を取得できます。
-
Copilot のインテント認識から、
-
注文サービス、返金サービス、サードパーティ決済ゲートウェイまで、
-
返された結果と時間消費まで。
ユーザー ID を検証する場合、ログには銀行カード番号や電話番号などのマスキングされた情報のみが保持されます。これは、ビジネス側のユーザー情報との比較には十分であり、元の値を公開することはありません。チーム間のコラボレーションであっても、マスキングされたログで直接問題を特定でき、データ侵害のリスクを回避できます。
運用チーム: 分析
レポートの価値は、個人情報にアクセスすることではなく、全体的な傾向を特定することにあります。マスキングされた運用レポートでは、ユーザー情報は匿名化されます。レポートには、チームがデータからインサイトを得るのに役立つ主要なビジネスメトリックのみが保持されます。
レポートから、運用チームは次のことを迅速に理解できます。
-
全体概要: ユニークビジター (UV)、ページビュー (PV)、Copilot インタラクション数、総問い合わせ数などの主要なメトリックは、運用概要を迅速に把握するのに役立ちます。
-
問い合わせ分類: 返金、プロダクト、物流の問い合わせの割合は、ユーザーの関心事を明確に理解するのに役立ちます。
-
問題分類: 機能、価格、仕様に関する質問など、ユーザーの質問の焦点を理解します。
-
繰り返し問い合わせ率: サービス品質を測定し、最適化が必要な領域を迅速に特定します。
-
ユーザー動作: 問い合わせ後の購入コンバージョンファネルと人気のある問い合わせキーワードは、プロダクトとマーケティング戦略の最適化に役立ちます。
-
主要ユーザー: 上位 10 人の問い合わせユーザー。ユーザー情報はマスキングされていますが、VIP レベルと問い合わせ数を使用してサービス戦略を差別化できます。
さらに、レポート内のすべてのユーザー情報はマスキングされます。電話番号や名前などの個人情報はマスキングされ、特定のユーザーに遡って追跡できないようにすることで、ユーザーのプライバシーを完全に保護します。
セキュリティおよびコンプライアンスチーム: 監査
セキュリティおよびコンプライアンスチームにとって、ログに関連する最大のリスクは、プレーンテキストデータの存在です。このトピックで説明するマスキングソリューションは、データインジェスト前にマスキングを実行します。これにより、不完全な機密データマスキングとプレーンテキストデータのエクスポートの可能性が根本的に排除されます。さらに、SLS は包括的なコンプライアンスサポート機能を提供します。
-
データストレージ: ログ保存期間をカスタマイズできます。ネットワーク監査関連ログの保存期間を 180 日以上に設定して、セキュリティ監査要件を満たすことができます。
-
データ操作監査:ログの使用時にユーザーレベルの操作が発生します。これらの操作がコントロールプレーンでのコンソール操作、OpenAPI 呼び出し、またはデータプレーンでのビジネス ログ使用のいずれであるかにかかわらず、ログを表示、分析、またはエクスポートするユーザーは、承認済みの範囲内のコンテンツのみを参照できます。さらに、CloudLens for SLS では、プロジェクトおよび Logstore のアセット使用量のモニタリングが提供されます。
まとめ
LoongCollector のログ収集と Logstore のデータマスキングがクローズドループを形成すると、ログはインジェスト時に安全に変換されます。これにより、運用保守チームは問題を特定し、運用チームはデータを分析し、セキュリティチームは監査を実行できます。これは一度限りの強化ではなく、インジェスト側マスキング、デフォルトのマスキング済みストレージ、ロールベースアクセスで構成される再利用可能なパスです。これをベースラインとして、企業は Copilot のビジネスカバー率を自信を持って拡大し、効率性の恩恵とコンプライアンスの確実性を共存させることができます。