Share via


Verwalten des Notfallzugriffs auf eine Bare-Metal-Maschine mithilfe der az networkcloud cluster bmckeyset

Achtung

Beachten Sie, dass dieser Prozess in Notfallsituationen verwendet wird, wenn alle anderen Problembehandlungsoptionen über Azure erschöpft sind. DER SSH-Zugriff auf diese Bare-Metal-Computer ist auf Benutzer beschränkt, die über diese Methode aus der angegebenen Sprunghostliste verwaltet werden.

Es gibt seltene Situationen, in denen ein Benutzer Probleme mit einem Bare-Metal-Computer untersuchen und beheben muss, und alle anderen Möglichkeiten, Azure zu verwenden, sind erschöpft. Operator Nexus bietet den az networkcloud cluster bmckeyset Befehl, damit Benutzer SSH-Zugriff auf den Baseboard-Verwaltungscontroller (BMC) auf diesen Bare-Metal-Computern verwalten können. Bei der Keyseterstellung werden Benutzer anhand der microsoft Entra-ID zur ordnungsgemäßen Autorisierung überprüft, indem sie den für einen Benutzer bereitgestellten Benutzerprinzipalnamen anhand der bereitgestellten Azure-Gruppen-ID --azure-group-id <Entra Group ID>referenzieren.

Wenn der Benutzerprinzipalname für einen Benutzer kein Mitglied der angegebenen Gruppe ist, wird der Status des Benutzers auf "Ungültig" festgelegt, und die Statusmeldung lautet "Ungültig, weil "userPrincipal" kein Mitglied der AAD-Gruppe ist. Wenn die Azure-Gruppen-ID ungültig ist, hat jeder Benutzer in der Keyset seinen Status auf "Ungültig" festgelegt, und die Statusmeldung lautet "AAD-Gruppe ist nicht vorhanden". Ungültige Benutzer sind Standard im Keyset, aber ihr Schlüssel wird nicht für den SSH-Zugriff aktiviert.

Hinweis

Derzeit gibt es einen Übergangszeitraum, in dem die Angabe von Benutzerprinzipalnamen optional ist. In einer zukünftigen Version wird sie obligatorisch, und die Microsoft Entra-ID-Überprüfung wird für alle Benutzer erzwungen. Benutzer werden ermutigt, ihren Keysets Benutzerprinzipalnamen hinzuzufügen, bevor der Übergangszeitraum endet (geplant für Juli 2024), um zu verhindern, dass Schlüsselets ungültig werden. Beachten Sie, dass die Überprüfung der Microsoft Entra-ID aktiviert ist, wenn benutzerprinzipale Namen einem Keyset hinzugefügt werden, auch wenn sie nicht für alle Benutzer hinzugefügt werden. Dies führt dazu, dass die gesamte Keyset ungültig wird, wenn die angegebene Gruppen-ID ungültig ist.

Wenn der Befehl ausgeführt wird, wird er auf jedem Bare-Metal-Computer im Cluster mit einem aktiven Kubernetes-Knoten ausgeführt. Es gibt einen Abstimmungsprozess, der in regelmäßigen Abständen ausgeführt wird, um den Befehl auf einer Bare-Metal-Maschine zu überprüfen, die zum Zeitpunkt des ursprünglichen Befehls nicht verfügbar war. Außerdem sendet jede Bare-Metal-Maschine, die über eine oder az networkcloud baremetalmachine actionreplace einen az networkcloud baremetalmachine actionreimage Befehl zum Cluster zurückkehrt (siehe BareMetal-Funktionen), ein Signal, das bewirkt, dass aktive Tastensätze an den Computer gesendet werden, sobald sie zum Cluster zurückkehrt. Mehrere Befehle werden in der empfangenen Reihenfolge ausgeführt.

Die BMCs unterstützen maximal 12 Benutzer. Benutzer werden pro Cluster definiert und auf jede Bare-Metal-Maschine angewendet. Versuche, mehr als 12 Benutzer hinzuzufügen, führen zu einem Fehler. Löschen Sie einen Benutzer, bevor Sie einen anderen hinzufügen, wenn 12 bereits vorhanden ist.

Voraussetzungen

  • Installieren Sie die neueste Version der entsprechenden CLI-Erweiterungen.
  • Der lokale Cluster muss über eine Verbindung mit Azure verfügen.
  • Rufen Sie den Ressourcengruppennamen für die Cluster Ressource ab.
  • Der Prozess wendet Tastensätze auf alle laufenden Bare-Metal-Maschinen an.
  • Die hinzugefügten Benutzer müssen Teil einer Microsoft Entra-Gruppe sein. Weitere Informationen finden Sie unter "Verwalten von Gruppen".
  • Um den Zugriff auf die Verwaltung von Keysets einzuschränken, erstellen Sie eine benutzerdefinierte Rolle. Weitere Informationen finden Sie unter Azure Custom Roles. Fügen Sie in dieser Instanz Berechtigungen für Microsoft.NetworkCloud/clusters/bmcKeySets. 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, liefert ein Hintergrundprozess diese Änderungen an den Computern. Dieser Vorgang wird während der Operator Nexus-Softwareupgrades angehalten. Wenn bekannt ist, dass ein Upgrade ausgeführt wird, können Sie die --no-wait Option mit dem Befehl verwenden, um zu verhindern, dass die Eingabeaufforderung auf den Abschluss des Prozesses wartet.

Erstellen einer BMC-Keyset

Der bmckeyset create Befehl erstellt SSH-Zugriff auf den 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> \
  --jump-hosts-allowed <List of jump server IP addresses> \
  --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>

Argumente erstellen

  --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 limit is up to 1 year from creation.
                                                           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 Azure CLI-Argumente (gilt 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 von zwei Sprunghosts 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"

Unterstützung beim Erstellen der --user-list Struktur finden Sie unter Azure CLI Shorthand.

Löschen eines BMC-Schlüsselsets

Mit bmckeyset delete dem Befehl wird der SSH-Zugriff auf die BMC für eine Gruppe von Benutzern entfernt. Alle Mitglieder der Gruppe verlieren 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> \

Argumente löschen

  --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 bmckeyset update Befehl können Benutzer Änderungen an einer vorhandenen Keysetgruppe vornehmen.

Die Befehlssyntax ist wie folgt:

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

Argumente aktualisieren

  --bmc-key-set-name --name -n                [Required] : The name of the BMC 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 BMCs. 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:
                                                           "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 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 bmckeyset list Befehl 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>

Listenargumente

  --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 bmckeyset show Befehl 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>

Argumente anzeigen

  --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>`.