Správa nouzového přístupu k holým počítačům pomocí nástroje az networkcloud cluster baremetalmachinekeyset

Upozornění

Upozorňujeme, že tento proces se používá v nouzových situacích, když byly vyčerpány všechny ostatní možnosti řešení potíží pomocí Azure. Přístup SSH k těmto holých počítačům je omezený na uživatele spravované prostřednictvím této metody ze zadaného seznamu hostitelů přeskakování.

Existují vzácné situace, kdy uživatel potřebuje prozkoumat a vyřešit problémy s holým počítačem a všechny další způsoby, které byly prostřednictvím Azure vyčerpány. Azure Operator Nexus poskytuje az networkcloud cluster baremetalmachinekeyset příkaz, aby uživatelé mohli spravovat přístup SSH k těmto holým počítačům. Při vytváření sady klíčů se uživatelé ověřují proti MICROSOFT Entra ID pro správnou autorizaci tak, že křížově odkazují na hlavní název uživatele zadaný pro zadané ID Microsoft Entra --azure-group-id <Entra Group ID>.

Pokud hlavní název uživatele uživatele není členem zadané skupiny, stav uživatele je nastavený na Neplatný a jeho stavová zpráva bude o tom, že je neplatný, protože userPrincipal není členem skupiny AAD. Pokud je ID skupiny Azure neplatné, každý uživatel v sadě klíčů bude mít stav nastavený na Neplatný a stavová zpráva řekne, že skupina AAD neexistuje. Neplatní uživatelé zůstanou v sadě klíčů, ale jejich klíč nebude povolený pro přístup SSH.

Poznámka:

V současné době existuje přechodné období, ve kterém je zadávání hlavních názvů uživatelů volitelné. V budoucí verzi se stane povinným a ověření ID Microsoft Entra se vynutí pro všechny uživatele. Uživatelům se doporučuje přidat hlavní názvy uživatelů do sad klíčů před uplynutím přechodného období (plánovaného na červenec 2024), aby se zabránilo zneplatnění sad klíčů. Mějte na paměti, že pokud se do sady klíčů přidají nějaké hlavní názvy uživatelů, i když nejsou přidány pro všechny uživatele, bude povoleno ověření ID Microsoft Entra a výsledkem bude zneplatnění celé sady klíčů, pokud zadané ID skupiny není platné.

Když se příkaz spustí, spustí se na každém holých počítačích v clusteru s aktivním uzlem Kubernetes. Probíhá proces odsouhlasení, který pravidelně opakuje příkaz na jakémkoli holém počítači, který nebyl v době původního příkazu dostupný. Jakýkoli holý počítač, který se vrátí do clusteru prostřednictvím az networkcloud baremetalmachine reimage příkazu nebo az networkcloud baremetalmachine replace příkazu (viz Funkce BareMetal), odešle signál, který způsobí odeslání všech aktivních sad klíčů do počítače, jakmile se vrátí do clusteru. V přijatém pořadí se spustí více příkazů.

Počet uživatelů ve skupině není nijak omezený.

Upozornění

Poznámky k IP adresám hostitele pro přeskakování

  • Proces vytvoření/aktualizace sady klíčů přidá IP adresy hostitele jumpu do tabulek IP adres pro každý počítač v clusteru. Tím se omezí přístup SSH jenom z těchto hostitelů přeskakování.
  • Je důležité zadat IP adresy clusteru pro hostitele přeskakování. Tyto IP adresy se můžou lišit od veřejné IP adresy používané pro přístup k hostiteli pro přeskakování.
  • Po přidání mají uživatelé přístup k holým počítačům z jakékoli zadané IP adresy hostitele jump, včetně IP adresy hostitele jump definované v jiné skupině holých klíčů počítače.
  • Stávající přístup SSH zůstane při přidávání první holé sady klíčů počítače. Příkaz keyset ale omezuje přístup SSH existujícího uživatele k zadaným IP adresám hostitele přeskakování v příkazech sady klíčů.

Požadavky

  • Nainstalujte nejnovější verzi příslušných rozšíření rozhraní příkazového řádku.
  • Místní cluster musí mít připojení k Azure.
  • Získejte název skupiny prostředků pro Cluster prostředek.
  • Tento proces použije sady klíčů pro všechny spuštěné holé počítače.
  • Přidaní uživatelé musí být součástí skupiny Microsoft Entra. Další informace naleznete v tématu Správa skupin.
  • Pokud chcete omezit přístup ke správě sad klíčů, vytvořte vlastní roli. Další informace najdete v tématu Vlastní role Azure. V tomto případě přidejte nebo vylučte oprávnění pro Microsoft.NetworkCloud/clusters/bareMetalMachineKeySets. Možnosti jsou /read, /writea /delete.

Poznámka:

Při vytvoření, úpravě nebo odstranění holého počítače pomocí příkazů popsaných v tomto článku proces na pozadí tyto změny doručí do počítačů. Tento proces se pozastaví během upgradů softwaru Operator Nexus. Pokud se o probíhajícím upgradu dozvíte, můžete pomocí --no-wait možnosti s příkazem zabránit tomu, aby příkazový řádek čekal na dokončení procesu.

Vytvoření holé sady klíčů počítače

Příkaz baremetalmachinekeyset create vytvoří přístup SSH k holým počítačům v clusteru pro skupinu uživatelů.

Syntaxe příkazu je:

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

Vytvoření argumentů

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

Globální argumenty Azure CLI (platné pro všechny příkazy)

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

Tento příklad vytvoří novou sadu klíčů se dvěma uživateli, kteří mají standardní přístup ze dvou hostitelů jumpů.

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"

Pomoc s vytvářením struktury najdete v --user-list tématu Zkratka Azure CLI.

Odstranění holé sady klíčů počítače

Příkaz baremetalmachinekeyset delete odebere přístup SSH k holým počítačům pro skupinu uživatelů. Všichni členové skupiny už nemají přístup SSH k žádnému z holých počítačů v clusteru.

Syntaxe příkazu je:

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

Odstranit argumenty

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

Tento příklad odebere skupinu "bareMetalMachineKeysetName" v clusteru "clusterName".

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

Aktualizace holé sady klíčů počítače

Příkaz baremetalmachinekeyset update umožňuje uživatelům provádět změny existující skupiny sad klíčů.

Syntaxe příkazu je:

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

Aktualizovat argumenty

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

Tento příklad přidá dva nové uživatele do skupiny "baremetalMachineKeySetName" a změní dobu vypršení platnosti skupiny.

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"

Výpis holých strojových klíčů

Příkaz baremetalmachinekeyset list umožňuje uživatelům zobrazit existující skupiny sad klíčů v clusteru.

Syntaxe příkazu je:

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

Argumenty seznamu

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

Zobrazit podrobnosti o holé sadě klíčů počítače

Příkaz baremetalmachinekeyset show umožňuje uživatelům zobrazit podrobnosti o existující skupině sad klíčů v clusteru.

Syntaxe příkazu je:

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

Zobrazit argumenty

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