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

Uwaga

Pamiętaj, że ten proces jest używany w sytuacjach awaryjnych, gdy wszystkie inne opcje rozwiązywania problemów za pośrednictwem 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.

Występują rzadkie sytuacje, w których użytkownik musi zbadać i rozwiązać problemy z maszyną bez systemu operacyjnego i wszystkie inne sposoby korzystania z platformy Azure zostały wyczerpane. Operator Nexus udostępnia az networkcloud cluster bmckeyset polecenie, dzięki czemu użytkownicy mogą zarządzać dostępem SSH do kontrolera zarządzania płytą główną (BMC) na tych komputerach 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>grupy platformy Azure.

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

Kontrolery BMC obsługują maksymalną liczbę 12 użytkowników. Użytkownicy są definiowani na podstawie klastra i stosowane do każdej maszyny bez systemu operacyjnego. Próby dodania więcej niż 12 użytkowników powoduje wystąpienie błędu. Usuń użytkownika przed dodaniem innego, gdy 12 już istnieje.

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 Entra firmy Microsoft. 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/bmcKeySets. Dostępne opcje to /read, /writei /delete.

Uwaga

Po utworzeniu, zmodyfikowaniu lub usunięciu dostępu BMC 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 BMC

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

Składnia polecenia to:

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>

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

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

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

Usuwanie zestawu kluczy BMC

Polecenie bmckeyset delete usuwa dostęp SSH do kontrolera BMC dla grupy użytkowników. Wszyscy członkowie grupy utracą dostęp SSH do dowolnego kontrolera BMC w klastrze.

Składnia polecenia to:

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

Usuń argumenty

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

W tym przykładzie grupa "bmcKeysetSetName" jest usuwana w klastrze "clusterName".

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

Aktualizowanie zestawu kluczy BMC

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

Składnia polecenia to:

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>

Aktualizowanie argumentów

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

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

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"

Wyświetlanie listy zestawów kluczy BMC

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

Składnia polecenia to:

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

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 kontrolera BMC

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

Składnia polecenia to:

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

Pokaż argumenty

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