Partilhar via


Gerencie o acesso de emergência a uma máquina bare metal usando o az networkcloud cluster baremetalmachinekeyset

Atenção

Observe que esse processo é usado em situações de emergência quando todas as outras opções de solução de problemas usando o Azure foram esgotadas. Qualquer ação de gravação ou edição executada no(s) nó(s) BMM exigirá que os usuários 'recriem a imagem' para restaurar o suporte da Microsoft ao(s) nó(s) BMM afetado(s). Por favor, note que o acesso SSH a essas máquinas bare metal é restrito a usuários gerenciados através deste método a partir da lista de hosts de salto especificada.

Há raras situações em que um usuário precisa investigar e resolver problemas com uma máquina bare metal e todas as outras maneiras por meio do Azure estão esgotadas. O Azure Operator Nexus fornece o comando para que os usuários possam gerenciar o az networkcloud cluster baremetalmachinekeyset acesso SSH a essas máquinas bare metal. Na criação do conjunto de chaves, os usuários são validados em relação à ID do Microsoft Entra para autorização adequada, cruzando o Nome Principal do Usuário fornecido para um usuário com a ID --azure-group-id <Entra Group ID>de Grupo do Microsoft Entra fornecida.

Os usuários em um conjunto de chaves são validados a cada quatro horas, e também quando quaisquer alterações são feitas em qualquer conjunto de chaves. O status de cada usuário é definido como "Ativo" ou "Inválido". Os utilizadores inválidos permanecem no conjunto de chaves, mas as suas chaves são removidas de todos os anfitriões e não lhes é permitido acesso. Os motivos para um usuário ser inválido são:

  • O Nome Principal do Usuário do usuário não é membro do grupo Entra (se especificado)
  • O grupo Entra fornecido (se especificado) não existe (caso em que todos os usuários no conjunto de chaves são inválidos)
  • O conjunto de chaves expirou (nesse caso, todos os usuários no conjunto de chaves são inválidos)

Nota

Existe atualmente um período de transição em que a especificação de nomes principais de utilizador é opcional. Em uma versão futura, ele se tornará obrigatório e a validação do Microsoft Entra ID será aplicada para todos os usuários. Os usuários são incentivados a adicionar nomes principais de usuário aos seus conjuntos de chaves antes que o período de transição termine (planejado para julho de 2024) para evitar que os conjuntos de chaves sejam invalidados. Observe que, se algum Nome Principal de Usuário for adicionado a um conjunto de chaves, mesmo que não seja adicionado para todos os usuários, a validação do ID do Microsoft Entra será habilitada, e isso resultará na invalidação de todo o conjunto de chaves se a ID de Grupo especificada não for válida.

O conjunto de chaves e cada usuário individual também têm mensagens de status detalhadas comunicando outras informações:

  • O detailedStatusMessage do conjunto de chaves informa se o conjunto de chaves expirou e outras informações sobre problemas encontrados durante a atualização do conjunto de chaves no cluster.
  • O statusMessage do usuário informa se o usuário está ativo ou inválido e uma lista de máquinas que ainda não foram atualizadas para o estado ativo/inválido mais recente do usuário. Em cada caso, as causas dos problemas são incluídas, se conhecidas.

Quando o comando é executado, ele é executado em cada máquina bare metal no Cluster com um nó Kubernetes ativo. Há um processo de reconciliação que é executado periodicamente que tenta novamente o comando em qualquer máquina bare metal que não estava disponível no momento do comando original. Além disso, qualquer máquina bare metal que retorne ao cluster por meio de um az networkcloud baremetalmachine reimage comando ou az networkcloud baremetalmachine replace (consulte Funções bareMetal) envia um sinal fazendo com que todos os conjuntos de chaves ativos sejam enviados para a máquina assim que ela retornar ao cluster. Vários comandos são executados na ordem recebida.

Não há limite para o número de usuários em um grupo.

Atenção

