Azure Key Vault Erweiterung virtueller Computer für Linux

Die Azure Key Vault-Erweiterung für virtuelle Computer (VMs) aktualisiert automatisch im Azure Key Vault gespeicherte Zertifikate. Die Erweiterung überwacht eine Liste der in Schlüsseltresoren gespeicherten, berücksichtigten Zertifikate. Wenn die Erweiterung eine Änderung erkennt, ruft sie die entsprechenden Zertifikate ab und installiert sie. In diesem Artikel werden die unterstützten Plattformen, Konfigurationen und Bereitstellungsoptionen für die Key Vault VM-Erweiterung für Linux beschrieben.

Hinweis

Testen Sie die VM-Unterstützung für eine schnellere Diagnose. Es wird empfohlen, vm assist for Windows or VM assist for Linux auszuführen. Diese skriptbasierten Diagnosetools helfen Ihnen, häufige Probleme zu identifizieren, die sich auf den Azure VM-Gast-Agent und die allgemeine VM-Integrität auswirken.

Wenn Leistungsprobleme mit virtuellen Computern auftreten, führen Sie diese Tools aus, bevor Sie sich an den Support wenden.

Betriebssysteme

Die Key Vault VM-Erweiterung für Linux unterstützt die folgenden Verteilungen sowohl auf AMD64 als auch ARM64:

  • Ubuntu 24.04
  • Azure Linux 3.0 und 4.0
  • Red Hat Enterprise Linux (RHEL) 9

Hinweis

Die Erweiterung wählt bei der Installation aus /etc/os-release eine verteilungsspezifische Binärdatei aus. Die Installation auf einer anderen Verteilung schlägt mit einem Fehler "Verteilung wird nicht unterstützt" fehl, der im Erweiterungsstatus angezeigt wird.

Unterstützte Zertifikatsinhaltstypen

Die Vm-Erweiterung Key Vault unterstützt die folgenden Zertifikatinhaltstypen:

  • PKCS #12
  • PEM

Hinweis

Die Key Vault VM-Erweiterung lädt alle Zertifikate an den Speicherort herunter, den Sie in der Eigenschaft in den Einstellungen für die certificateStoreLocation VM-Erweiterung angeben, oder auf den Standardspeicherort/var/lib/waagent/Microsoft.Azure.KeyVault.Store/, wenn Sie keins angeben.

Features

Die Key Vault VM-Erweiterung für Linux, Version 4.x:

  • Installiert die zwei neuesten Versionen jedes Zertifikats.
  • Installiert jedes Zertifikat als geteilte Dateien: eine Vollkettendatei .pem und eine separate .keyid private Schlüsseldatei, die jeweils als versionsbasierte Datei mit einer stabilen symbolischen Verknüpfung geschrieben wurde, die auf die neueste Version verweist.
  • Führt vor der Installation eines Zertifikats, das die Extended Key Usage (EKU) für TLS-Serverauthentifizierung aufweist, eine Validierung der Zertifikatskette durch. Die Überprüfung ist fehlgeschlagen: Ein Zertifikat wird weiterhin installiert, wenn die Überprüfung aufgrund vorübergehender Netzwerkprobleme nicht abgeschlossen werden kann. Zertifikate ohne die Serverauthentifizierungs-EKU unterliegen dieser Überprüfung nicht.
  • Wendet POSIX ACLs an, um konfigurierten Benutzern und Gruppen Lesezugriff auf den privaten Schlüssel zu gewähren. Die ACL-Erzwingung ist immer aktiviert.
  • Unterstützt eine optionale Außerkraftsetzung der Authentifizierung pro Zertifikat, die es einzelnen beobachteten Zertifikaten ermöglicht, sich bei Key Vault mit einer anderen verwalteten Identität als dem Erweiterungsstandard zu authentifizieren. Weitere Informationen finden Sie unter Erweiterungsschema.
  • Unterstützt die Integration der VM-Erweiterungsprotokollierung über Fluentd. Weitere Informationen finden Sie unter Protokollierung mit Fluentd.

Aktualisierung von Version 3.0

Wenn Sie von 3.0 aktualisieren, werden die folgenden Features geändert oder entfernt.

Allgemeine Breaking Changes:

  • pollingIntervalInS ist jetzt auf 5 bis 60 Minuten begrenzt. Standardmäßig führt die Erweiterung einmal pro Stunde eine Abfrage durch.
  • requireInitialSync wird entfernt. Die Erweiterung meldet nur erfolg, wenn alle konfigurierten Zertifikate installiert werden.
  • Sie können keine bestimmte Version eines Zertifikats mehr konfigurieren. Beobachtete Zertifikat-URLs müssen versionslos sein.
  • Das Legacyschema, bei dem observedCertificates es sich um eine Liste von URL-Zeichenfolgen handelt, wird nicht mehr unterstützt. Jeder Eintrag muss ein Objekt mit einer url Eigenschaft sein.

Linux-spezifische Breaking Changes:

  • Die Zertifikatkette und der private Schlüssel werden jetzt in separate Dateien geschrieben. In 3.0 wurden die vollständige Kette und der private Schlüssel in eine einzelne PEM-Datei zusammengefasst. In 4.x schreibt die Erweiterung die vollständige Kette in <vaultname>.<certname>.pem und den privaten Schlüssel in eine separate <vaultname>.<certname>.keyid Datei. Diese Änderung ist ein Breaking Change: Anwendungen, die den Schlüssel und die Kette in einer Datei erwarten, müssen aktualisiert werden, um die Kette aus der Datei .pem und den privaten Schlüssel aus der Datei .keyid zu lesen. Die .luma Datei wird aktualisiert, nachdem die symbolischen Verknüpfungen aktualisiert wurden, sodass Anwendungen Änderungen an dieser Metadatendatei überwachen sollten.
  • customSymbolicLinkName wird entfernt. Die Erweiterung verwendet immer den standardmäßigen symbolischen Verknüpfungsnamen <vaultname>.<certname>.
  • aclEnabled wird entfernt. Die ACL-Funktionalität ist jetzt immer aktiviert.
  • certificateStoreName wird unter Linux ignoriert und hat keine Auswirkungen.

Hinweis

Durch das Upgrade von der vorherigen Erweiterungsversion werden keine Zertifikate gelöscht, die bereits auf den Datenträger heruntergeladen wurden. Darüber hinaus verwendet 4.x ein anderes Dateiformat, sodass vorhandene Dateien unverändert bleiben.

Voraussetzungen

Überprüfen Sie die folgenden Voraussetzungen für die Verwendung der Key Vault VM-Erweiterung für Linux:

Hinweis

Sie können auch das alte Zugriffsrichtlinienberechtigungsmodell verwenden, um Zugriff auf VMs und Virtual Machine Scale Sets bereitzustellen. Diese Methode erfordert eine Richtlinie mit den Berechtigungen Abruf und Auflistung für Geheimnisse. Weitere Informationen finden Sie unter Zuweisen einer Zugriffsrichtlinie für Key Vault.

Erweiterungsschema

Im folgenden JSON-Code ist das Schema für die Key Vault-VM-Erweiterung dargestellt. Bevor Sie die Schemaimplementierungsoptionen berücksichtigen, lesen Sie die folgenden wichtigen Hinweise.

  • Für die Erweiterung sind keine geschützten Einstellungen erforderlich. Alle Einstellungen sind öffentliche Informationen.

  • Beobachtete Zertifikat-URLs müssen das Formular https://myVaultName.vault.azure.net/secrets/myCertNameverwenden.

    Dieses Formular ist erforderlich, da der /secrets Pfad das vollständige Zertifikat zurückgibt, einschließlich des privaten Schlüssels, aber der /certificates Pfad nicht. Weitere Informationen zu Zertifikaten finden Sie unter Azure Key Vault-Schlüssel, Geheimschlüssel und Zertifikatübersicht. Sie können keine bestimmte Version des Zertifikats angeben.

  • Der URL-Host muss ein erkannter Azure Key Vault Host sein.

  • Die authenticationSettings Eigenschaft ist für VMs mit allen vom Benutzer zugewiesenen Identitäten und für Azure Arc-fähige VMs erforderlich.

    Lassen Sie diese Eigenschaft aus, wenn Sie eine vom System zugewiesene Identität verwenden. Setzen Sie für Azure Arc aktivierte virtuelle Computer msiEndpoint auf http://localhost:40342/metadata/identity.

