我在aws lambda服务器上用差异语言编写了2个lambda
假设它调用了C
和J
并且有一个逻辑,当用户调用C
时,参数匹配某些条件。它会做某事然后调用J
,就像用户自己调用J
一样(同样的认知)
所以我需要获取调用我的C
lambda函数的用户的凭据并使用它来调用J
但我无法找到从lambda环境中获取当前用户凭据的线索
我只能获得context.Identity
,但这还不足以创建调用lambda作为模仿用户的凭据
我该怎么办?
答案 0 :(得分:0)
我将使用Java SDK中的示例,但所有SDK中都提供了这些方法,以便适应您选择的语言。
您可以使用AmazonCognitoClient
使用以下方法为凭证(基本上是临时访问密钥/密钥)交换identityId令牌:
public GetCredentialsForIdentityResult getCredentialsForIdentity(GetCredentialsForIdentityRequest getCredentialsForIdentityRequest)
GetCredentialsForIdentityRequest
获取一个可以换成GetCredentialsForIdentityResult
的identityId。您可以在结果上使用getCredentials()
来获取Credentials
实例,然后您可以使用它来调用Lambda J。
答案 1 :(得分:0)
我现在只能使用的解决方法是,使用DeveloperCredential始终为每个用户获取访问令牌,并使用该凭据调用子序列lambda。缺点是所有用户都不能成为匿名用户