AWS CloudTrail はデータイベントにおける非構造化フィールドのフォーマットを更新します

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

CI部 佐竹です。
本日は CloudTrail に関するちょっとしたアップデートのお知らせです。

はじめに

ここ最近 [ACTION REQUIRED] AWS CloudTrail Updates Formatting of Unstructured Fields in Data Events というメールが AWS から通知されているかと存じます。本日の主題はこの変更について記載するものです。

[ACTION REQUIRED] と記載あるため、「何か対応が必要なのだろうか」と思われた方もいらっしゃると存じますが、結論から申し上げますと多くのお客様では特に対応は不要です。

なお、以前に記載した Macie に関するブログでも触れましたが、本変更は CloudTrail のデータイベントに対してです。デフォルトで、CloudTrail はデータイベントを記録しません。例えば、S3 バケット内にある各 Object への get や put はデータイベントのためデフォルトで記録されません。そのため、データイベントを有効にされていないお客様では本変更の影響はない、となります。

blog.serverworks.co.jp

メール本文の和訳

以下にメール本文をざっくり和訳したもの記載します。

2021年7月5日に CloudTrail はデータイベントの非構造化フィールド内に含まれる数値フォーマットを更新し、管理イベントと一致させます。この変更は requestParameterresponseElementadditionalEventDataserviceEventDetail の 4 つの非構造化フィールドに関係します。現在の仕様では、CloudTrail はデータイベントを処理するときに、整数 (int) 形式の非構造化フィールドの数値を浮動小数点 (float) 形式に変換しています。これにより、元々整数であった数字は「.0」が付与された値として出力されます (例:「5」は「5.0」として出力されます)。 2021年7月5日以降、この数字は CloudTrail がログに記録する AWS サービスによって提供される形式 (int もしくは float のどちらか) で数値を保持するようになります。

この変更が CloudTrail データイベントを使用するシステムに影響を与えるかどうかを検討し、必要があれば変更に対応する更新を準備してください。ベストプラクティスとして、CloudTrail データイベントの処理に使用される自動化では、int 形式と float 形式の両方の数値を許可することで、柔軟になることをお勧めします。最良の結果を得るには、CloudTrail 処理ライブラリのバージョン 1.4.0 以降を使用してください。

フォーマットがどう変わるのか

先の和訳の通りですが、データイベントに入る数値フォーマットは強制的に float 型に変換される仕様であったため、整数に .0 が強制的に付与されていました。これをやめるということです。

よって7月5日以降 float 型に変換されなくなります。管理イベントで整数 (int) が来た場合は整数 (int) のままデータイベントに記載され、管理イベントで浮動小数点 (float) が来た場合は浮動小数点 (float) のままデータイベントに記載されるようになります。

以下はメール本文にある具体例です。

変更前(7月5日以前)

"eventName": "CreateService",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "000.00.00.00"
    "userAgent": "console.amazonaws.com",
    "requestParameters": {
        "clientToken": "EXAMPLE",
        "cluster": "default",
        "desiredCount": 2.0

変更後(7月5日以後)

"eventName": "CreateService",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "000.00.00.00"
    "userAgent": "console.amazonaws.com",
    "requestParameters": {
        "clientToken": "EXAMPLE",
        "cluster": "default",
        "desiredCount": 2

ここで変更されているのは "desiredCount" の数で、2.0 と強制的に小数点が付与されていたものが、整数になっています。

影響と対応

データイベントで期待される数字の型は、今まで常に float 型でしたが、今後は float 型と int 型が混ざることになります。この影響で CloudTrail のログを処理するような社内システムやプログラムに問題が発生しないかどうか、予め検討をしてくださいというのが本メールの主題でした。

まとめ

f:id:swx-satake:20210607131521p:plain:w150

本日は [ACTION REQUIRED] AWS CloudTrail Updates Formatting of Unstructured Fields in Data Events というメールについて掘り下げました。

このメールを受けて「何をすればいいのだろうか」と思った方に少しでも参考になれば幸いです。

ではまたお会いしましょう。

佐竹 陽一 (Yoichi Satake) 記事一覧はコチラ

SRE3課所属。AWS資格12冠。2010年1月からAWSを利用してきました。
AWSのコスト削減、最適化を得意としています。