Condividi tramite


Gestire l'accesso di emergenza a un computer bare metal usando az networkcloud cluster baremetalmachinekeyset

Attenzione

Si noti che questo processo viene usato in situazioni di emergenza quando tutte le altre opzioni di risoluzione dei problemi che usano Azure sono state esaurite. Qualsiasi azione di scrittura o modifica eseguita nei nodi BMM richiederà agli utenti di "reimage" per ripristinare il supporto Microsoft nei nodi BMM interessati. Si noti che l'accesso SSH a queste macchine bare metal è limitato agli utenti gestiti tramite questo metodo dall'elenco jump host specificato.

In rare situazioni l'utente deve analizzare e risolvere i problemi relativi a un computer bare metal e tutti gli altri modi in cui Azure si esaurisce. Azure Operator Nexus offre il comando az networkcloud cluster baremetalmachinekeyset in modo che gli utenti possano gestire l'accesso SSH a questi computer bare metal. Durante la creazione del set di chiavi, gli utenti vengono convalidati in base all'ID Microsoft Entra per ottenere un'autorizzazione appropriata facendo riferimento al nome dell'entità utente fornito per un utente rispetto all'ID del gruppo Di Entra --azure-group-id <Entra Group ID> fornito.

Gli utenti di un set di chiavi vengono convalidati ogni quattro ore e anche quando vengono apportate modifiche a un set di chiavi. Lo stato di ogni utente viene quindi impostato su "Attivo" o "Non valido". Gli utenti non validi rimangono nel set di chiavi, ma le chiavi vengono rimosse da tutti gli host e non hanno l'accesso. I motivi per cui un utente non è valido sono i seguenti:

  • Il nome dell'entità utente dell'utente non è stato specificato
  • Il nome dell'entità utente dell'utente non è membro del gruppo Entra specificato
  • Il gruppo Entra specificato non esiste (nel qual caso tutti gli utenti nel keyset non sono validi)
  • Il set di chiavi è scaduto (nel qual caso tutti gli utenti nel set di chiavi non sono validi)

Nota

Il nome dell'entità utente è ora necessario per i set di chiavi perché la convalida dell'ID Entra di Microsoft viene applicata per tutti gli utenti. I set di chiavi correnti che non specificano nomi di entità utente per tutti gli utenti continueranno a funzionare fino alla data di scadenza. Se un keyset senza nomi di entità utente scade, il keyset dovrà essere aggiornato con i nomi dell'entità utente, per tutti gli utenti, affinché diventi nuovamente valido. I set di chiavi che non sono stati aggiornati con i nomi delle entità utente per tutti gli utenti precedenti a dicembre 2024 sono a rischio di essere Invalid. Si noti che se un utente non riesce a specificare un nome dell'entità utente, l'intero keyset viene invalidato.

Il set di chiavi e ogni singolo utente hanno anche messaggi di stato dettagliati che comunicano altre informazioni:

  • Il parametro detailedStatusMessage del set di chiavi indica se il set di chiavi è scaduto e altre informazioni sui problemi riscontrati durante l'aggiornamento del set di chiavi nel cluster.
  • Il messaggio di stato dell'utente indica se l'utente è attivo o non valido e un elenco di computer non ancora aggiornati allo stato attivo/non valido più recente dell'utente. In ogni caso, le cause dei problemi vengono incluse se note.

Quando il comando viene eseguito, l'esecuzione avviene in ogni computer bare metal nel cluster con un nodo Kubernetes attivo. Esiste un processo di riconciliazione che viene eseguito periodicamente che ritenta il comando su qualsiasi computer bare metal non disponibile al momento del comando originale. Inoltre, qualsiasi computer bare metal che torna al cluster tramite un comando az networkcloud baremetalmachine reimage o az networkcloud baremetalmachine replace (vedere funzioni BareMetal) invia un segnale che causa l'invio di set di chiavi attivi al computer non appena torna al cluster. Più comandi vengono eseguiti nell'ordine ricevuto.

Non esiste alcun limite al numero di utenti in un gruppo.

Attenzione

Note per gli indirizzi IP del jump host

  • Il processo di creazione/aggiornamento del set di chiavi aggiunge gli indirizzi IP dell'host di collegamento alle tabelle IP per ogni computer nel cluster. L'aggiornamento delle tabelle IP limita l'accesso SSH per essere consentito solo da tali jump host.
  • È importante specificare gli indirizzi IP con connessione cluster per i jump host. Questi indirizzi IP potrebbero essere diversi dall'indirizzo IP pubblico usato per accedere al jump host.
  • Anche se è definito almeno un set di chiavi, l'accesso SSH è consentito da qualsiasi jump host in qualsiasi set di chiavi. Ad esempio, se il set di chiavi A specifica il jump host A e il set di chiavi B specifica il jump host B, gli utenti in entrambi i set di chiavi possono usare i jump host A o B.
  • Anche se non sono definiti set di chiavi, l'accesso SSH è consentito da qualsiasi jump host con connettività di rete ai computer.

Prerequisiti

  • Installare la versione più recente delle estensioni dell'interfaccia della riga di comando appropriate.
  • Il cluster locale deve avere connettività ad Azure.
  • Ottenere il nome del gruppo di risorse per la risorsa Cluster.
  • Il processo applica i set di chiavi a tutti i computer bare metal in esecuzione.
  • Gli utenti aggiunti devono far parte di un gruppo Microsoft Entra. Per altre informazioni, vedere Come gestire i gruppi.
  • Per limitare l'accesso per la gestione dei set di chiavi, creare un ruolo personalizzato. Per altre informazioni, vedere Ruoli personalizzati in Azure. In questa istanza aggiungere o escludere autorizzazioni per Microsoft.NetworkCloud/clusters/bareMetalMachineKeySets. Le opzioni sono /read, /write e /delete.

Nota

Quando viene creato, modificato o eliminato l'accesso al computer bare metal tramite i comandi descritti in questo articolo, un processo in background recapita tali modifiche ai computer. Questo processo viene sospeso durante gli aggiornamenti software Operator Nexus. Se è noto che un aggiornamento è in corso, è possibile usare l'opzione --no-wait con il comando per impedire al prompt dei comandi di attendere il completamento del processo.

Creazione di un set di chiavi di computer bare metal

Il comando baremetalmachinekeyset create crea l'accesso SSH al computer bare metal in un cluster per un gruppo di utenti.

La sintassi del 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>"

Creare argomenti

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

Argomenti globali dell'interfaccia della riga di comando di Azure (applicabili a tutti i comandi)

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

In questo esempio viene creato un nuovo set di chiavi con due utenti con accesso standard da due jump host.

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"

Per assistenza nella creazione della struttura di --user-list, vedere Interfaccia della riga di comando di Azure.

Eliminazione di un set di chiavi di computer bare metal

Il comando baremetalmachinekeyset delete rimuove l'accesso SSH alla macchina bare metal per un gruppo di utenti. Tutti i membri del gruppo non hanno più accesso SSH a nessuno dei computer bare metal nel cluster.

La sintassi del comando è:

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

Elimina argomenti

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

In questo esempio viene rimosso il gruppo di set di chiavi "bareMetalMachineKeysetName" nel cluster "clusterName".

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

Aggiornamento di un set di chiavi di computer bare metal

Il comando baremetalmachinekeyset update consente agli utenti di apportare modifiche a un gruppo di set di chiavi esistente.

La sintassi del 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>"

Aggiornare gli argomenti

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

In questo esempio vengono aggiunti due nuovi utenti al gruppo "baremetalMachineKeySetName" e viene modificata l'ora di scadenza per il gruppo.

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"

Elencare set di chiavi della macchina bare metal

Il comando baremetalmachinekeyset list consente agli utenti di visualizzare i gruppi di set di chiavi esistenti in un cluster.

La sintassi del comando è:

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

Argomenti elenco

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

Mostra dettagli set di chiavi computer bare metal

Il comando baremetalmachinekeyset show consente agli utenti di visualizzare i dettagli di un gruppo di set di chiavi esistente in un cluster.

La sintassi del comando è:

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

Mostra argomenti

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