Key Vault virtuálního počítače pro Windows
Rozšíření Key Vault virtuálního počítače poskytuje automatickou aktualizaci certifikátů uložených v trezoru klíčů Azure. Rozšíření konkrétně monitoruje seznam zjištěných certifikátů uložených v trezorech klíčů a při zjištění změny načte a nainstaluje odpovídající certifikáty. Tento dokument podrobně obsahuje informace o podporovaných platformách, konfiguracích a možnostech nasazení Key Vault virtuálního počítače pro Windows.
Operační systém
Rozšíření Key Vault virtuálního počítače podporuje následující verze Windows:
- Windows Server 2019
- Windows Server 2016
- Windows Server 2012
Rozšíření Key Vault virtuálního počítače se také podporuje na vlastním místním virtuálním počítači, který se nahrává a převádí na specializovanou image pro použití v Azure s využitím instalace jádra Windows Serveru 2019.
Podporované typy obsahu certifikátů
- PKCS č. 12
- PEM
Požadavky
- Key Vault instance s certifikátem. Viz Vytvoření Key Vault
- Virtuální počítač musí mít přiřazenou spravovanou identitu
- Zásady Key Vault přístupu musí být nastavené s tajnými kódy a oprávněními pro spravovanou identitu virtuálního počítače nebo
getVMSS, aby se načítá část certifikátulisttajného klíče. Viz Postup ověření pro Key Vault a Přiřazení zásady Key Vault přístupu. - Virtual Machine Scale Sets by mělo mít následující nastavení identity:
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"[parameters('userAssignedIdentityResourceId')]": {}
}
}
- Rozšíření AKV by mělo mít toto nastavení:
"authenticationSettings": {
"msiEndpoint": "[parameters('userAssignedIdentityEndpoint')]",
"msiClientId": "[reference(parameters('userAssignedIdentityResourceId'), variables('msiApiVersion')).clientId]"
}
Schéma rozšíření
Následující kód JSON ukazuje schéma pro rozšíření Key Vault virtuálního počítače. Rozšíření nevyžaduje chráněná nastavení – všechna jeho nastavení se považují za veřejné informace. Rozšíření vyžaduje seznam monitorovaných certifikátů, četnost dotazování a cílové úložiště certifikátů. Konkrétně se jedná o tyto:
{
"type": "Microsoft.Compute/virtualMachines/extensions",
"name": "KVVMExtensionForWindows",
"apiVersion": "2019-07-01",
"location": "<location>",
"dependsOn": [
"[concat('Microsoft.Compute/virtualMachines/', <vmName>)]"
],
"properties": {
"publisher": "Microsoft.Azure.KeyVault",
"type": "KeyVaultForWindows",
"typeHandlerVersion": "1.0",
"autoUpgradeMinorVersion": true,
"settings": {
"secretsManagementSettings": {
"pollingIntervalInS": <string specifying polling interval in seconds, e.g: "3600">,
"certificateStoreName": <certificate store name, e.g.: "MY">,
"linkOnRenewal": <Only Windows. This feature ensures s-channel binding when certificate renews, without necessitating a re-deployment. e.g.: false>,
"certificateStoreLocation": <certificate store location, currently it works locally only e.g.: "LocalMachine">,
"requireInitialSync": <initial synchronization of certificates e..g: true>,
"observedCertificates": <list of KeyVault URIs representing monitored certificates, e.g.: "https://myvault.vault.azure.net/secrets/mycertificate"
},
"authenticationSettings": {
"msiEndpoint": <Optional MSI endpoint e.g.: "http://169.254.169.254/metadata/identity">,
"msiClientId": <Optional MSI identity e.g.: "c7373ae5-91c2-4165-8ab6-7381d6e75619">
}
}
}
}
Poznámka
Zjištěné adresy URL certifikátů by měly mít tvar https://myVaultName.vault.azure.net/secrets/myCertName .
Je to /secrets proto, že cesta vrací úplný certifikát, včetně privátního klíče, zatímco cesta /certificates ne. Další informace o certifikátech najdete tady: Key Vault Certifikáty
Důležité
Vlastnost authenticationSettings se vyžaduje jenom pro virtuální počítače s identitami přiřazenými uživatelem. Určuje identitu, která se má použít pro ověřování Key Vault.
Důležité
Pokud zadáte msiClientId, vyžaduje se vlastnost msiEndpoint . Obvykle by měla být hodnota nastavená na http://169.254.169.254/metadata/identity/oauth2/token .
Hodnoty vlastností
| Name | Hodnota / příklad | Typ dat |
|---|---|---|
| apiVersion | 2019-07-01 | date |
| vydavatel | Microsoft.Azure.KeyVault | řetězec |
| typ | KeyVaultForWindows | řetězec |
| typeHandlerVersion | 1.0 | int |
| pollingIntervalInS | 3600 | řetězec |
| certificateStoreName | MY | řetězec |
| linkOnRenewal | false (nepravda) | boolean |
| certificateStoreLocation | LocalMachine nebo CurrentUser (rozlišuje malá a velká písmena) | řetězec |
| requireInitialSync | true | boolean |
| observedCertificates | ["https://myvault.vault.azure.net/secrets/mycertificate", "https://myvault.vault.azure.net/secrets/mycertificate2"] | pole řetězců |
| msiEndpoint | http://169.254.169.254/metadata/identity | řetězec |
| MSIClientId | c7373ae5-91c2-4165-8ab6-7381d6e75619 | řetězec |
Nasazení šablon
Rozšíření virtuálních počítače Azure je možné nasadit pomocí Azure Resource Manager šablon. Šablony jsou ideální při nasazování jednoho nebo více virtuálních počítačů, které vyžadují aktualizaci certifikátů po nasazení. Toto rozšíření je možné nasadit na jednotlivé virtuální počítače nebo škálovací sady virtuálních počítačů. Schéma a konfigurace jsou společné pro oba typy šablon.
Konfigurace JSON pro rozšíření virtuálního počítače musí být vnořená do fragmentu prostředku virtuálního počítače šablony, konkrétně objektu pro šablonu virtuálního počítače a v případě škálovací sady virtuálních "resources": [] počítačů v rámci objektu "virtualMachineProfile":"extensionProfile":{"extensions" :[] .
Poznámka
Rozšíření virtuálního počítače by vyžadovalo přiřazení spravované identity systému nebo uživatele k ověření ve službě Key Vault. Viz Postup ověření pro Key Vault a přiřazení Key Vault přístupu.
{
"type": "Microsoft.Compute/virtualMachines/extensions",
"name": "KeyVaultForWindows",
"apiVersion": "2019-07-01",
"location": "<location>",
"dependsOn": [
"[concat('Microsoft.Compute/virtualMachines/', <vmName>)]"
],
"properties": {
"publisher": "Microsoft.Azure.KeyVault",
"type": "KeyVaultForWindows",
"typeHandlerVersion": "1.0",
"autoUpgradeMinorVersion": true,
"settings": {
"secretsManagementSettings": {
"pollingIntervalInS": <string specifying polling interval in seconds, e.g: "3600">,
"certificateStoreName": <certificate store name, e.g.: "MY">,
"certificateStoreLocation": <certificate store location, currently it works locally only e.g.: "LocalMachine">,
"observedCertificates": <list of KeyVault URIs representing monitored certificates, e.g.: ["https://myvault.vault.azure.net/secrets/mycertificate", "https://myvault.vault.azure.net/secrets/mycertificate2"]>
}
}
}
}
Řazení závislostí rozšíření
Rozšíření Key Vault podporuje řazení rozšíření, pokud je nakonfigurované. Ve výchozím nastavení rozšíření hlásí, že se úspěšně zahájilo ihned po zahájení dotazování. Můžete ho ale nakonfigurovat tak, aby před oznámením úspěšného spuštění počkal na úspěšné stažení kompletního seznamu certifikátů. Pokud ostatní rozšíření závisí na instalaci úplné sady certifikátů před jejich zahájením, povolení tohoto nastavení umožní deklarovat závislost na rozšíření Key Vault rozšíření. Zabráníte tak spuštění těchto rozšíření, dokud nebudou nainstalovány všechny certifikáty, na které jsou závislé. Rozšíření bude pokus o počáteční stažení opakovat po neomezenou dobu a zůstane ve Transitioning stavu .
Pokud chcete toto nastavení zapnout, nastavte následující:
"secretsManagementSettings": {
"requireInitialSync": true,
...
}
Poznámka
Použití této funkce není kompatibilní se šablonou ARM, která vytvoří identitu přiřazenou systémem a aktualizuje Key Vault přístupu s touto identitou. Výsledkem bude zablokování, protože zásady přístupu k trezoru není možné aktualizovat, dokud se nezačala všechna rozšíření. Místo toho byste měli před nasazením použít jednu identitu MSI přiřazenou uživatelem a před seznamem ACL trezory s tuto identitou.
Azure PowerShell nasazení
Upozornění
Klienti PowerShellu často přidávají do souboru \ " settings.json, což způsobuje selhání akvvm_service s chybou. Další znaky a se zobrazí na portálu v rozšíření pod Nastavení [CertificateManagementConfiguration] Failed to parse the configuration settings with:not an object. \ " . Pokud se tomu chcete vyhnout, $settings inicializujte jako HashTable PowerShell:
$settings = @{
"secretsManagementSettings" = @{
"pollingIntervalInS" = "<pollingInterval>";
"certificateStoreName" = "<certStoreName>";
"certificateStoreLocation" = "<certStoreLoc>";
"observedCertificates" = @("<observedCert1>", "<observedCert2>") } }
Pomocí Azure PowerShell můžete nasadit rozšíření virtuálního Key Vault virtuálního počítače do existujícího virtuálního počítače nebo škálovací sady virtuálních počítačů.
Nasazení rozšíření na virtuální počítač:
# Build settings $settings = '{"secretsManagementSettings": { "pollingIntervalInS": "' + <pollingInterval> + '", "certificateStoreName": "' + <certStoreName> + '", "certificateStoreLocation": "' + <certStoreLoc> + '", "observedCertificates": ["' + <observedCert1> + '","' + <observedCert2> + '"] } }' $extName = "KeyVaultForWindows" $extPublisher = "Microsoft.Azure.KeyVault" $extType = "KeyVaultForWindows" # Start the deployment Set-AzVmExtension -TypeHandlerVersion "1.0" -ResourceGroupName <ResourceGroupName> -Location <Location> -VMName <VMName> -Name $extName -Publisher $extPublisher -Type $extType -SettingString $settingsNasazení rozšíření do škálovací sady virtuálních počítačů:
# Build settings $settings = '{"secretsManagementSettings": { "pollingIntervalInS": "' + <pollingInterval> + '", "certificateStoreName": "' + <certStoreName> + '", "certificateStoreLocation": "' + <certStoreLoc> + '", "observedCertificates": ["' + <observedCert1> + '","' + <observedCert2> + '"] } }' $extName = "KeyVaultForWindows" $extPublisher = "Microsoft.Azure.KeyVault" $extType = "KeyVaultForWindows" # Add Extension to VMSS $vmss = Get-AzVmss -ResourceGroupName <ResourceGroupName> -VMScaleSetName <VmssName> Add-AzVmssExtension -VirtualMachineScaleSet $vmss -Name $extName -Publisher $extPublisher -Type $extType -TypeHandlerVersion "1.0" -Setting $settings # Start the deployment Update-AzVmss -ResourceGroupName <ResourceGroupName> -VMScaleSetName <VmssName> -VirtualMachineScaleSet $vmss
Nasazení Azure CLI
Azure CLI můžete použít k nasazení rozšíření virtuálního Key Vault virtuálního počítače do existujícího virtuálního počítače nebo škálovací sady virtuálních počítačů.
Nasazení rozšíření na virtuální počítač:
# Start the deployment az vm extension set --name "KeyVaultForWindows" ` --publisher Microsoft.Azure.KeyVault ` --resource-group "<resourcegroup>" ` --vm-name "<vmName>" ` --settings '{\"secretsManagementSettings\": { \"pollingIntervalInS\": \"<pollingInterval>\", \"certificateStoreName\": \"<certStoreName>\", \"certificateStoreLocation\": \"<certStoreLoc>\", \"observedCertificates\": [\" <observedCert1> \", \" <observedCert2> \"] }}'Nasazení rozšíření do sady škálování virtuálních počítačů:
# Start the deployment az vmss extension set --name "KeyVaultForWindows" ` --publisher Microsoft.Azure.KeyVault ` --resource-group "<resourcegroup>" ` --vmss-name "<vmName>" ` --settings '{\"secretsManagementSettings\": { \"pollingIntervalInS\": \"<pollingInterval>\", \"certificateStoreName\": \"<certStoreName>\", \"certificateStoreLocation\": \"<certStoreLoc>\", \"observedCertificates\": [\" <observedCert1> \", \" <observedCert2> \"] }}'
Mějte na paměti následující omezení/požadavky:
- Omezení Key Vault:
- Musí existovat v době nasazení.
- Zásady přístupu Key Vault musí být nastavené pro identitu VM/VMSS pomocí spravované identity. Další informace najdete v tématu ověření Key Vault a přiřazení zásad Key Vault přístupu.
Řešení potíží a podpora
Nejčastější dotazy
- Existuje omezení počtu observedCertificates, která můžete nastavit? Ne, Key Vault rozšíření virtuálního počítače nemá omezení počtu observedCertificates.
Řešení potíží
Data o stavu nasazení rozšíření lze načíst z Azure Portal a pomocí Azure PowerShell. Pokud chcete zobrazit stav nasazení rozšíření pro daný virtuální počítač, spusťte následující příkaz pomocí Azure PowerShell.
Azure PowerShell
Get-AzVMExtension -VMName <vmName> -ResourceGroupname <resource group name>
Azure CLI
az vm get-instance-view --resource-group <resource group name> --name <vmName> --query "instanceView.extensions"
Protokoly a konfigurace
Protokoly rozšíření Key Vault VM existují pouze lokálně na virtuálním počítači a jsou při řešení potíží velmi informativní.
| Umístění | Popis |
|---|---|
| C:\WindowsAzure\Logs\WaAppAgent.log | Ukazuje, kdy došlo k aktualizaci rozšíření. |
| C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.KeyVault.KeyVaultForWindows<most recent version>\ | Zobrazuje stav stahování certifikátu. umístění pro stahování bude vždycky Windows moje úložiště (certlm. msc) počítače. |
| C:\Packages\Plugins\Microsoft.Azure.KeyVault.KeyVaultForWindows <most recent version> \RuntimeSettings\ | Protokol služby rozšíření virtuálních počítačů Key Vault zobrazuje stav služby akvvm_service. |
| C:\Packages\Plugins\Microsoft.Azure.KeyVault.KeyVaultForWindows <most recent version> \Status\ | Konfigurace a binární soubory pro službu rozšíření virtuálního počítače Key Vault. |
Podpora
Pokud potřebujete další podrobnější informace v jakémkoli bodě tohoto článku, můžete kontaktovat odborníky na Azure na webu MSDN Azure a Stack Overflow fóra. Případně můžete zasouborovat incident podpory Azure. Přejít na web podpory Azure a vyberte získat podporu. informace o použití podpory Azure najdete v tématu nejčastější dotazy k podpoře pro Microsoft Azure.