Compartilhar via


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

Cuidado

Observe que esse processo é usado em situações de emergência, quando todas as outras opções de solução de problemas por meio do Azure foram esgotadas. O acesso SSH a esses computadores bare-metal é restrito aos usuários gerenciados por este método na lista jump host especificada.

Existem raras situações em que um usuário precisa investigar e resolver problemas com um computador bare metal e todas as outras alternativas por meio do Azure foram esgotadas. O Nexus do Operador fornece o comando az networkcloud cluster bmckeyset para que os usuários possam gerenciar o acesso SSH ao controlador do gerenciamento da placa-base (BMC) nesses 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 por meio de uma referência cruzada entre o Nome UPN fornecido por um usuário e o --azure-group-id <Entra Group ID> da ID do Grupo do Azure.

Os usuários em um conjunto de chaves são validados a cada quatro horas e também quando qualquer alteração é feita 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 actionreimage ou az networkcloud baremetalmachine actionreplace (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.

Os BMCs dão suporte a um número máximo de 12 usuários. Os usuários são definidos por cluster e aplicados a cada computador bare metal. Tentativas de adicionar mais de 12 usuários resultarão em erro. Exclua um usuário antes de adicionar outro quando já existirem 12.

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

Observação

Quando o acesso ao BMC é criado, modificado ou excluído por meio dos comandos descritos nesse artigo, um processo em segundo plano fornece essas alterações para os 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 do BMC

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

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

Como excluir um conjunto de chaves do BMC

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

Argumentos de exclusão

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

Esse exemplo exclui o grupo de conjunto de chaves "bmcKeysetName" no Cluster "clusterName".

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

Como atualizar um conjunto de chaves do BMC

O comando bmckeyset 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 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.

Esse exemplo adiciona dois novos usuários ao grupo "bmcKeySetName" e muda o tempo de validade 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"

Como listar conjuntos de chaves de BMC

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

A sintaxe do comando é:

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

Argumentos de listagem

  --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 do BMC

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

Argumentos de visualização

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