我有一个Spring启动应用程序,可连接到AWS上的PostgreSQL。我想将数据库配置(如DB URL,用户名和密码)存储在AWS参数存储中,作为secureStrings。
我想从我们设置的环境变量中的AWS参数存储访问这些参数:
SERVER_PORT = 5000
SPRING_DATASOURCE_PASSWORD = /dev/databases/postgresql/awsdbinstance/password
其中/dev/databases/postgresql/awsdbinstance/password
是AWS参数存储的名称。
我还向I2实例添加了IAM策略以进行SSMReadOnly访问,但仍然无法访问这些值。我做错了什么 我该如何实现?
此外,实现此目标的标准方法是什么?
我不想在试图从AWS参数存储中检索值的YAML文件中添加属性,而是我假设如果通过Elastic Beanstalk环境变量本身注入该属性会更好。
答案 0 :(得分:0)
您可以将环境变量硬编码到Elastic Beanstalk环境中。创建新环境时,请在安装过程中单击“其他选项”(或听起来类似的东西)。
对于现有环境,您可以在“仪表板”视图的configuration
标签中添加它们。滚动到底部,您将看到带有Environment properties
输入字段的Key:Value
部分。
注意:如果您的应用程序通过buildspec.yml
或*.config
文件指定了任何环境变量,则您将在此处看到已经填充的环境变量(假设您已将活动的应用程序构建并部署到了以下环境:课程。)
另一种完全的方法是使用AWS Secrets Manager
之类的东西,并在启动过程中让您的应用程序进行API调用,该调用将获取一组Key:Value对,并将想要的任何变量添加到应用程序环境中。