Подключение к Azure Resource Manager на устройстве Azure Stack Edge

ОБЛАСТЬ ПРИМЕНЕНИЯ:Да для SKU GPU ProAzure Stack Edge Pro — GPUДа для SKU Pro 2Azure Stack Edge Pro 2Да для SKU R ProAzure Stack Edge Pro RДа для номера SKU Mini RAzure Stack Edge Mini R

Azure Resource Manager обеспечивает уровень управления, позволяющий создавать, обновлять и удалять ресурсы в подписке Azure. Устройство Azure Stack Edge поддерживает те же API Azure Resource Manager для создания, обновления и удаления виртуальных машин в локальной подписке. Эта поддержка позволяет управлять устройством, используя способ, согласованный с облаком.

В этой статье описывается, как подключиться к локальным интерфейсам API на устройстве Azure Stack Edge с помощью Azure Resource Manager, используя Azure PowerShell.

Конечные точки на устройстве Azure Stack Edge

В следующей таблице перечислены различные конечные точки, предоставляемые на устройстве, а также поддерживаемые протоколы и порты для доступа к этим конечным точкам. В этой статье вы найдете ссылки на эти конечные точки.

# Конечная точка Поддерживаемые протоколы Используемый порт Используется для
1. Azure Resource Manager https 443 Подключение к Azure Resource Manager для автоматизации
2. Служба маркеров безопасности https 443 Проверка подлинности с помощью маркеров доступа и обновления
3. BLOB-объект* https 443 Подключение к хранилищу BLOB-объектов с помощью REST

* Подключение конечную точку хранилища BLOB-объектов не требуется для подключения к Azure Resource Manager.

Подключение к рабочему процессу Azure Resource Manager

Процесс подключения к локальным API-интерфейсам устройства с помощью Azure Resource Manager требует выполнения следующих действий.

Номер шага Выполните этот шаг ... .. для этого расположения.
1. Настройка устройства Azure Stack Edge Локальный пользовательский веб-интерфейс
2. Создание и установка сертификатов Клиент Windows или локальный веб-интерфейс
3. Проверка и настройка необходимых компонентов Клиент Windows
4. Настройка Azure PowerShell на клиенте Клиент Windows
5. Изменение файла узла для разрешения имен конечных точек Клиент Windows или DNS-сервер
6. Проверка разрешения имени конечной точки Клиент Windows
7. Использование командлетов Azure PowerShell для проверки подключения к Azure Resource Manager Клиент Windows

В следующих разделах подробно описан каждый из приведенных выше шагов подключения к Azure Resource Manager.

Необходимые компоненты

Прежде чем начать, убедитесь, что клиент, используемый для подключения к устройству с помощью Azure Resource Manager, использует TLS 1.2. Дополнительные сведения см. в статье Настройка TLS 1.2 на клиенте Windows для доступа к устройству Azure Stack Edge.

Шаг 1. Настройка устройства Azure Stack Edge

Выполните следующие действия, используя локальный пользовательский веб-интерфейс устройства Azure Stack Edge.

  1. Введите параметры сети для устройства Azure Stack Edge.

    Страница

    Запишите IP-адрес устройства. Вы будете использовать этот IP-адрес позже.

  2. Настройте имя устройства и домен DNS на странице Устройство. Запишите имя устройства и домен DNS, как вы будете использовать их позже.

    Страница

    Внимание

    Имя устройства и домен DNS будут использоваться для формирования предоставляемых конечных точек. Используйте конечные точки 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-объекта (необязательно). Эти конечные точки можно найти на странице Устройства локального пользовательского веб-интерфейса. См. шаги, обеспечивающие Создание сертификатов конечных точек.

  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. Затем корневые сертификаты и сертификаты конечных точек передаются на устройство с помощью пункта + Добавить сертификат на странице Сертификаты в локальном пользовательском веб-интерфейсе. Для передачи сертификатов выполните действия, описанные в разделе Отправка сертификатов.

