Freigeben über


Verwalten des Notfallzugriffs auf einen Bare-Metal-Computer mithilfe von az networkcloud cluster baremetalmachinekeyset

Achtung

Beachten Sie, dass dieser Prozess in Notfallsituationen verwendet wird, wenn alle anderen Problembehandlungsoptionen von Azure erschöpft sind. Alle Schreib- oder Bearbeitungsaktionen, die auf BMM-Knoten ausgeführt werden, erfordern, dass Benutzer und Benutzerinnen 'reimage' ausführen, um die Microsoft-Unterstützung für die betroffenen BMM-Knoten wiederherzustellen. Beachten Sie, dass der SSH-Zugriff auf diese Bare-Metal-Computer auf Benutzer und Benutzerinnen, die mithilfe dieser Methode über die angegebene Bastion Host-Liste verwaltet werden, beschränkt ist.

In seltenen Fällen kann es vorkommen, dass Benutzer Probleme mit einem Bare-Metal-Computer untersuchen und beheben müssen und bereits alle anderen Problembehandlungsmethoden über Azure ausgeschöpft wurden. Azure Operator Nexus bietet den Befehl az networkcloud cluster baremetalmachinekeyset, damit Benutzer den SSH-Zugriff auf diese Bare-Metal-Computer verwalten können. Bei der Keyseterstellung werden Benutzer zur ordnungsgemäßen Autorisierung mit Microsoft Entra ID überprüft, indem der für einen Benutzer bereitgestellte Benutzerprinzipalname per Querverweis mit der bereitgestellten Microsoft Entra-Gruppen-ID --azure-group-id <Entra Group ID> abgeglichen wird.

Benutzer in einem Keyset werden alle vier Stunden überprüft, und auch, wenn Änderungen an einem Keyset vorgenommen werden. Der Status jedes Benutzers wird daraufhin auf „Aktiv“ oder „Ungültig“ festgelegt. Ungültige Benutzer verbleiben zwar im Keyset, ihre Schlüssel werden jedoch von allen Hosts entfernt, und der Zugriff wird ihnen entzogen. Mögliche Gründe für ungültige Benutzer:

  • Der Benutzerprinzipalname des Benutzers ist kein Mitglied der jeweiligen Entra-Gruppe (sofern angegeben).
  • Die jeweilige Entra-Gruppe (sofern angegeben) ist nicht vorhanden. (In diesem Fall sind alle Benutzer im Keyset ungültig.)
  • Das Keyset ist abgelaufen. (In diesem Fall sind alle Benutzer im Keyset ungültig.)

Hinweis

Im momentanen Übergangszeitraum ist die Angabe von Benutzerprinzipalnamen optional. In einer zukünftigen Version wird diese Angabe obligatorisch sein, und die Microsoft Entra ID-Überprüfung wird für alle Benutzer erzwungen. Benutzern wird empfohlen, ihren Keysets vor dem Ende des Übergangszeitraums (geplant für Juli 2024) Benutzerprinzipalnamen hinzuzufügen, um zu verhindern, dass Keysets ungültig werden. Die Microsoft Entra ID-Überprüfung wird aktiviert, wenn einem Keyset Benutzerprinzipalnamen hinzugefügt werden (selbst wenn sie nicht für alle Benutzer hinzugefügt werden). Dies führt dazu, dass das gesamte Keyset ungültig wird, wenn die angegebene Gruppen-ID ungültig ist.

Das Keyset und die einzelnen Benutzer verfügen auch über detaillierte Statusmeldungen mit weiteren Informationen:

  • Die detaillierte Statusmeldung (detailedStatusMessage) des Keysets informiert darüber, ob das Keyset abgelaufen ist, und enthält weitere Informationen zu Problemen, die beim Aktualisieren der Keysets innerhalb des Clusters aufgetreten sind.
  • Die Statusmeldung (statusMessage) des Benutzers informiert darüber, ob der Benutzer aktiv oder ungültig ist, und enthält eine Liste der Computer, die noch nicht auf den aktuellen Benutzerstatus („Aktiv“ oder „Ungültig“) aktualisiert wurden. In allen Fällen sind Problemursachen enthalten (sofern bekannt).

