WinRM-hozzáférés beállítása Virtual Machines az Azure Resource Manager-ben
A következőkre vonatkozik: ✔️ Windows rendszerű virtuális gépek rugalmas méretezési ✔️ csoportjai
Íme a WinRM-kapcsolattal rendelkező virtuális gép beállításához szükséges lépések
- Kulcstartó létrehozása
- Önaláírt tanúsítvány létrehozása
- Önaláírt tanúsítvány feltöltése a Key Vault
- Az önaláírt tanúsítvány URL-címének lekérése a Key Vault
- Az önaláírt tanúsítványok URL-címének hivatkozása virtuális gép létrehozásakor
1. lépés: Key Vault létrehozása
Az alábbi paranccsal hozhatja létre a Key Vault
New-AzKeyVault -VaultName "<vault-name>" -ResourceGroupName "<rg-name>" -Location "<vault-location>" -EnabledForDeployment -EnabledForTemplateDeployment
2. lépés: Önaláírt tanúsítvány létrehozása
Ezzel a PowerShell-szkripttel önaláírt tanúsítványt hozhat létre
$certificateName = "somename"
$thumbprint = (New-SelfSignedCertificate -DnsName $certificateName -CertStoreLocation Cert:\CurrentUser\My -KeySpec KeyExchange).Thumbprint
$cert = (Get-ChildItem -Path cert:\CurrentUser\My\$thumbprint)
$password = Read-Host -Prompt "Please enter the certificate password." -AsSecureString
Export-PfxCertificate -Cert $cert -FilePath ".\$certificateName.pfx" -Password $password
3. lépés: Az önaláírt tanúsítvány feltöltése a Key Vault
Mielőtt feltöltené a tanúsítványt az 1. lépésben létrehozott Key Vault, a tanúsítványt a Microsoft.Compute erőforrás-szolgáltató által megértett formátumba kell konvertálni. Az alábbi PowerShell-szkript lehetővé teszi ezt
$fileName = "<Path to the .pfx file>"
$fileContentBytes = Get-Content $fileName -Encoding Byte
$fileContentEncoded = [System.Convert]::ToBase64String($fileContentBytes)
[System.Collections.HashTable]$TableForJSON = @{
"data" = $fileContentEncoded;
"dataType" = "pfx";
"password" = "<password>";
}
[System.String]$jsonObject = $TableForJSON | ConvertTo-Json
$encoding = [System.Text.Encoding]::UTF8
$jsonEncoded = [System.Convert]::ToBase64String($encoding.GetBytes($jsonObject))
$secret = ConvertTo-SecureString -String $jsonEncoded -AsPlainText –Force
Set-AzKeyVaultSecret -VaultName "<vault name>" -Name "<secret name>" -SecretValue $secret
4. lépés: Az önaláírt tanúsítvány URL-címének lekérése a Key Vault
A Microsoft.Compute erőforrás-szolgáltatónak szüksége van egy URL-címre a titkos kódhoz a Key Vault a virtuális gép kiépítése során. Ez lehetővé teszi, hogy a Microsoft.Compute erőforrás-szolgáltató letöltse a titkos kulcsot, és létrehozza a megfelelő tanúsítványt a virtuális gépen.
Megjegyzés
A titkos kód URL-címének tartalmaznia kell a verziót is. Egy példa URL-címe az alábbihoz hasonlóan néz ki https://contosovault.vault.azure.net:443/secrets/contososecret/01h9db0df2cd4300a20ence585a6s7ve
Sablonok
A sablon URL-címére mutató hivatkozást az alábbi kód használatával szerezheti be
"certificateUrl": "[reference(resourceId(resourceGroup().name, 'Microsoft.KeyVault/vaults/secrets', '<vault-name>', '<secret-name>'), '2015-06-01').secretUriWithVersion]"
PowerShell
Ezt az URL-címet az alábbi PowerShell-paranccsal szerezheti be
$secretURL = (Get-AzKeyVaultSecret -VaultName "<vault name>" -Name "<secret name>").Id
5. lépés: Az önaláírt tanúsítványok URL-címének hivatkozása virtuális gép létrehozásakor
Azure Resource Manager-sablonok
Miközben sablonokkal hoz létre virtuális gépet, a tanúsítványra az alábbiak szerint hivatkozik a titkos kódok szakaszban és a winRM szakaszban:
"osProfile": {
...
"secrets": [
{
"sourceVault": {
"id": "<resource id of the Key Vault containing the secret>"
},
"vaultCertificates": [
{
"certificateUrl": "<URL for the certificate you got in Step 4>",
"certificateStore": "<Name of the certificate store on the VM>"
}
]
}
],
"windowsConfiguration": {
...
"winRM": {
"listeners": [
{
"protocol": "http"
},
{
"protocol": "https",
"certificateUrl": "<URL for the certificate you got in Step 4>"
}
]
},
...
}
},
A fenti mintasablon itt található: vm-winrm-keyvault-windows
A sablon forráskódja a GitHubon található
PowerShell
$vm = New-AzVMConfig -VMName "<VM name>" -VMSize "<VM Size>"
$credential = Get-Credential
$secretURL = (Get-AzKeyVaultSecret -VaultName "<vault name>" -Name "<secret name>").Id
$vm = Set-AzVMOperatingSystem -VM $vm -Windows -ComputerName "<Computer Name>" -Credential $credential -WinRMHttp -WinRMHttps -ProvisionVMAgent -WinRMCertificateUrl $secretURL
$sourceVaultId = (Get-AzKeyVault -ResourceGroupName "<Resource Group name>" -VaultName "<Vault Name>").ResourceId
$CertificateStore = "My"
$vm = Add-AzVMSecret -VM $vm -SourceVaultId $sourceVaultId -CertificateStore $CertificateStore -CertificateUrl $secretURL
6. lépés: Csatlakozás a virtuális géphez
Mielőtt csatlakozni tud a virtuális géphez, meg kell győződnie arról, hogy a gépe a WinRM távoli felügyeletére van konfigurálva. Indítsa el a PowerShellt rendszergazdaként, és futtassa az alábbi parancsot, hogy biztosan be legyen állítva.
Enable-PSRemoting -Force
Megjegyzés
Előfordulhat, hogy meg kell győződnie arról, hogy a WinRM szolgáltatás fut, ha a fentiek nem működnek. Ezt a következővel teheti meg: Get-Service WinRM
A telepítés befejezése után az alábbi paranccsal csatlakozhat a virtuális géphez
Enter-PSSession -ConnectionUri https://<public-ip-dns-of-the-vm>:5986 -Credential $cred -SessionOption (New-PSSessionOption -SkipCACheck -SkipCNCheck -SkipRevocationCheck) -Authentication Negotiate
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: