[アップデート] Amazon CloudWatch Logs でロググループのデータ保護機能がアカウントレベルで設定出来るようになりました

2023.06.09

いわさです。

AWS re:Invent 2022 で Amazon CloudWatch Logs に取り込まれた機密データを保護出来るようになりました。

これまでは個別のロググループごとに手動で有効化が必要だったのですが、本日のアップデートでアカウントレベルでデータ保護を有効化出来るようになりました。
これによって既存および新規のロググループも自動でデータ保護を有効化出来るようになります。

これまでのロググループ個別での設定

これまでは次のようにロググループごとに個別でデータ保護ポリシーの有効化が必要でした。

既存ロググループが多い場合に面倒という点もありますが、特に CloudWatch Logs のロググループは自動生成に任せることが多く、組織のログ管理ポリシーを満たすためにはカスタムソリューションとしてロググループ生成のタイミングで自動有効化する方法などを検討するなど、なかなか大変でした。

アカウントレベルでの設定

今回のアップデートでは、次のように CloudWatch の設定画面に新しく「Logs」のタブが追加されており、こちらからデータ保護のポリシーを設定することが出来るようになっています。

設定可能なポリシーの内容は既存のロググループ単位のポリシーと同様です。
データ識別子と、オプションで監査先(検出結果の保存先)を指定することが出来ます。

画面に表示されている説明文の「念のために言っておきますが」がジワジワきますね。

有効化すると CloudWatch 設定画面上は次のような状態となります。
ここでは AwsSecretKey と IpAddress データ識別子を設定しています。

適用先が「すべてのロググループ」と表示されているのが気になりますが、公式ドキュメントなどを確認する限りでは本日時点で適用先のカスタマイズは出来ないようです。
CloudWatch Logs のデータ保護機能は有償オプションになるので、特定の条件(名前やタグなど)に一致するロググループを対象にしたいとかは需要ありそうです。

アカウントレベルのデータ保護を有効化すると次のように全てのロググループのデータ保護がオンになります。
なお、機密データはロググループに取り込まれるときに検出されマスクされます。
データ保護ポリシーを有効化しても、それより前にロググループに取り込まれたログイベントはマスクされません。

ちなみに、有効化後にすべてのロググループに適用されるまでに少しタイムラグがあって、マネジメントコンソール上の表記によると最大 300 秒かかる場合があるとのこと。

新規作成ロググループ

では、アカウントレベルのデータ保護を有効化したので新規ロググループを作成してみましょう。

データ保護が自動で ON になっていますね。

編集と削除

このアカウントレベルのデータ保護機能はいつでも編集や無効化が可能です。

編集から次のようにデータ識別子や監査先などポリシー全体が編集可能です。

削除からはアカウントレベルのデータ保護機能を無効化出来ます。
無効化することで次のように全てのロググループのデータ保護が無効化されました。

厳密には個別のロググループのデータ保護ポリシーと、アカウントレベルのデータ保護ポリシーは別で管理されるので上記の無効化操作によってロググループに個別設定したデータ保護ポリシーは無効化はされません。
少し見てましょう。

ロググループ個別のデータ保護ポリシーとは別で保持される

次のようにロググループ個別にデータ保護ポリシーを設定しておき、アカウントレベルのデータ保護ポリシーを設定する場合はどのような動きになるか確認してみましょう。
個別のポリシーでは IpAddress データ識別子をターゲットにしてみます。

ここで、アカウントレベルのデータ保護ポリシーを AwsSecretKey データ識別子をターゲットに有効化してみましょう。

ロググループのデータ保護タブを見てみると次のように 2 つのポリシーが両立する形で適用されていることがわかります。
検出の際にもどのポリシーで検出されたのかがわかるようになっていますね。

ロググループに個別のデータ保護ポリシーが設定されていない場合は次のようにアカウントポリシーのみが適用されている状態です。

このようにアカウントポリシーで全体のベースラインを設定しつつ、ロググループごとに追加のポリシーを定義することが出来る形となっています。

リージョン別

ここまで、マネジメントコンソールの表記から「アカウントレベル」での設定のような印象を受けるかもしれませんが、そう言いつつ設定としてはリージョン毎のポリシーになっています。
対象リージョンでのみ有効化が可能で、適用されるロググループも同一リージョン内のみとなっています。

また、次のようにリージョン毎にポリシーの構成を変えることも可能です。

マルチリージョンでの対応が必要なアーキテクチャ構成の場合はポリシーの設定忘れが無いようにしましょう。

さいごに

本日は Amazon CloudWatch Logs でロググループのデータ保護機能がアカウントレベルで設定出来るようになったので紹介しました。
非常に便利な機能ですが、お高めな CloudWatch Logs が更にお高くなるので料金にはご注意ください。

また、AWS でのデータマスキング機能全般に言えますが日本をターゲットにしたデータはまだサポート範囲がまだ限定的です。
対象のデータ識別子を確認のうえご利用ください。
日本向けのデータもサポートされてほしいところですね。かなり需要あると思うのです。