Wenn der Befehl ausgeführt wird, läuft er auf jedem Bare-Metal-Computer im Cluster mit einem aktiven Kubernetes-Knoten. In regelmäßigen Abständen wird ein Abstimmungsprozess ausgeführt, der den Befehl auf Bare-Metal-Computern wiederholt, die zum Zeitpunkt des ursprünglichen Befehls nicht verfügbar waren. Darüber hinaus sendet jeder Bare-Metal-Computer, der in den Cluster zurückkehrt, über einen Befehl az networkcloud baremetalmachine reimage oder az networkcloud baremetalmachine replace (siehe BareMetal-Funktionen) ein Signal, das dazu führt, dass alle aktiven Keysets an ihn gesendet werden, sobald er wieder im Cluster verfügbar ist. Mehrere Befehle werden in der Reihenfolge ausgeführt, in der sie empfangen wurden.

Die Anzahl von Benutzern in einer Gruppe ist nicht begrenzt.

Achtung

Hinweise für Bastion Host-IP-Adressen

  • Bei der Erstellung/Aktualisierung von Keysets werden die Bastion Host-IP-Adressen den IP-Tabellen für jeden Computer im Cluster hinzugefügt. Das Update der IP-Tabellen beschränkt den Secure Shell (SSH)-Zugriff auf den Zugriff über Bastion Hosts.
  • Es ist wichtig, die IP-Adressen für Cluster für die Bastion Hosts anzugeben. Diese IP-Adressen unterscheiden sich möglicherweise von der öffentlichen IP-Adresse, die für den Zugriff auf den Bastion Host verwendet wird.
  • Wenn mindestens ein Keyset definiert ist, ist der SSH-Zugriff von jedem Bastion Host in beliebigen Keysets zulässig. Wenn beispielsweise Keyset A den Bastion Host A angibt und Keyset B den Bastion Host B, können Benutzer in beiden Keysets entweder Bastion Host A oder B verwenden.
  • Wenn keine Keysets definiert sind, ist der SSH-Zugriff von jedem Bastion Host zulässig, der über Netzwerkkonnektivität mit den Computern verfügt.

Voraussetzungen

  • Installieren Sie die neueste Version der passenden Azure CLI-Erweiterung.
  • Der lokale Cluster muss über Konnektivität mit Azure verfügen.
  • Rufen Sie den Ressourcengruppennamen für die Cluster-Ressource ab.
  • Der Prozess wendet Keysets auf alle ausgeführten Bare-Metal-Computer an.
  • Die hinzugefügten Benutzer müssen einer Microsoft Entra-Gruppe angehören. Weitere Informationen finden Sie unter Verwalten von Gruppen.
  • Erstellen Sie eine benutzerdefinierte Rolle, um den Zugriff auf die Verwaltung von Keysets einzuschränken. Weitere Informationen finden Sie unter Benutzerdefinierte Azure-Rollen. Fügen Sie in diesem Fall Berechtigungen für Microsoft.NetworkCloud/clusters/bareMetalMachineKeySets hinzu, oder schließen Sie sie aus. Als Optionen sind /read, /write und /delete verfügbar.

Hinweis

Wenn der Zugriff auf Bare-Metal-Computer über die in diesem Artikel beschriebenen Befehle erstellt, geändert oder gelöscht wird, übermittelt ein Hintergrundprozess diese Änderungen an die Computer. Dieser Prozess wird während Operator Nexus-Softwareupgrades angehalten. Wenn bekannt ist, dass ein Upgrade ausgeführt wird, können Sie die Option --no-wait mit dem Befehl verwenden, damit die Eingabeaufforderung nicht auf den Abschluss des Prozesses wartet.

Erstellen eines Keysets für einen Bare-Metal-Computer

Der Befehl baremetalmachinekeyset create erstellt den SSH-Zugriff auf die Bare-Metal-Computer in einem Cluster für eine Gruppe von Benutzern.

Die Befehlssyntax ist wie folgt:

az networkcloud cluster baremetalmachinekeyset create \
  --name "<bare metal machine Keyset Name>" \
  --extended-location name="<Extended Location ARM ID>" \
    type="CustomLocation" \
  --location "<Azure Region>" \
  --azure-group-id "<Azure Group ID>" \
  --expiration "<Expiration Timestamp>" \
  --jump-hosts-allowed "<List of jump server IP addresses>" \
  --os-group-name "<Name of the Operating System Group>" \
  --privilege-level "<"Standard" or "Superuser">" \
  --user-list '[{"description":"<User List Description>","azureUserName":"<User Name>",\
    "sshPublicKey":{"keyData":"<SSH Public Key>"}, \
    "userPrincipalName":""}]', \
  --tags key1="<Key Value>" key2="<Key Value>" \
  --cluster-name "<Cluster Name>" \
  --resource-group "<cluster_RG>"

