Поделиться через


Подготовьте хост расширения в Azure Stack Hub

Узел расширения защищает Azure Stack Hub, уменьшая количество необходимых портов TCP/IP. В этой статье описывается, как подготовить Azure Stack Hub для узла расширения, который автоматически включен с помощью пакета обновления Azure Stack Hub после обновления 1808. Эта статья относится к обновлениям Azure Stack Hub 1808, 1809 и 1811.

Требования к сертификату

Хост расширения реализует два новых пространства имен домена, чтобы гарантировать уникальные записи для каждого расширения портала. Новые пространства доменных имен требуют двух дополнительных подстановочных сертификатов для обеспечения безопасного взаимодействия.

В таблице показаны новые пространства имен и связанные сертификаты:

Папка развертывания Обязательные имена субъектов сертификатов и альтернативные имена субъектов (SAN) Область (на регион) Пространство имен поддомена
Хост расширений администратора *.adminhosting.<регионе>.<fqdn> (SSL-сертификаты с подстановочными знаками) Хост расширений администратора adminhosting.<регион>.<fqdn>
Общедоступный сервер расширений *.хостинг.<"регион">.<fqdn> (SSL-сертификаты с подстановочными знаками) Хост общедоступного расширения хостинг.<регион>.<fqdn>

Подробные требования к сертификату см. в статье требования к сертификату инфраструктуры открытого ключа Azure Stack Hub.

Создание запроса на подпись сертификата

Средство проверки готовности Azure Stack Hub позволяет создать запрос на подпись сертификата для двух новых и необходимых SSL-сертификатов. Выполните действия, описанные в статье генерации запроса на подпись сертификатов Azure Stack Hub.

Заметка

Этот шаг можно пропустить в зависимости от того, как вы запрашивали SSL-сертификаты.

Проверка новых сертификатов

  1. Откройте PowerShell с повышенными правами на узле жизненного цикла оборудования или рабочей станции управления Azure Stack Hub.

  2. Выполните следующий командлет, чтобы установить средство проверки готовности Azure Stack Hub:

    Install-Module -Name Microsoft.AzureStack.ReadinessChecker
    
  3. Выполните следующий сценарий, чтобы создать требуемую структуру папок:

    New-Item C:\Certificates -ItemType Directory
    
    $directories = 'ACSBlob','ACSQueue','ACSTable','Admin Portal','ARM Admin','ARM Public','KeyVault','KeyVaultInternal','Public Portal', 'Admin extension host', 'Public extension host'
    
    $destination = 'c:\certificates'
    
    $directories | % { New-Item -Path (Join-Path $destination $PSITEM) -ItemType Directory -Force}
    

    Заметка

    При развертывании, используя федеративные службы Microsoft Entra ID (AD FS), в следующий список в скрипте необходимо добавить следующие каталоги: $directories, ADFS, Graph.

  4. Поместите существующие сертификаты, которые в настоящее время используются в Azure Stack Hub, в соответствующих каталогах. Например, поместите сертификат ARM администратора в папку . А затем поместите только что созданные сертификаты размещения в каталоги Admin extension host и Public extension host.

  5. Выполните следующий командлет, чтобы запустить проверку сертификата:

    $pfxPassword = Read-Host -Prompt "Enter PFX Password" -AsSecureString 
    
    Start-AzsReadinessChecker -CertificatePath c:\certificates -pfxPassword $pfxPassword -RegionName east -FQDN azurestack.contoso.com -IdentitySystem AAD
    
  6. Проверьте выходные данные, чтобы узнать, проходят ли все сертификаты все тесты.

Импорт сертификатов узла расширения

