我可以创建不引用特定用户的兼容Cognito的JWT吗?

时间:2018-10-05 11:51:25

标签: amazon-web-services security authentication amazon-cognito

我们有一组由Cognito JWT保护的AWS API。基于用户的Cognito IdToken的身份验证和基于Cognito自定义属性的授权非常有效。

我们的某些API端点也被“服务”流程称为:计划的流程或维护任务,这些流程或维护任务是从Lambda函数运行的,并且与任何“真实”用户都不相关。我们需要这些过程来生成某种可以由API验证的身份验证/授权令牌。

我考虑过:

  1. 创建一个真正的“ admin@example.com” Cognito用户,将密码存储在Secrets Manager中,然后在服务功能中以该用户身份进行身份验证。并不是理想的IMO,因为它需要管理作为基础结构一部分的数据对象的存在,并且可能也是可用性的关键。
  2. 为服务功能生成不同的秘密令牌,并在API中对其进行特殊验证。这并不理想,因为现在我们必须手动维护与Cognito JWT签名的兼容性,此外,它还在重新设计安全轮。另外,我们要么在服务功能和API之间共享秘密,要么管理RSA密钥对。

我真正想做的是为服务功能提供一种方法,使服务功能可以根据自己的IAM凭据对JWT进行签名,可以通过调用STS在API中对其进行验证。但是,我不想要从服务函数传递一组“真实”的STS凭据(该函数具有执行功能,而不仅仅是调用API)。

简而言之:我怎样才能最好地“混合”使用同一API来验证Cognito用户和Lambda函数?

0 个答案:

没有答案