Geheimen roteren in Azure Stack Hub
Dit artikel bevat richtlijnen voor het uitvoeren van geheimrotatie, om veilige communicatie met Azure Stack Hub en services te onderhouden.
Overzicht
Azure Stack Hub maakt gebruik van geheimen voor veilige communicatie met infrastructuurbronnen en -services. Om de integriteit van de Azure Stack Hub te behouden, moeten operators geheimen kunnen roteren met frequenties die consistent zijn met de beveiligingsvereisten van hun organisatie.
Wanneer geheimen bijna zijn verlopen, worden de volgende waarschuwingen gegenereerd in de beheerdersportal. Als u de roulatie van geheimen voltooit, worden deze waarschuwingen opgelost:
- Wachtwoordverloop van serviceaccount in behandeling
- Verlopen van intern certificaat in behandeling
- Verlopen van extern certificaat in behandeling
Waarschuwing
Er zijn twee fasen van waarschuwingen die worden geactiveerd in de beheerdersportal vóór de vervaldatum:
- 90 dagen vóór de vervaldatum wordt er een waarschuwing gegenereerd.
- 30 dagen vóór de vervaldatum wordt er een kritieke waarschuwing gegenereerd.
Het is essentieel dat u geheimrotatie voltooit als u deze meldingen ontvangt. Als u dit niet doet, kan dit leiden tot het verlies van workloads en mogelijk Azure Stack Hub zelf opnieuw kunt uitvoeren.
Zie Status en waarschuwingen bewaken in de app voor meer informatie over het bewaken en herstellen van waarschuwingen Azure Stack Hub.
Notitie
Azure Stack Hub-omgevingen vóór versie 1811 kunnen waarschuwingen worden weergeven voor verlopen van een intern certificaat of geheimen die in behandeling zijn. Deze waarschuwingen zijn onnauwkeurig en moeten worden genegeerd zonder dat er een interne geheimrotatie wordt uitgevoerd. Onnauwkeurige waarschuwingen voor verlopen van interne geheimen zijn een bekend probleem dat in 1811 is opgelost. Interne geheimen verlopen alleen als de omgeving al twee jaar actief is.
Vereisten
Het wordt ten zeerste aanbevolen dat u een ondersteunde versie van Azure Stack Hub gebruikt en ervoor zorgt dat u de nieuwste beschikbare hotfix gebruikt voor de Azure Stack Hub-versie die uw exemplaar wordt uitgevoerd. Als u bijvoorbeeld 2008 gebruikt, moet u ervoor zorgen dat u de meest recente hotfix hebt geïnstalleerd die beschikbaar is voor 2008.
Belangrijk
Voor versies vóór 1811:
- Als geheimrotatie al is uitgevoerd, moet u bijwerken naar versie 1811 of hoger voordat u geheimrotatie opnieuw kunt uitvoeren. Geheimrotatie moet worden uitgevoerd via het bevoegde eindpunt en vereist Azure Stack Hub operatorreferenties. Als u niet weet of geheimrotatie is uitgevoerd in uw omgeving, werkt u bij naar 1811 voordat u geheimrotatie gaat uitvoeren.
- U hoeft geen geheimen te roteren om extensiehostcertificaten toe te voegen. Volg de instructies in het artikel Extensiehost voorbereiden voor Azure Stack Hub extensiehostcertificaten toe te voegen.
Informeer uw gebruikers over geplande onderhoudsbewerkingen. Plan normale onderhoudsvensters zoveel mogelijk tijdens niet-werkuren. Onderhoudsbewerkingen kunnen van invloed zijn op zowel werkbelastingen van gebruikers als portalbewerkingen.
Tijdens het rouleren van geheimen kunnen operators waarschuwingen zien die worden geopend en automatisch worden gesloten. Dit is verwacht gedrag en deze waarschuwingen kunnen worden genegeerd. Operators kunnen de geldigheid van deze waarschuwingen controleren met behulp van de PowerShell-cmdlet Test-AzureStack. Operators die System Center Operations Manager gebruiken om Azure Stack Hub-systemen te bewaken, kunnen met het plaatsen van een systeem in de onderhoudsmodus hun ITSM-systemen niet bereiken, maar blijven waarschuwen als het Azure Stack Hub-systeem onbereikbaar wordt.
Externe geheimen roteren
Belangrijk
Externe geheimrotatie voor:
- Niet-certificaatgeheimen, zoals beveiligde sleutels en tekenreeksen , moeten handmatig worden uitgevoerd door de beheerder. Dit omvat wachtwoorden van gebruikers- en beheerdersaccounts en wachtwoorden voor netwerksschakelaars.
- RP-geheimen (Value-Add Resource Provider) worden afzonderlijk behandeld:
- BMC management controller referenties (Baseboard management controller) is ook een handmatig proces, zoals verderhand in dit artikel wordt beschreven.
Deze sectie bevat informatie over roulatie van certificaten die worden gebruikt om extern gerichte services te beveiligen. Deze certificaten worden geleverd door de Azure Stack Hub Operator voor de volgende services:
- Beheerdersportal
- Openbare portal
- Beheerdersaccounts Azure Resource Manager
- Wereldwijde Azure Resource Manager
- Beheerdersaccounts Key Vault
- Key Vault
- Admin Extension Host
- ACS (inclusief blob-, tabel- en wachtrijopslag)
- ADFS*
- Graph*
*Van toepassing bij het gebruik van Active Directory Federated Services (AD FS).
Voorbereiding
Vóór roulatie van externe geheimen:
Voer de
Test-AzureStackPowerShell-cmdlet uit met behulp van de-group SecretRotationReadinessparameter om te controleren of alle testuitvoer in orde is voordat u geheimen roteert.Bereid een nieuwe set vervangende externe certificaten voor:
De nieuwe set moet overeenkomen met de certificaatspecificaties die worden beschreven in Azure Stack Hub PKI-certificaatvereisten.
Genereer een aanvraag voor certificaat ondertekening (CSR) die moet worden ingediend bij uw certificeringsinstantie (CA). Gebruik de stappen die worden beschreven in Aanvragen voor certificaat ondertekenen genereren en bereid ze voor op gebruik in uw Azure Stack Hub-omgeving met behulp van de stappen in PKI-certificaten voorbereiden. Azure Stack Hub ondersteunt roulatie van geheimen voor externe certificaten van een nieuwe certificeringsinstantie (CA) in de volgende contexten:
Rouleren vanuit CA Roteren naar CA Azure Stack Hub versieondersteuning Self-Signed Enterprise 1903 & later Self-Signed Self-Signed Niet ondersteund Self-Signed Openbaar* 1803 & later Enterprise Enterprise 1803 & later; 1803-1903 als DEZELFDE ondernemings-CA als gebruikt tijdens de implementatie Enterprise Self-Signed Niet ondersteund Enterprise Openbaar* 1803 & later Openbaar* Enterprise 1903 & later Openbaar* Self-Signed Niet ondersteund Openbaar* Openbaar* 1803 & later *Onderdeel van het *.
Zorg ervoor dat u de certificaten valideert die u voorbereidt met de stappen die worden beschreven in PKI-certificaten valideren
Zorg ervoor dat er geen speciale tekens in het wachtwoord staan,
$zoals bijvoorbeeld ,*,#,@)or'.Zorg ervoor dat de PFX-versleuteling TripleDES-SHA1 is. Als u een probleem hebt, zie Veelvoorkomende problemen met PKI Azure Stack Hub certificaten oplossen.
Sla een back-up op naar de certificaten die worden gebruikt voor roulatie op een veilige back-uplocatie. Als uw rotatie wordt uitgevoerd en vervolgens mislukt, vervangt u de certificaten in de bestands share door de back-upkopien voordat u de rotatie opnieuw uit te voert. Bewaar back-ups op de veilige back-uplocatie.
Maak een bestandsshare die u kunt openen vanaf de ERCS-VM's. De bestands share moet leesbaar en beschrijfbaar zijn voor de CloudAdmin-identiteit .
Open een PowerShell ISE-console vanaf een computer waarop u toegang hebt tot de bestandsshare. Navigeer naar uw bestandsshare, waar u mapjes maakt om uw externe certificaten te plaatsen.
Download CertDirectoryMaker.ps1 naar uw netwerkbestandsshare en voer het script uit. Het script maakt een mapstructuur die voldoet aan .\Certificates\AAD of .\Certificates\ADFS, afhankelijk van uw id-provider. De mapstructuur moet beginnen met de map \Certificates, gevolgd door ALLEEN een map \AADof \ADFS. Alle resterende subdirectorieën zijn opgenomen in de voorgaande structuur. Bijvoorbeeld:
- Bestands share = \\IPAddress>\<ShareName>
- Basismap van certificaat voor Azure AD-provider = \Certificates\AAD
- Volledig pad = \\IPAddress>\<ShareName>\Certificates\AAD
Belangrijk
Wanneer u later gaat
Start-SecretRotationuitvoeren, wordt de mapstructuur gevalideerd. Een mapstructuur die niet compatibel is, geeft de volgende fout:Cannot bind argument to parameter 'Path' because it is null. + CategoryInfo : InvalidData: (:) [Test-Certificate], ParameterBindingValidationException + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Test-Certificate + PSComputerName : xxx.xxx.xxx.xxxKopieer de nieuwe set vervangende externe certificaten die u in stap 2 hebt gemaakt, naar de map \Certificates\IdentityProvider> die u in stap 6 hebt gemaakt. Zorg ervoor dat u de indeling
cert.<regionName>.<externalFQDN>voor <CertName volgt>.Hier is een voorbeeld van een mapstructuur voor de Azure AD-id-provider:
<ShareName> │ └───Certificates └───AAD ├───ACSBlob │ <CertName>.pfx │ ├───ACSQueue │ <CertName>.pfx │ ├───ACSTable │ <CertName>.pfx │ ├───Admin Extension Host │ <CertName>.pfx │ ├───Admin Portal │ <CertName>.pfx │ ├───ARM Admin │ <CertName>.pfx │ ├───ARM Public │ <CertName>.pfx │ ├───KeyVault │ <CertName>.pfx │ ├───KeyVaultInternal │ <CertName>.pfx │ ├───Public Extension Host │ <CertName>.pfx │ └───Public Portal <CertName>.pfx
Rotatie
Voltooi de volgende stappen om externe geheimen te roteren:
Gebruik het volgende PowerShell-script om de geheimen te roteren. Voor het script is toegang tot een PRIVILEGED EndPoint-sessie (PEP) vereist. De PEP is toegankelijk via een externe PowerShell-sessie op de virtuele machine (VM) die als host voor het PEP wordt gebruikt. Als u een geïntegreerd systeem gebruikt, zijn er drie exemplaren van de PEP, die elk worden uitgevoerd binnen een VM (Prefix-ERCS01, Prefix-ERCS02 of Prefix-ERCS03) op verschillende hosts.
# Create a PEP Session winrm s winrm/config/client '@{TrustedHosts= "<IP_address_of_ERCS>"}' $PEPCreds = Get-Credential $PEPSession = New-PSSession -ComputerName <IP_address_of_ERCS_Machine> -Credential $PEPCreds -ConfigurationName "PrivilegedEndpoint" -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US) # Run Secret Rotation $CertPassword = ConvertTo-SecureString '<Cert_Password>' -AsPlainText -Force $CertShareCreds = Get-Credential $CertSharePath = "<Network_Path_Of_CertShare>" Invoke-Command -Session $PEPsession -ScriptBlock { param($certSharePath, $certPassword, $certShareCreds ) Start-SecretRotation -PfxFilesPath $certSharePath -PathAccessCredential $certShareCreds -CertificatePassword $certPassword } -ArgumentList ($certSharePath, $certPassword, $certShareCreds) Remove-PSSession -Session $PEPSessionMet het script voert u de volgende stappen uit:
Hiermee maakt u een PowerShell-sessie met het Bevoegde eindpunt met behulp van het CloudAdmin-account en slaat u de sessie op als een variabele. Deze variabele wordt gebruikt als parameter in de volgende stap.
Voert Invoke-Command uit, en geeft de VARIABELE PEP-sessie door als parameter .
Wordt
Start-SecretRotationuitgevoerd in de PEP-sessie met behulp van de volgende parameters:-PfxFilesPath: Het netwerkpad naar de map Certificaten die u eerder hebt gemaakt.-PathAccessCredential: Het PSCredential-object voor referenties voor de share.-CertificatePassword: Een beveiligde tekenreeks van het wachtwoord dat wordt gebruikt voor alle gemaakte PFX-certificaatbestanden.
Externe geheimrotatie duurt ongeveer een uur. Nadat de console is voltooid, wordt een bericht
ActionPlanInstanceID ... CurrentStatus: Completedweergegeven, gevolgd doorAction plan finished with status: 'Completed'. Verwijder uw certificaten uit de share die u hebt gemaakt in de sectie Voorbereiding en sla ze op de veilige back-uplocatie op.Notitie
Als het rouleren van geheimen mislukt, volgt u de instructies in het foutbericht en wordt u opnieuw uitgevoerd
Start-SecretRotationmet de-ReRunparameter .Start-SecretRotation -ReRunNeem contact op met ondersteuning als er herhaalde mislukte geheimrotaties optreden.
Voer eventueel het validatieprogramma Test-AzureStack uit met behulp van het volgende script om te bevestigen dat alle externe certificaten zijn geroteerd:
Test-AzureStack -Include AzsExternalCertificates -DetailedResults -debug
Interne geheimen roteren
Interne geheimen omvatten certificaten, wachtwoorden, beveiligde tekenreeksen en sleutels die worden gebruikt door de Azure Stack Hub-infrastructuur zonder tussenkomst van de Azure Stack Hub-operator. Rotatie van interne geheimen is alleen vereist als u vermoedt dat er een is aangetast of als u een vervaldatumwaarschuwing hebt ontvangen.
Voor implementaties vóór 1811 kunnen waarschuwingen worden weergeven voor verlopen van een intern certificaat of geheim in behandeling. Deze waarschuwingen zijn onnauwkeurig en moeten worden genegeerd en zijn een bekend probleem dat in 1811 is opgelost.
Voltooi de volgende stappen om interne geheimen te roteren:
Voer het volgende PowerShell-script uit. Voor interne geheimrotatie gebruikt de sectie 'Geheimrotatie
-Internaluitvoeren' alleen de parameter voor de-Internal:# Create a PEP Session winrm s winrm/config/client '@{TrustedHosts= "<IP_address_of_ERCS>"}' $PEPCreds = Get-Credential $PEPSession = New-PSSession -ComputerName <IP_address_of_ERCS_Machine> -Credential $PEPCreds -ConfigurationName "PrivilegedEndpoint" -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US) # Run Secret Rotation Invoke-Command -Session $PEPSession -ScriptBlock { Start-SecretRotation -Internal } Remove-PSSession -Session $PEPSessionNotitie
Voor versies van vóór 1811 is de vlag niet
-Internalvereist.Nadat de console is voltooid, wordt een bericht
ActionPlanInstanceID ... CurrentStatus: Completedweergegeven, gevolgd doorAction plan finished with status: 'Completed'.Notitie
Als het roteren van geheimen mislukt, volgt u de instructies in het foutbericht en voert u
Start-SecretRotationopnieuw uit met de parameters-Internalen-ReRun.Start-SecretRotation -Internal -ReRunNeem contact op met ondersteuning als er herhaalde mislukte geheimrotaties optreden.
De BMC-referentie bijwerken
Het basisbord management controller de fysieke status van uw servers. Raadpleeg de hardwareleverancier original equipment manufacturer (OEM) voor instructies voor het bijwerken van de gebruikersnaam en het wachtwoord van de BMC.
Notitie
Uw OEM biedt mogelijk aanvullende beheer-apps. Het bijwerken van de gebruikersnaam of het wachtwoord voor andere beheer-apps heeft geen invloed op de gebruikersnaam of het wachtwoord van de BMC.
- Werk de BMC op de fysieke Azure Stack Hub servers bij door uw OEM-instructies te volgen. De gebruikersnaam en het wachtwoord voor elke BMC in uw omgeving moeten hetzelfde zijn. De BMC-gebruikersnamen mogen niet langer zijn dan 16 tekens.
- Het is niet langer vereist dat u eerst de BMC-referenties op de fysieke Azure Stack Hub servers bij te werken door uw OEM-instructies te volgen. De gebruikersnaam en het wachtwoord voor elke BMC in uw omgeving moeten hetzelfde zijn en mogen niet langer zijn dan 16 tekens.
Open een bevoorrecht eindpunt in Azure Stack Hub sessies. Zie Using the privileged endpoint in Azure Stack Hub (Het bevoegde eindpunt gebruiken in Azure Stack Hub) voor instructies.
Voer na het openen van een bevoegde eindpuntsessie een van de onderstaande PowerShell-scripts uit, die gebruikmaken van Invoke-Command set-BmcCredential uit te voeren. Als u de optionele parameter -BypassBMCUpdate gebruikt met Set-BMCCredential, worden de referenties in de BMC niet bijgewerkt. Alleen de Azure Stack Hub interne gegevensstore wordt bijgewerkt. Geef uw bevoegde eindpuntsessievariabele door als parameter.
Hier is een voorbeeld van een PowerShell-script dat vraagt om gebruikersnaam en wachtwoord:
# Interactive Version $PEPIp = "<Privileged Endpoint IP or Name>" # You can also use the machine name instead of IP here. $PEPCreds = Get-Credential "<Domain>\CloudAdmin" -Message "PEP Credentials" $NewBmcPwd = Read-Host -Prompt "Enter New BMC password" -AsSecureString $NewBmcUser = Read-Host -Prompt "Enter New BMC user name" $PEPSession = New-PSSession -ComputerName $PEPIp -Credential $PEPCreds -ConfigurationName "PrivilegedEndpoint" -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US) Invoke-Command -Session $PEPSession -ScriptBlock { # Parameter BmcPassword is mandatory, while the BmcUser parameter is optional. Set-BmcCredential -BmcPassword $using:NewBmcPwd -BmcUser $using:NewBmcUser } Remove-PSSession -Session $PEPSessionU kunt de gebruikersnaam en het wachtwoord ook coderen in variabelen, wat mogelijk minder veilig is:
# Static Version $PEPIp = "<Privileged Endpoint IP or Name>" # You can also use the machine name instead of IP here. $PEPUser = "<Privileged Endpoint user for example Domain\CloudAdmin>" $PEPPwd = ConvertTo-SecureString '<Privileged Endpoint Password>' -AsPlainText -Force $PEPCreds = New-Object System.Management.Automation.PSCredential ($PEPUser, $PEPPwd) $NewBmcPwd = ConvertTo-SecureString '<New BMC Password>' -AsPlainText -Force $NewBmcUser = "<New BMC User name>" $PEPSession = New-PSSession -ComputerName $PEPIp -Credential $PEPCreds -ConfigurationName "PrivilegedEndpoint" -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US) Invoke-Command -Session $PEPSession -ScriptBlock { # Parameter BmcPassword is mandatory, while the BmcUser parameter is optional. Set-BmcCredential -BmcPassword $using:NewBmcPwd -BmcUser $using:NewBmcUser } Remove-PSSession -Session $PEPSession
Naslag: Start-SecretRotation cmdlet
De cmdlet Start-SecretRotation roteert de infrastructuurgeheimen van een Azure Stack Hub systeem. Deze cmdlet kan alleen worden uitgevoerd op het Azure Stack Hub eindpunt met bevoegdheden, Invoke-Command door gebruik te maken van een scriptblok dat de PEP-sessie doorgeeft in de -Session parameter . Standaard worden alleen de certificaten van alle eindpunten van de externe netwerkinfrastructuur geroteerd.
| Parameter | Type | Vereist | Positie | Standaard | Beschrijving |
|---|---|---|---|---|---|
PfxFilesPath |
Tekenreeks | Niet waar | Naam | Geen | Het bestandssharepad naar de map \Certificates met alle externe netwerk eindpuntcertificaten. Alleen vereist bij het roteren van externe geheimen. De eindmap moet \Certificates zijn. |
CertificatePassword |
SecureString | Niet waar | Naam | Geen | Het wachtwoord voor alle certificaten die zijn opgegeven in -PfXFilesPath. Vereiste waarde als PfxFilesPath wordt opgegeven wanneer externe geheimen worden geroteerd. |
Internal |
Tekenreeks | Niet waar | Naam | Geen | Interne vlag moet op elk gewenst moment worden gebruikt Azure Stack Hub operator interne infrastructuurgeheimen wil roteren. |
PathAccessCredential |
PSCredential | Niet waar | Naam | Geen | De PowerShell-referentie voor de bestandsshare van de map \Certificates die alle externe netwerk eindpuntcertificaten bevat. Alleen vereist bij het roteren van externe geheimen. |
ReRun |
SwitchParameter | Niet waar | Naam | Geen | Moet worden gebruikt op elk moment dat geheimrotatie opnieuw wordt geprobeerd na een mislukte poging. |
Syntax
Voor roulatie van externe geheimen
Start-SecretRotation [-PfxFilesPath <string>] [-PathAccessCredential <PSCredential>] [-CertificatePassword <SecureString>]
Voor interne geheimrotatie
Start-SecretRotation [-Internal]
Voor roulatie van externe geheimen opnieuw
Start-SecretRotation [-ReRun]
Voor het opnieuw roteren van interne geheimen
Start-SecretRotation [-ReRun] [-Internal]
Voorbeelden
Alleen interne infrastructuurgeheimen roteren
Deze opdracht moet worden uitgevoerd via het bevoegde Azure Stack Hub van uw omgeving.
PS C:\> Start-SecretRotation -Internal
Met deze opdracht roteert u alle infrastructuurgeheimen die zichtbaar zijn voor Azure Stack Hub interne netwerk.
Alleen externe infrastructuurgeheimen roteren
# Create a PEP Session
winrm s winrm/config/client '@{TrustedHosts= "<IP_address_of_ERCS>"}'
$PEPCreds = Get-Credential
$PEPSession = New-PSSession -ComputerName <IP_address_of_ERCS> -Credential $PEPCreds -ConfigurationName "PrivilegedEndpoint" -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)
# Create Credentials for the fileshare
$CertPassword = ConvertTo-SecureString '<CertPasswordHere>' -AsPlainText -Force
$CertShareCreds = Get-Credential
$CertSharePath = "<NetworkPathOfCertShare>"
# Run Secret Rotation
Invoke-Command -Session $PEPsession -ScriptBlock {
param($certSharePath, $certPassword, $certShareCreds )
Start-SecretRotation -PfxFilesPath $certSharePath -PathAccessCredential $certShareCreds -CertificatePassword $certPassword
} -ArgumentList ($certSharePath, $certPassword, $certShareCreds)
Remove-PSSession -Session $PEPSession
Met deze opdracht roteert u de TLS-certificaten die worden gebruikt Azure Stack Hub van de externe netwerkinfrastructuur van de netwerkinfrastructuur.
Interne en externe infrastructuurgeheimen roteren (alleen vóór 1811 )
Belangrijk
Deze opdracht is alleen van Azure Stack Hub vóór 1811 , omdat de rotatie is gesplitst voor interne en externe certificaten.
Vanaf 1811+ kunt u niet meer interne en externe certificaten roteren.
# Create a PEP Session
winrm s winrm/config/client '@{TrustedHosts= "<IP_address_of_ERCS>"}'
$PEPCreds = Get-Credential
$PEPSession = New-PSSession -ComputerName <IP_address_of_ERCS> -Credential $PEPCreds -ConfigurationName "PrivilegedEndpoint" -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)
# Create Credentials for the fileshare
$CertPassword = ConvertTo-SecureString '<CertPasswordHere>' -AsPlainText -Force
$CertShareCreds = Get-Credential
$CertSharePath = "<NetworkPathOfCertShare>"
# Run Secret Rotation
Invoke-Command -Session $PEPSession -ScriptBlock {
Start-SecretRotation -PfxFilesPath $using:CertSharePath -PathAccessCredential $using:CertShareCreds -CertificatePassword $using:CertPassword
}
Remove-PSSession -Session $PEPSession
Met deze opdracht roteert u de infrastructuurgeheimen die worden blootgesteld aan Azure Stack Hub interne netwerk en de TLS-certificaten die worden gebruikt voor eindpunten van de externe netwerkinfrastructuur van Azure Stack Hub van de Azure Stack Hub. Start-SecretRotation worden alle door stack gegenereerde geheimen geroteerd en omdat er certificaten zijn, worden ook externe eindpuntcertificaten geroteerd.