Notas para endereços IP de host de salto

  • O processo de criação/atualização do conjunto de chaves adiciona os endereços IP do host de salto às tabelas IP de cada máquina no Cluster. A atualização das tabelas IP restringe o acesso SSH a ser permitido apenas a partir desses hosts de salto.
  • É importante especificar os endereços IP voltados para o cluster para os hosts de salto. Esses endereços IP podem ser diferentes do endereço IP voltado para o público usado para acessar o host de salto.
  • Embora pelo menos um conjunto de chaves esteja definido, o acesso ssh é permitido a partir de qualquer host de salto em qualquer conjunto de chaves. Por exemplo, se o conjunto de chaves A especifica o host de salto A e o conjunto de teclas B especifica o host de salto B, os usuários em qualquer conjunto de chaves podem usar o host de salto A ou B.
  • Embora nenhum conjunto de chaves seja definido, o acesso ssh é permitido a partir de qualquer host de salto que tenha conectividade de rede com as máquinas.

Pré-requisitos

  • Instale a versão mais recente das extensões CLI apropriadas.
  • O Cluster local deve ter conectividade com o Azure.
  • Obtenha o nome do Grupo de Recursos para o Cluster recurso.
  • O processo aplica conjuntos de chaves a todas as máquinas bare metal em execução.
  • Os usuários adicionados devem fazer parte de um grupo do Microsoft Entra. Para obter mais informações, consulte Como gerenciar grupos.
  • Para restringir o acesso para gerenciar conjuntos de chaves, crie uma função personalizada. Para obter mais informações, consulte Funções personalizadas do Azure. Nesse caso, adicione ou exclua permissões para Microsoft.NetworkCloud/clusters/bareMetalMachineKeySets. As opções são /read, /writee /delete.

Nota

Quando o acesso à máquina bare metal é criado, modificado ou excluído por meio dos comandos descritos neste artigo, um processo em segundo plano entrega essas alterações às máquinas. Este processo é pausado durante as atualizações do software Operator Nexus. Se uma atualização estiver em andamento, você poderá usar a --no-wait opção com o comando para impedir que o prompt de comando aguarde a conclusão do processo.

Criando um conjunto de chaves de máquina bare metal

O baremetalmachinekeyset create comando cria acesso SSH à máquina bare metal em um cluster para um grupo de usuários.

A sintaxe do comando é:

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

Criar argumentos

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

Argumentos globais da CLI do Azure (aplicável a todos os comandos)

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

Este exemplo cria um novo conjunto de chaves com dois usuários que têm acesso padrão de dois hosts de salto.

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"

Para obter assistência na criação da estrutura, consulte Taquigrafia --user-listda CLI do Azure.

Eliminar um conjunto de chaves de máquina bare metal

O baremetalmachinekeyset delete comando remove o acesso SSH à máquina bare metal para um grupo de usuários. Todos os membros do grupo não têm mais acesso SSH a nenhuma das máquinas bare metal no Cluster.

A sintaxe do comando é:

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

Excluir argumentos

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

Este exemplo remove o grupo de conjuntos de chaves "bareMetalMachineKeysetName" no cluster "clusterName".

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

Atualizando um conjunto de chaves de máquina bare metal

O baremetalmachinekeyset update comando permite que os usuários façam alterações em um grupo de conjuntos de chaves existente.

A sintaxe do comando é:

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

Argumentos de atualização

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

Este exemplo adiciona dois novos usuários ao grupo "baremetalMachineKeySetName" e altera o tempo de expiração do grupo.

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"

Listando conjuntos de chaves de máquina bare metal

O baremetalmachinekeyset list comando permite que os usuários vejam os grupos de conjuntos de chaves existentes em um Cluster.

A sintaxe do comando é:

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

Listar argumentos

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

Mostrar detalhes do conjunto de chaves da máquina bare metal

O baremetalmachinekeyset show comando permite que os usuários vejam os detalhes de um grupo de conjuntos de chaves existente em um Cluster.

A sintaxe do comando é:

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

Mostrar argumentos

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