跳至內容

如何查看是誰調用了我的 Lambda 函式?

1 分的閱讀內容
0

我想瞭解調用我的 AWS Lambda 函式之使用者的相關資訊,例如 userIdentity、sourceIPAddress 或 userAgent 詳細資訊。

解決方法

若要檢視調用 Lambda 函式之使用者的相關資訊,您必須在 AWS CloudTrail 中開啟資料事件記錄。CloudTrail 預設不會記錄 Lambda 調用 API 呼叫,CloudTrail 的事件歷史記錄也不會記錄這些呼叫。

如需 CloudTrail 資料事件的定價資訊,請參閱 AWS CloudTrail 定價。

若要開啟資料事件記錄,請建立新軌跡或更新現有軌跡,接著進行資料事件設定。在 Data Event type (資料事件類型) 下方,於 Source (來源) 選擇 Lambda,並於 Log selector template (日誌選取器範本) 選擇 Log all events (記錄所有事件)。

以下範例日誌顯示調用 API 呼叫的詳細資訊:

{
  "eventVersion": "1.06",
  "userIdentity": {
    "type": "IAMUser",
    "principalId": "AIDAIOR74VCJ2M3NB8U4M",
    "arn": "arn:aws:iam::999999999999:user/kyle",
    "accountId": "999999999999",
    "accessKeyId": "AK2IU7DKE7U2KOI8CCBP",
    "userName": "kyle"
  },
  "eventTime": "2017-11-29T08:47:45Z",
  "eventSource": "lambda.amazonaws.com",
  "eventName": "Invoke",
  "awsRegion": "us-west-2",
  "sourceIPAddress": "[IP_ADDRESS]",
  "userAgent": "aws-cli/1.11.129 Python/2.7.8 Linux/3.1.56-0.6.839hdh3.x86_64 botocore/1.5.92",
  "requestParameters": {
    "invocationType": "RequestResponse",
    "functionName": "arn:aws:lambda:us-west-2:999999999999:function:BlogFunction:prod",
    "clientContext": "ew0KICAiY29udGV4dGtleSIgOiAiY29udGV4dHZhbHVlIg0KfQ==",
    "qualifier": "prod"
  },
  "responseElements": null,
  "additionalEventData": {
    "functionVersion": "arn:aws:lambda:us-west-2:999999999999:function:BlogFunction:4"
  },
  "requestID": "eaccb900-8f45-11e7-b60d-179cdf501g92",
  "eventID": "0e205f1d-3929-4803-b887-0d2aca122148",
  "readOnly": false,
  "resources": [{
    "accountId": "999999999999",
    "type": "AWS::Lambda::Function",
    "ARN": "arn:aws:lambda:us-west-2:999999999999:function:BlogFunction"
  }],
  "eventType": "AwsApiCall",
  "managementEvent": false,
  "recipientAccountId": "999999999999",
  "sharedEventID": "6159da59-ad2f-4e04-9669-cf0a6b6b4827"
}

若要找出上述範例中調用 Lambda 函式之使用者的相關資訊,請檢閱以下欄位:

  • userIdentity 欄位提供提出請求之使用者的相關資訊。
  • sourceIPAddress 欄位提供使用者提出請求時使用的 IP 位址。
    注意: 此欄位同時支援 IPv4 與 IPv6 位址。
  • userAgent 欄位提供使用者提出請求時所用代理程式的相關資訊。

相關資訊

使用 AWS CloudTrail 掌握 AWS Lambda 函式的執行情況

使用 AWS CloudTrail 記錄 AWS Lambda API 呼叫

瞭解 CloudTrail Lake 事件結構描述

管理、資料及網路活動事件的 CloudTrail 記錄內容

AWS 官方已更新 7 個月前