gpt4 book ai didi

azure - 使用 TFS 自动化构建自动加密服务结构中的 settings.xml 文件

转载 作者:行者123 更新时间:2023-12-03 00:50:55 24 4
gpt4 key购买 nike

我需要对 Service Fabric 应用程序中的 settings.xml 文件中的一些部分/参数值进行加密。目前,我们在 TFS 中设置了一个构建过程来启动构建,并希望在将其投入生产时在此过程中合并值的加密。我已阅读“管理 Service Fabric 应用程序中的 secret ”,其中介绍了加密步骤:

  1. 获取数据加密证书
  2. 在集群中安装证书
  3. 在使用证书部署应用程序时对 secret 值进行加密,并将其注入(inject)到服务的 settings.xml 配置文件中
  4. 通过解密相同的加密证书,从 Settings.xml 中读取加密值。

我可以看到,我们可以使用 MustOverride 属性覆盖 XML 文件中的参数,并在 ApplicationManifest.xml 文件中提供参数的名称和值。

有谁知道如何或可以将我链接到一篇可以在 TFS 构建过程中执行此过程的文章吗?我正在寻找一种单击类型的部署,我们的部署团队(他们都不是程序员)可以使用它来将其转移到生产中。我明白必须做什么,只是没有看到修改我们的服务结构程序和构建以利用此流程所需的步骤。

最佳答案

以下是我如何在没有 Azure Key Vault 的情况下在 Service Fabric 中进行加密和解密。由于我们加密的数据没有改变,因此决定使用证书加密这些值并将这些值放入正确的 xml 文件中。

  1. 生成或获取 X509 证书。确保 KeyUsage 具有“DataEncipherment”,表明这对于数据加密至关重要
  2. 获取证书的指纹。您可以在 MMC 证书插件中获取它。
  3. 使用 powershell,使用 powershell 中的 Invoke-ServiceFabricEncryptedText 函数对文本进行加密。使用证书中的指纹来加密文本。这将创建包含基本 64 位字符串的文本加密,该字符串包含 secret 密文以及有关用于加密它的证书的信息。这很关键!此外,最好使用证书对加密字符串运行 Inoke-ServiceFabricDecryptText 方法,以确保其正常解密。
  4. 现在到了有趣的部分,以正确的方式将其放入所有 XML 文件中以使其发挥作用。 (这就是事情变得困惑的地方)。
  5. 首先您需要修改settings.xml 文件。您要加密的参数需要设置为 IsEncrypted="true"Value=""和 MustOverride="true"。
  6. 接下来,您需要在 ApplicationManifest.xml 文件中声明覆盖参数。确保应用程序 list 中的参数名称与设置中的参数名称相同。在 applicationmanifest.xml 文件的“Parameters”部分中设置参数的“Name”,并将值设置为“”。
  7. 在引用参数名称的 ConfigurationOverride 部分中,将值设置为参数部分中的参数。目前该值为空,同时设置 IsEncrypted="true"。
  8. 这就是我陷入困境的地方。所有其他信息都很容易获得,但下一部分则不然。接下来,在项目下的 ApplicationParameters 文件夹中,选择发布到 Service Fabric 时使用的 XML 文件。这是您放置加密值的地方。在此部分中创建一个参数,将名称设置为您在 ApplicationManifest 中指定的名称,并将值设置为从证书生成的加密值。

部署时,此参数将作为加密值传入。要在代码中使用它,您需要确保引用 DecryptValue。例如:

var decryptedPassword= configurationPackage.Settings.Sections["sectionname"].Parameters["ConnectionString"].DecryptValue();

这将生成一个可以在整个代码中使用的 SecureString。我使用有关如何将 SecureString 转换为在线可用字符串的许多引用文献之一将该值转换为字符串。

就是这样。我希望这对不使用 Azure Key Vault 来保护 secret 的其他人有所帮助。

关于azure - 使用 TFS 自动化构建自动加密服务结构中的 settings.xml 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44639731/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com