Используйте компьютер, который может подключиться к привилегированной конечной точке Azure Stack Hub, чтобы выполнить следующие действия. Убедитесь, что у вас есть доступ к новым файлам сертификатов с этого компьютера.

  1. Используйте компьютер, который может подключиться к привилегированной конечной точке Azure Stack Hub, чтобы выполнить следующие действия. Убедитесь, что вы обращаетесь к новым файлам сертификатов с этого компьютера.

  2. Откройте PowerShell ISE, чтобы выполнить блоки следующих скриптов.

  3. Импортируйте сертификат для конечной точки размещения администратора.

    
    $CertPassword = read-host -AsSecureString -prompt "Certificate Password"
    
    $CloudAdminCred = Get-Credential -UserName <Privileged endpoint credentials> -Message "Enter the cloud domain credentials to access the privileged endpoint."
    
    [Byte[]]$AdminHostingCertContent = [Byte[]](Get-Content c:\certificate\myadminhostingcertificate.pfx -Encoding Byte)
    
    Invoke-Command -ComputerName <PrivilegedEndpoint computer name> `
    -Credential $CloudAdminCred `
    -ConfigurationName "PrivilegedEndpoint" `
    -ArgumentList @($AdminHostingCertContent, $CertPassword) `
    -ScriptBlock {
            param($AdminHostingCertContent, $CertPassword)
            Import-AdminHostingServiceCert $AdminHostingCertContent $certPassword
    }
    
  4. Импортируйте сертификат для конечной точки размещения:

    $CertPassword = read-host -AsSecureString -prompt "Certificate Password"
    
    $CloudAdminCred = Get-Credential -UserName <Privileged endpoint credentials> -Message "Enter the cloud domain credentials to access the privileged endpoint."
    
    [Byte[]]$HostingCertContent = [Byte[]](Get-Content c:\certificate\myhostingcertificate.pfx  -Encoding Byte)
    
    Invoke-Command -ComputerName <PrivilegedEndpoint computer name> `
    -Credential $CloudAdminCred `
    -ConfigurationName "PrivilegedEndpoint" `
    -ArgumentList @($HostingCertContent, $CertPassword) `
    -ScriptBlock {
            param($HostingCertContent, $CertPassword)
            Import-UserHostingServiceCert $HostingCertContent $certPassword
    }
    

Обновление конфигурации DNS

Заметка

Этот шаг не требуется, если вы использовали делегирование зоны DNS для интеграции DNS.

Если для публикации конечных точек Azure Stack Hub настроен отдельный узел A, необходимо создать две дополнительные записи узла A:

Протокол IP Имя узла Тип
<IP-> *. Администрирование.<регион>.<полное доменное имя> A
<IP-> *. Хостинг.<регион>.<полное доменное имя> А

Выделенные IP-адреса можно получить с помощью привилегированной точки доступа, выполнив командлет Get-AzureStackStampInformation.

Порты и протоколы

Статья об интеграции центра обработки данных Azure Stack Hub, касающаяся публикации конечных точек, охватывает порты и протоколы, которые требуют входящего взаимодействия для публикации Azure Stack Hub до развертывания узла расширения.

Публикация новых конечных точек

Существуют две новые конечные точки, которые нужно опубликовать через брандмауэр. Выделенные IP-адреса из пула публичных виртуальных IP-адресов можно получить с помощью следующего кода, который должен быть выполнен из привилегированной точки доступа вашей среды Azure Stack Hub на конечной точке.

# Create a PEP Session
winrm s winrm/config/client '@{TrustedHosts= "<IpOfERCSMachine>"}'
$PEPCreds = Get-Credential
$PEPSession = New-PSSession -ComputerName <IpOfERCSMachine> -Credential $PEPCreds -ConfigurationName "PrivilegedEndpoint" -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)

