Oktatóprogram: Az Azure kulcstár integrálása a ARM telepítésében

Ebből a cikkből megtudhatja, hogy miként olvashatja le a titkos titkos értékeket egy Azure-kulcstárból, és hogyan bérletheti a titkos titkos értékeket paraméterekként egy Azure Resource Manager-sablon (ARM telepítésekor). A paraméter értéke soha nem lesz elérhető, mert csak a kulcstár azonosítójára hivatkozik. A kulcstár kódjára statikus azonosítóval vagy dinamikus azonosítóval hivatkozhat. Ez az oktatóanyag statikus azonosítót használ. A statikus azonosító megközelítéssel a sablon paraméterfájljában a kulcstárra hivatkozik, nem a sablonfájlra. A két módszerről további információt a Biztonságos paraméterérték megadása az Azure-kulcstár használatávaltelepítés közben .

Az Erőforrás-üzembe helyezési sorrend beállítása oktatóanyagban létrehoz egy virtuális gépet (VM). Meg kell adnia a VM-rendszergazda felhasználónevét és jelszavát. A jelszó megadása helyett előre tárolhatja a jelszót egy Azure-kulcstárolóban, majd testre szabhatja a sablont, hogy beolvassa a jelszót a kulcstárból a telepítés során.

Az Erőforrás-kezelő sablon egy kulcstárba való integrálását megjelenítő diagram

Ez az oktatóanyag az alábbi feladatokat foglalja össze:

  • A kulcstár előkészítése
  • Gyorsútmutató sablon megnyitása
  • A paraméterfájl szerkesztése
  • A sablon telepítése
  • A telepítés ellenőrzése
  • Erőforrások megtisztítása

Ha nincs Azure-előfizetése, a kezdés előtt hozzon létre egy ingyenes fiókot.

Egy kulcstár biztonságos értékét használó Microsoft Learn modul esetén olvassa el az Összetett felhőbeli telepítések kezelése a speciális felhőalapú ARM használatával.

Előfeltételek

A cikk befejezéséhez az alábbira van szükség:

  • Visual Studio erőforrás-kezelő eszközök kiterjesztésű kód használata. Lásd: Gyorsútmutató: ARM sablonok létrehozása Visual Studio kód használatával.

  • A biztonság növeléséhez használjon egy létrehozott jelszót a VM-rendszergazdafiókhoz. Az Azure Cloud Shell használatával futtathatja a következő parancsot a PowerShellben vagy a Bashben:

    openssl rand -base64 32
    

    További információért futtassa a man openssl rand manuális lap megnyitását.

    Ellenőrizze, hogy a létrehozott jelszó megfelel-e a VM-jelszó követelményeinek. Minden Azure-szolgáltatáshoz egyedi jelszókövetelmények vonatkoznak. A VM-jelszókövetelményeket a Mik azok a jelszókövetelmények vm létrehozásakor?

A kulcstár előkészítése

Ebben a szakaszban létrehoz egy kulcstárat, és hozzáad egy titkos tárolót, hogy a sablon telepítésekor lekérheti a titkos adatokat. A kulcstárat számos módon létrehozhatja. Ebben az oktatóanyagban Azure PowerShell egy új ARM központi telepítéséhez. A sablon két dolgot tesz:

  • Olyan kulcstárat hoz létre, amelynél engedélyezve enabledForTemplateDeployment van a tulajdonság. A tulajdonságnak igaznak kell lennie, mielőtt a sablonterjesztési folyamat hozzáférhet a kulcstárban definiált titkos információkhoz.
  • Hozzáad egy titkos kulcsot a kulcstárhoz. A titkos gép tárolja a VM-rendszergazda jelszavát.

Megjegyzés

A virtuális gép sablonját üzembe helyező felhasználóként, ha nem Ön a tulajdonosa vagy nem közreműködője a kulcstárnak, a tulajdonosnak vagy egy közreműködőnek hozzáférést kell Önnek ad a Microsoft.KeyVault/vaults/deploy/action kulcstárhoz. További információért lásd: Biztonságos paraméterérték átadni az Azure Key Vault használatával telepítés közben.

Az alábbi parancsfájl futtatásához Azure PowerShell a Próbálja ki gombra a Cloud Shell megnyitásához. A parancsfájl beillesztéshez kattintson a jobb gombbal a rendszerhéj ablaktáblára, és válassza a Beillesztés parancsot.

$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 ..."

Fontos

  • Az erőforráscsoport neve a projekt neve, de az rg hozzá van fűzve. Az oktatóanyagban létrehozott erőforrások egyszerűbb tisztítása érdekében használja ugyanazt a projektnevet és erőforráscsoportnevet a következő sablon telepítésekor.
  • A titkos fájl alapértelmezett neve a vmAdminPassword. A sablonban nincs kódolva.
  • Ahhoz, hogy a sablon beolvassa a titkos adatokat, engedélyeznie kell egy Hozzáférés engedélyezése az Azure Resource Managerhez a sablon központi telepítéséhez a kulcstárhoz nevű hozzáférési házirendet. Ez a házirend engedélyezve van a sablonban. A hozzáférési házirendről további információt a Kulcstárak és titkos kulcsok üzembe helyezése .

