当前位置: 首页 > 知识库问答 >
问题:

如何用Spring Boot实现AWS秘密管理器?做这件事最好的方法是什么?

狄兴邦
2023-03-14

我有一个在ECS容器中运行的Spring Boot应用程序。我将AWS访问密钥、密钥和数据库凭据存储在application.properties文件中。我需要将这些数据外部化。所以我需要实现AWS秘密管理器来存储秘密。

我将在AWS机密管理器中为数据库机密启用机密循环策略。我的应用程序如何知道临时凭据有更改?

有人能指导我如何用Spring Boot应用程序高效地实现AWS秘密管理器吗?最佳行业实践。

共有1个答案

宗苗宣
2023-03-14

您应该使用IAM角色从ECS任务访问AWS资源。使用AWS访问密钥,秘密密钥不是生产中的好选项。关于在ECS任务中使用IAM角色,请参阅https://docs.aws.amazon.com/amazonecs/latest/userguide/task-iam-roles.html。

有关使用AWS秘密管理器的密码循环,请参阅https://pattern-match.com/blog/2019/06/17/springboot2-and-aws-secrets-manager/

 类似资料:
  • 我们在AWS环境中部署了完整的应用程序,我们发现AWS秘密管理器是存储数据库和其他一些组件的秘密的正确选择。

  • 我有一个秘密存储在使用Terraform模块部署的AWS秘密管理器中,该模块支持秘密循环。我没有访问那个模块的源代码,所以我不能修改它。我想使用Terraform禁用秘密旋转。我应该使用哪种资源?需要如下所示的所有3个参数,并且没有任何参数来禁用循环。属性接受1到365之间的值,因此传递0也不是一个选项。

  • 我有一个使用Bosh部署的concourse环境。它配置有AWS机密管理器。管道机密模板的格式为 我在AWS秘密管理器(其他类型的秘密)中创建了一个秘密,其值如下。 我在团队中设置了一个总汇管道。

  • 我创造了一个“其他类型的秘密”。我还在这个模板中添加了一个作为give的lambda函数。现在,当我试图立即旋转时,它会说“Fail to Rotion the secret”test_secret_Rothing“以前的旋转没有完成。将重新尝试该旋转。”轮转的时间是一天,即使第二天我看到分泌物也没有更新。我只是添加了那个lambda函数。我需要定义任何参数或任何其他lambda设置吗。我还在文档

  • null 例如,轮转设定为7天。所以我在我的应用程序中编码每7天刷新一次...不好,因为很难精确计时。 另一种方法是,如果我的应用程序面临身份验证异常,只需刷新密码,建立一个新的连接,并重试应用程序逻辑。 行业标准是什么?

  • 我有一个Django应用程序,可以从AWS秘密管理器中获取DB秘密。它包含所有DB参数,如用户名、密码、主机、端口等。当我在EC2上启动Django应用程序时,它会成功地从秘密管理器中检索秘密并建立一个DB连接。 现在的问题是我有一个密码循环策略设置30天。为了测试流量,目前,我已经设置为1天。每次密码旋转,我的Django应用程序就会失去DB连接。因此,我必须手动重新启动应用程序,以允许应用程序