Azure Securestrings数组的ARM模板

Azure Securestrings数组的ARM模板,azure,arm-template,Azure,Arm Template,我正在尝试创建一个ARM模板,该模板创建应用程序网关,并上载带有密码的动态SSL证书数。创建应用网关并不是一个大问题,但我一直在将动态数量的SSL证书和密码从Powershell传递到ARM模板 Powershell已设置为向ARM模板和参数文件发送[0..n]证书阵列和securestring中的密码。App Gateway的资源定义要求每个SSL证书的密码都是securestring,但似乎没有办法将参数定义为数组或对象,并将元素/属性定义为securestring类型 有一个通过密钥保管库

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

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

有一个通过密钥保管库传递VM密码的示例,您可以通过Powershell将密码/证书上载到密钥保管库,然后在资源定义中使用“引用”作为密码值。但是,这似乎不适用于应用程序网关上的SSL证书,我在“解析值后遇到意外字符:{”password:“密码:”后面紧接着“密码:”时出错


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

好的,一种方法是传入一组密钥库秘密名称,您需要使用这些名称来获取证书数据,并在invo时逐个迭代它们king a嵌套模板(因为您只能在初始化\启动新模板时将KV secret解析为值,而不是在模板内部)。这不需要安全字符串,因为没有向模板传递任何机密

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

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


但是我不理解这个问题的全部前提。应用程序网关不在乎您是否将securestring或字符串放入ssl证书属性中。

应用程序网关有属性“sslCertificates”,它接受证书“数据”和“密码”属性。password属性需要securestring类型。我认为传递证书数据没有任何问题。我可以将其作为编码字符串数组传递。但密码要求在资源定义处为securestring类型。我无法使用嵌套模板,因为我需要将所有ssl证书上载到app网关作为一个数组,然后创建后端池和引用这些证书的侦听器。ssl证书和引用必须在同一个定义中。不,这不是真的,它只需要一个字符串。关于嵌套网络,它也可以工作,根据您采取的方法,将有多种方法实现这一点