繁体   English   中英

AWS Lambda function 物联网规则拒绝访问

[英]AWS Lambda function Access Denied from IoT Rule

我正在从 AWS IoT 规则的 SQL 语句调用 Lambda function,但我遇到了 AccessDenied 错误:

{
"timestamp": "2022-10-05 10:03:42.260",
"logLevel": "ERROR",
"traceId": "b64de9a6-188c-7876-546c-df8949385145",
"accountId": "124915225239",
"status": "Failure",
"eventType": "RuleExecution",
"clientId": "N/A",
"topicName": "$aws/rules/RuleEnlessWireless600031",
"ruleName": "RuleEnlessWireless600031",
"principalId": "AROAR2FMHCKL3VOAW5AAJ:stsSailboatSession",
"reason": "ExternFunctionException",
"details": "Function 'AwsLambda' failed to execute for rule 'RuleEnlessWireless600031'. Received an error while making a request to Lambda: User: arn:aws:sts::054971253646:assumed-role/iotgoldeneyeruntimeservice-eu-west-1-InstanceRole-EA40NRS1H5SB/i-0b571b6946c9e267e is not authorized to perform: lambda:InvokeFunction on resource: arn:aws:lambda:eu-west-1:124915225239:function:EnlessDecode because no resource-based policy allows the lambda:InvokeFunction action (Service: AWSLambdaInternal; Status Code: 403; Error Code: AccessDeniedException; Request ID: 8acab5cf-0466-4dcb-9979-93139c3a34b5; Proxy: null)"

}

我知道 Rule 没有调用 function 的权限,但我授予了完全访问权限。

目的地的角色是“AWSIotWirelessDestination-EnlessWireless”: 在此处输入图像描述

这个角色有“AWSLambda_FullAccess”: 在此处输入图像描述

非常有趣的是,我还有一个正确调用的 function。 两个明显的区别是 (1) fonction2 是“附加”到应用程序和 (2) function2 是 Python(function1 是 Node.js)。

我读过这篇文章: AccessDeniedException: User is not authorized to perform: lambda:InvokeFunction

没有帮助。

您的错误表明没有基于资源的策略附加到 Lambda 允许访问“arn:aws:sts::054971253646:assumed-role/iotgoldeneyeruntimeservice-eu-west-1-InstanceRole-EA40NRS1H5SB/i-0b571b6946c9e267e”用户/角色. 所以有两个问题:

  1. AWS 需要附加到 Lambda 的策略( 基于资源的策略)。
  2. 向 AWSIotWirelessDestination-EnlessWireless 角色添加策略无济于事,因为问题不在于此角色,而在于 AWSIotWirelessDestination-EnlessWireless 角色担任的角色。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM