Oktatóanyag: Az Azure Key Vault integrálása ARM-sablonalapú telepítésbe
Megtudhatja, hogyan szerezhet be titkos kulcsokat egy Azure-kulcstartóból, és hogyan adhatja át a titkos kulcsokat paraméterekként egy Azure Resource Manager-sablon (ARM-sablon) üzembe helyezésekor. A paraméter értéke soha nem lesz közzétéve, mert csak a kulcstartó azonosítójára hivatkozik. A kulcstartó titkos kulcsá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ésével a sablon paraméterfájljában lévő kulcstartóra kell hivatkozni, nem a sablonfájlra. Mindkét megközelítésről további információt az Azure Key Vault használata biztonságos paraméterértékek átadásához az üzembe helyezés során című témakörben talál.
Az Erőforrás üzembe helyezési sorrendjének beállítása oktatóanyagban virtuális gépet (VM) hoz létre. Meg kell adnia a virtuális gép rendszergazdájának felhasználónevét és jelszavát. A jelszó megadása helyett előre tárolhatja a jelszót egy Azure Key Vaultban, majd testre szabhatja a sablont, hogy lekérje a jelszót a kulcstartóból az üzembe helyezés során.
Ez az oktatóanyag a következő feladatokat mutatja be:
- Kulcstartó előkészítése
- Gyorsindítási sablon megnyitása
- A paraméterfájl szerkesztése
- A sablon üzembe helyezése
- Az üzembe helyezés ellenőrzése
- Az erőforrások eltávolítása
Ha nem rendelkezik Azure-előfizetéssel, hozzon létre egy ingyenes fiókot a feladatok megkezdése előtt.
A kulcstartóból biztonságos értéket használó Learn-modulért lásd: Összetett felhőbeli üzemelő példányok kezelése speciális ARM-sablonfunkciókkal.
Előfeltételek
Az oktatóanyag elvégzéséhez az alábbiakra van szükség:
Visual Studio CodeResource Manager Tools bővítménnyel. Lásd : Rövid útmutató: ARM-sablonok létrehozása a Visual Studio Code-tal.
A biztonság növelése érdekében használjon generált jelszót a virtuális gép rendszergazdai fiókjához. 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 parancsot
man openssl rand
a manuális lap megnyitásához.Ellenőrizze, hogy a létrehozott jelszó megfelel-e a virtuális gép jelszavára vonatkozó követelményeknek. Az egyes Azure-szolgáltatások különböző jelszókövetelményeket szabnak meg. A virtuális gép jelszókövetelményeiért lásd: Mik a jelszókövetelmények a virtuális gép létrehozásakor? című témakörben.
Kulcstartó előkészítése
Ebben a szakaszban létrehoz egy kulcstartót, és hozzáad hozzá egy titkos kulcsot, hogy lekérhesse a titkos kulcsot a sablon üzembe helyezésekor. A kulcstartók számos módon hozhatók létre. Ebben az oktatóanyagban Azure PowerShell használ egy ARM-sablon üzembe helyezéséhez. Ez a sablon két dolgot tesz:
- Létrehoz egy kulcstartót, amelyen engedélyezve van a
enabledForTemplateDeployment
tulajdonság. Ennek a tulajdonságnak igaznak kell lennie ahhoz, hogy a sablon üzembehelyezési folyamata hozzáférhessen a kulcstartóban definiált titkos kódokhoz. - Titkos kulcsot ad hozzá a kulcstartóhoz. A titkos kód tárolja a virtuális gép rendszergazdai jelszavát.
Megjegyzés
A virtuálisgép-sablont üzembe helyező felhasználóként, ha nem Ön a kulcstartó tulajdonosa vagy közreműködője, a tulajdonosnak vagy a közreműködőnek hozzáférést kell adnia a Microsoft.KeyVault/vaults/deploy/action
kulcstartó engedélyéhez. További információ: Biztonságos paraméterérték átadása az Azure Key Vault használatával az üzembe helyezés során.
A következő Azure PowerShell szkript futtatásához válassza a Kipróbálás lehetőséget a Cloud Shell megnyitásához. A szkript beillesztéséhez kattintson a jobb gombbal a felületpanelre, majd 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 törlésének megkönnyítése érdekében használja ugyanazt a projektnevet és erőforráscsoportnevet a következő sablon üzembe helyezésekor.
- A titkos kód alapértelmezett neve a vmAdminPassword. A sablonban van kódolva.
- Ahhoz, hogy a sablon lekérhesse a titkos kulcsot, engedélyeznie kell az Azure Resource Manager hozzáférésének engedélyezése a kulcstartó sablontelepítéséhez című hozzáférési szabályzatát. Ez a szabályzat engedélyezve van a sablonban. A hozzáférési szabályzattal kapcsolatos további információkért lásd: Kulcstartók és titkos kódok üzembe helyezése.
A sablonnak egy kimeneti értéke van, a neve keyVaultId
. Ezt az azonosítót és a titkos kód nevét fogja használni a titkos kód értékének lekéréséhez az oktatóanyag későbbi részében. Az erőforrás-azonosító formátuma a következő:
/subscriptions/<SubscriptionID>/resourceGroups/mykeyvaultdeploymentrg/providers/Microsoft.KeyVault/vaults/<KeyVaultName>
Az azonosító másolása és beillesztése során előfordulhat, hogy több sorra bontja. Egyesítse a vonalakat, és vágja le a felesleges szóközöket.
Az üzembe helyezés ellenőrzéséhez futtassa a következő PowerShell-parancsot ugyanabban a felületpanelen a titkos kód tiszta szövegben való lekéréséhez. A parancs csak ugyanabban a rendszerhéj-munkamenetben működik, mert a változót $keyVaultName
használja, amely az előző PowerShell-szkriptben van definiálva.
$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 előkészített egy kulcstartót és egy titkos kulcsot. Az alábbi szakaszok bemutatják, hogyan szabhat testre egy meglévő sablont a titkos kód lekéréséhez az üzembe helyezés során.
Gyorsindítási sablon megnyitása
Az Azure Quickstart Templates az ARM-sablonok adattára. Teljesen új sablon létrehozása helyett kereshet egy mintasablont, és testre szabhatja azt. Az oktatóanyagban használt sablon neve Egyszerű Windows rendszerű virtuális gép üzembe helyezése.
A Visual Studio Code-ban válassza a Fájl>megnyitása lehetőséget.
A Fájlnév mezőbe illessze be a következő URL-címet:
https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.compute/vm-simple-windows/azuredeploy.json
Az Open (Megnyitás) kiválasztásával nyissa meg a fájlt. A forgatókönyv ugyanaz, mint az oktatóanyag: ARM-sablonok létrehozása függő erőforrásokkal. A sablon hat erőforrást határoz meg:
- Microsoft.Storage/storageAccounts.
- Microsoft.Network/publicIPAddresses.
- Microsoft.Network/networkSecurityGroups.
- Microsoft.Network/virtualNetworks.
- Microsoft.Network/networkInterfaces.
- Microsoft.Compute/virtualMachines.
Mielőtt testre szabja, hasznos, ha alapszintű ismereteket szeretne a sablonról.
Válassza a Fájl>mentése másként lehetőséget, majd mentse a fájl egy példányát a helyi számítógépre azuredeploy.json néven.
Ismételje meg az 1–3. lépést a következő URL-cím megnyitásához, majd mentse a fájlt azuredeploy.parameters.json néven.
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ó metódus használatával nem kell módosítania a sablonfájlt. A titkos kód értékének beolvasása a sablon paraméterfájljának konfigurálásával történik.
Nyissa meg az azuredeploy.parameters.json fájlt a Visual Studio Code-ban, ha még nincs megnyitva.
Frissítse a paramétert a
adminPassword
következőre:"adminPassword": { "reference": { "keyVault": { "id": "/subscriptions/<SubscriptionID>/resourceGroups/mykeyvaultdeploymentrg/providers/Microsoft.KeyVault/vaults/<KeyVaultName>" }, "secretName": "vmAdminPassword" } },
Fontos
Cserélje le a értékét
id
az előző eljárásban létrehozott kulcstartó erőforrás-azonosítójára. AsecretName
kód a következő: vmAdminPassword. Lásd: Kulcstartó előkészítése.Frissítse a következő értékeket:
adminUsername
: A virtuálisgép-rendszergazdai fiók neve.dnsLabelPrefix
: Nevezze el azdnsLabelPrefix
értéket.
Példák a nevekre: az előző kép.
Mentse a módosításokat.
A sablon üzembe helyezése
Jelentkezzen be a Cloud Shell.
Válassza ki az előnyben részesített környezetet a bal felső sarokban található PowerShell vagy Bash (parancssori felülethez) lehetőség kiválasztásával. A váltáskor a felületet újra kell indítani.
Kattintson a Fájlok feltöltése/letöltése, majd a Feltöltés elemre. Töltse fel az azuredeploy.json és az azuredeploy.parameters.json fájlt is a Cloud Shell. A fájl feltöltése után a
ls
paranccsal és acat
paranccsal ellenőrizheti, hogy a fájl feltöltése sikeresen megtörtént-e.Futtassa a következő PowerShell-szkriptet a sablon üzembe helyezéséhez.
$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 üzembe helyezésekor használja ugyanazt az erőforráscsoportot, amelyet a kulcstartóban használt. Ez a módszer megkönnyíti az erőforrások törlését, mivel kettő helyett csak egy erőforráscsoportot kell törölnie.
Az üzembe helyezés ellenőrzése
A virtuális gép sikeres üzembe helyezése után tesztelje a bejelentkezési hitelesítő adatokat a key vaultban tárolt jelszóval.
Nyissa meg az Azure Portalt.
Válassza aYourResourceGroupName>simpleWinVM erőforráscsoportok<> elemet.>
Válassza a felül található Csatlakozás lehetőséget.
Válassza az RDP-fájl letöltése lehetőséget, majd az utasításokat követve jelentkezzen be a virtuális gépre a kulcstartóban tárolt jelszóval.
Az erőforrások eltávolítása
Ha már nincs szüksége az Azure-erőforrásokra, törölje az üzembe helyezett erőforrásokat az erőforráscsoport törlésével.
$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 ..."
Következő lépések
Ebben az oktatóanyagban lekért egy titkos kódot az Azure Key Vaultból. Ezután használta a titkos kódot a sablon üzembe helyezésében. A virtuálisgép-bővítmények üzembe helyezés utáni feladatainak végrehajtásához lásd: