Sdílet prostřednictvím


Kurz: Integrace služby Azure Key Vault do nasazení šablony ARM

Naučte se načítat tajné kódy z trezoru klíčů Azure a předávat tajné kódy jako parametry při nasazování šablony Azure Resource Manageru (šablona ARM). Hodnota parametru není nikdy vystavena, protože odkazujete pouze na JEHO ID trezoru klíčů. Na tajný klíč trezoru klíčů můžete odkazovat pomocí statického ID nebo dynamického ID. Tento kurz používá statické ID. Při použití statického ID odkazujete na trezor klíčů v souboru parametrů šablony, nikoli na soubor šablony. Další informace o oboupřístupch

V kurzu Nastavení pořadí nasazení prostředků vytvoříte virtuální počítač. Musíte zadat uživatelské jméno a heslo správce virtuálního počítače. Místo zadání hesla můžete heslo předem uložit do trezoru klíčů Azure a pak šablonu přizpůsobit tak, aby načítala heslo z trezoru klíčů během nasazení.

Diagram znázorňující integraci šablony Resource Manageru s trezorem klíčů

Tento kurz se zabývá následujícími úkony:

  • Příprava trezoru klíčů
  • Otevření šablony rychlého startu
  • Úprava souboru parametrů
  • Nasazení šablony
  • Ověření nasazení
  • Vyčištění prostředků

Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.

Modul Learn, který používá zabezpečenou hodnotu z trezoru klíčů, najdete v tématu Správa složitých cloudových nasazení pomocí pokročilých funkcí šablon ARM.

Požadavky

K dokončení tohoto článku potřebujete:

Příprava trezoru klíčů

V této části vytvoříte trezor klíčů a přidáte do něj tajný kód, abyste ho mohli při nasazování šablony načíst. Trezor klíčů můžete vytvořit mnoha způsoby. V tomto kurzu použijete Azure PowerShell k nasazení šablony ARM. Tato šablona dělá dvě věci:

  • Vytvoří trezor klíčů s povolenou enabledForTemplateDeployment vlastností. Tato vlastnost musí být pravdivá , aby proces nasazení šablony měl přístup k tajným kódům definovaným v trezoru klíčů.
  • Přidá do trezoru klíčů tajný klíč. Tajný klíč ukládá heslo správce virtuálního počítače.

Poznámka:

Jako uživatel, který nasazuje šablonu virtuálního počítače, pokud nejste vlastníkem nebo přispěvatelem trezoru klíčů, musí vám vlastník nebo přispěvatel udělit přístup k Microsoft.KeyVault/vaults/deploy/action oprávnění k trezoru klíčů. Další informace najdete v tématu Použití služby Azure Key Vault k předání hodnoty zabezpečeného parametru během nasazování.

Pokud chcete spustit následující skript Azure PowerShellu, vyberte Vyzkoušet a otevřete Cloud Shell. Skript vložíte tak, že kliknete pravým tlačítkem myši na podokno prostředí a pak vyberete Vložit.

$projectName = Read-Host -Prompt "Enter a project name that is used for generating resource names"
$location = Read-Host -Prompt "Enter the location (i.e. centralus)"
$upn = Read-Host -Prompt "Enter your user principal name (email address) used to sign in to Azure"
$secretValue = Read-Host -Prompt "Enter the virtual machine administrator password" -AsSecureString

$resourceGroupName = "${projectName}rg"
$keyVaultName = $projectName
$adUserId = (Get-AzADUser -UserPrincipalName $upn).Id
$templateUri = "https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/tutorials-use-key-vault/CreateKeyVault.json"

New-AzResourceGroup -Name $resourceGroupName -Location $location
New-AzResourceGroupDeployment -ResourceGroupName $resourceGroupName -TemplateUri $templateUri -keyVaultName $keyVaultName -adUserId $adUserId -secretValue $secretValue

Write-Host "Press [ENTER] to continue ..."

Důležité

  • Název skupiny prostředků je název projektu, ale s připojenou rg . Pokud chcete usnadnit vyčištění prostředků, které jste vytvořili v tomto kurzu, použijte při nasazení další šablony stejný název projektu a název skupiny prostředků.
  • Výchozí název tajného kódu je vmAdminPassword. Šablona je pevně zakódovaná.
  • Pokud chcete šabloně povolit načtení tajného kódu, musíte povolit zásadu přístupu s názvem Povolit přístup k Azure Resource Manageru pro nasazení šablony pro trezor klíčů. Tato zásada je v šabloně povolená. Další informace ozásadách

Šablona má jednu výstupní hodnotu, která se nazývá keyVaultId. Toto ID použijete spolu s názvem tajného kódu k načtení hodnoty tajného kódu později v tomto kurzu. Formát ID prostředku je:

/subscriptions/<SubscriptionID>/resourceGroups/mykeyvaultdeploymentrg/providers/Microsoft.KeyVault/vaults/<KeyVaultName>

Když id zkopírujete a vložíte, může být rozdělený na několik řádků. Sloučí řádky a oříznou nadbytečné mezery.

Pokud chcete ověřit nasazení, spusťte následující příkaz PowerShellu ve stejném podokně prostředí a načtěte tajný kód ve formátu prostého textu. Příkaz funguje pouze ve stejné relaci prostředí, protože používá proměnnou $keyVaultName, která je definovaná v předchozím skriptu PowerShellu.

$secret = Get-AzKeyVaultSecret -VaultName $keyVaultName -Name "vmAdminPassword"
$ssPtr = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($secret.SecretValue)
try {
   $secretValueText = [System.Runtime.InteropServices.Marshal]::PtrToStringBSTR($ssPtr)
} finally {
   [System.Runtime.InteropServices.Marshal]::ZeroFreeBSTR($ssPtr)
}
Write-Output $secretValueText

Teď jste připravili trezor klíčů a tajný klíč. Následující části ukazují, jak přizpůsobit existující šablonu pro načtení tajného kódu během nasazení.

Otevření šablony rychlého startu

Šablony pro rychlý start Azure jsou úložištěm pro šablony ARM. Místo vytvoření šablony úplně od začátku si můžete najít ukázkovou šablonu a přizpůsobit ji. Šablona použitá v tomto kurzu se nazývá Nasazení jednoduchého virtuálního počítače s Windows.

  1. V editoru Visual Studio Code vyberte Soubor>otevřít soubor.

  2. Do pole Název souboru vložte následující adresu URL:

    https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.compute/vm-simple-windows/azuredeploy.json
    
  3. Výběrem Open (Otevřít) soubor otevřete. Scénář je stejný jako scénář, který se používá v kurzu: Vytváření šablon ARM se závislými prostředky. Šablona definuje šest prostředků:

    Před přizpůsobením šablony je užitečné mít základní znalosti šablony.

  4. Vyberte Soubor>Uložit jako a potom uložte kopii souboru do místního počítače s názvem azuredeploy.json.

  5. Opakováním kroků 1 až 3 otevřete následující adresu URL a pak soubor uložte jako azuredeploy.parameters.json.

    https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.compute/vm-simple-windows/azuredeploy.parameters.json
    

Úprava souboru parametrů

Pomocí metody statického ID nemusíte provádět žádné změny v souboru šablony. Načtení hodnoty tajného kódu se provádí konfigurací souboru parametrů šablony.

  1. V editoru Visual Studio Code otevřete azuredeploy.parameters.json , pokud ještě není otevřený.

  2. Aktualizujte parametr na adminPassword :

    "adminPassword": {
      "reference": {
        "keyVault": {
          "id": "/subscriptions/<SubscriptionID>/resourceGroups/mykeyvaultdeploymentrg/providers/Microsoft.KeyVault/vaults/<KeyVaultName>"
        },
        "secretName": "vmAdminPassword"
      }
    },
    

    Důležité

    Nahraďte hodnotu id ID prostředku trezoru klíčů, který jste vytvořili v předchozím postupu. Je secretName pevně zakódovaný jako vmAdminPassword. Viz Příprava trezoru klíčů.

    Integrace trezoru klíčů a souboru parametrů nasazení virtuálního počítače šablony Resource Manageru

  3. Aktualizujte následující hodnoty:

    • adminUsername: Název účtu správce virtuálního počítače.
    • dnsLabelPrefix: Pojmenujte dnsLabelPrefix hodnotu.

    Příklady názvů najdete na předchozím obrázku.

  4. Uložte změny.

Nasazení šablony

  1. Přihlaste se do Cloud Shellu.

  2. Vyberte upřednostňované prostředí tak , že v levém horním rohu vyberete PowerShell nebo Bash (pro rozhraní příkazového řádku). Po přepnutí se vyžaduje restartování prostředí.

    Nahrání souboru Cloud Shellu na webu Azure Portal

  3. Vyberte Nahrát nebo stáhnout soubory a potom vyberte Nahrát. Nahrajte azuredeploy.json i azuredeploy.parameters.json do Cloud Shellu. Po nahrání souboru můžete použít ls příkaz a cat příkaz k ověření úspěšného nahrání souboru.

  4. Spuštěním následujícího skriptu PowerShellu šablonu nasaďte.

    $projectName = Read-Host -Prompt "Enter the same project name that is used for creating the key vault"
    $location = Read-Host -Prompt "Enter the same location that is used for creating the key vault (i.e. centralus)"
    $resourceGroupName = "${projectName}rg"
    
    New-AzResourceGroupDeployment `
        -ResourceGroupName $resourceGroupName `
        -TemplateFile "$HOME/azuredeploy.json" `
        -TemplateParameterFile "$HOME/azuredeploy.parameters.json"
    
    Write-Host "Press [ENTER] to continue ..."
    

    Při nasazování šablony použijte stejnou skupinu prostředků, kterou jste použili v trezoru klíčů. Tento přístup usnadňuje vyčištění prostředků, protože místo dvou potřebujete odstranit jenom jednu skupinu prostředků.

Ověření nasazení

Po úspěšném nasazení virtuálního počítače otestujte přihlašovací údaje pomocí hesla uloženého v trezoru klíčů.

  1. Otevřete Azure Portal.

  2. Vyberte skupiny><prostředků YourResourceGroupName>>simpleWinVM.

  3. Nahoře vyberte Připojit .

  4. Vyberte Stáhnout soubor RDP a pak postupujte podle pokynů pro přihlášení k virtuálnímu počítači pomocí hesla uloženého v trezoru klíčů.

Vyčištění prostředků

Pokud už prostředky Azure nepotřebujete, vyčistěte prostředky, které jste nasadili, odstraněním skupiny prostředků.

$projectName = Read-Host -Prompt "Enter the same project name that is used for creating the key vault"
$resourceGroupName = "${projectName}rg"

Remove-AzResourceGroup -Name $resourceGroupName

Write-Host "Press [ENTER] to continue ..."

Další kroky

V tomto kurzu jste načetli tajný klíč ze svého trezoru klíčů Azure. Pak jste použili tajný kód v nasazení šablony. Informace o používání rozšíření virtuálních počítačů k provádění úloh po nasazení najdete v tématu: