Zarządzanie dostępem awaryjnym do maszyny bez systemu operacyjnego przy użyciu az networkcloud cluster baremetalmachinekeyset

Uwaga

Pamiętaj, że ten proces jest używany w sytuacjach awaryjnych, gdy wszystkie inne opcje rozwiązywania problemów przy użyciu platformy Azure zostały wyczerpane. Dostęp SSH do tych maszyn bez systemu operacyjnego jest ograniczony do użytkowników zarządzanych za pośrednictwem tej metody z określonej listy hostów skoków.

Istnieją rzadkie sytuacje, w których użytkownik musi zbadać i rozwiązać problemy z maszyną bez systemu operacyjnego i wszystkie inne sposoby zostały wyczerpane za pośrednictwem platformy Azure. Operator platformy az networkcloud cluster baremetalmachinekeyset Azure Nexus udostępnia polecenie, dzięki czemu użytkownicy mogą zarządzać dostępem SSH do tych maszyn bez systemu operacyjnego. Podczas tworzenia zestawu kluczy użytkownicy są weryfikowani względem identyfikatora Entra firmy Microsoft w celu uzyskania odpowiedniej autoryzacji, odwołując się do głównej nazwy użytkownika podanej dla użytkownika względem podanego identyfikatora --azure-group-id <Entra Group ID>Microsoft Entra .

Jeśli główna nazwa użytkownika użytkownika nie jest członkiem podanej grupy, stan użytkownika jest ustawiony na "Nieprawidłowy", a komunikat o stanie będzie wyświetlany jako "Nieprawidłowy, ponieważ użytkownikPrincipal nie jest członkiem grupy usługi AAD". Jeśli identyfikator grupy platformy Azure jest nieprawidłowy, każdy użytkownik w zestawie kluczy będzie miał stan "Nieprawidłowy", a komunikat o stanie będzie wyświetlany jako "Grupa usługi AAD nie istnieje". Nieprawidłowi użytkownicy pozostają w zestawie kluczy, ale ich klucz nie zostanie włączony na potrzeby dostępu za pomocą protokołu SSH.

Uwaga

Obecnie istnieje okres przejściowy, w którym określenie głównych nazw użytkowników jest opcjonalne. W przyszłej wersji będzie ona obowiązkowa, a walidacja identyfikatora Entra firmy Microsoft zostanie wymuszona dla wszystkich użytkowników. Użytkownicy są zachęcani do dodawania głównych nazw użytkowników do swoich zestawów kluczy przed zakończeniem okresu przejściowego (planowanego na lipiec 2024 r.), aby uniknąć unieważnienia zestawów kluczy. Należy pamiętać, że jeśli jakiekolwiek główne nazwy użytkownika zostaną dodane do zestawu kluczy, nawet jeśli nie zostaną dodane dla wszystkich użytkowników, weryfikacja identyfikatora Entra firmy Microsoft zostanie włączona i spowoduje to unieważnienie całego zestawu kluczy, jeśli określony identyfikator grupy jest nieprawidłowy.

Po uruchomieniu polecenia jest wykonywane na każdej maszynie bez systemu operacyjnego w klastrze z aktywnym węzłem Kubernetes. Istnieje proces uzgadniania, który jest uruchamiany okresowo, ponawia próbę polecenia na każdej maszynie bez systemu operacyjnego, która nie była dostępna w momencie oryginalnego polecenia. Ponadto każda maszyna bez systemu operacyjnego, która wraca do klastra za pośrednictwem az networkcloud baremetalmachine actionreimage polecenia lub az networkcloud baremetalmachine actionreplace (zobacz funkcje BareMetal), wysyła sygnał powodujący wysłanie jakichkolwiek aktywnych zestawów kluczy do maszyny natychmiast po powrocie do klastra. Wiele poleceń jest wykonywanych w otrzymanej kolejności.

Nie ma limitu liczby użytkowników w grupie.

Uwaga

