Aurora PostgreSQL调用AWS Lambda时IAM权限错误求助
问题分析与解决方案
核心问题:资源ARN不匹配
错误信息显示要调用的Lambda资源是arn:aws:lambda:us-west-2:xxxxxxxxxxxxx:function:aws_lambda_arn_1,但你给AuroraLambdaInvoker角色配置的IAM策略中,授权的Resource却是arn:aws:lambda:us-west-2:xxxxxxxxxxx:function:TestLambda——两个ARN完全不一致,直接导致权限校验失败,因为策略仅允许调用TestLambda,而你实际触发的是aws_lambda_arn_1。
修复步骤
修正IAM策略的Resource字段
将策略中的Resource替换为错误提示里的目标Lambda ARN,若需适配多个函数,生产环境外可临时用通配符(如arn:aws:lambda:us-west-2:xxxxxxxxxxxxx:function:*),但建议遵循最小权限原则。修正后的策略示例:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:us-west-2:xxxxxxxxxxxxx:function:aws_lambda_arn_1" } ] }验证角色信任策略
确保AuroraLambdaInvoker角色的信任策略允许Aurora服务扮演它,信任策略需包含以下内容:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }确认Aurora集群配置
登录RDS控制台,检查集群是否已启用IAM Database Authentication,且AuroraLambdaInvoker角色已正确附加到集群。核对数据库内Lambda调用配置
确认PostgreSQL中用于触发Lambda的函数(如aws_lambda.invoke)指定的是正确的Lambda ARN,避免配置硬编码错误。
内容的提问来源于stack exchange,提问作者Ahimaaz
相关产品推荐
相关产品推荐

