Подключение к Azure Resource Manager на устройстве Azure Stack Edge
ОБЛАСТЬ ПРИМЕНЕНИЯ: Azure Stack Edge Pro — GPUAzure Stack Edge Pro 2Azure Stack Edge Pro 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.
Введите параметры сети для устройства Azure Stack Edge.
Запишите IP-адрес устройства. Вы будете использовать этот IP-адрес позже.
Настройте имя устройства и домен 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. При создании сертификатов для клиента следуйте приведенным ниже инструкциям.
Сначала необходимо создать корневой сертификат для цепочки подписания. Дополнительные сведения см. в разделе " Создание сертификатов цепочки подписей".
Затем можно создать сертификаты конечных точек для Azure Resource Manager и BLOB-объекта (необязательно). Эти конечные точки можно найти на странице Устройства локального пользовательского веб-интерфейса. См. шаги, обеспечивающие Создание сертификатов конечных точек.
Для всех этих сертификатов убедитесь, что имя субъекта и альтернативное имя субъекта соответствуют следующим рекомендациям.
Тип Имя субъекта (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. Он указан здесь, если вы создаете локальные учетные записи хранения на устройстве.
Дополнительные сведения о сертификатах см. в разделе Передача сертификатов на устройстве и импорт сертификатов на клиентах, обращающихся к устройству.
Отправка сертификатов на устройство
Сертификаты, созданные на предыдущем шаге, хранятся в личном хранилище клиента. Эти сертификаты на вашем клиенте необходимо экспортировать в файлы соответствующего формата, которые затем можно отправить на устройство.
Корневой сертификат необходимо экспортировать как файл формата DER с расширением .cer. Подробные инструкции см. в статье Экспорт сертификатов в виде файла формата CER.
Сертификаты конечных точек необходимо экспортировать в PFX-файлы с закрытыми ключами. Подробные инструкции см. в статье Экспорт сертификатов в виде PFX-файла с закрытыми ключами.
Затем корневые сертификаты и сертификаты конечных точек передаются на устройство с помощью пункта + Добавить сертификат на странице Сертификаты в локальном пользовательском веб-интерфейсе. Для передачи сертификатов выполните действия, описанные в разделе Отправка сертификатов.
Импорт сертификатов на клиенте с работающим Azure PowerShell
Клиент Windows, в котором вызывается API Azure Resource Manager, должен установить доверие с устройством. Для этого сертификаты, созданные на предыдущем шаге, необходимо импортировать в соответствующее хранилище сертификатов клиента Windows.
Корневой сертификат, экспортированный в формате DER с расширением .cer, теперь необходимо импортировать в Центры доверенных корневых сертификатов клиентской системы. Подробные инструкции см. в разделе Импорт сертификатов в хранилище центров доверенных корневых сертификатов.
Сертификаты конечных точек, экспортированные в виде PFX-файла, должны быть экспортированы в виде CER-файла. Затем этот CER-файл импортируется в личное хранилище сертификатов в вашей системе. Подробные инструкции см. в статье Импорт сертификатов в личное хранилище.
Шаг 3. Установка PowerShell на клиенте
Клиент Windows должен соответствовать следующим предварительным требованиям.
Запустите 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
Можно получить доступ к коллекции 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 на клиенте, который работает с устройством.
Запустите PowerShell с правами администратора. У вас должен быть доступ к коллекции PowerShell.
Сначала убедитесь, что на клиенте нет существующих версий модулей
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
. Дополнительные сведения см. в разделеЧтобы установить необходимые модули 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
Убедитесь, что у вас есть правильная версия модуля 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, который вы используете для подключения к устройству, выполните следующие действия.
Откройте Блокнот от имени администратора и откройте файл hosts, расположенный в папке \Windows\System32\Drivers\etc.
Добавьте следующие записи в файл 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 с помощью учетных записей хранения.
Для ссылки используйте следующее изображение. Сохраните файл hosts.
Шаг 6. Проверка разрешения имени конечной точки на клиенте
Проверьте, разрешено ли имя конечной точки на клиенте, который вы используете для подключения к устройству.
Чтобы проверить, разрешается ли имя конечной точки, можно использовать служебную программу командной строки
ping.exe
. При указании IP-адресаping
команда возвращает имя узла TCP/IP компьютера, который выполняется трассировка.Добавьте параметр
-a
в командную строку, как показано в следующем примере. Если имя узла является возвращаемым, в ответе также будет возвращена эта потенциально ценная информация.
Шаг 7. Настройка среды Azure Resource Manager
Настройте среду Azure Resource Manager и убедитесь, что устройство, используемое для обмена данными с помощью Azure Resource Manager, работает нормально. Для проверки выполните следующие действия.
Используйте командлет
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...
Задайте 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.
Вызовите API локальных устройств для проверки подлинности подключений к Azure Resource Manager.
Эти удостоверения предназначены для учетной записи локального компьютера и используются только для доступа к API.
Можно подключиться с помощью команды
login-AzAccount
или командыConnect-AzAccount
.Чтобы войти в систему, введите следующую команду.
$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-ddd222eeee, как в этом экземпляре, он жестко закодирован. Используйте следующие имя пользователя и пароль.
Имя пользователя - EdgeArmUser
Пароль - Задайте пароль для Azure Resource Manager и используйте этот пароль для входа.
Ниже приведен пример выходных
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
.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>
Чтобы убедиться, что подключение к устройству работает, используйте команду
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-AzEnvironment
Disconnect-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 : 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
Выполните этот командлет, чтобы убедиться, к какой среде вы подключены.
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 : {}
Теперь вы переключились в предназначенную среду.