我正在使用AWS Elastic Beanstalk部署网站,并且可以非常轻松地部署到负载均衡的Web场中。
现在,我想要为我已部署的站点加载web.config中的某些部分,无论是在部署之前还是之后。
有很多文章介绍了如何使用RSA来加密某个部分的Aspnet_regiis.exe工具,但问题是当您处理Web服务器场时,因为您需要将私钥导出到其他服务器。
从这篇文章http://msdn.microsoft.com/en-us/library/ff647398.aspx中可以看到:
Web场方案如果要在Web场中的多个服务器上部署相同的加密配置文件,则应使用 RSAProtectedConfigurationProvider。这个提供商可以轻松实现 您加密一台服务器计算机上的数据,然后导出RSA 解密数据所需的私钥。然后,您可以部署 配置文件和导出的目标服务器密钥,以及 然后重新导入密钥。
但是,我的问题是在负载均衡的环境中,服务器会因Autoscale规则而上下起伏,我需要一个流程来自动管理密钥,即在新部署的服务器上导入用于加密Web.config的私钥。
有没有人这样做或能提供一些见解?
答案 0 :(得分:4)
根据@kukido的建议,您需要创建一个包含以下内容的.ebextension文件。
commands:
encryptConfig:
command: aspnet_regiis.exe -pe "connectionStrings" -app /
cwd: %windir%\\Microsoft.NET\\Framework64\\v4.0.30319
答案 1 :(得分:1)
您可以利用容器命令导入私钥吗?每次初始化实例时都将执行该命令。例如,一旦开始将密钥保存在持久存储S3中,那么自动缩放不应成为问题。
Customizing the Software on EC2 Instances Running Windows有关于容器命令的更多详细信息。