Share via


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

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 a través de Azure. 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 de usar Azure se han agotado. Operator Nexus proporciona el az networkcloud cluster bmckeyset comando para que los usuarios puedan administrar el acceso SSH al controlador de administración de placa base (BMC) en estas máquinas sin sistema operativo. En la creación del conjunto de claves, los usuarios se validan con el identificador de Entra de Microsoft para obtener una autorización adecuada haciendo referencia cruzada al nombre principal de usuario proporcionado para un usuario con el identificador --azure-group-id <Entra Group ID>de grupo de Azure proporcionado.

Si el nombre principal de usuario de un usuario no es miembro del grupo proporcionado, el estado del usuario se establece en "No válido" y su mensaje de estado dirá "No válido porque userPrincipal no es miembro del grupo de AAD". Si el identificador de grupo de Azure no es válido, cada usuario del conjunto de claves tiene su estado establecido en "No válido" y su mensaje de estado dirá "El grupo de AAD no existe". Los usuarios no válidos permanecen en el conjunto de claves, pero su clave no se habilitará para el acceso SSH.

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 del identificador de Microsoft Entra 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 del identificador de Entra de Microsoft y esto hará que se invalide todo el conjunto de claves si el identificador de grupo especificado no es válido.

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 az networkcloud baremetalmachine actionreimage comando o az networkcloud baremetalmachine actionreplace (vea Funciones 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.

Los BMC admiten un número máximo de 12 usuarios. Los usuarios se definen por clúster y se aplican a cada máquina sin sistema operativo. Los intentos de agregar más de 12 usuarios producen un error. Elimine un usuario antes de agregar otro cuando ya exista 12.

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 Cluster recurso.
  • 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 Administración de 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/bmcKeySets. Las opciones son /read, /write, y /delete.

Nota:

Cuando se crea, modifica o elimina el acceso de BMC 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 una actualización está en curso, puede usar la --no-wait opción 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 BMC

El bmckeyset create comando 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 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> \
  --jump-hosts-allowed <List of jump server IP addresses> \
  --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>

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.
  --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 limit is up to 1 year from creation.
                                                           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 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 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 obtener ayuda para crear la estructura, consulte Shorthand de la --user-list CLI de Azure.

Eliminación de un conjunto de claves BMC

El bmckeyset delete comando quita el acceso SSH al BMC para un grupo de usuarios. Todos los miembros del grupo pierden el acceso SSH a cualquiera de los BMC del clúster.

La sintaxis del comando es la siguiente:

az networkcloud cluster bmckeyset delete \
  --name <BMC Keyset Name> \
  --cluster-name <Cluster Name> \
  --resource-group <Resource Group Name> \

Eliminar argumentos

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

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

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

Actualización de un conjunto de claves BMC

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

La sintaxis del comando es la siguiente:

az networkcloud cluster bmckeyset update \
  --name <BMC 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 <Resource Group Name>

Actualizar argumentos

  --bmc-key-set-name --name -n                [Required] : The name of the BMC 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 BMCs. 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:
                                                           "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.

En este ejemplo se agregan dos nuevos usuarios al grupo "bmcKeySetName" y se cambia la hora de expiración del 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"

Enumeración de conjuntos de claves de BMC

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

Enumerar argumentos

  --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 detalles del conjunto de claves de BMC

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

Mostrar argumentos

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