如何知道我是否使用較舊的 CloudFront API 版本?

1 分的閱讀內容
0

我想知道我是否使用不支援 CloudFront 替代網域名稱 (CNAME) 驗證程序的舊版 Amazon CloudFront API 版本。我想更新叫用那些 API 的應用程式。

解決方案

使用 AWS CloudTrail 日誌和 Amazon Athena 查詢,判斷您是否使用不支援 CNAME 驗證程序的舊版 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 "default"."cloudtrail_logs_cloudtrail_awslogs_317431709534_6l2vpmtr_isengard_do_not_delete"
WHERE eventsource = 'cloudfront.amazonaws.com'
AND parse_datetime(apiversion, 'yyyy_MM_dd') < parse_datetime('2020_05_31', 'yyyy_MM_dd')
GROUP BY apiversion
ORDER BY Total Desc;

查詢會傳回使用較早 CloudFront API 版本的 API 呼叫計數。如果查詢未傳回任何結果,表示您的帳戶並未使用較早的 API 版本。

如果先前的查詢確實傳回結果,請額外執行這個查詢,以取得每個 API 呼叫的相關資訊:

**重要事項:**將 $databaseName.$tableName 取代為您的資料庫和表格的名稱。

SELECT useridentity.arn, sourceipaddress, eventname, useragent,eventtime
FROM "default"."cloudtrail_logs_cloudtrail_awslogs_317431709534_6l2vpmtr_isengard_do_not_delete"
WHERE eventsource = 'cloudfront.amazonaws.com'
AND parse_datetime(apiversion, 'yyyy_MM_dd') < parse_datetime('2020_05_31', 'yyyy_MM_dd');

此查詢會傳回 AWS Identity and Access Management (IAM) 身分、來源 IP 地址、API 呼叫 (事件),以及與 API 呼叫相關聯的使用者代理程式。使用此資訊可判斷您要使用新的 CloudFront API 版本更新哪些應用程式。


AWS 官方
AWS 官方已更新 1 年前