如何知道我是否在使用较旧的 CloudFront API 版本?

上次更新日期:2023 年 1 月 11 日

我想知道我是否在使用较旧的 Amazon CloudFront API 版本,该版本不支持 CloudFront 的备用域名 (CNAME) 验证流程。我想更新调用这些 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 版本。


这篇文章对您有帮助吗?


您是否需要账单或技术支持?