使用AWS re:Post即您表示您同意 AWS re:Post 使用条款

如何查看谁调用了我的 Lambda 函数?

1 分钟阅读
0

我想知道有关调用我的 AWS Lambda 函数的用户的信息,例如他们的 userIdentity、sourceIPAddress 或 userAgent 详细信息。

解决方法

要查看有关调用您的 Lambda 函数的用户的信息,您必须在 AWS CloudTrail 中打开数据事件日志记录。默认情况下,CloudTrail 不记录 Lambda Invoke API 调用,CloudTrail 事件历史记录也不会记录这些调用。

有关 CloudTrail 中数据事件定价的信息,请参阅 AWS CloudTrail 定价

要开启数据事件日志记录,请创建新跟踪更新现有跟踪,然后配置数据事件设置。在 Data Event type(数据事件类型)下,对于 Source(源),选择 Lambda,对于 Log selector template(日志选择器模板),选择 Log all events(记录所有事件)。

以下示例日志显示了 Invoke 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": "192.168.0.1",
  "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 官方
AWS 官方已更新 2 个月前