apache启动可以运行脚本来填充环境吗?

问题描述

我们正在将网站移至AWS环境,并在EC2上运行apache2。我们计划使用AWS Secrets Manager存储一些凭证,例如RDS(数据库)和电子邮件凭证。我还在apache中使用环境变量来存储AWS凭证,但是由于是用来检索机密的AWS凭证,我想知道是否有任何方法可以在apache启动时运行脚本来使用aws- sdk来检索这些秘密。

或者还有其他建议吗?我可以在需要此类访问权限的PHP代码中完成此操作,但是我只是在探索当前可能发生的情况。如果在Apache启动时加载了一些配置选项,那就太好了。

解决方法

您的两个选择似乎是编写一个填充env变量的启动脚本,然后将apache作为子进程启动以使其可以读取这些变量,或者修改Web应用程序以直接读取机密。

直接在应用程序中读取机密信息(可能是从短命的高速缓存中读取)将使您无需重新启动应用程序即可旋转数据库凭据。

此外,如果您在EC2上运行,则无需使用AWS凭证填充env变量。只需使用CouchDB documentation。 AWS CLI和SDK已经知道如何直接检索这些凭证。