Vertrauenswürdiger Start für Azure Kubernetes Service (AKS)

Vertrauenswürdiger Start bietet Schutz vor fortschrittlichen und beständigen Angriffstechniken und verbessert so die Sicherheit virtueller Computer (Virtual Machines, VMs) der zweiten Generation. Er ermöglicht Administratoren die Bereitstellung von AKS-Knoten, die die zugrunde liegenden virtuellen Computer enthalten, mit überprüften und signierten Bootloadern, Betriebssystemkerneln und Treibern. Durch den sicheren und kontrollierten Start können Administratoren Erkenntnisse gewinnen und sich auf die Integrität der gesamten Startkette verlassen.

In diesem Artikel erfahren Sie mehr zu diesem neuen Feature und lernen, es zu implementieren.

Übersicht

Der vertrauenswürdige Start besteht aus mehreren koordinierten Infrastrukturtechnologien, die unabhängig voneinander aktiviert werden können. Jede Technologie bietet eine eigene Schutzschicht gegen komplexe Bedrohungen.

  • vTPM: Der vertrauenswürdige Start führt eine virtualisierte, mit der TPM 2.0-Spezifikation konforme Version der TPM-Hardware (Trusted Platform Module) ein. Sie dient als dedizierter sicherer Tresor für Schlüssel und Messungen. Der vertrauenswürdige Start bietet für die VM eine eigene dedizierte TPM-Instanz, die in einer sicheren Umgebung außerhalb der Reichweite von VMs ausgeführt wird. vTPM ermöglicht den Nachweis durch Messung der gesamten Startkette der VM (UEFI, Betriebssystem, System und Treiber). Beim vertrauenswürdigen Start wird vTPM verwendet, um einen Remotenachweis in der Cloud durchzuführen. Sie wird für Plattformintegritätsprüfungen und vertrauensbasierte Entscheidungsprozesse verwendet. Als Integritätsprüfung kann beim vertrauenswürdigen Start kryptografisch zertifiziert werden, dass die VM ordnungsgemäß gestartet wurde. Wenn bei diesem Prozess Fehler auftreten (beispielsweise, weil auf der VM eine nicht autorisierte Komponente ausgeführt wird), werden in Microsoft Defender for Cloud Integritätswarnungen ausgegeben. Die Warnungen enthalten Details zu den Komponenten, bei denen die Integritätsprüfungen nicht erfolgreich durchgeführt wurden.

  • Sicherer Start: Das Fundament des vertrauenswürdigen Starts bildet der VM-Modus „Sicherer Start“. Dieser Modus, der in der Plattformfirmware implementiert ist, schützt vor der Installation schadsoftwarebasierter Rootkits und Bootkits. Der sichere Start bewirkt, dass nur signierte Betriebssysteme und Treiber gestartet werden können. Damit wird ein Vertrauensanker für den Softwarestapel der VM erstellt. Bei aktiviertem sicherem Start müssen alle Betriebssystem-Startkomponenten (Startladeprogramm, Kernel, Kerneltreiber) von vertrauenswürdigen Herausgebern signiert werden. Der sichere Start wird unter Windows sowie ausgewählten Linux-Distributionen unterstützt. Wenn beim sicheren Start ein von einem vertrauenswürdigen Herausgeber signiertes Image nicht authentifiziert werden kann, wird der STart der VM nicht zugelassen. Weitere Informationen finden Sie unter Sicherer Start.

Voraussetzungen

  • Azure CLI Version 2.44.1 oder höher. Führen Sie az --version aus, um die Version zu finden, und führen Sie az upgrade aus, um ein Upgrade für die Version durchzuführen. Informationen zum Durchführen einer Installation oder eines Upgrades finden Sie bei Bedarf unter Installieren der Azure CLI.
  • Für den sicheren Start sind signierte Bootloader, Betriebssystemkernels und Treiber erforderlich.

Begrenzungen

  • AKS unterstützt den vertrauenswürdigen Start ab der Version 1.25.2.
  • Der vertrauenswürdige Start unterstützt nur virtuelle Azure-Computer der zweiten Generation.
  • Clusterknoten, auf denen das Windows Server-Betriebssystem ausgeführt wird, werden nicht unterstützt.
  • Der vertrauenswürdige Start unterstützt keine Knotenpools, für die FIPS aktiviert ist oder die auf Arm64 basieren.
  • Der vertrauenswürdige Start unterstützt keinen virtuellen Knoten.
  • Es werden nur VM-Skalierungsgruppen unterstützt, aber keine Verfügbarkeitsgruppen.
  • Um den sicheren Start in GPU-Knotenpools zu aktivieren, müssen Sie die Installation des GPU-Treibers überspringen. Weitere Informationen finden Sie unter Überspringen der GPU-Treiberinstallation (Vorschau).
  • Kurzlebige Betriebssystemdatenträger können mit vertrauenswürdigem Start erstellt werden, und alle Regionen werden unterstützt. Es werden jedoch nicht alle VM-Größen unterstützt. Weitere Informationen finden Sie unter Vertrauenswürdiger Start für kurzlebige Betriebssystemdatenträger.

