Asp.net 如何使用Amazon Elastic Beanstalk加密web.config节并部署到多个服务器

Asp.net 如何使用Amazon Elastic Beanstalk加密web.config节并部署到多个服务器,asp.net,amazon-web-services,web-config,amazon-elastic-beanstalk,Asp.net,Amazon Web Services,Web Config,Amazon Elastic Beanstalk,我正在使用AWS Elastic Beanstalk部署一个网站,它很容易部署到负载平衡的web场中 现在,我想为我已部署的站点加密web.config中的一些部分,无论是在部署之前还是之后 有许多文章介绍了如何使用RSA使用Aspnet_regais.exe工具对节进行加密,但是,问题是在处理web场时,因为需要将私钥导出到其他服务器 从本文可以看到: Web场方案如果要在Web场中的多台服务器上部署相同的加密配置文件,应使用 RSAProtectedConfigurationProvider

我正在使用AWS Elastic Beanstalk部署一个网站,它很容易部署到负载平衡的web场中

现在,我想为我已部署的站点加密web.config中的一些部分,无论是在部署之前还是之后

有许多文章介绍了如何使用RSA使用Aspnet_regais.exe工具对节进行加密,但是,问题是在处理web场时,因为需要将私钥导出到其他服务器

从本文可以看到:

Web场方案如果要在Web场中的多台服务器上部署相同的加密配置文件,应使用 RSAProtectedConfigurationProvider。此提供程序使您可以轻松使用 在一台服务器计算机上加密数据,然后导出RSA 解密数据所需的私钥。然后可以部署 配置文件和导出到目标服务器的密钥,以及 然后重新导入密钥

但是,我的问题是,在负载平衡的环境中,由于自动缩放规则,服务器会上下波动,我需要一个过程来自动管理密钥,也就是说,在新部署的服务器上导入用于加密Web.config的私钥


有人这样做了吗?或者可以提供一些见解吗?

您可以利用容器命令导入私钥吗?该命令将在每次初始化实例时执行。一旦您开始将密钥保存在持久存储(例如S3)中,那么自动缩放就不应该成为问题


有更多关于容器命令的详细信息。

按照@kukido的建议,您需要做的是创建一个包含以下内容的.ebextension文件

commands:
  encryptConfig:
    command: aspnet_regiis.exe -pe "connectionStrings" -app /
    cwd: %windir%\\Microsoft.NET\\Framework64\\v4.0.30319