Przygotowywanie hosta rozszerzenia w usłudze Azure Stack Hub

Host rozszerzenia zabezpiecza usługę Azure Stack Hub, zmniejszając liczbę wymaganych portów TCP/IP. W tym artykule omówiono przygotowywanie usługi Azure Stack Hub dla hosta rozszerzenia, który jest automatycznie włączony za pośrednictwem pakietu aktualizacji usługi Azure Stack Hub po aktualizacji 1808. Ten artykuł dotyczy aktualizacji usługi Azure Stack Hub 1808, 1809 i 1811.

Wymagania certyfikatu

Host rozszerzenia implementuje dwie nowe przestrzenie nazw domeny, aby zagwarantować unikatowe wpisy hosta dla każdego rozszerzenia portalu. Nowe przestrzenie nazw domeny wymagają dwóch dodatkowych certyfikatów z symbolami wieloznacznymi w celu zapewnienia bezpiecznej komunikacji.

W tabeli przedstawiono nowe przestrzenie nazw i skojarzone certyfikaty:

Folder wdrożenia Wymagany podmiot certyfikatu i alternatywne nazwy podmiotu (SAN) Zakres (na region) Przestrzeń nazw poddomeny
host rozszerzenia Administracja *.adminhosting.<region>.<fqdn> (certyfikaty SSL z symbolami wieloznacznymi) host rozszerzenia Administracja adminhosting.<region>.<Fqdn>
Host rozszerzenia publicznego *.Hosting.<region>.<fqdn> (certyfikaty SSL z symbolami wieloznacznymi) Host rozszerzenia publicznego Hosting.<region>.<Fqdn>

Aby uzyskać szczegółowe wymagania dotyczące certyfikatów, zobacz Wymagania dotyczące certyfikatu infrastruktury kluczy publicznych usługi Azure Stack Hub.

Tworzenie żądania podpisania certyfikatu

Narzędzie do sprawdzania gotowości usługi Azure Stack Hub umożliwia utworzenie żądania podpisania certyfikatu dla dwóch nowych i wymaganych certyfikatów SSL. Wykonaj kroki opisane w artykule Generowanie żądania podpisania certyfikatów usługi Azure Stack Hub.

Uwaga

Ten krok można pominąć w zależności od sposobu żądania certyfikatów SSL.

Weryfikowanie nowych certyfikatów

  1. Otwórz program PowerShell z podwyższonym poziomem uprawnień na hoście cyklu życia sprzętu lub stacji roboczej zarządzania usługi Azure Stack Hub.

  2. Uruchom następujące polecenie cmdlet, aby zainstalować narzędzie do sprawdzania gotowości usługi Azure Stack Hub:

    Install-Module -Name Microsoft.AzureStack.ReadinessChecker
    
  3. Uruchom następujący skrypt, aby utworzyć wymaganą strukturę folderów:

    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}
    

    Uwaga

    W przypadku wdrożenia za pomocą Microsoft Entra id Usług federacyjnych (AD FS) następujące katalogi muszą zostać dodane do $directories w skry skryfcie: ADFS, Graph.

  4. Umieść istniejące certyfikaty, których obecnie używasz w usłudze Azure Stack Hub, w odpowiednich katalogach. Na przykład umieść certyfikat usługi ARM Administracja w folderze Arm Admin . Następnie umieść nowo utworzone certyfikaty hostingu Admin extension host w katalogach i .Public extension host

  5. Uruchom następujące polecenie cmdlet, aby uruchomić sprawdzanie certyfikatu:

    $pfxPassword = Read-Host -Prompt "Enter PFX Password" -AsSecureString 
    
    Start-AzsReadinessChecker -CertificatePath c:\certificates -pfxPassword $pfxPassword -RegionName east -FQDN azurestack.contoso.com -IdentitySystem AAD
    
  6. Sprawdź dane wyjściowe i czy wszystkie certyfikaty przechodzą wszystkie testy.

Importowanie certyfikatów hosta rozszerzenia

Użyj komputera, który może nawiązać połączenie z uprzywilejowanym punktem końcowym usługi Azure Stack Hub w celu wykonania następnych kroków. Upewnij się, że masz dostęp do nowych plików certyfikatów z tego komputera.

  1. Użyj komputera, który może nawiązać połączenie z uprzywilejowanym punktem końcowym usługi Azure Stack Hub w celu wykonania następnych kroków. Upewnij się, że masz dostęp do nowych plików certyfikatów z tego komputera.

  2. Otwórz program PowerShell ISE, aby wykonać następne bloki skryptu.

  3. Zaimportuj certyfikat dla punktu końcowego hostingu administratora.

    
    $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. Zaimportuj certyfikat dla punktu końcowego hostingu.

    $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
    }
    

Aktualizowanie konfiguracji DNS

Uwaga

Ten krok nie jest wymagany, jeśli do integracji DNS użyto delegowania strefy DNS. Jeśli pojedynczy host Rekordy A zostały skonfigurowane do publikowania punktów końcowych usługi Azure Stack Hub, należy utworzyć dwa dodatkowe rekordy hosta A:

Adres IP Hostname (Nazwa hosta) Typ
<Adres IP> *. Hostowanie administracyjne.<Region>.<FQDN> A
<Adres IP> *. Hosting.<Region>.<FQDN> A

Przydzielone adresy IP można pobrać przy użyciu uprzywilejowanego punktu końcowego, uruchamiając polecenie cmdlet Get-AzureStackStampInformation.

Porty i protokoły

Artykuł Integracja centrum danych usługi Azure Stack Hub — publikowanie punktów końcowych obejmuje porty i protokoły, które wymagają komunikacji przychodzącej w celu opublikowania usługi Azure Stack Hub przed wdrożeniem hosta rozszerzenia.

Publikowanie nowych punktów końcowych

Istnieją dwa nowe punkty końcowe wymagane do opublikowania za pośrednictwem zapory. Przydzielone adresy IP z publicznej puli adresów VIP można pobrać przy użyciu następującego kodu, który należy uruchomić z uprzywilejowanego punktu końcowego środowiska usługi 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

Przykładowe dane wyjściowe

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

Uwaga

Przed włączeniem hosta rozszerzenia wprowadź tę zmianę. Dzięki temu portale usługi Azure Stack Hub mogą być stale dostępne.

Punkt końcowy (VIP) Protokół Porty
hosting Administracja HTTPS 443
Hosting HTTPS 443

Aktualizowanie istniejących reguł publikowania (po włączeniu hosta rozszerzenia)

Uwaga

Pakiet aktualizacji 1808 usługi Azure Stack Hub nie włącza jeszcze hosta rozszerzeń. Umożliwia przygotowanie hosta rozszerzenia przez zaimportowanie wymaganych certyfikatów. Nie zamykaj żadnych portów przed automatycznym włączeniem hosta rozszerzenia za pośrednictwem pakietu aktualizacji usługi Azure Stack Hub po aktualizacji 1808.

Następujące istniejące porty punktu końcowego muszą być zamknięte w istniejących regułach zapory.

Uwaga

Zaleca się zamknięcie tych portów po pomyślnej weryfikacji.

Punkt końcowy (VIP) Protokół Porty
Portal (administrator) HTTPS 12495
12499
12646
12647
12648
12649
12650
13001
13003
13010
13011
13012
13020
13021
13026
30015
Portal (użytkownik) HTTPS 12495
12649
13001
13010
13011
13012
13020
13021
30015
13003
Azure Resource Manager (administrator) HTTPS 30024
Azure Resource Manager (użytkownik) HTTPS 30024

Następne kroki