AWS APIのアップデートの際に確認した記録|CloudFront API


Amazon CloudFront - Update on Older API Versionsというタイトルの
メールが届き内容を確認してみるとどうやらcloudfrontAPIのバージョンが上がるとのこと。
そして一部の機能が廃止になるという趣旨の内容を確認しました。

今回のメールの内容をざっくりと

そもそもSDK内の関数でcloudfront設定を操作していたりしなければ関連はない。
AWS CLIのcloudfrontを操作するようなものが今回のAPIに相当する。

参考ページ

対応方法を調査してみると以下のページを見つけました。
https://aws.amazon.com/jp/premiumsupport/knowledge-center/cloudfront-api-version-check/

調査の概要

自分のケースだとcloudfrontのcookie認証を使用しており
S3にログを保存している状態でした。
このcloudfrontのログをcloudtrailにて管理
それをAthenaからSQL文にて検証(検索)し
cloudfrontAPIの古いバージョンが使用されていないかを確認する
という内容で以下詳細を書いていきます。

cloudtrailが有効か確認します

cloudtrailコンソール画面にてバージニアリージョンを選択。
cloudtrailが有効かを確認します。まだ使用したことがないようだったら以下のページを参考に有効に設定をします。
https://docs.aws.amazon.com/ja_jp/awscloudtrail/latest/userguide/cloudtrail-getting-started.html

cloudtrailにてtableを作成

s3にcloudtrailのログが書き込まれたら
cloudtrailコンソールからtableを作成します。
https://docs.aws.amazon.com/ja_jp/athena/latest/ug/cloudtrail-logs.html#create-cloudtrail-table-ct

AthenaからSQLを叩きAPIバージョンを検索する

参考ページのソースから引用

serchver.sql

SELECT apiversion, count() AS Total FROM $databaseName.$tableName WHERE eventsource = 'cloudfront.amazonaws.com' AND parse_datetime(apiversion, 'yyyy_MM_dd') <= parse_datetime('2015_12_22', 'yyyy_MM_dd') GROUP BY apiversion ORDER BY Total Desc;

ここで\$databaseName.$tableNameを書き換えるとあるが
これはAthenaコンソール画面の左メニューに出ているものに書き換える。リージョンが違うと出てこないので注意が必要。

自分の場合はdefaultというデータベース名にcloudtrailで設定したテーブル名が出てきていたので
それらに書き換えて実行してみたところ
Zero records retumed
と表示されたので古いバージョンはないことが確認できた。

この時もし古いバージョンが見つかった際にさらに詳細を調べることもできるとのこと
そのSQL文は以下

serchdetails.sql

SELECT useridentity.arn, sourceipaddress, eventname, useragent FROM $databaseName.$tableName WHERE eventsource = 'cloudfront.amazonaws.com' AND parse_datetime(apiversion, 'yyyy_MM_dd') <= parse_datetime('2015_12_22', 'yyyy_MM_dd');