Amazon Web Services ブログ

Amazon CloudWatch Logs Data Protection による機密ログデータの検出と保護

Amazon Web Services (AWS) 上で実行されるお客様のアプリケーションでは、個人を特定できる情報 (PII) や保護された健康情報 (PHI) などの機密データを扱う必要がある場合があります。その結果、機密ログデータがアプリケーションの Observability データの一部として意図的または意図せずに記録される可能性があります。包括的なログ記録はアプリケーションのトラブルシューティング、モニタリング、(原因)分析に重要ですが、記録された機密情報はデータセキュリティとコンプライアンスの観点から重大なリスクとなります。

高度に規制された業界の顧客は通常、GDPR、CCPA、HIPAA、SOX、GLBA、PCI DSS、ISO/IEC 27001、SEC サイバーセキュリティガイダンス、州のプライバシー法、FTC 消費者保護法など、多数の厳格なデータ保護規制を遵守する必要があります。データ漏えいや非準拠は、莫大な罰金、訴訟、評判の失墜、事業の中断、システムのダウンタイム、顧客離れにつながる可能性があります。

このブログでは、Amazon CloudWatch Logs Data Protection を使用してログ内の機密データを検出および保護する方法、データ保護を検証する方法、非準拠の結果を収集および報告する方法を学びます。また、Amazon CloudWatch アラーム、通知、さらなる是正アクションを作成する方法についても学び、コンプライアンス要件を満たすために活用できます。

ソリューションの概要

Amazon CloudWatch Logs には、ログ記録されるデータから機密情報を自動的にマスクする CloudWatch Logs Data Protection があります。有効にすると、パターンマッチングと機械学習(ML)ベースのマスクが適用され、クレジットカード番号、社会保障番号などの機密データ種別が「*(アスタリスク)」で置き換えられます。現在、すぐに利用できる多くのマネージドデータ識別子があり、簡単に、そして大規模に適用できます。さらに、CloudWatch Logs Data Protection では、ビジネスの特定のニーズに合わせてカスタムデータ識別子を定義する機能もあります。マネージドデータ識別子は、資格情報、金融情報、PII(個人を特定できる情報)、PHI(保護された医療情報)、デバイス識別子を検出できます。この機能は、より細かい制御のためにロググループレベルで有効にしたり、アカウント内のすべてのログに大規模に適用するためにアカウントレベルで有効にしたりできます。

CloudWatch Logs Data Protection を有効にすると、データ保護規制に関する顧客のコンプライアンス要件を次の 3 つの重要な点で満たすのに役立ちます。

  1. 機密顧客データは、ロギングシステムに到達する前に匿名化されます。これにより、プレーンテキストデータの漏洩や不正アクセスのリスクを軽減し、以下の機密データを保護することができます。
    • 社内の一般従業員で機密情報を閲覧する権限のない者(内部の脅威に備えるため、信頼できるアクセスのみを許可する考え方に沿った対応)
    • ベンダーやサードパーティシステムが所有するダウンストリームシステム
  2. マスキングにより、コンプライアンス監査が簡素化されます。ログには機密データが保護されていることが証明され、元の値をマスキングせずに保存・保護する必要はありません。
  3. マスクは一度定義すれば、簡単にスケールして適用できます。

実現

CloudWatch Logs でデータ保護ポリシーを作成する際、アカウントレベルまたは特定のロググループレベルで作成できます。アカウントレベルのデータ保護ポリシーは、アカウント内のすべての既存および将来のロググループに適用されますが、ロググループレベルのデータ保護ポリシーは特定のロググループにのみ適用されます。アカウントレベルとロググループレベルのログデータ保護ポリシーは組み合わせて機能し、特定のユースケースのデータ識別子をサポートします。

CloudWatch Logs Data Protection をロググループレベルで有効化

ビジネスニーズやアプリケーションの設計方法によっては、より詳細な制御のためにロググループレベルでデータ保護を有効にしたい場合があります。

  • CloudWatch コンソール を開き、Logs > Log Groups 画面に移動します。
  • 対象のロググループを選択し、メニューまたは「データ保護」タブから、データ保護ポリシーを作成します。
図 1. CloudWatch コンソールでデータ保護ポリシーを作成する

図 1. CloudWatch コンソールでデータ保護ポリシーを作成する

  • ビジネスニーズに応じて、マネージドデータ識別子(例えば顧客や商品など、お客様の企業固有のデータ)を選択してください。
  • 監査結果を送信するためのロググループを新規に作成するか、既存のものを選択してください。
  • 監査先の選択は任意ですが、監査とレポーティングのために強く推奨されます。
図 2. データ保護ポリシー構成を保存

図 2. データ保護ポリシー構成を保存

CloudWatch Logs Data Protection をアカウントレベルで有効化

アカウントレベルでデータ保護ポリシーを有効にすると、アカウント内のすべてのロググループに適用されるので便利です。これは現在のロググループと、このアカウントの下で今後作成されるロググループに適用されます。

  • 左下の 設定 に移動し、ログ タブを選択して 設定 を選択します
図 3. データ保護アカウントポリシーの作成

図 3. データ保護アカウントポリシーの作成

  • ビジネスニーズに関連するすべての マネージドデータ識別子 を選択し、監査結果の 監査先 を選んで、データ保護をアクティブ化 します。
図 4. データ保護アカウントポリシーを保存

図 4. データ保護アカウントポリシーを保存

カスタムデータ識別子の構成

