新的 AWS Lambda URL - 是否有人获得了AWS_IAM正常工作的'secure'版本?



我有一个简单的函数,它返回一项文本。

当我将auth设置为NONE时,它可以正常工作。

当我将auth设置为AWS_IAM并在AWS Lambda的权限部分内创建基于资源的策略时,我设置了以下内容:

"Version": "2012-10-17",
"Id": "default",
"Statement": [
{
"Sid": "sid8",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::xxxxxxxxxx:user/xxxxxxxxxx"
},
"Action": "lambda:InvokeFunctionUrl",
"Resource": "arn:aws:lambda:eu-west-1:xxxxxxxxx:function:simpleFunction",
"Condition": {
"StringEquals": {
"lambda:FunctionUrlAuthType": "AWS_IAM"
}
}
}
]
} 

在这个问题上,我犯了一个被禁止的错误。

互联网上的每个演示/示例都使用NONE进行身份验证。

我还尝试将lambda:InvokeFunctionUrl添加到指定资源的用户的IAM策略中,但仍然得到一个禁止的错误。

是我遗漏了什么,还是新功能的这一方面不起作用?

问题是,当您使用IAM_AUTH时,需要使用SigV4对请求进行签名。本质上,这与使用IAM_AUTH类型的API网关相同。

有多种方法可以对请求进行签名,您甚至可以使用botocore功能进行签名。最简单的方法是使用awscurl或poster,也可以查看确认此要求的文档https://docs.aws.amazon.com/lambda/latest/dg/urls-invocation.html

最新更新