如何在.net核心API中安全地存储AWS访问密钥和秘密密钥



在具有不同AWS环境的工作环境中,例如在开发、登台和生产环境中,如何最好地存储AWS访问密钥和秘密密钥,而不是在应用程序设置中。.Net Core中的json文件?我知道有秘密管理器,但不确定这是否是存储这两个值的最佳方式。寻找可能专门为生产做过这件事的人,以及他们在组织中是如何处理这件事的。谢谢你提供的信息。

我相信您的应用程序在AWS之外运行,并且它需要对AWS服务(例如SQS)进行API调用。要进行这些API调用,您的应用程序需要AWS凭据。

以下是在机器对机器场景中验证外部应用程序的方法。在您的情况下,您的客户端似乎需要能够发出任意的AWS服务请求,这意味着使用AWS签名v4请求,使用AWS凭证签名,这些凭证理想情况下是临时的,从STS旋转的凭证,而不是持久的凭证(如IAM用户凭证)。

通常,您将使用一组基本的IAM凭据来配置应用程序,这些凭据允许应用程序承担IAM角色。然后,该角色本身,而不是基本凭据,将为应用程序提供进行SQS API调用等所需的权限。

您面临的问题是如何安全地存储基本凭据集。这是本地应用程序从第一天起就存在的问题,早在云时代之前就存在了,根据您使用的技术,有各种解决方案。

通常,这些凭证将被加密,而不是提交到代码库,并以某种安全的方式在相关的、锁定的应用服务器上填充。一些潜在的有用资源:

  • 为ASP. conf配置文件加密部分。网络应用
  • 使用AWS机密管理器存储& &;在。net Core应用程序中读取密码
  • 安全存储和检索敏感信息在。net核心应用与Azure密钥库

AWS秘密管理器安全地存储您的秘密,直到您在运行时检索它们。如果你要运行你的ASP。那么AWS秘密管理器是一个很好的选择,因为它允许你精细地控制与运行你的应用程序的AWS IAM角色相关的权限。

以下是AWS secret -manager服务提供的一些常见问题,也将消除您的疑虑。

这是一篇文章,您可以参考使用AWS秘密管理器实现。net core的安全秘密存储

最新更新