{
   "type": "Microsoft.Compute/virtualMachines/extensions",
   "name": "KVVMExtensionForLinux",
   "apiVersion": "2025-04-01",
   "location": "<location>",
   "dependsOn": [
      "[concat('Microsoft.Compute/virtualMachines/', <vmName>)]"
   ],
   "properties": {
      "publisher": "Microsoft.Azure.KeyVault",
      "type": "KeyVaultForLinux",
      "typeHandlerVersion": "4.0",
      "autoUpgradeMinorVersion": true,
      "enableAutomaticUpgrade": true,
      "settings": {
         "secretsManagementSettings": {
             "pollingIntervalInS": <Optional. Polling interval in seconds, between 300 (5 min) and 3600 (60 min). Example: "3600">,
             "certificateStoreLocation": <Optional. Default disk path where certificates are stored. Example: "/var/lib/waagent/Microsoft.Azure.KeyVault.Store">,
             "observedCertificates": <An array of Key Vault URIs that represent monitored certificates, including per-certificate store location and ACL permissions on the certificate private key. Example:
             [
                {
                    "url": <A Key Vault URI to the secret portion of the certificate. Example: "https://myvault.vault.azure.net/secrets/mycertificate1">,
                    "certificateStoreLocation": <The disk path where the certificate is stored. Example: "/var/lib/waagent/Microsoft.Azure.KeyVault/app1">,
                    "acls": <Optional. An array of users and groups to grant read access to the certificate private key. Example:
                    [
                       { "user": "app1", "group": "appGroup1" },
                       { "user": "service1" }
                    ]>
                },
                {
                    "url": <Example: "https://myvault.vault.azure.net/secrets/mycertificate2">,
                    "certificateStoreLocation": <Example: "/var/lib/waagent/Microsoft.Azure.KeyVault/app2">,
                    "authenticationOverride": <Optional. Overrides authenticationSettings for this certificate only, so it can authenticate with a different managed identity. Example: {"msiClientId": "11112222-bbbb-3333-cccc-4444dddd5555"}>
                }
             ]>
         },
         "authenticationSettings": {
             "msiEndpoint":  <Required when the msiClientId property is used. Specifies the MSI endpoint. Example for most Azure VMs: "http://169.254.169.254/metadata/identity">,
             "msiClientId":  <Required when the VM has any user assigned identities. Specifies the MSI identity. Example: "00001111-aaaa-2222-bbbb-3333cccc4444">
         }
      }
   }
}

Immobilienwerte

Das JSON-Schema enthält die folgenden Eigenschaften.

Name Beispiel/Wert Datentyp
apiVersion 2025-04-01 date
publisher Microsoft.Azure.KeyVault Schnur
type KeyVaultForLinux Schnur
typeHandlerVersion "4.0" Schnur
pollingIntervalInS (wahlweise) "3600" (begrenzt auf 300–3600) Schnur
certificateStoreLocation (wahlweise) "/var/lib/waagent/Microsoft.Azure. KeyVault.Store" Schnur
observedCertificates [{...}, {...}] array
observedCertificates/url „https://myvault.vault.azure.net/secrets/mycertificate" Schnur
observedCertificates/certificateStoreLocation (wahlweise) "/var/lib/waagent/Microsoft.Azure.KeyVault/app1" Schnur
observedCertificates/acls (wahlweise) [{"user": "app1", "group": "appGroup1"}] Objekt-Array
observedCertificates/authenticationOverride (wahlweise) {"msiClientId": "00001111-aaaa-2222-bbbb-3333cccc4444"} Objekt
authenticationSettings/msiEndpoint „http://169.254.169.254/metadata/identity" Schnur
authenticationSettings/msiClientId "00001111-aaaa-2222-bbbb-3333cccc4444" Schnur

