【问题标题】:Best approach to set secret key values for multiple products and different environments for each product为多个产品和每个产品的不同环境设置密钥值的最佳方法
【发布时间】:2020-11-12 06:24:48
【问题描述】:

目前我的公司正在迁移我们所有的产品 Azure,作为迁移的一部分,我们使用 Azure 密钥库来存储密钥。我们有大约 10 到 15 种产品,我们使用审查、集成、登台和生产环境对每个产品。

我没有看到像我们目前使用的 Vault Enterprise 那样为不同环境和产品配置机密的选项。我在这里询问一种最佳方法来为 Azure 密钥保管库中的不同产品和相应环境配置密钥。这样就可以轻松管理 Azure 密钥保管库上的机密。

注意:我们确实为每个环境提供了大约 5 到 10 个密钥。

【问题讨论】:

    标签: azure azure-keyvault


    【解决方案1】:

    在为每个环境使用专用 KeyVault 方面,我们有很好的经验。使用“每个阶段的 KeyVault”方法的主要优点是您可以在每个 KeyVault 中使用相同的密钥名称。这确实使您在以后使用这些值时避免了很多复杂性。此外,如果您决定创建新环境或删除现有环境,您不必担心会影响其他环境。

    我们通常还会对此进行扩展,以便为每个产品创建一个专用的 KeyVault。因此,您将拥有“只有您需要的东西”并且它非常透明。如果您有很多“共享值”,也可以创建“通用”KeyVault。

    如果您使用 Azure Pipelines,将 KeyVault 链接到管道中的某个阶段会非常好。这也适用于 YAML 管道。同样,在这种情况下,在每个环境中使用相同的秘密名称会很有帮助,因为每个环境都可以是相同的。

    旁注:使用 Azure Pipelines,您还可以将一些秘密存储为“秘密变量”。对于你的情况可能还不够,但我想确保你知道。

    【讨论】:

      【解决方案2】:

      您必须在管道中使用将包含密钥保管库中的值的变量,然后,只需将变量设置为相关的产品/环境。

      更多信息:

      https://zimmergren.net/using-azure-key-vault-secrets-from-azure-devops-pipeline/

      https://stefanstranger.github.io/2019/06/26/PassingVariablesfromStagetoStage/

      【讨论】:

      • 据此,我需要将跨不同产品和环境的所有密钥添加到同一个密钥库,并在管道中使用相应的变量。这种方法会造成混乱并且以后难以管理变量。
      • 一种解决方案是为每个产品设置单独的资源组,在一个资源组中为每个环境设置单独的密钥保管库。我不确定这是否是一个好方法。
      • 这取决于你。我已经发布了如何实现您所需要的。
      猜你喜欢
      • 1970-01-01
      • 2020-12-28
      • 2016-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多