Uwagi dotyczące adresów IP hosta szybkiego dostępu

  • Proces tworzenia/aktualizowania zestawu kluczy dodaje adresy IP hosta skoku do tabel adresów IP dla każdej maszyny w klastrze. Ogranicza to dostęp SSH tylko z tych hostów przesiadkowych.
  • Ważne jest, aby określić adresy IP klastra dla hostów przesiadkowych. Te adresy IP mogą być inne niż publiczny adres IP używany do uzyskiwania dostępu do hosta przesiadkowego.
  • Po dodaniu użytkownicy mogą uzyskiwać dostęp do maszyn bez systemu operacyjnego z dowolnego określonego adresu IP hosta skoku, w tym adresu IP hosta skokowego zdefiniowanego w innej grupie kluczy maszyn bez systemu operacyjnego.
  • Istniejący dostęp SSH pozostaje podczas dodawania pierwszego zestawu kluczy maszyn bez systemu operacyjnego. Jednak polecenie zestawu kluczy ogranicza dostęp istniejącego użytkownika SSH do określonych adresów IP hosta skoku w poleceniach zestawu kluczy.

Wymagania wstępne

  • Zainstaluj najnowszą wersję odpowiednich rozszerzeń interfejsu wiersza polecenia.
  • Klaster lokalny musi mieć łączność z platformą Azure.
  • Pobierz nazwę grupy zasobów dla Cluster zasobu.
  • Proces stosuje zestawy kluczy do wszystkich uruchomionych maszyn bez systemu operacyjnego.
  • Dodani użytkownicy muszą należeć do grupy Microsoft Entra. Aby uzyskać więcej informacji, zobacz Jak zarządzać grupami.
  • Aby ograniczyć dostęp do zarządzania zestawami kluczy, utwórz rolę niestandardową. Aby uzyskać więcej informacji, zobacz Role niestandardowe platformy Azure. W tym wystąpieniu dodaj lub wyklucz uprawnienia dla elementu Microsoft.NetworkCloud/clusters/bareMetalMachineKeySets. Dostępne opcje to /read, /writei /delete.

Uwaga

Po utworzeniu, zmodyfikowaniu lub usunięciu dostępu do maszyn bez systemu operacyjnego za pomocą poleceń opisanych w tym artykule proces w tle dostarcza te zmiany na maszynach. Ten proces jest wstrzymany podczas uaktualniania oprogramowania Operator Nexus. Jeśli uaktualnienie jest w toku, możesz użyć --no-wait opcji z poleceniem , aby uniemożliwić wierszowi polecenia oczekiwanie na ukończenie procesu.

Tworzenie zestawu kluczy maszyn bez systemu operacyjnego

Polecenie baremetalmachinekeyset create tworzy dostęp SSH do maszyny bez systemu operacyjnego w klastrze dla grupy użytkowników.

Składnia polecenia to:

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>

Tworzenie argumentów

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

Globalne argumenty interfejsu wiersza polecenia platformy Azure (dotyczy wszystkich poleceń)

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

W tym przykładzie tworzony jest nowy zestaw kluczy z dwoma użytkownikami, którzy mają standardowy dostęp z dwóch hostów przesiadkowych.

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"

Aby uzyskać pomoc dotyczącą tworzenia struktury, zobacz Skrót interfejsu --user-list wiersza polecenia platformy Azure.

Usuwanie zestawu kluczy maszyny bez systemu operacyjnego

Polecenie baremetalmachinekeyset delete usuwa dostęp SSH do maszyny bez systemu operacyjnego dla grupy użytkowników. Wszyscy członkowie grupy nie mają już dostępu SSH do żadnej maszyny bez systemu operacyjnego w klastrze.

Składnia polecenia to:

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

Usuń argumenty

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

W tym przykładzie usunięto grupę kluczy "bareMetalMachineKeysetName" w klastrze "clusterName".

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

Aktualizowanie zestawu kluczy komputera bez systemu operacyjnego

Polecenie baremetalmachinekeyset update umożliwia użytkownikom wprowadzanie zmian w istniejącej grupie zestawów kluczy.

Składnia polecenia to:

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>

Aktualizowanie argumentów

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

W tym przykładzie dodano dwóch nowych użytkowników do grupy "baremetalMachineKeySetName" i zmienia czas wygaśnięcia grupy.

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"

Wyświetlanie listy zestawów kluczy maszyn bez systemu operacyjnego

Polecenie baremetalmachinekeyset list umożliwia użytkownikom wyświetlanie istniejących grup zestawów kluczy w klastrze.

Składnia polecenia to:

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

Argumenty listy

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

Pokaż szczegóły zestawu kluczy komputera bez systemu operacyjnego

Polecenie baremetalmachinekeyset show umożliwia użytkownikom wyświetlanie szczegółów istniejącej grupy zestawów kluczy w klastrze.

Składnia polecenia to:

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

Pokaż argumenty

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