独自のデータ識別子を使用して、独自のカスタム正規表現を定義し、マネージドデータ識別子が利用できない場合のユースケースに対応できます。金融機関の一般的な例は、SWIFT コード(ビジネス識別コード: BIC)です。SWIFT コードは、ビジネストランザクションのルーティングとビジネス関係者の識別のための国際標準です。SWIFT コードは、金融機関の名称、国、所在地、支店を識別する 8 桁から 11 桁のコードです。SWIFT コードそのものは機密情報ではありませんが、ビジネスニーズに応じてトランザクションログ内で保護することを選択できます。独自のデータ識別子は、マネージドデータ識別子と組み合わせて使用することもできます。また、長期保持のニーズに応じて監査結果を Amazon Simple Storage Service (Amazon S3) バケットに送信したり、リアルタイムストリーミングのために Amazon Data Firehose に送信することもできます。

図 5. カスタムデータ識別子構成を定義する

図 5. カスタムデータ識別子構成を定義する

ログ内の機密データのマスク化の検証

ロググループのログを確認することで、機密データがマスクされていることを確認できます。これは CloudWatch Live Tail でリアルタイムに近い形で実行できます。または、CloudWatch Logs Insights を使用してログデータを照会することもできます。

図 6. ログ内の機密データのマスキングを確認する

図 6. ログ内の機密データのマスキングを確認する

図 7. Live Tail で機密データのマスキングを確認する

図 7. Live Tail で機密データのマスキングを確認する

図 8. Logs Insights での機密データマスキングの検証する

図 8. Logs Insights での機密データマスキングの検証する

特権アクセスを持つユーザーで非マスク化されたデータを表示する

マスクされていないデータを表示するには、logs:Unmask の権限が必要です。次の CloudWatch Logs Insights クエリの例を使用すると、マスクされていないログを確認できます。

fields @timestamp, @message, unmask(@message)
| sort @timestamp desc
| limit 20
図 9. 特権を昇格して非マスク化されたデータを表示する

図 9. 特権を昇格して非マスク化されたデータを表示する

検出結果に対するアラームと通知の定義

CloudWatch は、デフォルトで LogEventsWithFindings という名前のメトリクスを作成し、特定のロググループに機密データが含まれるログイベントの数をカウントします。このメトリクスに基づいて CloudWatch アラームを定義すれば、機密データが検出されたときに通知を受け取り、その後対処アクションを行うことができます。

図 10. 検出結果のデフォルトメトリックによるログイベントのアラームの定義

図 10. 検出結果のデフォルトメトリックによるログイベントのアラームの定義

以下は アラームの定義の例です。期間中のデータポイントの数を集計するために、サンプル数統計を選択します。これは、発生するたびにカウンタが 1 増えます。静的しきい値タイプ、以上条件と、しきい値を 1 に設定します。通知を送信するために、新しい Amazon Simple Notification Service (Amazon SNS) トピックを作成するか、既存のトピックを選択します。通知を受け取るメールアドレスをそのトピックに登録します。

図 11. アラームのメトリクス設定を指定する

図 11. アラームのメトリクス設定を指定する

図 12. アラームのメトリクス条件を指定する

図 12. アラームのメトリクス条件を指定する

図 13. アラームに対して SNS トピックへの通知を設定する

図 13. アラームに対して SNS トピックへの通知を設定する

機密データ監査の結果と報告

各ロググループの機密データイベント数は、ロググループページで素早く確認できます。

図 14. ロググループページで機密データ件数を確認する

図 14. ロググループページで機密データ件数を確認する

コンプライアンスのニーズに従って、機密データの監査結果を CloudWatch Logs に送信することを選択した場合、各ログイベントに対して次の通り監査結果が生成されます。ロググループのリソース ARN とどのデータ識別子を確認することで、機密データが検出されたイベントソースを簡単に特定できます。これらの監査結果を Amazon S3 または Amazon Data Firehose に送信することも選択できます。

図 15. 機密データ監査の検出結果のログイベント構造を表示する

図 15. 機密データ監査の検出結果のログイベント構造を表示する

まとめ

このブログでは、機密データを扱うアプリケーションを持つお客様が、Amazon CloudWatch Logs Data Protection を活用して、ログ内の機密データを検出・保護し、データプライバシー規制の準拠要件を満たす方法をご紹介しました。また、CloudWatch Logs Data Protection を有効にする方法、機密データのマスキングを検証する方法、特権を持つユーザーが非マスク化されたデータを表示する方法、機密データの監査結果を収集して報告する方法、結果に対してアラームと通知を定義し、さらに修復アクションを行う方法についても説明しました。CloudWatch Logs 全体のセキュリティについて詳しくは、Amazon CloudWatch Logs のセキュリティ をご覧ください。

著者について

Sasi Kiran Malladi

Sasi Kiran Malladi は AWS の Principal Technical Account Manager です。AWS の最も大規模で戦略的な エンタープライズ企業が AWS をどのように利用するかに直接影響を与えています。Sasi は、経営陣がアジリティを取り入れ、高い影響力のあるクラウド変革を実現し、クラウド ソリューションが高い拡張性、柔軟性、および回復力を持つようにサポートしています。彼は金融サービス業界に深い専門知識を持ち、最大規模の銀行、決済、資本市場、保険会社の顧客と協力してきました。AWS に入社する前は、ソリューション アーキテクト ディレクターとして、お客様のデジタル/クラウド変革とアプリケーション現代化の取り組みをサポートしていました。LinkedIn: linkedin.com/in/sasikiranm

David Myers

David Myers は、AWS Enterprise Support の Sr. Technical Account Manager です。20 年以上の技術経験があり、キャリアの始まりからObservability が含まれていました。David Myers は Amazon Web Services でお客様が Observability の経験を改善することを愛しています。

本記事は、How Amazon CloudWatch Logs Data Protection can help detect and protect sensitive log data を翻訳したものです。翻訳は Technical Account Manager の 日平 が担当しました。