共用方式為


連線到您 Azure Stack Edge 裝置上的 Azure Resource Manager

適用於: 是,適用於 Pro GPU SKUAzure Stack Edge Pro - GPU是,適用於 Pro 2 SKUAzure Stack Edge Pro 2是,適用於 Pro R SKUAzure Stack Edge Pro R是,適用於 Mini R SKUAzure Stack Edge Mini R

Azure Resource Manager 提供管理層,可讓您建立、更新和刪除您 Azure 訂用帳戶中的資源。 Azure Stack Edge 裝置支援相同的 Azure Resource Manager API,可在本機訂用帳戶中建立、更新和刪除 VM。 這項支援可讓您使用與雲端一致的方式來管理裝置。

本文說明如何使用 Azure PowerShell,透過 Azure Resource Manager 連線到您 Azure Stack Edge 裝置上的本地 API。

Azure Stack Edge 裝置上的端點

下表摘要說明您裝置上公開的各種端點、支援的通訊協定,以及存取這些端點的連接埠。 在整個文章中,您會發現這些端點的參考。

# 端點 支援的通訊協定 使用的連接埠 用於
1. Azure Resource Manager https 443 連線至 Azure Resource Manager 以供自動化
2. 安全性權杖服務 https 443 透過存取和重新整理權杖進行驗證
3. Blob* https 443 透過 REST 連線至 Blob 儲存體

* 連線到 Blob 記憶體端點不需要連線到 Azure Resource Manager。

連線至 Azure Resource Manager 工作流程

使用 Azure Resource Manager 連線到裝置本地 API 的流程需要下列步驟:

步# 執行此步驟... .. 執行此步驟:
1. 設定您的 Azure Stack Edge 裝置 本機 Web UI
2. 建立並安裝憑證 Windows 用戶端/本機 Web UI
3. 檢閱並設定先決條件 Windows 用戶端
4. 在用戶端設定 Azure PowerShell Windows 用戶端
5. 針對端點名稱解析修改主機檔案 Windows 用戶端或 DNS 伺服器
6. 檢查端點名稱是否已解析 Windows 用戶端
7. 使用 Azure PowerShell Cmdlet 驗證與 Azure Resource Manager 之間的連線 Windows 用戶端

下列各節詳述上方連線至 Azure Resource Manager 的各個步驟。

必要條件

開始之前,請先確認用以透過 Azure Resource Manager 連線至裝置的用戶端使用 TLS 1.2。 如需詳細資訊,請移至在存取 Azure Stack Edge 裝置的 Windows 用戶端上設定 TLS 1.2

步驟 1:設定 Azure Stack Edge 裝置

在您 Azure Stack Edge 裝置的本機 Web UI 上採取下列步驟。

  1. 為您的 Azure Stack Edge 裝置完成網路設定。

    本機 Web UI [網络設定] 頁面

    請記下裝置的 IP 位址, 您稍後會使用此IP。

  2. 在 [裝置] 頁面設定裝置名稱和 DNS 網域。 記下裝置名稱和 DNS 網域,因為您稍後會使用這些網域。

    本機 Web UI [裝置] 頁面

    重要

    裝置名稱和 DNS 網域會用來建立公開的端點。 請使用本機 Web UI [裝置] 頁面的 Azure Resource Manager 和 Blob 端點。

步驟 2:建立並安裝憑證

憑證能保障您的通訊受到信任。 您的 Azure Stack Edge 裝置會自動產生自我簽署的應用程式、Blob 和 Azure Resource Manager 憑證。 或者,您也可以使用自己的已簽署 Blob 和 Azure Resource Manager 憑證。

使用自己的已簽署憑證時,同時也需要與該憑證對應的簽署鏈結。 針對簽署鏈結、Azure Resource Manager 和裝置上的 Blob 憑證,您需要用戶端電腦上的對應憑證,才能驗證和與裝置通訊。

若要連線到 Azure Resource Manager,您必須建立或取得簽署鏈結和端點憑證、在 Windows 用戶端上匯入這些憑證,最後在裝置上上傳這些憑證。

建立憑證

若僅為測試和開發用途,則可使用 Windows PowerShell 在您的本地系統上建立憑證。 為用戶端建立憑證時,請遵循以下指導方針:

  1. 首先,您必須為簽署鏈結建立根憑證。 如需詳細資訊,請參閱建立簽署鏈結憑證相關步驟。

  2. 接著,您可以為 Azure Resource Manager 和 Blob (選擇性) 建立端點憑證。 您可以從本機 Web UI 的 [裝置] 頁面取得這些端點。 請參閱建立端點憑證相關步驟。

  3. 針對所有這些憑證,請確認主體名稱和主體別名符合下列指導方針:

    類型 主體名稱 (SN) 主體別名 (SAN) 主體名稱範例
    Azure Resource Manager management.<Device name>.<Dns Domain> login.<Device name>.<Dns Domain>
    management.<Device name>.<Dns Domain>
    management.mydevice1.microsoftdatabox.com
    Blob 儲存體* *.blob.<Device name>.<Dns Domain> *.blob.< Device name>.<Dns Domain> *.blob.mydevice1.microsoftdatabox.com
    各端點的多 SAN 單一憑證 <Device name>.<dnsdomain> login.<Device name>.<Dns Domain>
    management.<Device name>.<Dns Domain>
    *.blob.<Device name>.<Dns Domain>
    mydevice1.microsoftdatabox.com

* 不需要 Blob 記憶體才能連線到 Azure Resource Manager。 當您在裝置上建立本機記憶體帳戶時,這裡會列出它。

如需憑證的詳細資訊,請移至如何用您的裝置上傳憑證,並透過存取您裝置的用戶端以匯入憑證

用裝置上傳憑證

您在上一個步驟中建立的憑證位於用戶端的 [個人] 存放區中。 這些憑證必須在用戶端匯出為適當格式的檔案,才能上傳至裝置。

  1. 根憑證必須匯出為 DER 格式檔案,並具備 .cer 檔案副檔名。 如需詳細步驟,請參閱將憑證匯出為 .cer 格式檔案

  2. 端點憑證必須連同私密金鑰一起匯出為 .pfx 檔案。 如需詳細步驟,請參閱將憑證連同私密金鑰一起匯出為 .pfx 檔案

  3. 根憑證和端點憑證會接著使用本機 Web UI [憑證] 頁面的 [+ 新增憑證] 選項上傳至裝置。 若要上傳憑證,請遵循上傳憑證中的步驟進行。

在執行 Azure PowerShell 的用戶端上匯入憑證

您叫用 Azure Resource Manager API 的 Windows 用戶端需要與裝置建立信任。 為此,您必須將在上一個步驟中建立的憑證,匯入正確的 Windows 用戶端憑證存放區。

  1. 現在,您使用 DER 格式匯出的根憑證 (具備 .cer 副檔名) 應已匯入用戶端系統上的受信任根憑證授權單位。 如需詳細步驟,請參閱將憑證匯入受信任根憑證授權單位存放區

  2. 您匯出為 .pfx 的端點憑證必須匯出為 .cer 檔案。 之後,此 .cer 會匯入您系統上的個人憑證存放區。 如需詳細步驟,請參閱將憑證匯入個人存放區

步驟 3:在用戶端安裝 PowerShell

