古い CloudFront APIのバージョンを使用しているかどうかを確認する方法を教えてください。

最終更新日: 2019 年 4 月 23 日

使用しているものが、CloudFront の代替ドメイン名 (CNAME) 検証プロセスをサポートしていない古い Amazon CloudFront API バージョンかどうかを知りたいです。これらの API を呼び出すアプリケーションを積極的に更新したいです。

解決方法

AWS CloudTrail ログと Amazon Athena クエリで、古い CloudFront API バージョンを使用しているかどうかを判断します。

1.    米国東部 (バージニア北部) リージョン (us-east-1) でアカウントの CloudTrail ログを有効にしてください。

ヒント: すでに米国東部 (バージニア北部) リージョンで CloudTrail のログ記録を有効にしていて、ログローテーションを設定していない場合は、現在のログのサブセットを新しいプレフィックスにコピーできます。これにより、データセット全体ではなく、ログのサブセットに対して Athena クエリを実行できます。Athena クエリは、スキャンされた各データの GB に基づいて請求されるため、コストを節約するために過去 30 日間のログのみを確認することをお勧めします。

2.    CloudTrail ログが Amazon Simple Storage Service (Amazon S3) バケットに書き込まれたら、ログ用のテーブルを作成してください。

3.    Athena コンソールを開き、[新規クエリ 1] ボックスに次のクエリを追加して、[クエリ実行] を選択します。

重要: $databaseName.$tableName をデータベースとテーブルの名前に置き換えてください。

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;

クエリは、CloudFront API の古いバージョンを使用する API 呼び出しの数を返します。クエリが結果を返さない場合、お使いのアカウントは古い API バージョンを使用していません。

前のクエリで結果が返された場合は、この追加クエリを実行して個別の API 呼び出しに関する詳細情報を取得してください。

重要: $databaseName.$tableName をデータベースとテーブルの名前に置き換えてください。

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');

このクエリは、AWS Identity and Access Management (IAM) の ID、発信元 IP アドレス、API 呼び出し (イベント)、および API 呼び出しに関連付けられているユーザーエージェントを返します。この情報を使って、新しい CloudFront API バージョンで更新するアプリケーションを決めます。


この記事はお役に立ちましたか?

改善できることはありますか?


さらにサポートが必要な場合