Поделиться через


Управление аварийным доступом к компьютеру без операционной системы с помощью az networkcloud cluster baremetalmachinekeyset

Внимание

Обратите внимание, что этот процесс используется в чрезвычайных ситуациях, когда все остальные варианты устранения неполадок с помощью Azure исчерпаны. Любые действия записи или изменения, выполняемые на узлах BMM, потребуют от пользователей повторного создания образа, чтобы восстановить поддержку Майкрософт на затронутых узлах BMM. Обратите внимание, что доступ SSH к этим компьютерам без операционной системы ограничен пользователями, управляемыми с помощью этого метода из указанного списка узлов перехода.

Существуют редкие ситуации, когда пользователю необходимо исследовать и устранять проблемы с компьютером без операционной системы и всеми другими способами через Azure исчерпаны. Оператор Azure Nexus предоставляет az networkcloud cluster baremetalmachinekeyset команду, чтобы пользователи могли управлять доступом SSH к этим компьютерам без операционной системы. При создании набора ключей пользователи проверяются на идентификатор Microsoft Entra id для правильной авторизации путем перекрестной ссылки на имя участника-пользователя, указанного для пользователя с указанным идентификатором --azure-group-id <Entra Group ID>группы Microsoft Entra.

Пользователи в наборе ключей проверяются каждые четыре часа, а также при внесении изменений в любой набор ключей. Затем для каждого пользователя задано значение "Активный" или "Недопустимый". Недопустимые пользователи остаются в наборе ключей, но их ключи удаляются со всех узлов, и они не допускают доступ. Причины недопустимых пользователей:

  • Имя участника-пользователя пользователя не указано
  • Имя участника-пользователя не является членом данной группы Entra
  • Указанная группа Entra не существует (в этом случае все пользователи в наборе ключей недопустимы)
  • Срок действия набора ключей истек (в этом случае все пользователи в наборе ключей недопустимы)

Примечание.

Имя субъекта-пользователя теперь требуется для наборов ключей, так как проверка идентификатора Microsoft Entra применяется для всех пользователей. Текущие наборы ключей, не указывающие имена субъектов-пользователей для всех пользователей, будут продолжать работать до истечения срока действия. Если срок действия набора ключей без имен субъектов-пользователей истекает, набор ключей необходимо обновить с помощью имен субъектов-пользователей для всех пользователей, чтобы снова стать допустимым. Наборы ключей, которые не были обновлены с именами субъектов-пользователей для всех пользователей до декабря 2024 года, подвержены Invalidриску. Обратите внимание, что если пользователю не удается указать имя участника-пользователя, это приведет к недопустимости всего набора ключей.

Набор ключей и каждый отдельный пользователь также имеют подробные сообщения о состоянии, сообщающие другую информацию:

  • Подробное описание набора ключейStatusMessage указывает, истек срок действия набора ключей и другие сведения о проблемах, возникающих при обновлении набора ключей в кластере.
  • Состояние пользователяMessage сообщает, является ли пользователь активным или недопустимым, а также список компьютеров, которые еще не обновлены до последнего активного или недопустимого состояния пользователя. В каждом случае причины проблем включаются, если известно.

При выполнении команды выполняется на каждом компьютере без операционной системы в кластере с активным узлом Kubernetes. Существует процесс выверки, который периодически выполняется, который повторяет команду на любом компьютере без операционной системы, который не был доступен во время исходной команды. Кроме того, любой компьютер без операционной системы, возвращающийся в кластер с помощью az networkcloud baremetalmachine reimage команды или az networkcloud baremetalmachine replace команды (см . функции BareMetal), отправляет сигнал, вызывающий отправку всех активных наборов ключей на компьютер сразу после возвращения в кластер. Несколько команд выполняются в полученном порядке.

Количество пользователей в группе не ограничено.

Внимание

Заметки о IP-адресах узла перехода

  • Процесс создания и обновления набора ключей добавляет IP-адреса узла перехода в таблицы IP для каждого компьютера в кластере. Обновление таблиц IP-адресов ограничивает доступ SSH только с этих узлов переходов.
  • Важно указать IP-адреса кластера для узлов перехода. Эти IP-адреса могут отличаться от общедоступного IP-адреса, используемого для доступа к узлу перехода.
  • Хотя определен хотя бы один набор ключей, доступ к SSH разрешен из любого узла перехода в любом наборе ключей. Например, если набор ключей A указывает узел перехода A и набор ключей B указывает узел перехода B, пользователи в любом наборе ключей могут использовать узел перехода A или B.
  • Хотя наборы ключей не определены, доступ к SSH разрешен из любого узла перехода с сетевым подключением к компьютерам.

Необходимые компоненты

  • Установите последнюю версию соответствующих расширений CLI.
  • Локальный кластер должен иметь подключение к Azure.
  • Получите имя группы ресурсов для Cluster ресурса.
  • Процесс применяет наборы ключей ко всем работающим компьютерам без операционной системы.
  • Добавленные пользователи должны быть частью группы Microsoft Entra. Дополнительные сведения см. в разделе "Управление группами".
  • Чтобы ограничить доступ к наборам ключей, создайте пользовательскую роль. Дополнительные сведения см. в разделе "Пользовательские роли Azure". В этом экземпляре добавьте или исключите разрешения для Microsoft.NetworkCloud/clusters/bareMetalMachineKeySets. Параметры: /read, /writeи /delete.

Примечание.

При создании, изменении или удалении доступа к компьютеру без операционной системы с помощью команд, описанных в этой статье, фоновый процесс предоставляет эти изменения компьютерам. Этот процесс приостановлен во время обновления программного обеспечения Оператора Nexus. Если обновление, как известно, выполняется, можно использовать --no-wait параметр с командой, чтобы предотвратить завершение процесса в командной строке.

Создание набора ключей компьютера без операционной системы

Команда baremetalmachinekeyset create создает SSH-доступ к компьютеру без операционной системы в кластере для группы пользователей.

Синтаксис команды:

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

Создание аргументов

  --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. 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".
  --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 cluster 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: Required. 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.

Глобальные аргументы Azure CLI (применимы ко всем командам)

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

В этом примере создается новый набор ключей с двумя пользователями, имеющими стандартный доступ с двух узлов перехода.

az networkcloud cluster baremetalmachinekeyset create \
  --name "bareMetalMachineKeySetName" \
  --extended-location name="/subscriptions/subscriptionId/resourceGroups/cluster_RG/providers/Microsoft.ExtendedLocation/customLocations/clusterExtendedLocationName" \
    type="CustomLocation" \
  --location "eastus" \
  --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 "cluster_RG"

Сведения о создании структуры см. в кратком --user-listразделе Azure CLI.

Удаление набора ключей компьютера без операционной системы

Команда baremetalmachinekeyset delete удаляет SSH-доступ к компьютеру без операционной системы для группы пользователей. Все члены группы больше не имеют SSH-доступа к любому из компьютеров без операционной системы в кластере.

Синтаксис команды:

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

Удаление аргументов

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

В этом примере удаляется группа наборов ключей bareMetalMachineKeysetName в кластере clusterName.

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

Обновление набора ключей компьютера без операционной системы

Эта baremetalmachinekeyset update команда позволяет пользователям вносить изменения в существующую группу наборов ключей.

Синтаксис команды:

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

Обновление аргументов

  --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. The maximum
                                                           expiration date is a year from creation
                                                           date. 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: Required. 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 cluster 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.

В этом примере два новых пользователя добавляются в группу baremetalMachineKeySetName и изменяют время истечения срока действия группы.

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

Перечисление наборов ключей компьютеров без операционной системы

Эта baremetalmachinekeyset list команда позволяет пользователям просматривать существующие группы наборов ключей в кластере.

Синтаксис команды:

az networkcloud cluster baremetalmachinekeyset list \
  --cluster-name "<Cluster Name>" \
  --resource-group "<cluster_RG>"

Перечисление аргументов

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

Отображение сведений о наборе ключей компьютера без операционной системы

Эта baremetalmachinekeyset show команда позволяет пользователям просматривать сведения о существующей группе наборов ключей в кластере.

Синтаксис команды:

az networkcloud cluster baremetalmachinekeyset show \
  --cluster-name "<Cluster Name>" \
  --resource-group "<cluster_RG>"

Показать аргументы

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