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

Внимание

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

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

Если имя участника-пользователя для пользователя не является членом указанной группы, состояние пользователя имеет значение "Недопустимо", а его сообщение о состоянии будет называться недопустимым, так как userPrincipal не является членом группы AAD". Если идентификатор группы Azure недопустим, каждый пользователь в наборе ключей будет иметь значение "Недопустимый", а сообщение о состоянии будет говорить"Группа AAD не существует". Недопустимые пользователи остаются в наборе ключей, но их ключ не будет включен для доступа по протоколу SSH.

Примечание.

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

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

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

Внимание

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

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

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

  • Установите последнюю версию соответствующих расширений 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 <Resource Group>

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

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

Глобальные аргументы 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/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"

Сведения о создании структуры см. в кратком --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 <Resource Group Name>

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

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

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

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

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

Эта 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 <Resource Group>

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

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

В этом примере два новых пользователя добавляются в группу 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 "resourceGroupName"

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

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

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

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

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

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

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

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

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

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

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

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