Preparación de un host de extensiones de Azure Stack Hub
El host de extensiones protege a Azure Stack Hub al reducir el número de puertos TCP/IP necesarios. En este artículo, se explica cómo preparar Azure Stack Hub para el host de extensiones, que se habilita automáticamente mediante una actualización de Azure Stack Hub posterior a la actualización 1808. Este artículo se aplica a las actualizaciones 1808, 1809 y 1811 de Azure Stack Hub.
Requisitos de certificados
El host de extensiones implementa dos nuevos espacios de nombres de dominio que permiten garantizar entradas de host únicas para cada extensión del portal. Los nuevos espacios de nombres de dominio requieren dos certificados comodín adicionales para garantizar una comunicación segura.
En la tabla, se muestran los nuevos espacios de nombres y los certificados asociados:
Carpeta de implementación | Nombres alternativos del firmante (SAN) y firmante del certificado requeridos | Ámbito (por región) | Espacio de nombres del subdominio |
---|---|---|---|
Administración del host de extensiones | *.adminhosting.<región>.<fqdn> (certificados SSL comodín) | Administración del host de extensiones | adminhosting.<región>.<fqdn> |
Host de extensiones público | *.hosting.<región>.<fqdn> (certificados SSL comodín) | Host de extensiones público | hosting.<región>.<fqdn> |
Para consultar los requisitos detallados de los certificados, consulte Requisitos de certificados de infraestructura de clave pública de Azure Stack Hub.
Creación de una solicitud de firma de certificados
La herramienta Readiness Checker de Azure Stack Hub permite crear una solicitud de firma de certificado para los dos nuevos certificados SSL obligatorios. Siga los pasos del artículo Generación de solicitudes de firma de certificados de Azure Stack Hub.
Nota:
En función de cómo se hayan solicitado los certificados SSL, es posible que pueda omitir este paso.
Validación de nuevos certificados
Abra PowerShell con permisos elevados en el host de ciclo de vida de hardware o en la estación de trabajo de administración de Azure Stack Hub.
Ejecute el siguiente cmdlet para instalar la herramienta Readiness Checker de Azure Stack Hub:
Install-Module -Name Microsoft.AzureStack.ReadinessChecker
Ejecute el script siguiente para crear la estructura de carpetas necesaria:
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}
Nota:
Si implementa con Microsoft Entra ID Federated Services (AD FS), se deben agregar los directorios siguientes a $directories en el script:
ADFS
,Graph
.Coloque los certificados existentes, que se utilizan actualmente en Azure Stack Hub, en los directorios adecuados. Por ejemplo, coloque el certificado de ARM de administrador en la carpeta
Arm Admin
. A continuación, coloque los certificados de hospedaje recién creados en los directoriosAdmin extension host
yPublic extension host
.Ejecute el cmdlet siguiente para iniciar la comprobación de certificados:
$pfxPassword = Read-Host -Prompt "Enter PFX Password" -AsSecureString Start-AzsReadinessChecker -CertificatePath c:\certificates -pfxPassword $pfxPassword -RegionName east -FQDN azurestack.contoso.com -IdentitySystem AAD
Compruebe que la salida y todos los certificados pasen todas las pruebas.
Importación de certificados del host de extensiones
Para seguir los pasos que se indican a continuación, utilice un equipo que pueda conectarse al punto de conexión con privilegios de Azure Stack Hub. Asegúrese de que tiene acceso a los nuevos archivos de certificado de ese equipo.
Para seguir los pasos que se indican a continuación, utilice un equipo que pueda conectarse al punto de conexión con privilegios de Azure Stack Hub. Asegúrese de que tiene acceso a los nuevos archivos de certificado de ese equipo.
Abra PowerShell ISE para ejecutar los siguientes bloques de script.
Importe el certificado del punto de conexión de hospedaje de administración.
$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 }
Importe el certificado del punto de conexión de hospedaje.
$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 }
Actualización de la configuración de DNS
Nota:
Este paso no es necesario si usa la delegación de zonas DNS para la integración de DNS. Si se han configurado registros A de un determinado host para publicar puntos de conexión de Azure Stack Hub, será necesario crear dos registros A más:
IP | Hostname | Tipo |
---|---|---|
<IP> | *.Adminhosting.<Región>.<FQDN> | A |
<IP> | *.Hosting.<Región>.<FQDN> | Un |
Las direcciones IP asignadas pueden recuperarse utilizando un punto de conexión con privilegios y ejecutando el cmdlet Get-AzureStackStampInformation.
Puertos y protocolos
En el artículo Integración de Azure Stack Hub en centro de datos: publicar puntos de conexión, se describen los puertos y protocolos que requieren comunicaciones entrantes para publicar puntos de conexión de Azure Stack Hub antes del lanzamiento del host de extensiones.
Publicación de nuevos puntos de conexión
Hay dos nuevos puntos de conexión que deben publicarse a través del firewall. Las direcciones IP asignadas del grupo VIP público se pueden recuperar mediante el siguiente código que debe ejecutarse desde el punto de conexión con privilegios del entorno de 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
Salida de ejemplo
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
Nota:
Realice este cambio antes de habilitar el host de extensiones. De este modo, los portales de Azure Stack Hub estarán disponibles en todo momento.
Punto de conexión (VIP) | Protocolo | Puertos |
---|---|---|
Hospedaje de administración | HTTPS | 443 |
Hospedaje | HTTPS | 443 |
Actualización de las reglas de publicación existentes (tras las habilitación de del host de extensiones)
Nota:
El paquete de actualización de Azure Stack Hub 1808 no habilita todavía el host de extensiones. Permite prepararse para el host de extensiones al importar los certificados necesarios. No cierre ningún puerto antes de que el host de extensiones se habilite automáticamente con un paquete de actualización de Azure Stack Hub posterior a la versión 1808.
Los siguientes puertos de punto de conexión existentes deben cerrarse en las reglas del firewall existentes.
Nota:
Es recomendable que estos puertos se cierren una vez que la validación se ha realizado correctamente.
Punto de conexión (VIP) | Protocolo | Puertos |
---|---|---|
Portal (administrador) | HTTPS | 12495 12499 12646 12647 12648 12649 12650 13001 13003 13010 13011 13012 13020 13021 13026 30015 |
Portal (usuario) | HTTPS | 12495 12649 13001 13010 13011 13012 13020 13021 30015 13003 |
Azure Resource Manager (administrador) | HTTPS | 30024 |
Azure Resource Manager (usuario) | HTTPS | 30024 |
Pasos siguientes
- Más información acerca de la integración del firewall.
- Más información acerca de la generación de solicitudes de firma de certificado de Azure Stack Hub.