在 Spring Boot 中存储 AWS Secrets Manager 的 accessKey 和 secretKey 的位置

Posted

技术标签:

【中文标题】在 Spring Boot 中存储 AWS Secrets Manager 的 accessKey 和 secretKey 的位置【英文标题】:Where to store the accessKey and secretKey for AWS Secrets Manager in Spring Boot 【发布时间】:2022-01-13 01:24:12 【问题描述】:

我正在尝试使我的应用程序安全,因此我没有为不同的服务用户存储我的所有 AWS IAM 凭证,而是开始使用 AWS Secrets Manager。令我困惑的部分是为了获得与 AWS 密钥管理器的连接以检索我的其他 IAM 服务连接的所有密钥,我需要一个访问密钥和密钥。将这些存储在 EC2 实例上的应用程序的 application.properties 中似乎是反话,因为如果有人可以访问这两个密钥,他们就可以访问所有的秘密,然后秘密管理器并没有真正提供任何价值。如何在不将密钥完全存储在我的代码中的情况下创建与秘密管理器的连接?提前致谢。

【问题讨论】:

我注意到您几乎所有的问题都得到了回答,但没有一个答案是accepted。接受有用的答案不仅是一种好习惯,而且可以减少重复并增加您的问题得到实际回答的机会。 抱歉,以后会这样做 【参考方案1】:

通常,您会使用EC2 instance role 来访问您的秘密管理器。这样就无需在您的应用程序中硬编码任何访问密钥和密钥,也无需将它们存储在实例中。

【讨论】:

谢谢,我在本地编码/测试时应该怎么做? @DavisWard AWS SDK 会自动从 EC2 角色获取凭证。所以你真的不需要做任何特别的事情。 @DavisWard 你把它们放在~/.aws/credentials 中(或者环境变量,如果你需要为不同的应用程序定制它们)。

以上是关于在 Spring Boot 中存储 AWS Secrets Manager 的 accessKey 和 secretKey 的位置的主要内容,如果未能解决你的问题,请参考以下文章

从 AWS Secrets Manager 导入 Spring Boot 应用程序中的密钥

AWS Secrets Manager 和 Spring Boot

使用 ssl 在 AWS 上使用 Spring-boot-starter-data-redis 的启动错误

Spring Boot 无法从 Spring Cloud AWS Core 依赖项启动

sec:authentication 在 Spring Boot Security 中不起作用

为啥 spring-boot 应用程序无法在 AWS 中运行,但在本地运行良好?