2017-06-14 4 views
1

ARMテンプレート内で、私は現在のテンプレートの一部として作成していない、前に出てきたKeyVaultにシークレットを書きたいと思っています。既存のキーボートにKeyVaultシークレットを作成する

私はこのコード

{ 
     "dependsOn": [ 
      "/subscriptions/<my-subscription-id>/resourceGroups/<my-resource-group>/providers/Microsoft.KeyVault/vaults/keyvaulttest" 
     ], 
     "type": "Microsoft.KeyVault/vaults/secrets", 
     "name": "keyvaulttest/test", 
     "apiVersion": "2015-06-01", 
     "tags": { 
      "displayName": "secret" 
     }, 
     "properties": { 
      "value": "value1" 
     } 
    } 
を使用しています

私は

導入テンプレートの検証が失敗した(DEPENDSON項目に)次の例外を取得しています、これを展開する場合:「リソース 」をMicrosoft.KeyVault/vaults/keyvaulttest 'は テンプレートで定義されていません。使用方法の詳細については、https://aka.ms/arm-templateを参照してください。 ' (コード:InvalidTemplate)

私も(動的リソース同上を取得)これとDEPENDSONの値を置き換えるが、私は同じ例外

[resourceId('<resourceGroup>','Microsoft.KeyVault/vaults','keyvaulttest')] 

にその他の方法を取得しています試してみました私は、ARMテンプレートからkeyvalultに秘密を保存するために使用できますか?

答えて

1

テンプレートにリソースMicrosoft.KeyVault/vaultsを追加する必要があります。鍵ボールトを作成すると、鍵ボールトを使用して新しい鍵ボールトを作成しません。次のテンプレートは私のために働く。

"resources": [ 
    { 
     "type": "Microsoft.KeyVault/vaults", 
     "name": "shui", 
     "apiVersion": "2015-06-01", 
     "location": "[resourceGroup().location]", 
     "properties": { 
     "sku": { 
     "family": "A", 
     "name": "Standard" 
     }, 
     "tenantId": "[subscription().tenantId]", 
     "accessPolicies": [ 
     { 
     "tenantId": "[subscription().tenantId]", 
     "objectId": "<your Azure account objectID>", 
     "permissions": { 
      "keys": [ "All" ], 
      "secrets": [ "All" ] 
     } 
     } 
    ] 
    } 
}, 
     { 
     "type": "Microsoft.KeyVault/vaults/secrets", 
     "name": "shui/SomeSecret", 
     "apiVersion": "2015-06-01", 
     "properties": { 
     "contentType": "text/plain", 
     "value": "ThisIpsemIsSecret" 
    }, 
     "dependsOn": [ 
      "[resourceId('Microsoft.KeyVault/vaults', 'shui')]" 
      ] 
     } 

    ] 

このブログは(Add secrets to your Azure Key Vault using ARM templates) 参考になります。

Azure Portalで重要なボールトjsonファイルを見つけることができます。 enter image description here

リソース"type": "Microsoft.KeyVault/vaults/secrets",をjsonファイルに追加します。以下は、私が秘密を追加するために使用するコマンドレットです。

PS C:\Users\v-shshui> New-AzureRmResourceGroupDeployment -Name shuitest -ResourceGroupName shui -TemplateFile "D:\vault.json" 

cmdlet New-AzureRmResourceGroupDeployment at command pipeline position 1 
Supply values for the following parameters: 
(Type !? for Help.) 
keyVaultName: shui 


DeploymentName   : shuitest 
ResourceGroupName  : shui 
ProvisioningState  : Succeeded 
Timestamp    : 6/16/2017 3:15:27 AM 
Mode     : Incremental 
TemplateLink   : 
Parameters    : 
          Name    Type      Value 
          =============== ========================= ========== 
          keyVaultName  String      shui 

Outputs     : 
DeploymentDebugLogLevel : 
+0

あなたはAzureのポータル上の 'objectID'を見つけることができる、'あなたのリソースgroup' - ><オートメーションスクリプト> –

+1

既存keyvault' { "エラー" のために実行されているこのエラー行き方:{ "コード" : "VaultAlreadyExists"、 "メッセージ": "Mykeyvaultの名前は既に使用されています。" } } – AlexDrenea

+0

ボールトの値を変更しないでください。ポータルでその値を見つけることができます。 –

関連する問題