Erstellen von Argumenten

  --azure-group-id                            [Required] : The object ID of Azure Active Directory
                                                           group that all users in the list must
                                                           be in for access to be granted. Users
                                                           that are not in the group do not have
                                                           access.
  --bare-metal-machine-key-set-name --name -n [Required] : The name of the bare metal machine key
                                                           set.
  --cluster-name                              [Required] : The name of the cluster.
  --expiration                                [Required] : The date and time after which the users
                                                           in this key set are removed from
                                                           the bare metal machines. The maximum
                                                           expiration date is a year from creation
                                                           date. Format is: "YYYY-MM-DDTHH:MM:SS.000Z".
  --extended-location                         [Required] : The extended location of the cluster
                                                           associated with the resource.
    Usage: --extended-location name=XX type=XX
      name: Required. The resource ID of the extended location on which the resource is created.
      type: Required. The extended location type: "CustomLocation".
  --jump-hosts-allowed                        [Required] : The list of IP addresses of jump hosts
                                                           with management network access from
                                                           which a login is be allowed for the
                                                           users. Supports IPv4 or IPv6 addresses.
  --privilege-level                           [Required] : The access level allowed for the users
                                                           in this key set.  Allowed values:
                                                           "Standard" or "Superuser".
  --resource-group -g                         [Required] : Name of cluster resource group. Optional if
                                                           configuring the default group using `az
                                                           configure --defaults group=<name>`.
  --user-list                                 [Required] : The unique list of permitted users.
    Usage: --user-list azure-user-name=XX description=XX key-data=XX
      azure-user-name: Required. User name used to login to the server.
      description: The free-form description for this user.
      key-data: Required. The public ssh key of the user.
      userPrincipalName: Optional. The User Principal Name of the User.

      Multiple users can be specified by using more than one --user-list argument.
  --os-group-name                                        : The name of the group that users are assigned
                                                           to on the operating system of the machines.
  --tags                                                 : Space-separated tags: key[=value]
                                                           [key[=value] ...]. Use '' to clear
                                                           existing tags.
  --location -l                                          : Azure Region. Values from: `az account
                                                           list-locations`. You can configure the
                                                           default location using `az configure
                                                           --defaults location=<location>`.
  --no-wait                                              : Do not wait for the long-running
                                                           operation to finish.

Globale Argumente der Azure-Befehlszeilenschnittstelle (gelten für alle Befehle)

  --debug                                                : Increase logging verbosity to show all
                                                           debug logs.
  --help -h                                              : Show this help message and exit.
  --only-show-errors                                     : Only show errors, suppressing warnings.
  --output -o                                            : Output format.  Allowed values: json,
                                                           jsonc, none, table, tsv, yaml, yamlc.
                                                           Default: json.
  --query                                                : JMESPath query string. See
                                                           http://jmespath.org/ for more
                                                           information and examples.
  --subscription                              [Required] : Name or ID of subscription. Optional if
                                                           configuring the default subscription
                                                           using `az account set -s NAME_OR_ID`.
  --verbose                                              : Increase logging verbosity. Use --debug
                                                           for full debug logs.

In diesem Beispiel wird ein neues Keyset mit zwei Benutzern erstellt, die Standardzugriff über zwei Bastion Hosts haben.