Einen neuen Cluster bereitstellen

Führen Sie die folgenden Schritte aus, um einen AKS-Cluster über die Azure CLI bereitzustellen.

  1. Erstellen Sie mit dem Befehl az aks create einen AKS-Cluster. Überprüfen Sie vor dem Ausführen des Befehls die folgenden Parameter:

    • --name: Geben Sie einen eindeutigen Namen für den AKS-Cluster ein (z. B. myAKSCluster).
    • --resource-group: Geben Sie den Namen einer bereits vorhandenen Ressourcengruppe ein, in der die AKS-Clusterressource gehostet werden soll.
    • --enable-secure-boot: Aktiviert den sicheren Start, um ein von einem vertrauenswürdigen Herausgeber signiertes Image zu authentifizieren.
    • --enable-vtpm: Aktiviert vTPM und führt einen Nachweis durch, indem die gesamte Startkette Ihres virtuellen Computers gemessen wird.

    Hinweis

    Für den sicheren Start sind signierte Bootloader, Betriebssystemkernels und Treiber erforderlich. Sollten Ihre Knoten nach dem Aktivieren des sicheren Starts nicht mehr starten, können Sie überprüfen, welche Startkomponenten für Fehler beim sicheren Start innerhalb eines virtuellen Azure-Linux-Computers verantwortlich sind. Weitere Informationen finden Sie unter Überprüfen von Fehlern beim sicheren Start.

    Im folgenden Beispiel wird ein Cluster mit dem Namen myAKSCluster mit einem einzelnen Knoten in myResourceGroup erstellt. Außerdem werden sicherer Start und vTPM aktiviert:

    az aks create \
        --name myAKSCluster \
        --resource-group myResourceGroup \
        --node-count 1 \
        --enable-secure-boot \
        --enable-vtpm \
        --generate-ssh-keys
    
  2. Führen Sie den folgenden Befehl aus, um Anmeldeinformationen für den Zugriff auf den Kubernetes-Cluster zu erhalten. Verwenden Sie den Befehl az aks get-credentials, und ersetzen Sie die Werte für den Clusternamen und den Ressourcengruppennamen.

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    

Hinzufügen eines Knotenpools mit aktiviertem vertrauenswürdigem Start

Verwenden Sie den Befehl az aks nodepool add, um einen Knotenpool mit aktiviertem vertrauenswürdigem Start bereitzustellen. Überprüfen Sie vor dem Ausführen des Befehls die folgenden Parameter:

  • --cluster-name: Geben Sie den Namen des AKS-Clusters ein.
  • --resource-group: Geben Sie den Namen einer bereits vorhandenen Ressourcengruppe ein, in der die AKS-Clusterressource gehostet werden soll.
  • --name: Geben Sie einen eindeutigen Namen für den Knotenpool ein. Der Name eines Knotenpools darf nur Kleinbuchstaben und Ziffern enthalten und muss mit einem Kleinbuchstaben beginnen. Bei Linux-Knotenpools muss die Länge zwischen 1 und 11 Zeichen betragen.
  • --node-count: Die Anzahl von Knoten im Kubernetes-Agentpool. Die Standardeinstellung ist 3.
  • --enable-secure-boot: Aktiviert den sicheren Start, um ein von einem vertrauenswürdigen Herausgeber signiertes Image zu authentifizieren.
  • --enable-vtpm: Aktiviert vTPM und führt einen Nachweis durch, indem die gesamte Startkette Ihres virtuellen Computers gemessen wird.

Hinweis

Für den sicheren Start sind signierte Bootloader, Betriebssystemkernels und Treiber erforderlich. Sollten Ihre Knoten nach dem Aktivieren des sicheren Starts nicht mehr starten, können Sie überprüfen, welche Startkomponenten für Fehler beim sicheren Start innerhalb eines virtuellen Azure-Linux-Computers verantwortlich sind. Weitere Informationen finden Sie unter Überprüfen von Fehlern beim sicheren Start.

Im folgenden Beispiel wird ein Knotenpool mit aktiviertem vTPM in einem Cluster namens myAKSCluster mit drei Knoten bereitgestellt:

az aks nodepool add --resource-group myResourceGroup -–cluster-name myAKSCluster --name mynodepool --node-count 3 --enable-vtpm  

Im folgenden Beispiel wird ein Knotenpool mit aktiviertem vTPM und sicherem Start in einem Cluster namens myAKSCluster mit drei Knoten bereitgestellt:

az aks nodepool add --resource-group myResourceGroup --cluster-name myAKSCluster --name mynodepool --node-count 3 --enable-vtpm --enable-secure-boot

Aktualisieren des Clusters und Aktivieren des vertrauenswürdigen Starts

Verwenden Sie den Befehl az aks nodepool update, um einen Knotenpool mit aktiviertem vertrauenswürdigem Start zu aktualisieren. Überprüfen Sie vor dem Ausführen des Befehls die folgenden Parameter:

  • --resource-group: Geben Sie den Namen einer bereits vorhandenen Ressourcengruppe ein, die Ihren AKS-Cluster hostet.
  • --cluster-name: Geben Sie einen eindeutigen Namen für den AKS-Cluster ein, z. B. myAKSCluster.
  • --name: Geben Sie den Namen Ihres Knotenpools ein (beispielsweise mynodepool).
  • --enable-secure-boot: Aktiviert den sicheren Start, um zu authentifizieren, dass das Image von einem vertrauenswürdigen Herausgeber signiert wurde.
  • --enable-vtpm: Aktiviert vTPM und führt einen Nachweis durch, indem die gesamte Startkette Ihres virtuellen Computers gemessen wird.

Hinweis

Standardmäßig resultiert das Erstellen eines Knotenpools mit einer für den vertrauenswürdigen Start geeigneten Konfiguration in einem Image für den vertrauenswürdigen Start. Ohne Angabe der Parameter --enable-vtpm und --enable-secure-boot sind sie standardmäßig deaktiviert und können später mithilfe des Befehls az aks nodepool update aktiviert werden. Der vorhandene Knotenpool muss ein Image für den vertrauenswürdigen Start verwenden, damit der vertrauenswürdige Start in einem vorhandenen Knotenpool aktiviert werden kann.

Hinweis

Für den sicheren Start sind signierte Bootloader, Betriebssystemkernels und Treiber erforderlich. Sollten Ihre Knoten nach dem Aktivieren des sicheren Starts nicht mehr starten, können Sie überprüfen, welche Startkomponenten für Fehler beim sicheren Start innerhalb eines virtuellen Azure-Linux-Computers verantwortlich sind. Weitere Informationen finden Sie unter Überprüfen von Fehlern beim sicheren Start.

Im folgenden Beispiel wird der Knotenpool mynodepool im Cluster myAKSCluster in der Ressourcengruppe myResourceGroup aktualisiert, und sicherer Start sowie vTPM werden aktiviert:

az aks nodepool update --cluster-name myCluster --resource-group myResourceGroup --name mynodepool --enable-secure-boot --enable-vtpm 

Zuweisen von Pods zu Knoten mit aktiviertem vertrauenswürdigem Start

Sie können einen Pod einschränken und sicherstellen, dass er nur auf einem bestimmten Knoten oder auf mehreren bestimmten Knoten ausgeführt wird, oder festlegen, dass Knoten mit aktiviertem vertrauenswürdigem Start bevorzugt werden sollen. Dies kann mithilfe der folgenden Knotenpoolauswahl in Ihrem Podmanifest gesteuert werden.

Wenden Sie für einen Knotenpool mit vTPM Folgendes an:

spec:
  nodeSelector:
        kubernetes.azure.com/trusted-launch: true

Wenden Sie für einen Knotenpool mit sicherem Start Folgendes an:

spec:
  nodeSelector:
        kubernetes.azure.com/secure-boot: true

Deaktivieren des sicheren Starts

Führen Sie den folgenden Befehl aus, um den sicheren Start für einem AKS-Cluster zu deaktivieren:

az aks nodepool update --cluster-name myCluster --resource-group myResourceGroup --name mynodepool --disable-secure-boot 

Hinweis

Aktualisierungen initiieren automatisch ein Reimaging von Knoten, was pro Knoten mehrere Minuten dauern kann.

Deaktivieren von vTPM

Führen Sie den folgenden Befehl aus, um vTPM für einen AKS-Cluster zu deaktivieren:

az aks nodepool update --cluster-name myCluster --resource-group myResourceGroup --name mynodepool --disable-vtpm

Nächste Schritte

In diesem Artikel haben Sie gelernt, wie Sie den vertrauenswürdigen Start aktivieren. Weitere Informationen zum vertrauenswürdigen Start finden Sie hier.