CloudWatch Logs の機密データ保護機能で保護対象のカスタマイズができるようになりました

2023.12.15

こんにちは、森田です。

以下のアップデートにて、Amazon CloudWatch Logs の機密データ保護機能で保護対象をカスタマイズすることができるようになりました。

Amazon CloudWatch Logs 機密データ保護機能とは

Amazon CloudWatch Logs のログデータでセンシティブな情報を保護(マスキング)できる機能です。

この機能は、re:Invent 2022 で発表されました。

詳しくは以下ブログをご参照ください。

従来までは、AWSから提供されているデータタイプ(AddressやAwsSecretKey)などが対応していましたが、今回のアップデートによって、システムやアプリケーション特有の機密データも保護できるようになります。

カスタムデータ識別子

保護対象をカスタマイズするためには、カスタムデータ識別子(CDI)の作成が必要となります。

CDIでは、正規表現を使うことができ、一致したデータに対して保護を行います。

一部制約があるため、利用する際には、以下をご参照ください。

カスタムデータ識別子 制約

やってみる

ログの作成

事前にテスト用のログを作成します。

AWS Lambda で以下のコードを実行し、EmployeeID-123456789のログを作成します。

Lambda ログ作成用コード (クリックして展開)
import json

def lambda_handler(event, context):
    print("EmployeeID-123456789")
    # TODO implement
    return {
        'statusCode': 200,
        'body': json.dumps('Hello from Lambda!')
    }

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

続いて、カスタムデータ識別子の設定を行います。

ロググループのデータ保護タブからポリシー作成を選択します。

選択後、以下のように設定を行い、データ保護をアクティブを選択します。

  • Name: EmployeeId
  • Regex: EmployeeID-\d{9}

ログの確認

ログを確認すると、以下のようにマスキングされていることを確認できます。

最後に

CloudWatch Logs のデータ保護対象のカスタマイズを行ってみましたが、非常に簡単に設定できました。

今回は、サクッと動作確認を行いたかったので、ロググループ単位で有効化しましたが、すべてのロググループに対してもデータ保護アカウントポリシーを使用することで実現可能ですので、ぜひ試してみてください。