Freigeben über


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

Achtung

Beachten Sie, dass dieser Prozess in Notfallsituationen verwendet wird, wenn alle anderen Problembehandlungsoptionen über Azure ausgeschöpft wurden. Der SSH-Zugriff auf diese Bare-Metal-Computer ist auf Benutzer beschränkt, die über die angegebene Bastion Host-Liste mithilfe dieser Methode verwaltet werden.

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 bmckeyset, damit Benutzer den SSH-Zugriff auf den Baseboard-Verwaltungscontroller (Baseboard Management Controller, BMC) für diese Bare-Metal-Computer verwalten können. Bei der Keyseterstellung werden Benutzer zur ordnungsgemäßen Autorisierung mithilfe von Microsoft Entra ID überprüft, indem der für einen Benutzer bereitgestellte Benutzerprinzipalname mit der bereitgestellten Azure-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 beliebigen 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 actionreimage oder az networkcloud baremetalmachine actionreplace (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 BMCs unterstützen maximal 12 Benutzer. Benutzer werden pro Cluster definiert und auf jeden Bare-Metal-Computer angewendet. Beim Versuch, mehr als 12 Benutzer hinzuzufügen, tritt ein Fehler auf. Falls bereits 12 Benutzer vorhanden sind, müssen Sie einen Benutzer löschen, bevor Sie einen anderen hinzufügen.

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/bmcKeySets hinzu, oder schließen Sie sie aus. Als Optionen sind /read, /write und /delete verfügbar.

Hinweis

Wenn der BMC-Zugriff ü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 BMC-Keysets

Der Befehl bmckeyset 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 bmckeyset create \
  --name <BMC Keyset Name> \
  --extended-location name=<Extended Location ARM ID> \
    type="CustomLocation" \
  --location <Azure Region> \
  --azure-group-id <Azure AAD Group ID> \
  --expiration <Expiration Timestamp> \
  --privilege-level <"Administrator" or "ReadOnly"> \
  --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 <Resource Group Name>

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.
  --bmc-key-set-name --name -n                [Required] : The name of the BMC 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 BMCs. 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".
  --privilege-level                           [Required] : The access level allowed for the users
                                                           in this key set.  Allowed values:
                                                           "Administrator" or "ReadOnly".
  --resource-group -g                         [Required] : Name of 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.
  --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 bmckeyset create \
  --name "bmcKeySetName" \
  --extended-location name="/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ExtendedLocation/customLocations/clusterExtendedLocationName" \
    type="CustomLocation" \
  --location "location" \
  --azure-group-id "f110271b-XXXX-4163-9b99-214d91660f0e" \
  --expiration "2023-12-31T23:59:59.008Z" \
  --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"}},\
  {"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"}}]' \
  --tags key1="myvalue1" key2="myvalue2" \
  --cluster-name "clusterName" \
  --resource-group "resourceGroupName"

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

Löschen eines BMC-Keysets

Der Befehl bmckeyset delete entfernt den SSH-Zugriff auf den BMC für eine Gruppe von Benutzern. Alle Mitglieder der Gruppe verlieren den SSH-Zugriff auf alle BMCs im Cluster.

Die Befehlssyntax ist wie folgt:

az networkcloud cluster bmckeyset delete \
  --name <BMC Keyset Name> \
  --cluster-name <Cluster Name> \
  --resource-group <Resource Group Name> \

Löschen von Argumenten

  --bmc-key-set-name --name -n                [Required] : The name of the BMC key set to be deleted.
  --cluster-name                              [Required] : The name of the cluster.
  --resource-group -g                         [Required] : Name of 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 „bmcKeysetName“ im Cluster „clusterName“ entfernt.

az networkcloud cluster bmckeyset delete \
  --name "bmcKeySetName" \
  --cluster-name "clusterName" \
  --resource-group "resourceGroupName" \

Aktualisieren eines BMC-Keysets

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

Die Befehlssyntax ist wie folgt:

az networkcloud cluster bmckeyset update \
  --name <BMC Keyset Name> \
  --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 <Resource Group Name>

Aktualisieren von Argumenten

  --bmc-key-set-name --name -n                [Required] : The name of the BMC 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 BMCs. The maximum expiration date is a
                                                           year from creation date. Format is
                                                           "YYYY-MM-DDTHH:MM:SS.000Z".
  --privilege-level                                      : The access level allowed for the users
                                                           in this key set.  Allowed values:
                                                           "Administrator" or "ReadOnly".
  --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 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 „bmcKeySetName“ zwei neue Benutzer hinzugefügt, und die Ablaufzeit für die Gruppe wird geändert.

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

Auflisten von BMC-Keysets

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

Die Befehlssyntax ist wie folgt:

az networkcloud cluster bmckeyset list \
  --cluster-name <Cluster Name> \
  --resource-group <Resource Group Name>

Auflisten von Argumenten

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

Anzeigen von BMC-Keysetdetails

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

Die Befehlssyntax ist wie folgt:

az networkcloud cluster bmckeyset show \
  --cluster-name <Cluster Name> \
  --resource-group <Resource Group Name>

Anzeigen von Argumenten

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