首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用SSM参数存储存储不同的第三方API密钥/凭据

使用SSM参数存储存储不同的第三方API密钥/凭据
EN

Stack Overflow用户
提问于 2021-05-31 21:59:27
回答 1查看 76关注 0票数 0

我在AWS云上使用AWS Amplify作为无服务器技术构建了一个基于SAAS的应用程序。我正在利用至少2-3个第三方服务,如WordPress、JWplayer和通过它们的API进行通信,以便对它们执行任何操作,为此我需要API凭据。由于这是一个多租户应用程序,因此对于每个用户,我对第三方都有单独的用户帐户,就像我的应用程序的用户A同时拥有WordPress和JWPlayer的帐户,而用户B在这些第三方应用程序上有不同的帐户。因此,用户A和B对其第三方具有不同的API凭据。我希望在应用程序级别安全地保存和检索每个用户的API凭据。我已经探索了SSM参数存储,以便将凭据存储和检索为类似于对象的形式:

代码语言:javascript
复制
{
    "UserA@gmail.com" : 
                     {
                           "wordpress_api_key": "abcd",
                           "wordpress_api_value": "1234",
                           "JW_api_key": "qwer",
                           "JW_api_value": "5422",
                      }
}

我正在考虑将包含每个单独用户的不同API凭据的对象放在SSM参数存储中,并使用SSM库通过Lambdas和react前端中的唯一电子邮件id进一步检索。

或者有没有更好的方法来做到这一点?比如以加密的形式存储在DynamoDB中,然后从他们的数据库中检索出来,然后解密?

EN

回答 1

Stack Overflow用户

发布于 2021-06-01 09:52:15

我坚持使用Parameter Store,因为它提供了开箱即用的透明加密支持,与KMS很好地集成在一起。

至于存储方案,有几种不同的存储方式。您可以创建一个参数存储条目树,并将每个键或值单独存储为一个SecureString参数,例如:

代码语言:javascript
复制
/myapp/user-key/wordpress/key
/myapp/user-key/wordpress/value
/myapp/user-key/JWAPI/key
/myapp/user-key/JWAPI/value

我个人更喜欢上面的选项,因为它很灵活,允许您单独访问每个凭据。您还可以将非凭据存储为String条目,这样它们就不会经过加密。但是有a limit of 10k parameters per account,所以如果你希望处理很多用户,你可能会超过这个限制。

另一种选择是将整个用户“配置文件”存储为一个条目,正如您在问题中提到的。此选项的灵活性较低,因为您始终需要检索/保存整个对象,即使只有部分对象发生了更改。虽然此选项允许您在达到10k限制之前存储更多用户配置文件,但每个用户配置文件的大小必须小于4KB,因为这是每个条目的AWS限制。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67775196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档