2016-11-30 21 views
6

Próbuję wdrożyć szablon ARM z zarządzania wersjami, który zawiera zasób "Microsoft.Web/certyfikaty", który odwołuje się do certyfikatu przechowywanego w skarbcu kluczy. Działa to dobrze, gdy skarbiec kluczy istnieje w tej samej subskrypcji co grupa zasobów, do której wdrażam. Jeśli skarbiec kluczy istnieje w innej subskrypcji, otrzymam poniższy błąd.Błąd podczas wdrażania szablonu ARM, który zawiera certyfikat przechowywany w przechowalni kluczy

zasobów Microsoft.Web/Certyfikaty Nazwisko cert 'nie powiodło się z komunikatem

{ 
    "Code": "BadRequest", 
    "Message": "The parameter Properties.KeyVaultId has an invalid value.", 
    "Target": null, 
    "Details": [ 
    { 
     "Message": "The parameter Properties.KeyVaultId has an invalid value." 
    }, 
    { 
     "Code": "BadRequest" 
    }, 
    { 
     "ErrorEntity": { 
     "Code": "BadRequest", 
     "Message": "The parameter Properties.KeyVaultId has an invalid value.", 
     "ExtendedCode": "51008", 
     "MessageTemplate": "The parameter {0} has an invalid value.", 
     "Parameters": [ 
      "Properties.KeyVaultId" 
     ], 
     "InnerErrors": null 
     } 
    } 
    ], 
    "Innererror": null 
}' 

Zasób certyfikat jest zdefiniowany jako poniżej w moim szablonu.

{ 
     "type":"Microsoft.Web/certificates", 
     "name": "SomeName", 
     "location": "East US 2", 
     "apiVersion": "2016-03-01", 
     "properties": { 
      "keyVaultId": "/subscriptions/<subscriptionId>/resourceGroups/<vault resource group>/providers/Microsoft.KeyVault/vaults/<vault name>", 
      "keyVaultSecretName": "SecretName"     
     }    
    } 

Używam zadania wdrażania grupy zasobów Azure w VSTS do wdrożenia grupy zasobów. Zadanie jest skonfigurowane do używania punktu końcowego z usługą główną, która ma poniższe uprawnienia ustawione na Azure:

  • Dostawca klucza przechowalni kluczy Rola w grupie zasobów zawierającej skarbiec kluczy.
  • Get tajne uprawnienia na kluczu sklepienia

Głównym Microsoft.Azure.WebSites przyznano uprawnienia dostać się na kluczowych sekretów skarbcu.

Skarbiec klucza ma również włączoną opcję "Włącz dostęp do platformy Azure Resource Manager dla wdrożenia szablonu". Certyfikat został przesłany do skarbca kluczy za pomocą powershell, a nie za pośrednictwem portalu.

Czy tu czegoś brakuje?

Dzięki

+0

Czy próbowałeś wdrożyć przy użyciu Azure PowerShell zamiast Zadanie wdrażania grupy Azure Resource Group w VSTS? – juvchan

+0

Czy kiedykolwiek wymyśliłeś odpowiedź na to pytanie? – CtrlDot

+0

Otrzymuję ten sam problem. Czy to wyłącznie dlatego, że nie masz prawa wykonywać tej subskrypcji? – OffHeGoes

Odpowiedz

0

Myślę, że znalazłem przyczynę tego problemu. Wygląda na to, że po utworzeniu grupy zasobów nie można zmienić tajnej nazwy. Jeśli to zrobisz, powyższy błąd zostanie zgłoszony.

Jeśli chcesz zmienić tajną nazwę, musisz usunąć grupę zasobów i ponownie wdrożyć wszystko.

Czy zmieniałeś tajną nazwę w szablonie ARM, bez usuwania całej grupy zasobów w portalu Lazur?

+0

Mogę to potwierdzić, ale musieliśmy tylko usunąć zasób odwołujący się do tajnego kluczowego skarbca. Przeprowadziliśmy się do nowego skarbca, więc klucz keyVaultId był inny. Po usunięciu istniejącego certyfikatu, który odwołuje się do przechowalni kluczy, mogliśmy wdrożyć bez problemu. – ogoodwin