# Obtain DNS Servers and extension host information from Azure Stack Hub Stamp Information and find the IPs for the Host Extension Endpoints
$StampInformation = Invoke-Command $PEPSession {Get-AzureStackStampInformation} | Select-Object -Property ExternalDNSIPAddress01, ExternalDNSIPAddress02, @{n="TenantHosting";e={($_.TenantExternalEndpoints.TenantHosting) -replace "https://*.","testdnsentry"-replace "/"}},  @{n="AdminHosting";e={($_.AdminExternalEndpoints.AdminHosting)-replace "https://*.","testdnsentry"-replace "/"}},@{n="TenantHostingDNS";e={($_.TenantExternalEndpoints.TenantHosting) -replace "https://",""-replace "/"}},  @{n="AdminHostingDNS";e={($_.AdminExternalEndpoints.AdminHosting)-replace "https://",""-replace "/"}}
If (Resolve-DnsName -Server $StampInformation.ExternalDNSIPAddress01 -Name $StampInformation.TenantHosting -ErrorAction SilentlyContinue) {
    Write-Host "Can access AZS DNS" -ForegroundColor Green
    $AdminIP = (Resolve-DnsName -Server $StampInformation.ExternalDNSIPAddress02 -Name $StampInformation.AdminHosting).IPAddress
    Write-Host "The IP for the Admin Extension Host is: $($StampInformation.AdminHostingDNS) - is: $($AdminIP)" -ForegroundColor Yellow
    Write-Host "The Record to be added in the DNS zone: Type A, Name: $($StampInformation.AdminHostingDNS), Value: $($AdminIP)" -ForegroundColor Green
    $TenantIP = (Resolve-DnsName -Server $StampInformation.ExternalDNSIPAddress01 -Name $StampInformation.TenantHosting).IPAddress
    Write-Host "The IP address for the Tenant Extension Host is $($StampInformation.TenantHostingDNS) - is: $($TenantIP)" -ForegroundColor Yellow
    Write-Host "The Record to be added in the DNS zone: Type A, Name: $($StampInformation.TenantHostingDNS), Value: $($TenantIP)" -ForegroundColor Green
}
Else {
    Write-Host "Cannot access AZS DNS" -ForegroundColor Yellow
    $AdminIP = (Resolve-DnsName -Name $StampInformation.AdminHosting).IPAddress
    Write-Host "The IP for the Admin Extension Host is: $($StampInformation.AdminHostingDNS) - is: $($AdminIP)" -ForegroundColor Yellow
    Write-Host "The Record to be added in the DNS zone: Type A, Name: $($StampInformation.AdminHostingDNS), Value: $($AdminIP)" -ForegroundColor Green
    $TenantIP = (Resolve-DnsName -Name $StampInformation.TenantHosting).IPAddress
    Write-Host "The IP address for the Tenant Extension Host is $($StampInformation.TenantHostingDNS) - is: $($TenantIP)" -ForegroundColor Yellow
    Write-Host "The Record to be added in the DNS zone: Type A, Name: $($StampInformation.TenantHostingDNS), Value: $($TenantIP)" -ForegroundColor Green
}
Remove-PSSession -Session $PEPSession

Пример выходных данных

Can access AZS DNS
The IP for the Admin Extension Host is: *.adminhosting.\<region>.\<fqdn> - is: xxx.xxx.xxx.xxx
The Record to be added in the DNS zone: Type A, Name: *.adminhosting.\<region>.\<fqdn>, Value: xxx.xxx.xxx.xxx
The IP address for the Tenant Extension Host is *.hosting.\<region>.\<fqdn> - is: xxx.xxx.xxx.xxx
The Record to be added in the DNS zone: Type A, Name: *.hosting.\<region>.\<fqdn>, Value: xxx.xxx.xxx.xxx

Заметка

Внесите это изменение перед включением хоста расширения. Это позволяет порталам Azure Stack Hub постоянно быть доступными.

Конечная точка (VIP) Протокол Порты
Размещение администраторов HTTPS 443
Хостинг HTTPS 443

Обновите существующие правила публикации (после включения узла расширения)

Заметка

Пакет обновления Azure Stack Hub 1808 еще не включает поддержку узла расширения. Вы можете подготовиться к хосту расширения, импортируя необходимые сертификаты. Не закрывайте порты до автоматического включения узла расширения с помощью пакета обновления Azure Stack Hub после обновления 1808.

Следующие существующие порты конечных точек должны быть закрыты в существующих правилах брандмауэра.

Заметка

Рекомендуется закрыть эти порты после успешной проверки.

Конечная точка (VIP) Протокол Порты
Портал (администратор) HTTPS 12495
12499
12646
12647
12648
12649
12650
13001
13003
13010
13011
13012
13020
13021
13026
30015
Портал (пользователь) HTTPS 12495
12649
13001
13010
13011
13012
13020
13021
30015
13003
Azure Resource Manager (администратор) HTTPS 30024
Azure Resource Manager (пользователь) HTTPS 30024

Дальнейшие действия