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