Compartir a través de


Administrar el acceso de emergencia a una máquina sin sistema operativo mediante el az networkcloud cluster baremetalmachinekeyset

Precaución

Tenga en cuenta que este proceso se usa en situaciones de emergencia cuando se han agotado todas las demás opciones de solución de problemas mediante Azure. Las acciones de escritura o edición ejecutadas en los nodos BMM requerirán que los usuarios "restablezcan la imagen inicial" para restaurar el soporte técnico de Microsoft en los nodos BMM afectados. Tenga en cuenta que el acceso SSH a estas máquinas sin sistema operativo está restringido a los usuarios administrados a través de este método desde la lista de hosts de salto especificada.

Hay situaciones poco frecuentes en las que un usuario necesita investigar y resolver problemas con una máquina sin sistema operativo y todas las demás formas mediante Azure se han agotado. Azure Operator Nexus proporciona el comando az networkcloud cluster baremetalmachinekeyset para que los usuarios puedan administrar el acceso SSH a estas máquinas sin sistema operativo. En la creación del conjunto de claves, los usuarios se validan con el identificador de Microsoft Entra para obtener la autorización adecuada haciendo referencia cruzada al nombre principal de usuario proporcionado para un usuario con el identificador de grupo de Microsoft Entra proporcionado --azure-group-id <Entra Group ID>.

Los usuarios de un conjunto de claves se validan cada cuatro horas y también cuando se realizan cambios en cualquier conjunto de claves. El estado de cada usuario se establece en "Activo" o "No válido". Los usuarios no válidos permanecen en el conjunto de claves, pero sus claves se quitan de todos los hosts y no se les permite el acceso. Las razones para que un usuario no sea válido son:

  • El nombre principal del usuario no es miembro del grupo de Entra especificado (si se especifica)
  • El grupo de Entra especificado (si se especifica) no existe (en cuyo caso ninguno de los usuarios del conjunto de claves es válido)
  • El conjunto de claves ha expirado (en cuyo caso ninguno de los usuarios del conjunto de claves es válido)

Nota:

Actualmente hay un período de transición en el que especificar nombres principales de usuario es opcional. En una versión futura, se convertirá en obligatoria y se aplicará la validación de Microsoft Entra ID para todos los usuarios. Se recomienda a los usuarios agregar nombres principales de usuario a sus conjuntos de claves antes de que finalice el período de transición (previsto para julio de 2024) para evitar que se invaliden los conjuntos de claves. Tenga en cuenta que si se agregan nombres principales de usuario a un conjunto de claves, aunque no se agreguen para todos los usuarios, se habilitará la validación de Microsoft Entra ID y esto hará que se invalide todo el conjunto de claves si el identificador de grupo especificado no es válido.

El conjunto de claves y cada usuario individual también tienen mensajes de estado detallados que comunican otra información:

  • El mensaje detailedStatusMessage del conjunto de claves indica si el conjunto de claves ha expirado, así como otra información sobre los problemas detectados al actualizar el conjunto de claves en el clúster.
  • El mensaje statusMessage del usuario indica si el usuario está activo o no es válido, así como una lista de máquinas que aún no se han actualizado al estado activo o no válido del usuario. En cada caso, las causas de problemas se incluyen si se conocen.

Cuando se ejecuta el comando, se ejecuta en cada máquina sin sistema operativo del clúster con un nodo de Kubernetes activo. Hay un proceso de conciliación que se ejecuta periódicamente que reintenta el comando en cualquier máquina sin sistema operativo que no estuviera disponible en el momento del comando original. Además, cualquier máquina sin sistema operativo que vuelva al clúster a través de un comando az networkcloud baremetalmachine reimage o az networkcloud baremetalmachine replace (consulte Funciones de BareMetal) envía una señal que provoca que los conjuntos de claves activos se envíen a la máquina tan pronto como vuelva al clúster. Se ejecutan varios comandos en el orden recibido.

No hay límite para el número de usuarios de un grupo.

Precaución