Hinweis

Das Schema akzeptiert certificateStoreName aus Kompatibilitätsgründen, aber Linux ignoriert es. Wenn Sie für ein Zertifikat kein certificateStoreLocation angeben, verwendet das System das secretsManagementSettings.certificateStoreLocation der obersten Ebene, und falls dieses nicht festgelegt ist, wird das Standard-/var/lib/waagent/Microsoft.Azure.KeyVault.Store/ verwendet.

Bereitstellung von Vorlagen

Stellen Sie Azure VM-Erweiterungen mithilfe von AZURE RESOURCE MANAGER(ARM)-Vorlagen bereit. Vorlagen sind ideal, wenn Sie einen oder mehrere virtuelle Computer bereitstellen, die eine Aktualisierung von Zertifikaten nach der Bereitstellung erfordern. Sie können die Erweiterung für einzelne VMs oder Virtual Machine Scale Sets Instanzen bereitstellen. Das Schema und die Konfiguration sind für beide Vorlagentypen gleich.

Die JSON-Konfiguration für eine Key Vault-Erweiterung ist in der VM- oder Virtual Machine Scale Sets-Vorlage eingebettet. Bei einer VM-Ressourcenerweiterung wird die Konfiguration unter dem Objekt des "resources": [] virtuellen Computers geschachtelt. Bei einer Instanzerweiterung von Virtual Machine Scale Sets wird die Konfiguration unter dem "virtualMachineProfile":"extensionProfile":{"extensions" :[]-Objekt verschachtelt.

Der folgende JSON-Codeausschnitt stellt Beispieleinstellungen für eine ARM-Vorlagenbereitstellung der Key Vault VM-Erweiterung bereit.

{
   "type": "Microsoft.Compute/virtualMachines/extensions",
   "name": "KeyVaultForLinux",
   "apiVersion": "2025-04-01",
   "location": "<location>",
   "dependsOn": [
      "[concat('Microsoft.Compute/virtualMachines/', <vmName>)]"
   ],
   "properties": {
      "publisher": "Microsoft.Azure.KeyVault",
      "type": "KeyVaultForLinux",
      "typeHandlerVersion": "4.0",
      "autoUpgradeMinorVersion": true,
      "enableAutomaticUpgrade": true,
      "settings": {
         "secretsManagementSettings": {
             "pollingIntervalInS": "3600",
             "certificateStoreLocation": "/var/lib/waagent/Microsoft.Azure.KeyVault.Store",
             "observedCertificates": [
                {
                    "url": "https://<examplekv>.vault.azure.net/secrets/mycertificate1",
                    "certificateStoreLocation": "/var/lib/waagent/Microsoft.Azure.KeyVault.Store",
                    "acls": [
                       { "user": "app1", "group": "appGroup1" },
                       { "user": "service1" }
                    ]
                },
                {
                    "url": "https://<examplekv>.vault.azure.net/secrets/mycertificate2",
                    "certificateStoreLocation": "/var/lib/waagent/Microsoft.Azure.KeyVault.Store"
                }
             ]
         },
         "authenticationSettings": {
            "msiEndpoint":  "http://169.254.169.254/metadata/identity",
            "msiClientId":  "00001111-aaaa-2222-bbbb-3333cccc4444"
         }
      }
   }
}

Automatisches Upgrade der Erweiterung

Die Key Vault VM-Erweiterung unterstützt das automatische Erweiterungsupgrade für virtuelle Computer und Skalierungssätze in Azure. Azure hält die Erweiterung automatisch auf dem neuesten Stand, wenn Sie die Eigenschaften autoUpgradeMinorVersion und enableAutomaticUpgrade in den vorangegangenen Beispielen auf true festlegen.

Reihenfolge von Erweiterungsabhängigkeiten

Die Key Vault VM-Erweiterung unterstützt die Sortierung von Erweiterungsabhängigkeiten. Die Erweiterung meldet einen erfolgreichen Start nach dem Herunterladen und Installieren aller Zertifikate.

Wenn Sie andere Erweiterungen verwenden, für die eine Installation von Zertifikaten erforderlich ist, bevor sie beginnen, können Sie die Erweiterungsabhängigkeitsbestellung verwenden, um eine Abhängigkeit von der Key Vault VM-Erweiterung zu deklarieren.

Beim Start versucht die Key Vault VM-Erweiterung, das Herunterladen und die Installation von Zertifikaten bis zu 25 Mal erneut, wobei die Rückoff-Zeiträume dabei immer länger werden, und verbleibt in einem Zustand Transitioning. Wenn die Wiederholungen erschöpft sind, meldet die Erweiterung einen Fehler-Status. Nachdem alle Zertifikate erfolgreich installiert wurden, meldet die Key Vault-VM-Erweiterung einen erfolgreichen Start.

Weitere Informationen zum Einrichten von Abhängigkeiten zwischen Erweiterungen finden Sie unter Sequenzerweiterungsbereitstellung in Virtual Machine Scale Sets.

Von Bedeutung

Die Erweiterungsabhängigkeits-Sortierungsfunktion ist nicht mit einer ARM-Vorlage kompatibel, die eine vom System zugewiesene Identität erstellt und eine Key Vault-Zugriffsrichtlinie mit dieser Identität aktualisiert. Wenn Sie versuchen, das Feature in diesem Szenario zu verwenden, tritt ein Deadlock auf, da die Key Vault-Zugriffsrichtlinie erst aktualisiert werden kann, nachdem alle Erweiterungen gestartet wurden. Verwenden Sie stattdessen eine vom Benutzer zugewiesene verwaltete Identität und gewähren Sie dieser Identität vor der Bereitstellung Zugriff auf Ihre Schlüsseltresore.

Azure PowerShell-Bereitstellung

Stellen Sie die Azure Key Vault VM-Erweiterung mithilfe von Azure PowerShell bereit. Speichern Sie die Key Vault-VM-Erweiterungseinstellungen in einer JSON-Datei (settings.json).

Warnung

PowerShell-Clients fügen in settings.json häufig " vor \ ein. Dieses Verhalten führt dazu, dass akvvm_service mit dem Fehler [CertificateManagementConfiguration] Failed to parse the configuration settings with:not an object. fehlschlägt. Verwenden Sie die Azure CLI, oder übergeben Sie die Einstellungen als unformatierte Zeichenfolge, wie im folgenden Beispiel gezeigt.

Der folgende JSON-Codeausschnitt enthält Beispieleinstellungen für die Bereitstellung der Key Vault VM-Erweiterung mithilfe von PowerShell.

{
   "secretsManagementSettings": {
      "pollingIntervalInS": "3600",
      "observedCertificates": [
         {
            "url": "https://<examplekv>.vault.azure.net/secrets/mycertificate1",
            "certificateStoreLocation": "/var/lib/waagent/Microsoft.Azure.KeyVault.Store",
            "acls": [
               { "user": "app1", "group": "appGroup1" },
               { "user": "service1" }
            ]
         },
         {
            "url": "https://<examplekv>.vault.azure.net/secrets/mycertificate2",
            "certificateStoreLocation": "/var/lib/waagent/Microsoft.Azure.KeyVault.Store"
         }
      ]
   },
   "authenticationSettings": {
      "msiEndpoint":  "http://169.254.169.254/metadata/identity",
      "msiClientId":  "00001111-aaaa-2222-bbbb-3333cccc4444"
   }
}

Bereitstellen auf einer VM

# Build settings
$settings = (Get-Content -Raw ".\settings.json")
$extName =  "KeyVaultForLinux"
$extPublisher = "Microsoft.Azure.KeyVault"
$extType = "KeyVaultForLinux"

# Start the deployment
Set-AzVmExtension -TypeHandlerVersion "4.0" -ResourceGroupName <ResourceGroupName> -Location <Location> -VMName <VMName> -Name $extName -Publisher $extPublisher -Type $extType -SettingString $settings

Bereitstellen in einer Virtual Machine Scale Sets-Instanz

# Build settings
$settings = (Get-Content -Raw ".\settings.json")
$extName = "KeyVaultForLinux"
$extPublisher = "Microsoft.Azure.KeyVault"
$extType = "KeyVaultForLinux"

# Add extension to Virtual Machine Scale Sets
$vmss = Get-AzVmss -ResourceGroupName <ResourceGroupName> -VMScaleSetName <VmssName>
Add-AzVmssExtension -VirtualMachineScaleSet $vmss -Name $extName -Publisher $extPublisher -Type $extType -TypeHandlerVersion "4.0" -Setting $settings

# Start the deployment
Update-AzVmss -ResourceGroupName <ResourceGroupName> -VMScaleSetName <VmssName> -VirtualMachineScaleSet $vmss

Bereitstellung mithilfe der Azure-Befehlszeilenschnittstelle

Stellen Sie die Azure Key Vault VM-Erweiterung mithilfe der Azure CLI bereit. Speichern Sie die Key Vault-VM-Erweiterungseinstellungen in einer JSON-Datei (settings.json).

Der folgende JSON-Codeausschnitt enthält Beispieleinstellungen für die Bereitstellung der Key Vault VM-Erweiterung mithilfe der Azure CLI.

{
   "secretsManagementSettings": {
      "pollingIntervalInS": "3600",
      "observedCertificates": [
         {
            "url": "https://<examplekv>.vault.azure.net/secrets/mycertificate1",
            "certificateStoreLocation": "/var/lib/waagent/Microsoft.Azure.KeyVault.Store",
            "acls": [
               { "user": "app1", "group": "appGroup1" },
               { "user": "service1" }
            ]
         },
         {
            "url": "https://<examplekv>.vault.azure.net/secrets/mycertificate2",
            "certificateStoreLocation": "/var/lib/waagent/Microsoft.Azure.KeyVault.Store"
         }
      ]
   },
   "authenticationSettings": {
      "msiEndpoint":  "http://169.254.169.254/metadata/identity",
      "msiClientId":  "00001111-aaaa-2222-bbbb-3333cccc4444"
   }
}

Bereitstellen auf einer VM

# Start the deployment
az vm extension set --name "KeyVaultForLinux" \
  --publisher Microsoft.Azure.KeyVault \
  --resource-group "<resourcegroup>" \
  --vm-name "<vmName>" \
  --version "4.0" \
  --enable-auto-upgrade true \
  --settings "@settings.json"

Bereitstellen in einer Virtual Machine Scale Sets-Instanz

# Start the deployment
az vmss extension set --name "KeyVaultForLinux" \
  --publisher Microsoft.Azure.KeyVault \
  --resource-group "<resourcegroup>" \
  --vmss-name "<vmssName>" \
  --version "4.0" \
  --enable-auto-upgrade true \
  --settings "@settings.json"

Tip

Wenn die Erweiterungsbereitstellung fehlschlägt, müssen Sie die vorhandene Erweiterung möglicherweise löschen, bevor Sie sie mit der richtigen Version erneut installieren. Azure lässt keine Downgrades von Erweiterungen zu, daher müssen Sie die fehlerhafte Erweiterung möglicherweise zuerst entfernen:

az vm extension delete --name "KeyVaultForLinux" --resource-group "<resourcegroup>" --vm-name "<vmName>"

Protokollierung mit Fluentd

Die Key Vault VM-Erweiterung kann ihre Protokolle an einen Fluentd-Protokollsammler weiterleiten. Stellen Sie sicher, dass Ihr Protokollsammler läuft und an dem in den Einstellungen festgelegten Endpunkt lauscht.

Fügen Sie den folgenden Abschnitt zu Ihren Erweiterungseinstellungen hinzu:

"loggingSettings": {
   "logger": "fluentd",
   "endpoint": "unix:///var/run/azuremonitoragent/sometenant/default_fluent.socket",
   "format": "forward",
   "servicename": "akvvm_service"
}
Name Beispiel/Wert Datentyp
loggingSettings/logger "fluentd" Schnur
loggingSettings/endpoint "unix:///var/run/azuremonitoragent/sometenant/default_fluent.socket" oder "tcp://localhost:24224" Schnur
loggingSettings/format "forward" Schnur
loggingSettings/servicename "akvvm_service" Schnur

Probleme beheben

Verwenden Sie diese Vorschläge, um Bereitstellungsprobleme zu beheben.

Häufig gestellte Fragen überprüfen

Gibt es eine Beschränkung der Anzahl beobachteter Zertifikate?

No. Die Vm-Erweiterung "Key Vault" beschränkt nicht die Anzahl der beobachteten Zertifikate (observedCertificates).

Was ist der Standardspeicherort, an dem Zertifikate installiert werden?

Wenn Sie nicht angeben certificateStoreLocation, schreibt die Erweiterung Zertifikate in /var/lib/waagent/Microsoft.Azure.KeyVault.Store/.

Wie erzwinge ich, dass die Erweiterung ein neues Zertifikat abruft?

Starten Sie den akvvm_service Dienst neu (Anzeigename Key Vault VM-Erweiterung).

Wie verwende ich eine andere Identität für ein bestimmtes Zertifikat?

Fügen Sie ein authenticationOverride Objekt mit dem Ziel msiClientId zum Eintrag dieses Zertifikats in observedCertificates. Zertifikate ohne Außerkraftsetzung verwenden die authenticationSettings auf oberster Ebene.

Anzeigen des Erweiterungsstatus

Überprüfen Sie den Status Ihrer Erweiterungsbereitstellung im Azure-Portal oder mithilfe von PowerShell oder der Azure CLI.

Führen Sie den folgenden Befehl aus, um den Bereitstellungsstatus von Erweiterungen für eine bestimmte VM anzuzeigen.

  • Azure PowerShell:

    Get-AzVMExtension -ResourceGroupName <myResourceGroup> -VMName <myVM> -Name <myExtensionName>
    
  • Die Azure CLI:

    az vm get-instance-view --resource-group <myResourceGroup> --name <myVM> --query "instanceView.extensions"
    

Die Azure CLI kann mit geringfügigen Formatvariationen in verschiedenen Shellumgebungen ausgeführt werden. Wenn Sie unerwartete Ergebnisse mit Azure CLI-Befehlen haben, erfahren Sie, wie Sie die Azure CLI erfolgreich verwenden.

Überprüfen von Protokollen und Konfigurationen

Die Key Vault-VM-Erweiterungsprotokolle sind nur lokal auf der VM vorhanden. Überprüfen Sie die Protokolldetails, um hilfe bei der Problembehandlung zu erhalten.

Protokolldatei BESCHREIBUNG
/var/log/waagent.log Zeigt an, wann Aktualisierungen an der Erweiterung vorgenommen werden.
/var/log/azure/Microsoft.Azure.KeyVault.KeyVaultForLinux/* Zeigt den Status des akvvm_service-Dienstes und des Zertifikatdownloads an. Der Speicherort für den Download der PEM-Datei wird in Einträgen mit dem Namen der Zertifikatdatei angezeigt.
/var/lib/waagent/Microsoft.Azure.KeyVault.KeyVaultForLinux-<most recent version>/config/* Die Konfigurations- und Binärdateien für den Key Vault VM-Erweiterungsdienst.

Zertifikatinstallation unter Linux

Die Key Vault VM-Erweiterung für Linux installiert Zertifikate als PEM-Dateien. Wenn die Erweiterung ein Zertifikat von Key Vault herunterlädt, lautet dies:

  1. Erstellt einen Speicherordner basierend auf der certificateStoreLocation Einstellung. Wenn Sie diese Einstellung nicht angeben, wird standardmäßig der Speicherort /var/lib/waagent/Microsoft.Azure.KeyVault.Store/ verwendet.
  2. Schreibt die Zertifikatkette (Blatt, Zwischenstufen, dann Stamm, falls in Key Vault vorhanden) in eine versionsbasierte Vollkettendatei .pem und schreibt den entsprechenden privaten Schlüssel in eine versionsbasierte .keyid Datei.
  3. Wendet POSIX-ACLs auf den privaten Schlüssel basierend auf dem in der Konfiguration angegebenen acls an, das den aufgeführten Benutzern und Gruppen Lesezugriff gewährt. Dateien sind andernfalls nur für den Besitzer zugänglich.
  4. Erstellt oder aktualisiert eine stabile symbolische Verknüpfung (<vaultname>.<certname>.pem und <vaultname>.<certname>.keyid), die auf die neueste Version des Zertifikats verweist. Verknüpfungen erfolgen immer.

Standardspeicherort des Zertifikats

Wenn Sie keinen Speicherort angeben, installiert die Erweiterung Zertifikate unter /var/lib/waagent/Microsoft.Azure.KeyVault.Store/. Die Erweiterung ignoriert certificateStoreName unter Linux.

Zertifikatausgabedateien

Für den Tresor mykv und das Geheimnis server-tls erzeugt eine erfolgreiche Synchronisierung Folgendes:

/var/lib/waagent/Microsoft.Azure.KeyVault.Store/
├── mykv.server-tls.pem -> mykv.server-tls.<version>.pem.<timestamp>     # symlink to latest full chain
├── mykv.server-tls.keyid -> mykv.server-tls.<version>.keyid.<timestamp> # symlink to latest private key
├── mykv.server-tls.<version>.pem.<timestamp>                            # full chain PEM (mode 600)
├── mykv.server-tls.<version>.keyid.<timestamp>                          # private key (mode 600)
└── mykv.server-tls.luma                                                 # certificate management metadata (mode 644)

Konfigurieren Sie Anwendungen so, dass auf den stabilen symbolischen Verknüpfungspfad (z. B. ) verwiesen wird, /var/lib/waagent/Microsoft.Azure.KeyVault.Store/mykv.server-tls.pemdamit sie immer die neueste Zertifikatversion lesen, ohne die Neukonfiguration bei der Verlängerung zu erstellen.

Zertifikatzugriffskontrolle

Standardmäßig sind Zertifikat- und private Schlüsseldateien nur von ihrem Besitzer lesbar. Gewähren Sie Lesezugriff auf zusätzliche Benutzer und Gruppen, indem Sie das acls Array in der Zertifikatkonfiguration verwenden:

"acls": [
   { "user": "app1", "group": "appGroup1" },
   { "user": "service1" }
]

Jeder Eintrag kann einen Benutzer, eine Gruppe oder beides angeben. Die ACL-Erzwingung ist immer aktiviert und gewährt derzeit Lesezugriff.

Zertifikaterneuerung

Wenn Zertifikate in Key Vault erneuert werden, führt die Erweiterung automatisch die folgenden Aktionen für die nächste Umfrage aus:

  1. Lädt die neue Zertifikatversion herunter.
  2. Schreibt die neuen versionierten Dateien .pem und .keyid.
  3. Aktualisiert die stabile symbolische Verknüpfung so, dass sie auf die neue Version verweist, damit vorhandene Anwendungspfade weiterhin in das neueste Zertifikat aufgelöst werden.

Unterstützung erhalten

Microsoft bietet nur Unterstützung für die Hauptversion 3.0 und höher der Key Vault VM-Erweiterung. Wenn Sie Version 1.0 verwenden, führen Sie ein Upgrade auf die neueste Version durch, bevor Sie Support anfordern.

Verwenden Sie diese anderen Optionen, um Bereitstellungsprobleme zu beheben:

  • Um Hilfe zu erhalten, wenden Sie sich an die Azure Experten in Microsoft Q& A.

  • Wenn Sie keine Antwort auf der Website finden, können Sie eine Frage zur Eingabe von Microsoft oder anderen Mitgliedern der Community posten.

  • Sie können auch den Microsoft-Support kontaktieren. Informationen zur Verwendung von Azure-Support finden Sie unter How to create an Azure-Support request.