Share via


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

Achtung

Beachten Sie, dass dieser Prozess in Notfallsituationen verwendet wird, wenn alle anderen Problembehandlungsoptionen, die Azure verwenden, 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 einer Bare-Metal-Maschine untersuchen und beheben muss, und alle anderen Möglichkeiten wurden über Azure erschöpft. Azure Operator Nexus bietet den az networkcloud cluster baremetalmachinekeyset Befehl, damit Benutzer SSH-Zugriff auf diese Bare-Metal-Computer 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 Microsoft Entra-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, wird für jeden Benutzer in der Keyset der 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.

Es gibt keine Beschränkung auf die Anzahl der Benutzer in einer Gruppe.

Achtung

Hinweise für Sprunghost-IP-Adressen

  • Der Keyset-Erstellungs-/Aktualisierungsprozess fügt die Sprunghost-IP-Adressen den IP-Tabellen für jeden Computer im Cluster hinzu. Dadurch wird der SSH-Zugriff nur von diesen Sprunghosts eingeschränkt.
  • Es ist wichtig, die clustergerichteten IP-Adressen für die Sprunghosts anzugeben. Diese IP-Adressen unterscheiden sich möglicherweise von der öffentlich zugänglichen IP-Adresse, die für den Zugriff auf den Sprunghost verwendet wird.
  • Nach dem Hinzufügen können Benutzer von jeder angegebenen Sprunghost-IP aus auf Bare-Metal-Computer zugreifen, einschließlich einer Sprunghost-IP, die in einer anderen Bare Metal Machine Keyset-Gruppe definiert ist.
  • Vorhandene SSH-Zugriffe Standard beim Hinzufügen des ersten Bare-Metal-Computerschlüsselsets. Der Keyset-Befehl beschränkt jedoch den SSH-Zugriff eines vorhandenen Benutzers auf die angegebenen Sprunghost-IPs in den Keysetbefehlen.

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/bareMetalMachineKeySets. Als Optionen sind /read, /write und /delete verfügbar.

Hinweis

Wenn der Zugriff auf Bare-Metal-Maschinen ü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 Bare Metal Machine Keyset

Der baremetalmachinekeyset 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 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 <Resource Group>

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.
  --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. 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 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 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 baremetalmachinekeyset create \
  --name "bareMetalMachineKeySetName" \
  --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 "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 "resourceGroupName"

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

Löschen eines Bare Metal-Maschinenschlüsselsets

Mit baremetalmachinekeyset delete dem Befehl wird der SSH-Zugriff auf den Bare-Metal-Computer für eine Gruppe von Benutzern entfernt. Alle Mitglieder der Gruppe haben keinen SSH-Zugriff mehr auf eines der Bare-Metal-Computer im Cluster.

Die Befehlssyntax ist wie folgt:

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

Argumente löschen

    --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 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 "resourceGroupName"

Aktualisieren eines Bare Metal Machine Keysets

Mit dem baremetalmachinekeyset update Befehl 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 <Resource Group>

Argumente aktualisieren

  --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. 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 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 "resourceGroupName"

Auflisten von Bare Metal Machine Keysets

Mit dem baremetalmachinekeyset list Befehl 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 <Resource Group>

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

Details zur Bare Metal Machine Keyset anzeigen

Mit dem baremetalmachinekeyset show Befehl 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 <Resource Group>

Argumente anzeigen

  --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 resource group. You can
                                                           configure the default group using `az
                                                           configure --defaults group=<name>`.