共用方式為


使用 az networkcloud cluster bmckeyset 來管理裸機電腦的緊急存取

警告

請注意,當透過 Azure 的其他所有疑難解答選項耗盡時,此程式會在緊急情況下使用。 這些裸機電腦的 SSH 存取權,僅限於從指定跳板機清單透過此方法管理的使用者。

使用者需要調查及解決裸機機器的問題,以及使用 Azure 的其他所有方式都已耗盡的情況。 運算子連接點提供 az networkcloud cluster bmckeyset 命令,讓使用者可以管理這些裸機電腦上基礎板管理控制器 (BMC) 的 SSH 存取。 在索引鍵集建立時,會針對 Microsoft Entra ID 驗證使用者以取得適當的授權,方法是交叉參考針對提供的 Azure 群組識別碼提供給使用者的使用者主體名稱 --azure-group-id <Entra Group ID>

密鑰集中的使用者會每隔四小時驗證一次,也會在對任何索引鍵集進行任何變更時進行驗證。 然後,每個使用者的狀態會設定為 「作用中」或「無效」。無效的使用者會保留在金鑰集中,但其密鑰會從所有主機中移除,且不允許存取。 使用者無效的原因如下:

  • 使用者的使用者主體名稱不是指定 Entra 群組的成員(如果指定)
  • 指定的 Entra 群組 (如果指定) 不存在 (在此情況下,索引鍵集中的所有使用者都無效)
  • 金鑰集已過期(在此情況下,金鑰集中的所有使用者都無效)

注意

目前正處於過渡期,可選擇指定使用者主體名稱與否。 未來版本會強制要求指定,而且所有使用者都必須接受 Microsoft Entra ID 驗證。 使用者不妨在過渡期結束 (計劃為 2024 年 7 月) 之前,將使用者主體名稱新增至其索引鍵集,以免索引鍵集失效。 請注意,如果將任何使用者主體名稱新增至索引鍵集,即使沒有為所有使用者新增名稱,也會啟用 Microsoft Entra ID 驗證,如果指定的群組識別碼無效,則會導致整個索引鍵集失效。

索引鍵集和每位個別使用者也有通訊其他資訊的詳細狀態消息:

  • 索引鍵集的詳細StatusMessage 會告訴您密鑰集是否已過期,以及更新整個叢集密鑰集時所發生問題的其他資訊。
  • 使用者的 statusMessage 會告訴您使用者是否作用中或無效,以及尚未更新為使用者最新作用中/無效狀態的計算機清單。 在每個案例中,如果已知,就會包含問題的原因。

命令執行時,會在叢集中具有作用中 Kube 節點的每部裸機電腦執行。 某協調程序會定期執行,如果原始命令無法使用,則會在任何裸機電腦重試命令。 此外,透過 az networkcloud baremetalmachine actionreimageaz networkcloud baremetalmachine actionreplace 命令返回叢集的任何裸機電腦 (請參閱 BareMetal 函式) 會傳送訊號,因此裸機電腦一返回叢集,就將任何作用中索引鍵集傳送至電腦。 多個命令會依收到的順序執行。

BMC 支援最多 12 個使用者。 使用者會根據每個叢集定義,並套用至每部裸機電腦。 嘗試新增超過 12 個使用者會導致錯誤。 當已有 12 個使用者存在時,請先刪除使用者,再新增其他使用者。

必要條件

  • 安裝最新版本的適當 CLI 延伸模組
  • 內部部署叢集必須能夠連線到 Azure。
  • 取得 Cluster 資源的資源群組名稱。
  • 此程序會將索引鍵集套用至所有執行中裸機電腦。
  • 新增的使用者必須屬於 Microsoft Entra 群組。 如需詳細資訊,請參閱如何管理群組
  • 若要限制管理索引鍵集的存取權,請建立自訂角色。 如需詳細資訊,請參閱 Azure 自訂角色。 在此執行個體中,新增或排除 Microsoft.NetworkCloud/clusters/bmcKeySets 的權限。 選項有 /read/write/delete

注意

透過本文所述的命令建立、修改或刪除 BMC 存取時,背景程式會將這些變更傳遞給機器。 此程序會在運算子連接點軟體升級期間暫停。 如果已知正在進行升級,您可以搭配命令使用 --no-wait 選項,以防止命令提示字元等待程序完成。

建立 BMC 索引鍵集

bmckeyset create 命令會為一組使用者建立叢集中裸機電腦的 SSH 存取。

命令語法為:

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

建立引數

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

全域 Azure CLI 引數 (適用於所有命令)

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

此範例會建立具有兩個使用者的新索引鍵集,讓使用者具有兩個跳板機的標準存取權。

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"

如需建立 --user-list 結構的協助,請參閱 Azure CLI 速記

刪除 BMC 索引鍵集

bmckeyset delete 命令會為一組使用者移除 BMC 的 SSH 存取。 群組的所有成員都會失去叢集中任何 BMC 的 SSH 存取。

命令語法為:

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

刪除引數

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

此範例會移除 "clusterName" 叢集中的 "bmcKeysetName" 索引鍵集群組。

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

更新 BMC 索引鍵集

bmckeyset update 命令可讓使用者變更現有的索引鍵集群組。

命令語法為:

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

更新引數

  --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 maximum expiration date is a
                                                           year from creation date. Format is
                                                           "YYYY-MM-DDTHH:MM:SS.000Z".
  --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.

此範例會將兩個新的使用者新增至 "bmcKeySetName" 群組,並且變更群組的到期時間。

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"

列出 BMC 索引鍵集

bmckeyset list 命令可讓使用者查看叢集中現有的索引鍵集群組。

命令語法為:

az networkcloud cluster bmckeyset list \
  --cluster-name <Cluster Name> \
  --resource-group <Resource Group Name>

列出引數

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

顯示 BMC 索引鍵集詳細資料

bmckeyset show 命令可讓使用者查看叢集中現有索引鍵集群組的詳細資料。

命令語法為:

az networkcloud cluster bmckeyset show \
  --cluster-name <Cluster Name> \
  --resource-group <Resource Group Name>

顯示引數

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