您的 Windows 用戶端必須符合下列先決條件:

  1. 執行 Windows PowerShell 5.1。 您必須擁有 Windows PowerShell 5.1。 若要檢查系統上的 PowerShell 版本,請執行下列 Cmdlet:

    $PSVersionTable.PSVersion
    

    比較主要版本,並確定其為5.1或更新版本。

    如果您的版本已過時,請參閱升級現有的 Windows PowerShell

    如果您沒有 PowerShell 5.1,請遵循安裝 Windows PowerShell 指示進行。

    輸出範例如下所示。

    Windows PowerShell
    Copyright (C) Microsoft Corporation. All rights reserved.
    Try the new cross-platform PowerShell https://aka.ms/pscore6
    PS C:\windows\system32> $PSVersionTable.PSVersion
    Major  Minor  Build  Revision
    -----  -----  -----  --------
    5      1      19041  906
    
  2. 您可以存取 PowerShell 資源庫。

    以系統管理員身分執行 PowerShell。 請確認 PowerShellGet 版本比 2.2.3 舊。 此外,請確認 PSGallery 已註冊為存放庫。

    Install-Module PowerShellGet -MinimumVersion 2.2.3
    Import-Module -Name PackageManagement -ErrorAction Stop
    Get-PSRepository -Name "PSGallery"
    

    輸出範例如下所示。

    PS C:\windows\system32> Install-Module PowerShellGet -MinimumVersion 2.2.3
    PS C:\windows\system32> Import-Module -Name PackageManagement -ErrorAction Stop
    PS C:\windows\system32> Get-PSRepository -Name "PSGallery"
    Name                      InstallationPolicy   SourceLocation
    ----                      ------------------   --------------
    PSGallery                 Trusted              https://www.powershellgallery.com/api/v2
    

如果您的存放庫不受信任,或您需要詳細資訊,請參閱驗證 PowerShell 資源庫 輔助功能

步驟 4:在用戶端設定 Azure PowerShell

在與裝置搭配運作的用戶端上安裝 Azure PowerShell 模組。

  1. 以系統管理員身分執行 PowerShell。 您必須能夠存取 PowerShell 資源庫。

  2. 請先確認用戶端上沒有 AzureRMAz 模組的現有版本。 若要檢查,請執行下列命令:

    # Check existing versions of AzureRM modules
    Get-InstalledModule -Name AzureRM -AllVersions
    
    # Check existing versions of Az modules
    Get-InstalledModule -Name Az -AllVersions
    

    如果已有現有版本,請透過 Uninstall-Module Cmdlet 解除安裝。 如需更多資訊,請參閱

  3. 若要從 PowerShell 資源庫安裝必要的 Azure PowerShell 模組,請執行下列命令:

    • 如果您的用戶端使用 PowerShell Core 7.0 版或更新版本:

      # Install the Az.BootStrapper module. Select Yes when prompted to install NuGet.
      
      Install-Module -Name Az.BootStrapper
      
      # Install and import the API Version Profile into the current PowerShell session.
      
      Use-AzProfile -Profile 2020-09-01-hybrid -Force
      
      # Confirm the installation of PowerShell
      Get-Module -Name "Az*" -ListAvailable
      
    • 如果您的用戶端使用 PowerShell 5.1 或更新版本:

      #Install the Az module version 1.10.0
      
      Install-Module -Name Az -RequiredVersion 1.10.0
      
  4. 請確定您在安裝結束時執行的正確 Az 模組版本。

    如果您使用 PowerShell 7 或更新版本,下列範例輸出表示已成功安裝 Az 2.0.1 版(或更新版本)模組。

    
    PS C:\windows\system32> Install-Module -Name Az.BootStrapper
    PS C:\windows\system32> Use-AzProfile -Profile 2020-09-01-hybrid -Force
    Loading Profile 2020-09-01-hybrid
    PS C:\windows\system32> Get-Module -Name "Az*" -ListAvailable
    

    如果您使用PowerShell 5.1或更新版本,下列範例輸出表示已成功安裝 Az 1.10.0 版模組。

    PS C:\WINDOWS\system32> Get-InstalledModule -Name Az -AllVersions
    Version     Name     Repository     Description
    -------     ----     ----------     -----------
    1.10.0      Az       PSGallery      Mic...
    
    PS C:\WINDOWS\system32>
    

步驟 5:針對端點名稱解析修改主機檔案

您現在會將裝置 IP 位址新增至:

  • 用戶端上的主機檔案,或
  • DNS 伺服器組態

重要

