Amazon CloudWatch Logs内の機密データをマスキングする方法 (CloudWatch Logs の機密データ保護機能)

記事タイトルとURLをコピーする

こんにちは!イーゴリです。

環境によってAmazon CloudWatchLogs内に機密データが表示されることがありますので、Amazon CloudWatchLogs内で機密データをマスキングする機能を紹介します。

今回は、[ssm-user]というユーザーの「hello-数字/文字」のメッセージが表示される場合、その情報をAmazon CloudWatchLogs内でマスキングします。

データ保護機能の設定前の動作確認

SSM経由でEC2にログインします。

まずは対象のEC2で「logger "hello"」というコマンドをAmazon CloudWatch Logs の機密データ保護設定なしで実行します。

sh-4.2$ logger "hello"

その後、「XXX/var/log/messages」というロググループを確認します。Amazon CloudWatch Logsの「XXX/var/log/messages」に「hello」が表示されています。

機密データ保護設定なしの動作を確認できましたので、Amazon CloudWatch Logs 機密データ保護機能を設定します。

CloudWatch Logs の機密データ保護機能の設定

[CloudWatch] > 対象ロググループを選択 (今回はXXX/var/log/messages」) > [アクション] > [データ保護ロググループポリシーを作成] をクリックします。

[ロググループポリシー]の画面で、2つの設定方法があります。「Auditing and masking configuration」と「Custom Data Identifier configuration」があります。

  • ①「Auditing and masking configuration」とは、AWSが提供している機密データタイプ(マネージドデータ識別子)をマスキングする方法です(例:IP Address, PassportNumber, BankAccountNumberなど)。

保護が可能なデータタイプは下記の記事にありますので、ご参考ください。

docs.aws.amazon.com

  • ②「Custom Data Identifier configuration」とは、自分のカスタムデータを入力し、そのデータをマスキングする方法です。

今回の記事では、カスタムデータを入力したいと思いますので、[Add custom data identifier]をクリックします。

[データ保護ロググループポリシー]でNameとRegexを入力し、[変更の保存]をクリックします。

今回は、下記の情報を入力します。

  • Name:ssm-user
  • Regex:hello-\w+(例:hello-123, hello-abc, hello-123abcなどの"hello-数字/文字"のパターンに当てはまる)

※カスタムデータに制約があるので、利用するときに下記の記事をご参照ください。

docs.aws.amazon.com

なお、必要に応じて、監査の検出結果を送信する AWS のサービス(Amazon CloudWatch Logs / Kinesis Data Firehose / S3)を選択することができますが、今回はこのステップをスキップします。

SSM経由でEC2にログインし、下記のコマンドを実行します。

sh-4.2$ logger "hello"
sh-4.2$ logger "hello-123"
sh-4.2$ logger "hello-abc"
sh-4.2$ logger "hello-123abc"

もう一回「XXX/var/log/messages」というロググループを確認します。Amazon CloudWatch Logsの「XXX/var/log/messages」で「hello」や「hello-hello-数字/文字」がマスキングされるようになりました!

上記の設定は下記のタブからもポリシーを修正/作成/削除することができます。

[対象ロググループ] > [データ保護] > [アクション]をクリックします。

一時的にマスキングを解除する方法

データがマスキングされても、データが消えるわけではないので、必要な権限(IAMポリシー:logs:Unmask)があれば、マスキングされたデータを見られますので、その方法を紹介します。

対象のログイベントを表示します。

[表示]ボタンをクリックし、[保護されたデータのマスキングを一時的に解除]をクリックすると、マスキングされたデータが表示されます。

再びマスキングさせるには上記と同じ手順を行いますが、[保護されたデータのマスキングを一時的に解除]のかわりに[保護されたデータをマスキング]ボタンになりますので、そのボタンをクリックします。

Amazon CloudWatch Logs内の機密データの検知方法

上記の設定後、[CloudWatch]の[ロググループ]の画面で、データ保護の機能の隣にある[機密データの数]の欄に今までマスキングされたデータ数が表示されます。

機密データの数をリセットしたい場合、「Reset Alert」をクリックし、[確認]をクリックします。

[機密データの数]が0になりました。

料金

データ保護機能を使いますと、追加料金がかかるので、ご注意ください。 東京リージョンの場合、$0.12 / スキャンされたデータ (GB) となっています。

引用:

検出およびマスク (データ保護)
スキャンされたデータ 1 GB あたり 0.12USD

詳しくは下記のページをご参考ください。

aws.amazon.com

以上、御一読ありがとうございました。

イーゴリ (記事一覧)

クラウドインテグレーション部・エンジニア

特にTerraform(自動化)、ネットワーク系、DNS、VDI、Windows Serverに興味があります

日本国内旅行・ドライブが好きです