Notas de las direcciones IP del host de salto

  • El proceso de creación o actualización del conjunto de claves agrega las direcciones IP del host de salto a las tablas IP de cada máquina del clúster. La actualización de tablas IP restringe el acceso SSH para que solo se permita desde esos hosts de salto.
  • Es importante especificar las direcciones IP orientadas al clúster para los hosts de salto. Estas direcciones IP pueden ser diferentes de la dirección IP orientada al público que se usa para acceder al host de salto.
  • Aunque se define al menos un conjunto de claves, se permite el acceso SSH desde cualquier host de salto en cualquier conjunto de claves. Por ejemplo, si el conjunto de claves A especifica el host de salto A y el conjunto de claves B especifica el host de salto B, los usuarios de cualquiera de los conjuntos de claves pueden usar el host de salto A o B.
  • Aunque no se definen conjuntos de claves, se permite el acceso SSH desde cualquier host de salto que tenga conectividad de red a las máquinas.

Requisitos previos

  • Instale la versión más reciente de las extensiones de la CLI adecuadas.
  • El clúster local debe tener conectividad con Azure.
  • Obtenga el nombre del grupo de recursos para el recurso Cluster.
  • El proceso aplica conjuntos de claves a todas las máquinas sin sistema operativo en ejecución.
  • Los usuarios agregados deben formar parte de un grupo de Microsoft Entra. Para obtener más información, consulte Cómo administrar grupos.
  • Para restringir el acceso para administrar conjuntos de claves, cree un rol personalizado. Para más información, consulte Roles personalizados de Azure. En esta instancia, agregue o excluya permisos para Microsoft.NetworkCloud/clusters/bareMetalMachineKeySets. Las opciones son /read, /write, y /delete.

Nota:

Cuando se crea, modifica o elimina el acceso a la máquina sin sistema operativo a través de los comandos descritos en este artículo, un proceso en segundo plano entrega esos cambios a las máquinas. Este proceso se pausa durante las actualizaciones del software Operator Nexus. Si se sabe que hay una actualización en curso, puede usar la opción --no-wait con el comando para evitar que el símbolo del sistema espere a que se complete el proceso.

Creación de un conjunto de claves de máquina sin sistema operativo

El comando baremetalmachinekeyset create crea acceso SSH a la máquina sin sistema operativo en un clúster para un grupo de usuarios.

La sintaxis del comando es la siguiente:

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

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

Argumentos globales de la CLI de Azure (aplicables a todos los 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.

En este ejemplo se crea un nuevo conjunto de claves con dos usuarios que tienen acceso estándar desde dos hosts de salto.

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"

Para obtener ayuda para crear la estructura --user-list, consulte CLI de Azure Shorthand.

Eliminación de un conjunto de claves de máquina sin sistema operativo

El comando baremetalmachinekeyset delete quita el acceso SSH a la máquina sin sistema operativo para un grupo de usuarios. Todos los miembros del grupo ya no tienen acceso SSH a ninguna de las máquinas sin sistema operativo del clúster.

La sintaxis del comando es la siguiente:

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

Eliminar argumentos

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

En este ejemplo se quita el grupo de conjuntos de claves "bareMetalMachineKeysetName" en el clúster "clusterName".

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

Actualización de un conjunto de claves de máquina sin sistema operativo

El comando baremetalmachinekeyset update permite a los usuarios realizar cambios en un grupo de conjuntos de claves existente.

La sintaxis del comando es la siguiente:

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

Actualizar argumentos

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

En este ejemplo se agregan dos nuevos usuarios al grupo "baremetalMachineKeySetName" y se cambia la hora de expiración del grupo.

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"

Enumerar conjuntos de claves de máquina sin sistema operativo

El comando baremetalmachinekeyset list permite a los usuarios ver los grupos de conjuntos de claves existentes en un clúster.

La sintaxis del comando es la siguiente:

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

Enumerar argumentos

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

Mostrar detalles del conjunto de claves de máquina sin sistema operativo

El comando baremetalmachinekeyset show permite a los usuarios ver los detalles de un grupo de conjuntos de claves existente en un clúster.

La sintaxis del comando es la siguiente:

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

Mostrar argumentos

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