新的 AWS Lambda URLs - 有没有人得到 'secure' 版本的 AWS_IAM 工作?
New AWS Lambda URLs - has anyone got the 'secure' version with the AWS_IAM working?
我有一个简单的函数,可以 returns 一条文本。
当我将 auth 设置为 NONE 时,它工作正常。
当我将身份验证设置为 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 or postman, also check this doco that confirms this requirement https://docs.aws.amazon.com/lambda/latest/dg/urls-invocation.html
我有一个简单的函数,可以 returns 一条文本。
当我将 auth 设置为 NONE 时,它工作正常。
当我将身份验证设置为 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 or postman, also check this doco that confirms this requirement https://docs.aws.amazon.com/lambda/latest/dg/urls-invocation.html