A sablon egyetlen kimeneti értékkel rendelkezik, a neve keyVaultId . Ezt az azonosítót a titkos névvel együtt fogja használni a titkos érték lekéréseként az oktatóanyag későbbi, későbbi leírásában. Az erőforrás-azonosító formátuma:

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

Az azonosító másolása és beillesztése esetén előfordulhat, hogy az több sorra van bontva. Egyesítheti a vonalakat, és levághatja a felesleges szóközöket.

A telepítés ellenőrzéséhez futtassa az alábbi PowerShell-parancsot ugyanabban a rendszerhéj-ablaktáblában a titkos adat világos szöveggel való beolvasása érdekében. A parancs csak ugyanabban a rendszerhéj-munkamenetben működik, mert az előző PowerShell-parancsfájlban definiált $keyVaultName változót használja.

$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

Most már előkészített egy kulcstárat és egy titkos tárolót. Az alábbi szakaszokban azt mutatjuk be, hogy miként szabhatja testre egy meglévő sablont, hogy beolvassa a titkos adatokat a telepítés során.

Gyorsútmutató sablon megnyitása

Az Azure Gyorsútmutatósablonok a sablonok ARM tárháza. Ahelyett, hogy teljesen új sablont hoz létre, találhat egy mintasablont, és testre szabhatja azt. Az oktatóanyagban használt sablon neve Egyszerű virtuális gép üzembe helyezése Windows VM.

  1. A Visual Studio a Fájl megnyitásagombra.

  2. Illessze be a következő URL-címet a Fájlnév mezőbe:

    https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.compute/vm-simple-windows/azuredeploy.json
    
  3. A fájl megnyitásához válassza a Megnyitás gombot. A forgatókönyv ugyanaz, mint az oktatóanyagban: Függő erőforrásokkal ARM sablonok létrehozása. A sablon hat erőforrást határoz meg:

    A testreszabás előtt hasznos lehet, ha van némi alapvető ismerete a sablonról.

  4. Válassza a Fájlmentése másként lehetőséget, majd mentse a fájl egy példányát a helyi számítógépre az azuredeploy.json néven.

  5. Az 1–3. lépéseket megismételve nyissa meg a következő URL-címet, majd mentse a fájlt azuredeploy.parameters.json formátumban.

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

A paraméterfájl szerkesztése

A statikus azonosító módszerrel nem kell módosításokat létrehoznia a sablonfájlon. A titkos érték beolvasása a sablon paraméterfájljának konfigurálásával történik.

  1. A Visual Studio nyissa meg az azuredeploy.parameters.json kódot, ha még nincs megnyitva.

  2. Frissítse a adminPassword paramétert a következőre:

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

    Fontos

    Cserélje le a kulcstár értékét az előző eljárásban létrehozott kulcstár id erőforrás-azonosítójára. A secretName kód a secretName. Lásd: Kulcstár előkészítése.

    A kulcstár és az Erőforrás-kezelő sablon virtuális gép üzembe helyezésének paramétereit tároló fájl integrálása

  3. Frissítse az alábbi értékeket:

    • adminUsername: A virtuális gép rendszergazdafiókjának neve.
    • dnsLabelPrefix: Nevezze el dnsLabelPrefix az értéket.

    Nevekre példaként lásd az előző képet.

  4. Mentse a módosításokat.

A sablon telepítése

  1. Jelentkezzen be a Felhőbeli rendszerhéjba.

  2. Válassza ki a kívánt környezetet a PowerShell vagy a Bash (CLI) kiválasztásával a bal felső sarokban. A váltáskor újra kell indítani a rendszerhéjat.

    Azure Portal Cloud Shell-feltöltési fájl

  3. Válassza a Fájlok feltöltése/letöltése, majd a Feltöltés lehetőséget. Töltse fel az azuredeploy.json és az azuredeploy.parameters.json fájlt a Cloud Shellbe. A fájl feltöltése után a paranccsal és a paranccsal ellenőrizheti, hogy a fájl sikeresen lscat fel lett-e töltve.

  4. A sablon telepítéséhez futtassa az alábbi PowerShell-parancsprogramot.

    $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 ..."
    

    A sablon telepítésekor ugyanazt az erőforráscsoportot használja, mint a kulcstárban. Ez a megközelítés megkönnyíti az erőforrások megtisztítát, mivel kettő helyett csak egy erőforráscsoportot kell törölnie.

A telepítés ellenőrzése

Miután sikeresen telepítette a virtuális gépet, tesztelje a bejelentkezési hitelesítő adatokat a kulcstárolóban tárolt jelszóval.

  1. Nyissa meg az Azure Portalot.

  2. Válassza az ErőforráscsoportokYourResourceGroupName>>

  3. Válassza Csatlakozás a képernyő tetején.

  4. Válassza az RDP-fájlletöltése lehetőséget, majd az utasításokat követve jelentkezzen be a virtuális gépre a kulcstárolóban tárolt jelszóval.

Erőforrások megtisztítása

Ha már nincs szüksége az Azure-erőforrásokra, törölje az erőforráscsoport törlésével a telepített erőforrásokat.

$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 ..."

További lépések

Ebben az oktatóanyagban lekért egy titkos adatokat az Azure-kulcstárból. Ezután a titkos terjesztésben felhasználta a titkos 2010-et. Ha tudni szeretne arról, hogy miként végezheti el a telepítés utáni műveleteket virtuális gép bővítményekkel, olvassa el a következő cikkeket: