Partager via


Gérer l’accès d’urgence à une machine nue à l’aide de az networkcloud cluster baremetalmachinekeyset

Attention

Notez que ce processus est utilisé dans les situations d’urgence lorsque toutes les autres options de résolution des problèmes à l’aide d’Azure ont été épuisées. Toutes les actions d’écriture ou de modification exécutées sur le ou les nœuds BMM nécessitent que les utilisateurs « réimagent » afin de restaurer la prise en charge de Microsoft sur le ou les nœuds BMM affectés. Veuillez noter que l’accès SSH à ces machines nues est limité aux utilisateurs gérés via cette méthode à partir de la liste d’hôtes de saut spécifiée.

Il existe de rares situations où un utilisateur doit examiner et résoudre les problèmes liés à une machine nue et que tous les autres moyens via Azure sont épuisés. Azure Operator Nexus fournit la commande az networkcloud cluster baremetalmachinekeyset afin que les utilisateurs puissent gérer l’accès SSH à ces machines nues. Lors de la création du jeu de clés, les utilisateurs sont validés par rapport à Microsoft Entra ID pour une autorisation appropriée en vérifiant le nom d’utilisateur principal fourni pour un utilisateur par rapport à l’ID de groupe Microsoft Entra --azure-group-id <Entra Group ID> fourni.

Les utilisateurs d’un jeu de clés sont validés toutes les quatre heures, ainsi que lorsque des modifications sont apportées à n’importe lequel des jeux de clés. L’état de chaque utilisateur est alors défini sur « Actif » ou « Non valide ». Les utilisateurs non valides restent dans le jeu de clés, mais leurs clés sont supprimées de tous les hôtes et l’accès ne leur est pas autorisé. Les raisons pour lesquelles un utilisateur est non valide sont les suivantes :

  • Le nom d’utilisateur principal de l’utilisateur n’est pas membre du groupe Entra donné (si spécifié)
  • Le groupe Entra donné (si spécifié) n’existe pas (auquel cas tous les utilisateurs du jeu de clés sont non valides)
  • Le jeu de clés a expiré (auquel cas tous les utilisateurs du jeu de clés sont non valides)

Remarque

Il existe actuellement une période de transition où la spécification des noms d’utilisateur principal est facultative. Dans une prochaine version, cela deviendra obligatoire et la validation par Microsoft Entra ID sera appliquée pour tous les utilisateurs. Les utilisateurs sont encouragés à ajouter des noms d’utilisateur principal à leurs jeux de clés avant la fin de la période de transition (prévue pour juillet 2024) afin d’éviter que les jeux de clés soient déclarés non valides. Notez que si des noms d’utilisateur principal sont ajoutés à un jeu de clés, la validation par Microsoft Entra ID est activée même s’ils ne sont pas ajoutés pour tous les utilisateurs. Dans le même ordre d’idées, tout le jeu de clés sera déclaré non valide si l’ID de groupe spécifié n’est pas valide.

Le jeu de clés et chaque utilisateur individuel ont également des messages d’état détaillés qui communiquent d’autres informations :

  • Le fichier detailedStatusMessage du jeu de clés vous indique si le jeu de clés a expiré et d’autres informations sur les problèmes rencontrés lors de la mise à jour du jeu de clés sur le cluster.
  • Le statusMessage de l’utilisateur vous indique si l’utilisateur est actif ou non valide, et une liste de machines qui ne sont pas encore mises à jour vers l’état actif/non valide le plus récent de l’utilisateur. Dans chaque cas, les causes de problèmes sont incluses si elles sont connues.

Lorsque la commande s’exécute, elle s’exécute sur chaque machine nue du cluster avec un nœud Kubernetes actif. Un processus de rapprochement s’exécute régulièrement et retente la commande sur n’importe quelle machine nue indisponible au moment du lancement de la commande d’origine. En outre, toute machine nue qui retourne au cluster par le biais d’une commande az networkcloud baremetalmachine reimage ou az networkcloud baremetalmachine replace (voir Fonctions Matériel nu) envoie un signal provoquant l’envoi de tous les jeux de clés actifs à la machine dès qu’elle revient au cluster. Plusieurs commandes s’exécutent dans l’ordre reçu.

Le nombre d’utilisateurs d’un groupe n’est aucunement limité.

Attention

Remarques relatives aux adresses IP de l’hôte de saut

  • Le processus de création/mise à jour du jeu de clés ajoute les adresses IP de l’hôte de saut aux tables IP de chaque machine du cluster. La mise à jour des tables IP restreint l’accès SSH pour qu’il soit autorisé uniquement depuis ces hôtes de saut.
  • Il est important de spécifier les adresses IP du cluster pour les hôtes de saut. Ces adresses IP peuvent être différentes de l’adresse IP publique utilisée pour accéder à l’hôte de saut.
  • Bien qu’au moins un jeu de clés soit défini, l’accès SSH est autorisé depuis tout hôte de saut dans n’importe quel jeu de clés. Par exemple, si le jeu de clés A spécifie l’hôte de saut A et le jeu de clés B spécifie l’hôte de saut B, les utilisateurs de l’un ou l’autre jeu de clés peuvent utiliser l’hôte de saut A ou B.
  • Bien qu’aucun jeu de clés ne soit défini, l’accès SSH est autorisé depuis tout hôte de saut disposant d’une connectivité réseau aux machines.

Prérequis

  • Installez la dernière version des extensions Azure CLI appropriées.
  • Le cluster local doit disposer d’une connectivité à Azure.
  • Obtenez le nom du groupe de ressources pour la ressource Cluster.
  • Le processus applique des jeux de clés à toutes les machines nues en cours d’exécution.
  • Les utilisateurs ajoutés doivent faire partie d’un groupe Microsoft Entra. Pour plus d’informations, consultez Comment gérer des groupes.
  • Pour restreindre l’accès à la gestion des jeux de clés, créez un rôle personnalisé. Pour plus d’informations, consultez Rôles personnalisés Azure. Dans cette instance, ajoutez ou excluez les autorisations pour Microsoft.NetworkCloud/clusters/bareMetalMachineKeySets. Les options sont /read, /write et /delete.

Remarque

Lorsqu’un accès à une machine nue est créé, modifié ou supprimé via les commandes décrites dans cet article, un processus en arrière-plan transmet ces modifications aux machines. Ce processus est suspendu pendant les mises à niveau logicielles d’Operator Nexus. Si vous savez qu’une mise à niveau est en cours, vous pouvez utiliser l’option --no-wait avec la commande pour empêcher l’invite de commandes d’attendre la fin du processus.

Création d’un jeu de clés de machine nue

La commande baremetalmachinekeyset create crée un accès SSH à la machine nue dans un cluster pour un groupe d’utilisateurs.

Syntaxe de la commande :

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

Créer des arguments

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

Arguments globaux de l’interface de ligne de commande Azure (applicables à toutes les commandes)

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

Cet exemple crée un nouveau jeu de clés avec deux utilisateurs disposant d’un accès standard à partir de deux hôtes de saut.

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"

Pour obtenir de l’aide concernant la création de la --user-list structure, consultez Abrégé Interface de ligne de commande Azure.

Suppression d’un jeu de clés de machine nue

La commande baremetalmachinekeyset delete supprime l’accès SSH à la machine nue pour un groupe d’utilisateurs. Plus aucun membre du groupe ne dispose encore d’un accès SSH à l’une des machines nues du cluster.

Syntaxe de la commande :

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

Supprimer des arguments

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

Cet exemple supprime le groupe de jeux de clés « bareMetalMachineKeysetName » dans le cluster « clusterName ».

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

Mise à jour d’un jeu de clés de machine nue

La commande baremetalmachinekeyset update permet aux utilisateurs d’apporter des modifications à un groupe de jeux de clés existant.

Syntaxe de la commande :

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

Mettre à jour les arguments

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

Cet exemple montre comment ajouter deux nouveaux utilisateurs au groupe « baremetalMachineKeySetName » et modifier l’heure d’expiration du groupe.

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"

Liste des jeux de clés de machine nue

La commande baremetalmachinekeyset list permet aux utilisateurs de consulter les groupes de jeux de clés existants dans un cluster.

Syntaxe de la commande :

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

Liste des arguments

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

Afficher les détails du jeu de clés de machine nue

La commande baremetalmachinekeyset show permet aux utilisateurs de consulter les détails d’un groupe de jeux de clés existant dans un cluster.

Syntaxe de la commande :

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

Afficher les arguments

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