Импорт сертификатов на клиенте с работающим Azure PowerShell

Клиент Windows, в котором вызывается API Azure Resource Manager, должен установить доверие с устройством. Для этого сертификаты, созданные на предыдущем шаге, необходимо импортировать в соответствующее хранилище сертификатов клиента Windows.

  1. Корневой сертификат, экспортированный в формате DER с расширением .cer, теперь необходимо импортировать в Центры доверенных корневых сертификатов клиентской системы. Подробные инструкции см. в разделе Импорт сертификатов в хранилище центров доверенных корневых сертификатов.

  2. Сертификаты конечных точек, экспортированные в виде PFX-файла, должны быть экспортированы в виде CER-файла. Затем этот CER-файл импортируется в личное хранилище сертификатов в вашей системе. Подробные инструкции см. в статье Импорт сертификатов в личное хранилище.

Шаг 3. Установка PowerShell на клиенте

Клиент Windows должен соответствовать следующим предварительным требованиям.

  1. Запустите Windows PowerShell 5.1. Необходимо иметь Windows PowerShell 5.1. Для проверки установленной на компьютере версии PowerShell выполните следующий командлет:

    $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. Сначала убедитесь, что на клиенте нет существующих версий модулей AzureRM и Az. Чтобы проверка, выполните следующие команды:

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

    Если существующие версии есть, удалите их с помощью командлета Uninstall-Module. Дополнительные сведения см. в разделе

  3. Чтобы установить необходимые модули Azure PowerShell из коллекции 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. Откройте Блокнот от имени администратора и откройте файл hosts, расположенный в папке \Windows\System32\Drivers\etc.

    Файл hosts в проводнике

  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>
    

    Внимание

    Запись в файле hosts должна точно совпадать с указанной для подключения к Azure Resource Manager на более позднем шаге. Убедитесь, что запись домена DNS введена полностью в нижнем регистре. Чтобы получить значения для <appliance name> и <DNS domain>, перейдите на страницу Устройство в локальном пользовательском интерфейсе устройства.

    Вы сохранили IP-адрес устройства, введенный в локальном пользовательском веб-интерфейсе на одном из предыдущих шагов.

    Запись login.<appliance name>.<DNS domain> — это конечная точка для службы маркеров безопасности (STS). STS отвечает за создание, проверку, продление и отмену маркеров безопасности. Служба маркеров безопасности используется для создания маркера доступа и маркера обновления, используемого для непрерывного взаимодействия между устройством и клиентом.

    Конечная точка для хранилища BLOB-объектов необязательна при подключении к Azure Resource Manager. Эта конечная точка необходима при передаче данных в Azure с помощью учетных записей хранения.

  3. Для ссылки используйте следующее изображение. Сохраните файл hosts.

    Файл hosts в Блокноте

Шаг 6. Проверка разрешения имени конечной точки на клиенте

Проверьте, разрешено ли имя конечной точки на клиенте, который вы используете для подключения к устройству.

  1. Чтобы проверить, разрешается ли имя конечной точки, можно использовать служебную программу командной строки ping.exe. При указании IP-адреса ping команда возвращает имя узла TCP/IP компьютера, который выполняется трассировка.

    Добавьте параметр -a в командную строку, как показано в следующем примере. Если имя узла является возвращаемым, в ответе также будет возвращена эта потенциально ценная информация.

    Запуск ping из командной строки

Шаг 7. Настройка среды Azure Resource Manager