az networkcloud cluster baremetalmachinekeyset create \
  --name "bareMetalMachineKeySetName" \
  --extended-location name="/subscriptions/subscriptionId/resourceGroups/cluster_RG/providers/Microsoft.ExtendedLocation/customLocations/clusterExtendedLocationName" \
    type="CustomLocation" \
  --location "eastus" \
  --azure-group-id "f110271b-XXXX-4163-9b99-214d91660f0e" \
  --expiration "2022-12-31T23:59:59.008Z" \
  --jump-hosts-allowed "192.0.2.1" "192.0.2.5" \
  --os-group-name "standardAccessGroup" \
  --privilege-level "Standard" \
  --user-list '[{"description":"Needs access for troubleshooting as a part of the support team","azureUserName":"userABC", "sshPublicKey":{"keyData":"ssh-rsa  AAtsE3njSONzDYRIZv/WLjVuMfrUSByHp+jfaaOLHTIIB4fJvo6dQUZxE20w2iDHV3tEkmnTo84eba97VMueQD6OzJPEyWZMRpz8UYWOd0IXeRqiFu1lawNblZhwNT/ojNZfpB3af/YDzwQCZgTcTRyNNhL4o/blKUmug0daSsSXISTRnIDpcf5qytjs1XoyYyJMvzLL59mhAyb3p/cD+Y3/s3WhAx+l0XOKpzXnblrv9d3q4c2tWmm/SyFqthaqd0= admin@vm"},"userPrincipalName":"example@contoso.com"},\
  {"description":"Needs access for troubleshooting as a part of the support team","azureUserName":"userXYZ","sshPublicKey":{"keyData":"ssh-rsa  AAtsE3njSONzDYRIZv/WLjVuMfrUSByHp+jfaaOLHTIIB4fJvo6dQUZxE20w2iDHV3tEkmnTo84eba97VMueQD6OzJPEyWZMRpz8UYWOd0IXeRqiFu1lawNblZhwNT/ojNZfpB3af/YDzwQCZgTcTRyNNhL4o/blKUmug0daSsSXTSTRnIDpcf5qytjs1XoyYyJMvzLL59mhAyb3p/cD+Y3/s3WhAx+l0XOKpzXnblrv9d3q4c2tWmm/SyFqthaqd0= admin@vm"}, "userPrincipalName":"example@contoso.com"}]' \
  --tags key1="myvalue1" key2="myvalue2" \
  --cluster-name "clusterName"
  --resource-group "cluster_RG"

Informationen zum Erstellen der --user-list-Struktur finden Sie unter Azure CLI Shorthand Syntax (Azure CLI-Kurzsyntax).

Löschen eines Keysets für einen Bare-Metal-Computer

Der Befehl baremetalmachinekeyset delete entfernt den SSH-Zugriff auf den Bare-Metal-Computer für eine Gruppe von Benutzern. Für alle Mitglieder der Gruppe wird der SSH-Zugriff auf sämtliche Bare-Metal-Computer im Cluster aufgehoben.

Die Befehlssyntax ist wie folgt:

az networkcloud cluster baremetalmachinekeyset delete \
  --name "<bare metal machine Keyset Name>" \
  --cluster-name "<Cluster Name>" \
  --resource-group "<cluster_RG>"

Löschen von Argumenten

    --bare-metal-machine-key-set-name --name -n [Required] : The name of the bare metal machine key set to be
                                                             deleted.
    --cluster-name                              [Required] : The name of the cluster.
    --resource-group -g                         [Required] : Name of cluster resource group. Optional if configuring the
                                                             default group using `az configure --defaults
                                                             group=<name>`.
    --no-wait                                              : Do not wait for the long-running operation to
                                                             finish.
    --yes -y                                               : Do not prompt for confirmation.

In diesem Beispiel wird die Keysetgruppe „bareMetalMachineKeysetName“ im Cluster „clusterName“ entfernt.

az networkcloud cluster baremetalmachinekeyset delete \
  --name "bareMetalMachineKeySetName" \
  --cluster-name "clusterName" \
  --resource-group "cluster_RG"

Aktualisieren eines Keysets für einen Bare-Metal-Computer

Mit dem Befehl baremetalmachinekeyset update können Benutzer Änderungen an einer vorhandenen Keysetgruppe vornehmen.

Die Befehlssyntax ist wie folgt:

az networkcloud cluster baremetalmachinekeyset update \
  --name "<bare metal machine Keyset Name>" \
  --jump-hosts-allowed "<List of jump server IP addresses>" \
  --privilege-level "<"Standard" or "Superuser">" \
  --user-list '[{"description":"<User List Description>","azureUserName":"<User Name>",\
   "sshPublicKey":{"keyData":"<SSH Public Key>"}, \
   "userPrincipalName":""}]', \
  --tags key1="<Key Value>" key2="<Key Value> "\
  --cluster-name "<Cluster Name>" \
  --resource-group "<cluster_RG>"

