Amazon CloudWatch Logsの機密データ保護機能を試す

この記事は公開されてから半年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

re:Invent 2022にて発表された、Amazon CloudWatch Logsの機密データ保護機能を試してみました。

目次

手順の概要

  1. ロギングテスト用Lambdaを作成する
  2. 機密データ(のようなサンプルデータ)をロギングする
  3. CloudWatch Logsで対象のロググループにData protection policyを設定
  4. 再度 手順2を実行
  5. マスクされる事を確認する

手順

1. ロギングテスト用Lambdaを作成する

直接ロググループに文字列発行が面倒なのでロギングするだけのLambda関数を作成しました。

2. 機微なデータ(のようなサンプルデータ)をロギングする

サンプルデータとして下記をロギングしてみました。(JSON)

transaction_log = {
    "IP": "8.8.8.8",
    "user": "kouzu@skyarch.net",
    "card_holder_name": "KOUZU TEST",
    "card_number": "4111111111111111"
}
logger.info(transaction_log)

3. Data protection policyを設定

多くの項目がありますが、残念ながらJP系は少なそうです(今後に期待)

取り急ぎIPAddress、メールアドレス、CreditCardNumber等を設定してみました。

5. マスクされる事を確認する

再度手順2を実行しマスクされるか確認してみました。

マスクされました!がサンプルデータのためか、IPアドレスのみマスクされました
Sensitive data found カウントが正常に増えているので、分かりやすいですね。

LogsInsightsの検索でもマスクされている事を確認

Maskされた部分を復号する

※大前提として、マネジメントコンソール操作者IAMPolicyに logs:Unmask が必要です。

CloudWatch Logsでは、Displayメニューの[Temporary Unmask Protected Data]で復号できます

CloudWatch Logs Insightsでは、復号したいデータに unmask() を付ける事でできます

まとめ

機密データと定義される書式に日本フォーマットが今後増えてくれば、嬉しいサービスと感じました。

本サービスに頼り切る事なく、予め排除が必要(ロギングしないデータ)はロジックで排除しておくことが当然ですが重要な一方で、機密データがログに入ってしまったりしてないよねという念の為確認にもある程度利用出来るサービスではないかと思いました。

投稿者プロフィール

takashi
Japan AWS Ambassadors 2023, 2024
開発会社での ASP型WEBサービス企画 / 開発 / サーバ運用 を経て
2010年よりスカイアーチネットワークスに在籍しております

機械化/効率化/システム構築を軸に人に喜んで頂ける物作りが大好きです。

ABOUTこの記事をかいた人

Japan AWS Ambassadors 2023, 2024 開発会社での ASP型WEBサービス企画 / 開発 / サーバ運用 を経て 2010年よりスカイアーチネットワークスに在籍しております 機械化/効率化/システム構築を軸に人に喜んで頂ける物作りが大好きです。