You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS Transfer Family调用Lambda身份提供者失败:403权限异常排查

问题排查:AWS Transfer Family调用Lambda身份提供者返回403 AccessDenied

问题现象

配置AWS Transfer Family使用Lambda作为自定义身份提供者时,测试身份验证返回以下错误,且Lambda从未被触发:

{
    "Response": "{}",
    "StatusCode": 403,
    "Message": "Lambda function configuration error: AccessDeniedException"
}

当前Lambda执行角色的权限策略如下:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetSecretValue",
                "lambda:*"
            ],
            "Resource": "*"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": "logs:CreateLogGroup",
            "Resource": "arn:aws:logs:eu-central-1:log.group.number:*"
        },
        {
            "Sid": "VisualEditor2",
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": "arn:aws:logs:eu-central-1:087690012243:log-group:/aws/lambda/name-of-my-lambda:*"
        }
    ]
}

问题根源

你当前配置的是Lambda执行角色的权限(控制Lambda自身能访问哪些AWS资源),但缺少的是允许AWS Transfer Family服务调用该Lambda的资源策略——这是Lambda层面的权限配置,而非Transfer Family的角色设置。

解决步骤

  1. 打开AWS Lambda控制台,找到目标Lambda函数
  2. 切换到「配置」标签页,选择左侧菜单的「权限」
  3. 在「资源策略」区域,点击「添加权限」
  4. 按以下参数配置:
    • 主体类型:选择「AWS服务」
    • 服务:选择「Transfer Family」
    • 操作:选择lambda:InvokeFunction
    • 资源:保持默认(当前Lambda函数的ARN)
    • 点击「保存」完成配置

额外验证点

  • 确认Transfer Family服务器与Lambda函数处于同一AWS区域,跨区域调用会导致权限问题
  • 检查Lambda执行角色中SecretsManager的权限是否正确(当前配置用*没问题,后续锁权限时需调整为目标密钥ARN)
  • 测试身份验证时使用正确的用户名/密码,避免因业务逻辑错误混淆权限问题

内容的提问来源于stack exchange,提问作者BetaRide

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 16:52:03