跳至內容

如何檢查我的 CloudFront API 是否使用較早版本?

1 分的閱讀內容
0

我想了解如何判斷我的 Amazon CloudFront API 是否為不支援 CloudFront 替代網域名稱 (CNAME) 驗證程序的較早版本。我也想更新會調用該 API 的應用程式。

解決方法

使用 AWS CloudTrail 軌跡和 Amazon Athena 查詢,確認您是否使用不支援 CNAME 驗證程序的早期 CloudFront API 版本。

若要建立 CloudTrail 日誌並執行 Athena 查詢,請執行以下步驟:

  1. 在美國東部 (維吉尼亞北部) AWS 區域 (us-east-1) 中,為您的 AWS 帳戶建立軌跡。

  2. CloudTrail 日誌檔案寫入 Amazon Simple Storage Service (Amazon S3) 儲存貯體後,請為日誌檔案建立資料表。

  3. 開啟 Athena 主控台,然後將以下查詢新增至 New Query 1 (新增查詢 1) 編輯器方塊:

    SELECT apiversion, count() AS Total
    FROM $databaseName.$tableName
    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;

    **注意:**將 $databaseName.$tableName 替換為您的資料庫和資料表名稱。

  4. 選擇 Run (執行)。
    **注意:**查詢會傳回使用早期 CloudFront API 版本的 API 呼叫數量。如果查詢沒有傳回結果,則表示您的帳戶未使用早期 API 版本。

  5. (選用) 如果先前的查詢傳回結果,請執行以下查詢,以取得每個 API 呼叫的更多資訊:

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

    **注意:**將 $databaseName.$tableName 替換為您的資料庫和資料表名稱。
    上述查詢會傳回與 API 呼叫相關聯的 AWS Identity and Access Management (IAM) 身分、來源 IP 位址、API 呼叫和使用者代理程式。使用此資訊來判斷您要使用最新 CloudFront API 版本更新哪些應用程式。

AWS 官方已更新 2 年前