Udostępnij za pośrednictwem


Przygotowanie hosta rozszerzeń 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 opisano sposób przygotowania usługi Azure Stack Hub do 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 dotyczące certyfikatu

Host rozszerzenia implementuje dwie nowe przestrzenie nazw domeny w celu zagwarantowania unikatowych wpisów hosta dla każdego rozszerzenia portalu. Nowe przestrzenie nazw domen wymagają dwóch dodatkowych certyfikatów wieloznacznych w celu zapewnienia bezpiecznej komunikacji.

W tabeli przedstawiono nowe przestrzenie nazw i skojarzone certyfikaty:

Folder wdrożenia Wymagane nazwy podmiotu certyfikatu i alternatywne nazwy podmiotu (SAN) Zakres (na region) Przestrzeń nazw poddomeny
Host rozszerzenia administratora *.adminhosting.<region>.<fqdn> (Certyfikaty SSL typu Wildcard) Host rozszerzenia administratora adminhosting.<region>.<fqdn>
Host rozszerzenia publicznego *.hosting.<region>.<fqdn> (certyfikaty SSL typu wildcard) Host rozszerzenia publicznego gościnność.<region>.><fqdn

Aby uzyskać szczegółowe wymagania dotyczące certyfikatów, zobacz wymagania dotyczące certyfikatów infrastruktury klucza publicznego dla 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 podpisu certyfikatów dla usługi Azure Stack Hub.

Notatka

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}
    

    Notatka

    W przypadku wdrożenia za pomocą usług federacyjnych Microsoft Entra ID (AD FS) następujące katalogi muszą zostać dodane do $directories w skrypcie: 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 arm administratora w folderze Arm Admin. Następnie umieść nowo utworzone certyfikaty hostingu w katalogach Admin extension host 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, aby sprawdzić, 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, aby wykonać następne kroki. 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, aby wykonać następne kroki. 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

Notatka

Ten krok nie jest wymagany, jeśli do integracji DNS użyto delegowania strefy DNS.

Jeśli rekordy hosta A zostały skonfigurowane do publikowania punktów końcowych Azure Stack Hub, należy utworzyć dwa dodatkowe rekordy hosta A.

IP Nazwa hosta Typ
<IP> *. Hostowanie administracyjne.<region>.> nazwy FQDN< A
<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ł integracji usługi Azure Stack Hub z centrum danych — publikowanie punktów końcowych obejmuje porty i protokoły wymagające komunikacji przychodzącej w celu opublikowania punktów końcowych usługi Azure Stack Hub przed rozpoczęciem wdrażania hosta rozszerzeń.

Publikowanie nowych punktów końcowych

Istnieją dwa nowe punkty końcowe, które należy opublikować przez zaporę. 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

Notatka

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

Punkt dostępowy (VIP) Protokół Porty
Hosting dla administratorów HTTPS 443
Gościnność HTTPS 443

Zaktualizuj istniejące reguły publikacji (po włączeniu hosta rozszerzenia)

Notatka

Pakiet aktualizacji usługi Azure Stack Hub 1808 nie włącza jeszcze hosta rozszerzenia. Umożliwia przygotowanie środowiska hosta rozszerzeń 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.

Notatka

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