建議您修改 DNS 伺服器設定以進行端點名稱解析。

在您用來連線到裝置的 Windows 用戶端上,採取下列步驟:

  1. 以管理員的身分啟動 [記事本],然後開啟位於 \Windows\System32\Drivers\etc 的主機檔案。

    Windows 檔案總管主控檔案

  2. 將下列項目新增至 hosts 檔案,並以您裝置的適當值加以取代:

    <Device IP> login.<appliance name>.<DNS domain>
    <Device IP> management.<appliance name>.<DNS domain>
    <Device IP> <storage name>.blob.<appliance name>.<DNS domain>
    

    重要

    主機檔案的輸入項目應與所提供項目完全相同,以便於後續步驟連線至 Azure Resource Manager。 請確認此處的 DNS 網域輸入全為小寫。 若要取得 <appliance name><DNS domain> 的值,請移至您裝置本機 UI 的 [裝置] 頁面。

    您已在稍早的步驟中儲存本機 Web UI 的裝置 IP。

    login.<appliance name>.<DNS domain> 輸入是 Security Token Service (STS) 的端點。 STS 負責建立、驗證、更新和取消安全性權杖。 安全性令牌服務可用來建立用於裝置與客戶端之間持續通訊的存取令牌和重新整理令牌。

    連線至 Azure Resource Manager 時,Blob 儲存體的端點並非必須。 只有在透過儲存體帳戶將資料傳輸至 Azure 時,才必須使用此端點。

  3. 使用下圖以供參考。 儲存 hosts 檔案。

    在記事本中裝載檔案

步驟 6:驗證用戶端的端點名稱解析

檢查端點名稱是否解析在您用來連線到裝置的用戶端上。

  1. 您可以透過 ping.exe 命令列公用程式,檢查端點名稱是否已解析。 指定IP位址時, ping 命令會傳回您要追蹤之電腦的TCP/IP主機名。

    請將 -a 參數新增至命令列,如以下範例所示。 如果系統可傳回主機名稱,則也會於回覆中傳回這項可能有價值的資訊。

    命令提示字元中的 Ping

步驟 7:設定 Azure Resource Manager 環境

