如何使用aws lambda用用户凭证调用另一个lambda?

时间:2017-01-14 14:43:00

标签: amazon-web-services aws-lambda aws-cognito

我在aws lambda服务器上用差异语言编写了2个lambda

假设它调用了CJ

并且有一个逻辑,当用户调用C时,参数匹配某些条件。它会做某事然后调用J,就像用户自己调用J一样(同样的认知)

所以我需要获取调用我的C lambda函数的用户的凭据并使用它来调用J

但我无法找到从lambda环境中获取当前用户凭据的线索

我只能获得context.Identity,但这还不足以创建调用lambda作为模仿用户的凭据

我该怎么办?

2 个答案:

答案 0 :(得分:0)

我将使用Java SDK中的示例,但所有SDK中都提供了这些方法,以便适应您选择的语言。

您可以使用AmazonCognitoClient使用以下方法为凭证(基本上是临时访问密钥/密钥)交换identityId令牌:

public GetCredentialsForIdentityResult getCredentialsForIdentity(GetCredentialsForIdentityRequest getCredentialsForIdentityRequest)

GetCredentialsForIdentityRequest获取一个可以换成GetCredentialsForIdentityResult的identityId。您可以在结果上使用getCredentials()来获取Credentials实例,然后您可以使用它来调用Lambda J。

答案 1 :(得分:0)

我现在只能使用的解决方法是,使用DeveloperCredential始终为每个用户获取访问令牌,并使用该凭据调用子序列lambda。缺点是所有用户都不能成为匿名用户