Aktualisieren von Argumenten

  --bare-metal-machine-key-set-name --name -n [Required] : The name of the bare metal machine key set.
  --cluster-name                              [Required] : The name of the cluster.
  --expiration                                           : The date and time after which the users
                                                           in this key set are removed from
                                                           the bare metal machines. The maximum
                                                           expiration date is a year from creation
                                                           date. Format is: "YYYY-MM-DDTHH:MM:SS.000Z".
  --jump-hosts-allowed                                   : The list of IP addresses of jump hosts
                                                           with management network access from
                                                           which a login is allowed for the
                                                           users. Supports IPv4 or IPv6 addresses.
  --privilege-level                                      : The access level allowed for the users
                                                           in this key set.  Allowed values:
                                                           "Standard" or "Superuser".
  --user-list                                            : The unique list of permitted users.
    Usage: --user-list azure-user-name=XX description=XX key-data=XX
      azure-user-name: Required. User name used to login to the server.
      description: The free-form description for this user.
      key-data: Required. The public SSH key of the user.
      userPrincipalName: Optional. The User Principal Name of the User.

      Multiple users can be specified by using more than one --user-list argument.
  --resource-group -g                         [Required] : Name of cluster resource group. Optional if
                                                           configuring the default group using `az
                                                           configure --defaults group=<name>`.
  --tags                                                 : Space-separated tags: key[=value]
                                                           [key[=value] ...]. Use '' to clear
                                                           existing tags.
  --no-wait                                              : Do not wait for the long-running
                                                           operation to finish.

In diesem Beispiel werden der Gruppe „baremetalMachineKeySetName“ zwei neue Benutzer hinzugefügt und die Ablaufzeit für die Gruppe geändert.

az networkcloud cluster baremetalmachinekeyset update \
  --name "bareMetalMachineKeySetName" \
 --expiration "2023-12-31T23:59:59.008Z" \
  --user-list '[{"description":"Needs access for troubleshooting as a part of the support team",\
  "azureUserName":"userABC", \
  "sshPublicKey":{"keyData":"ssh-rsa  AAtsE3njSONzDYRIZv/WLjVuMfrUSByHp+jfaaOLHTIIB4fJvo6dQUZxE20w2iDHV3tEkmnTo84eba97VMueQD6OzJPEyWZMRpz8UYWOd0IXeRqiFu1lawNblZhwNT/ojNZfpB3af/YDzwQCZgTcTRyNNhL4o/blKUmug0daSsSXISTRnIDpcf5qytjs1XoyYyJMvzLL59mhAyb3p/cD+Y3/s3WhAx+l0XOKpzXnblrv9d3q4c2tWmm/SyFqthaqd0= admin@vm"}, \
  "userPrincipalName":"example@contoso.com"},\
  {"description":"Needs access for troubleshooting as a part of the support team",\
    "azureUserName":"userXYZ", \
    "sshPublicKey":{"keyData":"ssh-rsa  AAtsE3njSONzDYRIZv/WLjVuMfrUSByHp+jfaaOLHTIIB4fJvo6dQUZxE20w2iDHV3tEkmnTo84eba97VMueQD6OzJPEyWZMRpz8UYWOd0IXeRqiFu1lawNblZhwNT/ojNZfpB3af/YDzwQCZgTcTRyNNhL4o/blKUmug0daSsSXTSTRnIDpcf5qytjs1XoyYyJMvzLL59mhAyb3p/cD+Y3/s3WhAx+l0XOKpzXnblrv9d3q4c2tWmm/SyFqthaqd0= admin@vm"}, \
    "userPrincipalName":"example@contoso.com"}]' \
   --cluster-name "clusterName" \
  --resource-group "cluster_RG"

Auflisten der Keysets für Bare-Metal-Computer

Mit dem Befehl baremetalmachinekeyset list können Benutzer die vorhandenen Keysetgruppen in einem Cluster anzeigen.

Die Befehlssyntax ist wie folgt:

az networkcloud cluster baremetalmachinekeyset list \
  --cluster-name "<Cluster Name>" \
  --resource-group "<cluster_RG>"

Auflisten von Argumenten

  --cluster-name                              [Required] : The name of the cluster.
  --resource-group -g                         [Required] : Name of cluster resource group. Optional if
                                                           configuring the default group using `az
                                                           configure --defaults group=<name>`.

Anzeigen der Details eines Keysets für einen Bare-Metal-Computer

Mit dem Befehl baremetalmachinekeyset show können Benutzer die Details einer vorhandenen Keysetgruppe in einem Cluster anzeigen.

Die Befehlssyntax ist wie folgt:

az networkcloud cluster baremetalmachinekeyset show \
  --cluster-name "<Cluster Name>" \
  --resource-group "<cluster_RG>"

Anzeigen von Argumenten

  --bare-metal-machine-key-set-name --name -n [Required] : The name of the bare metal machine key
                                                           set.
  --cluster-name                              [Required] : The name of the cluster.
  --resource-group -g                         [Required] : Name of cluster resource group. You can
                                                           configure the default group using `az
                                                           configure --defaults group=<name>`.