AWS*_*ner 5 amazon-web-services python-3.x boto3 aws-lambda
我有用 Python 3.7 编写的 Lambda 函数。
某些用户通过 AWS CLI 使用以下命令调用此 Lambda 函数:
aws lambda invoke --function-name stXXX-XXX out --log-type Tail
Run Code Online (Sandbox Code Playgroud)
我想捕获谁在我的代码中通过 AWS CLI 调用了我的 Lambda 函数。
有什么方法可以找到谁在 python boto3 代码中调用我的 Lambda 函数?
是的。通常,您必须在 CloudTrail 中启用日志记录数据事件:
默认情况下,lambda 调用的日志记录被禁用,因为它可能会导致生成大量日志。
日志事件包含有关哪个 IAM 用户或角色调用该函数的信息。例如:
"userIdentity": {
"type": "IAMUser",
"principalId": "A1B2C3D4E5F6G7EXAMPLE",
"arn": "arn:aws:iam::999999999999:user/myUserName",
"accountId": "999999999999",
"accessKeyId": "AKIAIOSFODNN7EXAMPLE",
"userName": "myUserName"
},
Run Code Online (Sandbox Code Playgroud)
看来你的情况是:
遗憾的是,有关“谁”调用了 Lambda 函数(或者更具体地说,哪个 IAM 实体调用了该函数)的信息不可用。
Python 中的 AWS Lambda 上下文对象不会向 Lambda 函数提供此信息。
一种“更正确”的方法是控制 IAM 权限来确定谁可以调用此 Lambda 函数。只有经过正确授权的人员才有权调用lambda:Invoke此功能。同样,限制谁可以使用iam:PassRole此函数使用的 IAM 角色也很重要,因为它有权启动 EC2 实例,并且可以在其他函数上使用,除非PassRole受到限制。
| 归档时间: |
|
| 查看次数: |
5881 次 |
| 最近记录: |