キー コンテナーとその中にシークレットを作成するためのテンプレートがあります。また、キー コンテナーから 3 つのもの (コンテナー URI、証明書 URL、および証明書の拇印) を必要とするサービス ファブリック テンプレートもあります。
PowerShell でキー コンテナーとシークレットを作成すると、出力からこれら 3 つを手動で簡単にコピーして、サービス ファブリック テンプレートのパラメーターに貼り付けることができます。ただし、この証明書はサービス ファブリック クラスターと同じライフ サイクルを持っているため、キー コンテナー テンプレートからサービス ファブリック テンプレートにリンクすることを望んでいるので、キー コンテナーとシークレットをデプロイするときに(ところで、これは base 64 で文字列にエンコードされたキーです。これをさらに別のキー コンテナーのシークレットとして使用できます...)、3 つの値をパラメーターとして渡すことができます。
そこで、質問が 2 つあります。
アーム テンプレートで 3 つの値を取得するにはどうすればよいですか。Powershell はそれらをキー コンテナーの「ResourceId」、シークレットの「Id」、シークレットの「Version」として出力します。私の試み:
"sourceVaultValue": { "value": "resourceId('Microsoft.KeyVault/vaults/', parameters('keyVaultName')" }, "certificateThumbprint": { "value": "[listKeys(resourceId('secrets', parameters('secretName')), '2015-06-01')" }, "certificateUrlValue": { "value": "[concat('https://', parameters('keyVaultName'), '.vault.azure.net:443/secrets/', parameters('secretName'), resourceId('secrets', parameters('secretName')))]"
しかし、certificateUrlValue が正しくありません。listKeys を使用した場合と使用しない場合で試してみましたが、どちらも機能していないようでした... (拇印は certUrl 自体の中にあります)
- 正しい値を取得できたら、それらをパラメーターとして次のテンプレートに渡したいと思います。問題のテンプレートには、渡したい 3 つよりもかなり多くのパラメーターがあります。では、パラメーター ファイルにリンクする parametersLink 要素と、これら 3 つのみの parameters 要素を使用することは可能ですか? または、これを行う意図的な方法はありますか?
乾杯