設定 Azure Resource Manager 環境,驗證您的裝置可透過 Azure Resource Manager 與用戶端順利通訊。 請採取下列步驟進行驗證:

  1. 使用 Add-AzEnvironment Cmdlet 進一步確保透過 Azure Resource Manager 進行的通訊正常運作,且 API 呼叫會通過 Azure Resource Manager 的專用連接埠 - 443。

    Add-AzEnvironment Cmdlet 會新增端點和中繼資料,以讓 Azure Resource Manager Cmdlet 與 Azure Resource Manager 的新執行個體連線。

    重要

    您在下列 Cmdlet 中提供的 Azure Resource Manager 端點 URL 必須區分大小寫。 請確認端點 URL 全為小寫,且與您在主機檔案中提供的 URL 一致。 如果大小寫不符,則會顯示錯誤。

    Add-AzEnvironment -Name <Environment Name> -ARMEndpoint "https://management.<appliance name>.<DNSDomain>/"
    

    範例輸出如下所示:

    PS C:\WINDOWS\system32> Add-AzEnvironment -Name AzASE -ARMEndpoint "https://management.myasegpu.wdshcsso.com/"
    
    Name  Resource Manager Url                      ActiveDirectory Authority
    ----  --------------------                      -------------------------
    AzASE https://management.myasegpu.wdshcsso.com/ https://login.myasegpu.wdshcsso.c...
    
  2. 將環境設定為 Azure Stack Edge,並將 Azure Resource Manager 呼叫所使用的連接埠設為 443。 您可透過兩種方式定義環境:

    • 設定環境。 輸入以下命令:

      Set-AzEnvironment -Name <Environment Name>
      

      以下為範例輸出。

      PS C:\WINDOWS\system32> Set-AzEnvironment -Name AzASE
      
      Name  Resource Manager Url                      ActiveDirectory Authority
      ----  --------------------                      -------------------------
      AzASE https://management.myasegpu.wdshcsso.com/ https://login.myasegpu.wdshcsso.c...
      

      如需詳細資訊,請移至 Set-AzEnvironment

    • 針對您要執行的每個 Cmdlet 定義內嵌環境。 這麼做能確保所有 API 呼叫通過正確的環境。 呼叫預設會通過 Azure 公用,但您想讓呼叫通過您為 Azure Stack Edge 裝置設定的環境。

    • 如需詳細資訊,請參閱如何切換 Az 環境

  3. 呼叫本機裝置 API 來驗證 Azure Resource Manager 的連線。

    1. 這些認證適用於本機電腦帳戶,且僅供 API 存取使用。

    2. 您可透過 login-AzAccount,或透過 Connect-AzAccount 命令進行連線。

      1. 請鍵入下列命令來登入。

        $pass = ConvertTo-SecureString "<Your password>" -AsPlainText -Force;
        $cred = New-Object System.Management.Automation.PSCredential("EdgeArmUser", $pass)
        Connect-AzAccount -EnvironmentName AzASE -TenantId aaaabbbb-0000-cccc-1111-dddd2222eeee -credential $cred
        

        使用租用戶標識碼 aaaabbbb-0000-cccc-1111-dddd222eeee,如同在此實例中硬式編碼。 使用下列使用者名稱與密碼。

        以下是 的 Connect-AzAccount範例輸出:

        PS C:\windows\system32> $pass = ConvertTo-SecureString "<Your password>" -AsPlainText -Force;
        PS C:\windows\system32> $cred = New-Object System.Management.Automation.PSCredential("EdgeArmUser", $pass)
        PS C:\windows\system32> Connect-AzAccount -EnvironmentName AzASE -TenantId aaaabbbb-0000-cccc-1111-dddd2222eeee -credential $cred
        
        Account       SubscriptionName   TenantId            Environment
        -------       ----------------   --------            -----------
        EdgeArmUser@localhost Default Provider Subscription aaaabbbb-0000-cccc-1111-dddd2222eeee AzASE
        
        PS C:\windows\system32>
        

        登入的替代方式是使用 login-AzAccount Cmdlet。

        login-AzAccount -EnvironmentName <Environment Name> -TenantId aaaabbbb-0000-cccc-1111-dddd2222eeee

        以下為範例輸出。

        PS C:\WINDOWS\system32> login-AzAccount -EnvironmentName AzASE -TenantId aaaabbbb-0000-cccc-1111-dddd2222eeee
        
        Account               SubscriptionName              TenantId
        -------               ----------------              --------
        EdgeArmUser@localhost Default Provider Subscription c0257de7-538f-415c-993a-1b87a...
        
        PS C:\WINDOWS\system32>
        
  4. 請使用 Get-AzResource 命令,驗證與裝置的連線可正常運作。 此命令應傳回存在於裝置本地的所有資源。

    以下為範例輸出。

    PS C:\WINDOWS\system32> Get-AzResource
    
    Name              : aseimagestorageaccount
    ResourceGroupName : ase-image-resourcegroup
    ResourceType      : Microsoft.Storage/storageaccounts
    Location          : dbelocal
    ResourceId        : /subscriptions/.../resourceGroups/ase-image-resourcegroup/providers/Microsoft.Storage/storageac
                        counts/aseimagestorageaccount
    Tags              :
    
    Name              : myaselinuxvmimage1
    ResourceGroupName : ASERG
    ResourceType      : Microsoft.Compute/images
    Location          : dbelocal
    ResourceId        : /subscriptions/.../resourceGroups/ASERG/providers/Microsoft.Compute/images/myaselinuxvmimage1
    Tags              :
    
    Name              : ASEVNET
    ResourceGroupName : ASERG
    ResourceType      : Microsoft.Network/virtualNetworks
    Location          : dbelocal
    ResourceId        : /subscriptions/.../resourceGroups/ASERG/providers/Microsoft.Network/virtualNetworks/ASEVNET
    Tags              :
    
    PS C:\WINDOWS\system32>
    

