您正确地指出,在数据库中自行存储机密是一种不好的做法。根据您希望通过应用程序提供的功能范围,您可以使用以下 AWS 产品之一:
AWS 密钥管理服务
如果您需要在 AWS 中生成密钥以及存储密钥,则密钥管理服务 (KMS) 是最接近的匹配项。这是 AWS KMS 主页的链接以及文档。请记住,选择此选项会将密钥生成的确切机制限制为 AWS 开箱即用的任何内容。此外,KMS 的标准用例不包括大量生成密钥,这可能适用于您的应用程序。
AWS 参数存储
如果您决定在应用程序中包含密钥生成逻辑,并将存储部分留给 AWS,那么Parameter Store就是您的选择。为了向参数存储添加新密钥,您可以执行以下操作:
aws ssm put-parameter --name Generated_Public_Key --value "Generated_Private_Key" --type SecureString
当您的应用程序的客户端通过提供公钥需要先前创建的私钥时,您可以使用以下内容:
aws ssm get-parameter --name User_Provided_Public_Key --with-decryption
如果您决定在 AWS 之外寻找,请注意,Microsoft Azure 有一个类似于 Parameter Store 的产品,称为Azure Key Vault。