我正在尝试使用 AWS lambda 函数作为自定义身份提供商来设置 AWS 传输系列。不幸的是,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 Transfer 系列服务器调用它的权利。这可以在“配置”选项卡中 lambda 配置 gui 的最底部进行配置。
必须输入以下值:
Statement ID
statement01
Principal
transfer.amazonaws.com
Effect
Allow
Action
lambda:InvokeFunction
Conditions
{
"ArnLike": {
"AWS:SourceArn": "arn:aws:transfer:eu-central-1:your-account-number:server/your-aws-transfer-family-server-id"
}
}
关于amazon-web-services - AWS Transfer 系列中从不要求 AWS Lambda 进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75685774/