如果您的 Azure Resource Manager 連線遇到問題,請參閱針對 Azure Resource Manager 問題進行疑難排解以取得指引。

重要

與 Azure Resource Manager 的連線只能維持 1.5 小時,或維持到您的 Azure Stack Edge 裝置重新啟動為止。 如果斷線,則由於您與 Azure 的連線已經中斷,所執行的任何 Cmdlet 都會傳回錯誤訊息。 您將必須再次登入。

切換環境

您可能需要切換兩個不同的環境。

請執行 Disconnect-AzAccount 命令,切換至不同的 AzEnvironment。 如果您使用 Set-AzEnvironmentLogin-AzAccount 不使用 Disconnect-AzAccount,則不會切換環境。

下列範例顯示切換 AzASE1AzASE2 這兩個環境的方法。

首先,列出您用戶端上所有的現存環境。

PS C:\WINDOWS\system32> Get-AzEnvironment​
Name    Resource Manager Url     ActiveDirectory Authority​
----    --------------------      -------------------------​
AzureChinaCloud   https://management.chinacloudapi.cn/                 https://login.chinacloudapi.cn/​
AzureCloud        https://management.azure.com/                        https://login.microsoftonline.com/​
AzureGermanCloud  https://management.microsoftazure.de/                https://login.microsoftonline.de/​
AzDBE1            https://management.HVTG1T2-Test.microsoftdatabox.com https://login.hvtg1t2-test.microsoftdatabox.com/adfs/​
AzureUSGovernment https://management.usgovcloudapi.net/                https://login.microsoftonline.us/​
AzDBE2            https://management.CVV4PX2-Test.microsoftdatabox.com https://login.cvv4px2-test.microsoftdatabox.com/adfs/​

接下來,取得您目前透過 Azure Resource Manager 連線的環境。

PS C:\WINDOWS\system32> Get-AzContext |fl *​
​​
Name               : Default Provider Subscription (...) - EdgeArmUser@localhost​
Account            : EdgeArmUser@localhost​
Environment        : AzDBE2​
Subscription       : ...​
Tenant             : aaaabbbb-0000-cccc-1111-dddd2222eeee​
TokenCache         : Microsoft.Azure.Commands.Common.Authentication.ProtectedFileTokenCache​
VersionProfile     :​
ExtendedProperties : {}​

現在您應該從現有的環境中離線,以便切換至另一個環境。 ​ ​

PS C:\WINDOWS\system32> Disconnect-AzAccount​
​​
Id                    : EdgeArmUser@localhost​
Type                  : User​
Tenants               : {aaaabbbb-0000-cccc-1111-dddd2222eeee}​
AccessToken           :​
Credential            :​
TenantMap             : {}​
CertificateThumbprint :​
ExtendedProperties    : {[Subscriptions, ...], [Tenants, aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e]}

登入其他環境。 範例輸出如下所示。

PS C:\WINDOWS\system32> Login-AzAccount -Environment "AzDBE1" -TenantId $ArmTenantId​
​
Account     SubscriptionName   TenantId        Environment​
-------     ----------------   --------        -----------​
EdgeArmUser@localhost Default Provider Subscription aaaabbbb-0000-cccc-1111-dddd2222eeee AzDBE1

執行此 Cmdlet 以確認您已連線的環境。

PS C:\WINDOWS\system32> Get-AzContext |fl *​
​​
Name               : Default Provider Subscription (...) - EdgeArmUser@localhost​
Account            : EdgeArmUser@localhost​
Environment        : AzDBE1​
Subscription       : ...
Tenant             : aaaabbbb-0000-cccc-1111-dddd2222eeee​
TokenCache         : Microsoft.Azure.Commands.Common.Authentication.ProtectedFileTokenCache​
VersionProfile     :​
ExtendedProperties : {}

​您現在已切換到預定的環境。