【问题标题】:ARM Template for Array of Securestrings用于安全字符串数组的 ARM 模板
【发布时间】:2019-12-11 03:05:22
【问题描述】:

我正在尝试创建一个 ARM 模板,用于创建应用程序网关并使用密码上传动态数量的 SSL 证书。创建应用程序网关不是一个大问题,但我被困在将带有密码的动态数量的 SSL 证书从 Powershell 传递到 ARM 模板。

Powershell 设置为将一组 [0..n] 证书与安全字符串中的密码配对发送到 ARM 模板和参数文件。 App Gateway 的资源定义要求每个 SSL 证书的密码都是安全字符串,但似乎没有办法将参数定义为数组或对象并将元素/属性定义为安全字符串类型。

有一个通过 Key Vault 传递 VM 密码的示例,您可以在其中通过 Powershell 将密码/证书上传到 Key Vault,然后在资源定义中使用“参考”作为密码值。但是,这似乎不适用于应用程序网关的 SSL 证书,我遇到错误“解析值后遇到意外字符:{”就在“密码:”之后

有人知道如何将动态数量的安全字符串传递给 ARM 模板,或通过 ARM 模板将动态数量的 SSL 证书和密码上传到应用程序网关吗?

【问题讨论】:

    标签: azure arm-template


    【解决方案1】:

    好吧,这样做的一种方法是在调用嵌套模板时传入您需要用来获取证书数据并逐个迭代它们的密钥库秘密名称数组(因为您只能将 KV 秘密解析为当您启动\启动新模板时的值,而不是在模板内)。这不需要安全字符串,因为没有任何秘密被传递给模板。

    没有干净的方法可以做到这一点。无论哪种方式,它都需要迭代器,或者,例如,使用 powershell 启动相同的模板 x 次(每个应用程序网关 1 次)并将值提供给模板

    我将证书作为 base64 编码字符串存储在 Key Vault 中,以将它们传递给应用程序网关定义

    但我不明白问题的全部前提。应用程序网关不在乎您将安全字符串或只是字符串放入 ssl 证书属性中。

    【讨论】:

    • 应用程序网关具有属性“sslCertificates”,它采用证书“数据”和“密码”属性。密码属性需要类型安全字符串。
    • 我认为传递证书数据没有任何问题。我将它作为编码字符串数组传递没有问题。但是密码要求它在资源定义中是安全字符串类型。我不能使用嵌套模板,因为我需要将所有 ssl 证书作为数组上传到应用程序网关,然后创建引用这些证书的后端池和侦听器。 ssl 证书和引用必须在相同的定义中。
    • 不,这不是真的,它只需要一个字符串。 docs.microsoft.com/en-us/rest/api/application-gateway/…。关于嵌套网络,它也可以工作,有很多方法可以实现这一点,具体取决于您采用的方法
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-19
    • 2022-11-09
    • 2017-02-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多