Partilhar via


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

Atenção

Observe que esse processo é usado em situações de emergência quando todas as outras opções de solução de problemas via Azure estão esgotadas. O acesso SSH a essas máquinas bare metal é restrito a usuários gerenciados por meio desse 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 de usar o Azure estão esgotadas. O Operator Nexus fornece o comando para que os usuários possam gerenciar o az networkcloud cluster bmckeyset acesso SSH ao controlador de gerenciamento da placa base (BMC) nessas 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 Azure 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 actionreimage comando ou az networkcloud baremetalmachine actionreplace (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.

Os BMCs suportam um número máximo de 12 usuários. Os usuários são definidos por Cluster e aplicados a cada máquina bare metal. Tentativas de adicionar mais de 12 usuários resultam em um erro. Exclua um usuário antes de adicionar outro quando já existir 12.

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/bmcKeySets. As opções são /read, /writee /delete.

Nota

Quando o acesso da BMC é 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 BMC

O bmckeyset 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 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> \
  --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>

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

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

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

Excluindo um conjunto de chaves BMC

O bmckeyset delete comando remove o acesso SSH ao BMC para um grupo de usuários. Todos os membros do grupo perdem o acesso SSH a qualquer um dos BMCs no Cluster.

A sintaxe do comando é:

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

Excluir argumentos

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

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

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

Atualizando um conjunto de chaves BMC

O bmckeyset 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 bmckeyset update \
  --name <BMC Keyset Name> \
  --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>

Argumentos de atualização

  --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 maximum expiration date is a
                                                           year from creation date. Format is
                                                           "YYYY-MM-DDTHH:MM:SS.000Z".
  --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.

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

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"

Listando conjuntos de chaves BMC

O bmckeyset 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 bmckeyset list \
  --cluster-name <Cluster Name> \
  --resource-group <Resource Group Name>

Listar argumentos

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

Mostrar detalhes do conjunto de chaves BMC

O bmckeyset 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 bmckeyset show \
  --cluster-name <Cluster Name> \
  --resource-group <Resource Group Name>

Mostrar argumentos

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