跳至內容

我該如何監控 Amazon Cognito 使用者集區中的使用者活動?

2 分的閱讀內容
0

我想要監控並分析我在 Amazon Cognito 使用者集區中的使用者活動。

解決方法

若要監控並分析使用者活動,請查看 AWS CloudTrail Event history (事件歷史記錄) 頁面,建立 Amazon Athena 資料表以搜尋 CloudTrail 日誌,並啟用 Amazon Cognito 威脅防護

查看 CloudTrail 事件歷史記錄頁面,以分析對您使用者集區的 API 呼叫

請完成下列步驟:

  1. 在與您的 Cognito 使用者集區相同的區域中開啟 CloudTrail console (CloudTrail 主控台)。
  2. 在導覽窗格中,選擇 Event history (事件歷史記錄)。
  3. Select visible columns (選取可見欄) 中,選取 Event Name (事件名稱) 和 Event Source (事件來源),然後執行以下動作:
    Event Source (事件來源),選擇 cognito-idp.amazonaws.com 可檢視使用者集區活動,選擇 cognito-identity.amazonaws.com 可檢視身分池活動。
    Event Name (事件名稱),輸入使用者集區事件API 動作的名稱,例如 InitiateAuthCreateUserPool
    **注意:**CloudTrail 日誌只會顯示 UserSub,並省略特定使用者請求的 UserName。若要找出使用者名稱,請呼叫 ListUsers API 並使用 sub 屬性篩選器。

**注意:**CloudTrail 事件歷史記錄頁面提供 AWS 區域內過去 90 天的管理事件記錄。您可以建立事件資料存放區追蹤以存取超過 90 天的持續活動與事件記錄。有關事件歷史記錄的更多資訊,請參閱事件歷史記錄的限制

建立 Athena 資料表以搜尋 CloudTrail 日誌

您可以在 Athena 中建立資料表,以搜尋 CloudTrail 日誌,這些日誌由 CloudTrail 儲存在 Amazon Simple Storage Service (Amazon S3) 儲存貯體中。

**注意:**在以下查詢中,將 your_athena_tablename 替換為您的 Athena 資料表名稱。

執行以下 Athena 查詢,以從 CloudTrail 日誌中檢索 Cognito 使用者註冊事件:

SELECT eventTime, eventName, additionalEventData
FROM your_athena_tablename
WHERE eventsource = 'cognito-idp.amazonaws.com'
    AND eventname IN ('SignUp', 'signup_POST', 'signup_GET')
    AND eventtime >= '2025-07-15T09:00:00Z'  
    AND eventtime < '2025-07-15T10:00:00Z'
ORDER BY eventtime ASC;

執行以下查詢,以顯示具有特定 Universally Unique Identifier (UUID) sub 值之 Cognito 使用者的所有活動:

SELECT eventTime, eventName, additionalEventData
FROM your_athena_tablename
WHERE eventsource = 'cognito-idp.amazonaws.com'
    AND json_extract_scalar(additionaleventdata, '$.sub') = '826bfee9-68d8-4046-b292-4f8cdd839bcd'
    AND eventtime >= '2025-06-17T00:00:00Z'
ORDER BY eventtime ASC;

**注意:**在範例中,826bfee9-68d8-4046-b292-4f8cdd839bcdUserSub 值。

啟用威脅防護以生成詳細活動日誌

若要檢查使用者驗證事件的詳細日誌,請執行以下動作:

AWS 官方已更新 8 個月前