Compartilhar via


Gerenciar o acesso de emergência a um computador bare-metal usando o az networkcloud cluster baremetalmachinekeyset

Cuidado

Observe que esse processo é usado em situações de emergência, ou seja, quando todas as outras opções de solução de problemas usando o Azure foram tentadas. Todas as ações de gravação ou edição executadas nos nós do BMM exigirão que os usuários “recriem a imagem” para restaurar o suporte da Microsoft aos nós do BMM afetados. Observe que o acesso do SSH a esses computadores bare-metal é restrito aos usuários gerenciados por esse método na lista do jump host especificada.

Existem casos raros em que um usuário precisa investigar e resolver problemas com um computador bare-metal e todas as outras opções por meio do Azure foram esgotadas. O Nexus do Operador do Azure fornece o comando az networkcloud cluster baremetalmachinekeyset para que os usuários possam gerenciar o acesso SSH a esses computadores bare-metal. Durante a criação do conjunto de chaves, os usuários são validados no Microsoft Entra ID para receber a autorização adequada, cruzando o Nome UPN fornecido com a ID do Grupo do Microsoft Entra --azure-group-id <Entra Group ID> 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 é, então, definido como "Ativo" ou "Inválido". Os usuários inválidos permanecem no conjunto de chaves, mas suas chaves são removidas de todos os hosts e não recebem permissão de acesso. As razões para um usuário ser inválido são as seguintes:

  • O nome UPN de um usuário não é um membro do grupo do Entra fornecido (se especificado)
  • O grupo do Entra fornecido (se especificado) não existe (caso no qual todos os usuários no conjunto de chaves são inválidos)
  • O conjunto de chaves expirou (caso no qual todos os usuários no conjunto de chaves são inválidos)

Observação

No momento, há um período de transição onde especificar Nomes UPN é opcional. Em uma versão futura, isso se tornará obrigatório e a validação do Microsoft Entra ID será aplicada a todos os usuários. Os usuários são incentivados a adicionar nomes UPN a seus conjuntos de chaves antes do término do período de transição (previsto para julho de 2024) para evitar que os conjuntos de chaves sejam invalidados. Observe que, se os Nomes UPN forem adicionados a um conjunto de chaves, mesmo que não sejam adicionados para todos os usuários, a validação do Microsoft Entra ID será habilitada e isso resultará na invalidação de todo o conjunto de chaves se a ID do Grupo 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 fornece a você outras informações sobre os problemas encontrados durante a atualização do conjunto de chaves em todo o cluster.
  • O statusMessage do usuário informa se o usuário está ativo ou é inválido e fornece uma lista dos computadores que ainda não foram atualizados com o estado ativo/inválido mais recente do usuário. Em cada caso, se forem conhecidas, as causas dos problemas serão incluídas.

Quando o comando é executado, ele é executado em cada computador bare-metal no Cluster que possui um nó Kubernetes ativo. Existe um processo de reconciliação que ocorre periodicamente e repete o comando em qualquer computador bare-metal que não estava disponível no momento do comando original. Além disso, qualquer computador bare-metal que retorna ao cluster por meio de um comando az networkcloud baremetalmachine reimage ou az networkcloud baremetalmachine replace (confira funções BareMetal) envia um sinal fazendo com que os conjuntos de chaves ativos sejam enviados para o computador assim que ele retornar ao cluster. Vários comandos são executados na ordem em que são recebidos.

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

Cuidado

Notas para endereços IP de jump host

  • O processo de criação/atualização do conjunto de chaves adiciona os endereços IP de jump host às tabelas IP de cada computador no Cluster. A atualização de tabelas IP restringe o acesso SSH a ser permitido somente desses jump hosts.
  • É importante especificar os endereços IP voltados para cluster dos jump hosts. Esses endereços IP podem ser diferentes do endereço IP público usado para acessar o jump host.
  • Embora pelo menos um conjunto de chaves seja definido, o acesso SSH é permitido de qualquer jump host em qualquer conjunto de chaves. Por exemplo, se o conjunto de chaves A especificar o jump host A e o conjunto de chaves B especificar o jump host B, os usuários em qualquer conjunto de chaves poderão usar o jump host A ou B.
  • Embora nenhum conjunto de chaves seja definido, o acesso SSH é permitido de qualquer jump host que tenha conectividade de rede com os computadores.

Pré-requisitos

  • Instale a última versão das extensões apropriadas da CLI.
  • O Cluster local deve ter conectividade com o Azure.
  • Obtenha o nome do Grupo de Recursos para o recurso Cluster.
  • O processo aplica conjuntos de chaves a todos os computadores bare-metal em execução.
  • Os usuários adicionados precisam fazer parte de um grupo do Microsoft Entra. Para mais informações, confira Como gerenciar grupos.
  • Para restringir o acesso ao gerenciamento de conjuntos de chaves, crie uma função personalizada. Para mais informações, confira Funções personalizadas do Azure. Neste caso, adicione ou exclua permissões para Microsoft.NetworkCloud/clusters/bareMetalMachineKeySets. As opções são /read, /write e /delete.

Observação

Quando o acesso ao computador bare-metal é criado, modificado ou excluído por meio dos comandos descritos neste artigo, um processo em segundo plano é responsável por fornecer essas alterações aos computadores. Esse processo é pausado durante as atualizações de software do Nexus do Operador. Se uma atualização estiver em andamento, você poderá usar a opção --no-wait com o comando para prevenir que o prompt de comando espero pelo término do processo.

Como criar um conjunto de chaves de computador bare-metal

O comando baremetalmachinekeyset create estabelece o acesso SSH ao computador 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>"

Argumentos de criação

  --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 (válidos para 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 possuem acesso padrão a partir de dois jump hosts.

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 ajuda na criação da estrutura --user-list, confira Sintaxe resumida da CLI do Azure.

Como excluir um conjunto de chaves de computador bare-metal

O comando baremetalmachinekeyset delete revoga o acesso SSH ao computador bare-metal de um grupo de usuários. Todos os membros do grupo perdem o acesso SSH a todos os computador 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>"

Argumentos de exclusão

    --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 exclui o grupo de conjunto de chaves "bareMetalMachineKeysetName" no Cluster "clusterName".

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

Como atualizar um conjunto de chaves de computador bare-metal

O comando baremetalmachinekeyset update permite que os usuários façam modificações em um grupo de conjunto de chaves já 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 modifica 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"

Como listar os conjuntos de chaves de computador bare-metal

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

A sintaxe do comando é:

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

Argumentos de listagem

  --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 de computador bare-metal

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

A sintaxe do comando é:

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

Argumentos de visualizaçã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.
  --resource-group -g                         [Required] : Name of cluster resource group. You can
                                                           configure the default group using `az
                                                           configure --defaults group=<name>`.