Настройте среду Azure Resource Manager и убедитесь, что устройство, используемое для обмена данными с помощью Azure Resource Manager, работает нормально. Для проверки выполните следующие действия.

  1. Используйте командлет Add-AzEnvironment для проверки того, что передача данных через Azure Resource Manager работает правильно и вызовы API проходят через порт, выделенный для Azure Resource Manager — 443.

    Командлет Add-AzEnvironment добавляет конечные точки и метаданные, чтобы разрешить командлетам Azure Resource Manager подключаться к новому экземпляру Azure Resource Manager.

    Внимание

    В URL-адресе конечной точки Azure Resource Manager, задаваемом в следующем командлете, учитывается регистр. Убедитесь, что URL-адрес конечной точки полностью находится в нижнем регистре и соответствует адресу, введенному в файле hosts. Если регистр не совпадает, возникнет ошибка.

    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 в качестве среды и порт 443, который будет использоваться для вызовов Azure Resource Manager. Среду можно определить двумя способами.

    • Настройте среду. Введите следующую команду:

      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.

    • Определите среду как встроенную для каждого выполняемого командлета. Это гарантирует, что все вызовы 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 c0257de7-538f-415c-993a-1b87a031879d -credential $cred
        

        Используйте идентификатор клиента c0257de7-538f-415c-993a-1b87a031879d, как в этом экземпляре, он жестко закодирован. Используйте следующие имя пользователя и пароль.

        Ниже приведен пример выходных 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 c0257de7-538f-415c-993a-1b87a031879d -credential $cred
        
        Account       SubscriptionName   TenantId            Environment
        -------       ----------------   --------            -----------
        EdgeArmUser@localhost Default Provider Subscription c0257de7-538f-415c-993a-1b87a031879d AzASE
        
        PS C:\windows\system32>
        

        Альтернативным способом входа является использование командлета login-AzAccount .

        login-AzAccount -EnvironmentName <Environment Name> -TenantId c0257de7-538f-415c-993a-1b87a031879d

        Ниже приведен пример выходных данных.

        PS C:\WINDOWS\system32> login-AzAccount -EnvironmentName AzASE -TenantId c0257de7-538f-415c-993a-1b87a031879d
        
        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. Необходимо снова выполнить вход в систему.

Переключить среды

Вам может потребоваться переключиться между двумя средами.

Выполните команду Disconnect-AzAccount, чтобы переключиться в другую среду AzEnvironment. Если вы используете и Login-AzAccount не используете Set-AzEnvironmentDisconnect-AzAccount, среда не переключается.

В следующих примерах показано, как переключаться между двумя средами AzASE1 и AzASE2.

Сначала перечислите все существующие среды на клиенте.

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             : c0257de7-538f-415c-993a-1b87a031879d​
TokenCache         : Microsoft.Azure.Commands.Common.Authentication.ProtectedFileTokenCache​
VersionProfile     :​
ExtendedProperties : {}​

Перед переходом на другую среду необходимо отключиться от текущей среды.

PS C:\WINDOWS\system32> Disconnect-AzAccount​
​​
Id                    : EdgeArmUser@localhost​
Type                  : User​
Tenants               : {c0257de7-538f-415c-993a-1b87a031879d}​
AccessToken           :​
Credential            :​
TenantMap             : {}​
CertificateThumbprint :​
ExtendedProperties    : {[Subscriptions, ...], [Tenants, c0257de7-538f-415c-993a-1b87a031879d]}

Войдите в другую среду. Пример выходных данных показан ниже.

PS C:\WINDOWS\system32> Login-AzAccount -Environment "AzDBE1" -TenantId $ArmTenantId​
​
Account     SubscriptionName   TenantId        Environment​
-------     ----------------   --------        -----------​
EdgeArmUser@localhost Default Provider Subscription c0257de7-538f-415c-993a-1b87a031879d AzDBE1

Выполните этот командлет, чтобы убедиться, к какой среде вы подключены.

PS C:\WINDOWS\system32> Get-AzContext |fl *​
​​
Name               : Default Provider Subscription (...) - EdgeArmUser@localhost​
Account            : EdgeArmUser@localhost​
Environment        : AzDBE1​
Subscription       : ...
Tenant             : c0257de7-538f-415c-993a-1b87a031879d​
TokenCache         : Microsoft.Azure.Commands.Common.Authentication.ProtectedFileTokenCache​
VersionProfile     :​
ExtendedProperties : {}

Теперь вы переключились в предназначенную среду.