Rotera hemligheter i Azure Stack Hub
Den här artikeln innehåller vägledning för att utföra hemlig rotation för att upprätthålla säker kommunikation med resurser och tjänster i Azure Stack Hub-infrastrukturen.
Översikt
Azure Stack Hub använder hemligheter för att upprätthålla säker kommunikation med infrastrukturresurser och tjänster. För att upprätthålla integriteten i Azure Stack Hub-infrastrukturen behöver operatörerna kunna rotera hemligheter med frekvenser som överensstämmer med organisationens säkerhetskrav.
När hemligheter snart upphör att gälla genereras följande aviseringar i administratörsportalen. Genom att slutföra hemlighetsrotationen löser du dessa aviseringar:
- Lösenordet för tjänstkontot upphör att gälla
- Internt certifikat upphör snart att gälla
- Externt certifikat upphör snart att gälla
Varning
Det finns två faser av aviseringar som utlöses i administratörsportalen före förfallodatum:
- 90 dagar före förfallodatum genereras en varningsavisering.
- 30 dagar innan en kritisk avisering har upphört att gälla genereras.
Det är viktigt att du slutför hemlig rotation om du får dessa meddelanden. Om du inte gör det kan det orsaka förlust av arbetsbelastningar och eventuell omdistribution av Azure Stack Hub på egen bekostnad!
Mer information om övervakning och reparation av aviseringar finns i Övervaka hälsa och aviseringar i Azure Stack Hub.
Anteckning
Azure Stack Hub-miljöer i versioner före 1811 kan se aviseringar om väntande interna certifikat eller hemliga förfallodatum. Dessa aviseringar är felaktiga och bör ignoreras utan att köra intern hemlig rotation. Felaktiga internhemlighetsaviseringar är ett känt problem som löstes 1811. Interna hemligheter upphör inte att gälla om inte miljön har varit aktiv i två år.
Förutsättningar
Vi rekommenderar starkt att du kör en version av Azure Stack Hub som stöds och att du använder den senaste tillgängliga snabbkorrigeringen för Azure Stack Hub-versionen som din instans kör. Om du till exempel kör 2008 kontrollerar du att du har installerat den senaste snabbkorrigeringen som är tillgänglig för 2008.
Viktigt
För versioner före 1811:
- Om hemlig rotation redan har utförts måste du uppdatera till version 1811 eller senare innan du utför hemlig rotation igen. Hemlig rotation måste köras via den privilegierade slutpunkten och kräver autentiseringsuppgifter för Azure Stack Hub-operatör. Om du inte vet om hemlig rotation har körts i din miljö uppdaterar du till 1811 innan du utför hemlig rotation.
- Du behöver inte rotera hemligheter för att lägga till värdcertifikat för tillägg. Följ anvisningarna i artikeln Förbered för tilläggsvärd för Azure Stack Hub för att lägga till värdcertifikat för tillägg.
Meddela användarna om planerade underhållsåtgärder. Schemalägg normala underhållsperioder så mycket som möjligt under kontorstid. Underhållsåtgärder kan påverka både användararbetsbelastningar och portalåtgärder.
Generera begäranden om certifikatsignering för Azure Stack Hub.
Under roteringen av hemligheter kan operatörerna märka att aviseringar öppnas och stängs automatiskt. Det här beteendet är förväntat och aviseringar kan ignoreras. Operatörer kan kontrollera giltigheten för dessa aviseringar med powershell-cmdleten Test-AzureStack. För operatörer som använder System Center Operations Manager för att övervaka Azure Stack Hub-system förhindrar placering av ett system i underhållsläge dessa aviseringar från att nå sina ITSM-system. Aviseringar fortsätter dock att komma om Azure Stack Hub-systemet inte kan nås.
Rotera externa hemligheter
Viktigt
Extern hemlighetsrotation för:
- Icke-certifikathemligheter som säkra nycklar och strängar måste göras manuellt av administratören. Detta inkluderar lösenord för användar- och administratörskonto och lösenord för nätverksväxling.
- RP-hemligheter (Value-Add Resource Provider) omfattas av separata riktlinjer:
- BMC-autentiseringsuppgifter (Baseboard Management Controller) är en manuell process som beskrivs senare i den här artikeln.
- Azure Container Registry externa certifikat är en manuell process som beskrivs senare i den här artikeln.
Det här avsnittet beskriver rotation av certifikat som används för att skydda externa tjänster. Dessa certifikat tillhandahålls av Azure Stack Hub-operatorn för följande tjänster:
- Administratörsportal
- Offentlig portal
- Administratör för Azure Resource Manager
- Global Azure Resource Manager
- Administratör Key Vault
- Key Vault
- Admin-tilläggsvärd
- ACS (inklusive blob, tabell och kölagring)
- ADFS1
- Diagram1
- Container Registry2
1Tillämpligt när du använder Active Directory Federated Services (ADFS).
2Tillämpligt när du använder Azure Container Registry (ACR).
Förberedelse
Före rotation av externa hemligheter:
Test-AzureStack
Kör PowerShell-cmdleten med parametern-group SecretRotationReadiness
för att bekräfta att alla testutdata är felfria innan hemligheter roteras.Förbereda en ny uppsättning externa ersättningscertifikat:
Den nya uppsättningen måste matcha certifikatspecifikationerna som beskrivs i PKI-certifikatkraven för Azure Stack Hub.
Generera en begäran om certifikatsignering (CSR) som ska skickas till certifikatutfärdaren (CA). Använd stegen som beskrivs i Generera begäranden om certifikatsignering och förbered dem för användning i Azure Stack Hub-miljön med hjälp av stegen i Förbereda PKI-certifikat. Azure Stack Hub stöder hemlig rotation för externa certifikat från en ny certifikatutfärdare (CA) i följande kontexter:
Rotera från CA Rotera till CA Stöd för Azure Stack Hub-version Self-Signed Stora företag 1903 & senare Self-Signed Self-Signed Stöds inte Self-Signed Offentliga* 1803 & senare Stora företag Stora företag 1803 & senare; 1803-1903 om SAMMA företagscertifikatutfärdarcertifikatutfärdande som används vid distribution Stora företag Self-Signed Stöds inte Stora företag Offentliga* 1803 & senare Offentliga* Stora företag 1903 & senare Offentliga* Self-Signed Stöds inte Offentliga* Offentliga* 1803 & senare *En del av Windows Trusted Root Program.
Se till att verifiera de certifikat som du förbereder med de steg som beskrivs i Verifiera PKI-certifikat
Kontrollera att det inte finns några specialtecken i lösenordet, till exempel
$
,*
,#
,@
,or
)'.Kontrollera att PFX-krypteringen är TripleDES-SHA1. Om du stöter på ett problem kan du läsa Åtgärda vanliga problem med Azure Stack Hub PKI-certifikat.
Lagra en säkerhetskopia till de certifikat som används för rotation på en säker säkerhetskopieringsplats. Om rotationen körs och sedan misslyckas ersätter du certifikaten i filresursen med säkerhetskopiorna innan du kör rotationen igen. Behåll säkerhetskopior på den säkra säkerhetskopieringsplatsen.
Skapa en filresurs som du kan komma åt från de virtuella ERCS-datorerna. Filresursen måste vara läsbar och skrivbar för CloudAdmin-identiteten .
Öppna en PowerShell ISE-konsol från en dator där du har åtkomst till filresursen. Gå till filresursen, där du skapar kataloger för att placera dina externa certifikat.
Skapa en mapp i filresursen med namnet
Certificates
. I mappen certifikat skapar du en undermapp med namnetAAD
ellerADFS
, beroende på vilken identitetsprovider som hubben använder. Till exempel .\Certificates\AAD eller .\Certificates\ADFS. Inga andra mappar förutom certifikatmappen och undermappen för identitetsprovidern bör skapas här.Kopiera den nya uppsättningen externa ersättningscertifikat som skapades i steg 2 till mappen .\Certificates\<IdentityProvider> som skapades i steg 6. Som nämnts ovan måste undermappen för identitetsprovidern vara
AAD
ellerADFS
. Se till att de alternativa ämnesnamnen (SAN) för dina externa ersättningscertifikat följer detcert.<regionName>.<externalFQDN>
format som anges i PKI-certifikatkraven (Public Key Infrastructure) i Azure Stack Hub.Här är ett exempel på en mappstruktur för Microsoft Entra identitetsprovider:
<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 │ ├───Container Registry* │ <CertName>.pfx │ ├───KeyVault │ <CertName>.pfx │ ├───KeyVaultInternal │ <CertName>.pfx │ ├───Public Extension Host │ <CertName>.pfx │ └───Public Portal <CertName>.pfx
*Gäller när du använder Azure Container Registry (ACR) för Microsoft Entra-ID och ADFS.
Anteckning
Om du roterar externa Container Registry-certifikat måste du manuellt skapa en Container Registry
undermapp i undermappen identitetsprovider. Dessutom måste du lagra motsvarande .pfx-certifikat i den här manuellt skapade undermappen.
Rotation
Utför följande steg för att rotera externa hemligheter:
Använd följande PowerShell-skript för att rotera hemligheterna. Skriptet kräver åtkomst till en PEP-session (Privileged EndPoint). PEP nås via en fjärransluten PowerShell-session på den virtuella datorn (VM) som är värd för PEP. Om du använder ett integrerat system finns det tre instanser av PEP, som var och en körs i en virtuell dator (Prefix-ERCS01, Prefix-ERCS02 eller Prefix-ERCS03) på olika värdar. Skriptet utför följande steg:
Skapar en PowerShell-session med privilegierad slutpunkt med cloudadmin-kontot och lagrar sessionen som en variabel. Den här variabeln används som en parameter i nästa steg.
Kör Invoke-Command och skickar PEP-sessionsvariabeln
-Session
som parameter.Körs
Start-SecretRotation
i PEP-sessionen med hjälp av följande parametrar. Mer information finns i Referens för Start-SecretRotation :Parameter Variabel Beskrivning -PfxFilesPath
$CertSharePath Nätverkssökvägen till rotmappen för certifikat enligt beskrivningen i steg 6 i avsnittet Förberedelse, till exempel \\<IPAddress>\<ShareName>\Certificates
.-PathAccessCredential
$CertShareCreds PSCredential-objektet för autentiseringsuppgifter till resursen. -CertificatePassword
$CertPassword En säker sträng med lösenordet som används för alla pfx-certifikatfiler som skapats.
# 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 $PEPSession
Den externa hemlighetsrotationen tar ungefär en timme. När det är klart visar konsolen ett
ActionPlanInstanceID ... CurrentStatus: Completed
meddelande följt avAction plan finished with status: 'Completed'
. Ta bort dina certifikat från resursen som skapades i avsnittet Förberedelse och lagra dem på deras säkra säkerhetskopieringsplats.Anteckning
Om hemlighetsrotationen misslyckas följer du anvisningarna i felmeddelandet och kör
Start-SecretRotation
igen med parametern-ReRun
.Start-SecretRotation -ReRun
Kontakta supporten om det uppstår upprepade rotationsfel för hemligheter.
Om du vill kan du kontrollera att alla externa certifikat har roterats genom att köra valideringsverktyget Test-AzureStack med följande skript:
Test-AzureStack -Include AzsExternalCertificates -DetailedResults -debug
Rotera interna hemligheter
Interna hemligheter omfattar certifikat, lösenord, säkra strängar och nycklar som används i Azure Stack Hub-infrastrukturen, utan åtgärd av Azure Stack Hub-operatören. Rotation av interna hemligheter krävs endast om du misstänker att någon har komprometterats eller om du har fått en förfalloavisering.
Distributioner före 1811 kan se aviseringar om väntande interna certifikat eller hemliga förfallodatum. Dessa aviseringar är felaktiga och bör ignoreras och är ett känt problem som löstes 1811.
Utför följande steg för att rotera interna hemligheter:
Kör följande PowerShell-skript. Observera att i avsnittet "Kör hemlig rotation" används endast parametern
-Internal
till cmdleten Start-SecretRotation för intern hemlighetsrotation:# 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 $PEPSession
Anteckning
Före 1811-versioner kräver
-Internal
inte flaggan.När det är klart visar konsolen ett
ActionPlanInstanceID ... CurrentStatus: Completed
meddelande följt avAction plan finished with status: 'Completed'
.Anteckning
Om en rotation misslyckas följer du anvisningarna i felmeddelandet och kör
Start-SecretRotation
på nytt med parametrarna-Internal
och-ReRun
.Start-SecretRotation -Internal -ReRun
Kontakta supporten om det uppstår upprepade rotationsfel för hemligheter.
Rotera Azure Stack Hub-rotcertifikat
Azure Stack Hub-rotcertifikatet etableras under distributionen med en giltighetstid på fem år. Från och med 2108 roterar intern hemlig rotation också rotcertifikatet. Standardhemlighetsaviseringen identifierar utgångsdatumet för rotcertifikatet och genererar aviseringar på både 90 (varning) och 30 (kritiska) dagar.
Om du vill rotera rotcertifikatet måste du uppdatera systemet till 2108 och utföra intern hemlig rotation.
Följande kodfragment använder privilegierad slutpunkt för att visa förfallodatumet för rotcertifikatet:
$pep = New-PSSession -ComputerName <ip address> -ConfigurationName PrivilegedEndpoint -Credential $cred -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)
$stampInfo = Invoke-Command -Session $pep -ScriptBlock { Get-AzureStackStampInformation }
$rootCert = $stampInfo.RootCACertificates| Sort-Object -Property NotAfter | Select-Object -Last 1
"The Azure Stack Hub Root Certificate expires on {0}" -f $rootCert.NotAfter.ToString("D") | Write-Host -ForegroundColor Cyan
Uppdatera BMC-autentiseringsuppgifter
Baseboard-hanteringskontrollanten övervakar servrarnas fysiska tillstånd. Se oem-maskinvaruleverantören (Original Equipment Manufacturer) för instruktioner för att uppdatera användarnamnet och lösenordet för BMC.
Anteckning
Oem-tillverkaren kan tillhandahålla ytterligare hanteringsappar. Uppdateringen av användarnamnet eller lösenordet för andra hanteringsappar påverkar inte BMC-användarnamnet eller lösenordet.
- Uppdatera BMC på de fysiska Azure Stack Hub-servrarna genom att följa oem-instruktionerna. Användarnamnet och lösenordet för varje BMC i din miljö måste vara samma. BMC-användarnamnen får inte överstiga 16 tecken.
- Det krävs inte längre att du först uppdaterar BMC-autentiseringsuppgifterna på de fysiska Azure Stack Hub-servrarna genom att följa oem-instruktionerna. Användarnamnet och lösenordet för varje BMC i din miljö måste vara detsamma och får inte överstiga 16 tecken.
Öppna en privilegierad slutpunkt i Azure Stack Hub-sessioner. Anvisningar finns i Använda den privilegierade slutpunkten i Azure Stack Hub.
När du har öppnat en privilegierad slutpunktssession kör du något av PowerShell-skripten nedan, som använder Invoke-Command för att köra Set-BmcCredential. Om du använder parametern -BypassBMCUpdate med Set-BMCCredential uppdateras inte autentiseringsuppgifterna i BMC. Endast det interna dataarkivet i Azure Stack Hub uppdateras. Skicka sessionsvariabeln för privilegierad slutpunkt som en parameter.
Här är ett exempel på ett PowerShell-skript som frågar efter användarnamn och lösenord:
# 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 $PEPSession
Du kan också koda användarnamnet och lösenordet i variabler, vilket kan vara mindre säkert:
# 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
Referens: Start-SecretRotation cmdlet
Cmdleten Start-SecretRotation roterar infrastrukturhemligheterna för ett Azure Stack Hub-system. Den här cmdleten kan bara köras mot den privilegierade Slutpunkten för Azure Stack Hub med hjälp av ett Invoke-Command
skriptblock som skickar PEP-sessionen i parametern -Session
. Som standard roterar den endast certifikaten för alla slutpunkter för den externa nätverksinfrastrukturen.
Parameter | Typ | Obligatorisk | Position | Standardvärde | Description |
---|---|---|---|---|---|
PfxFilesPath |
Sträng | Falskt | Heter | Ingen | Filresurssökvägen till rotmappen \Certificates som innehåller alla externa nätverksslutpunktscertifikat. Krävs endast när externa hemligheter roteras. Sökvägen måste sluta med mappen \Certificates , till exempel \\<IPAddress>\<ShareName>\Certificates. |
CertificatePassword |
SecureString | Falskt | Heter | Ingen | Lösenordet för alla certifikat som anges i -PfXFilesPath. Obligatoriskt värde om PfxFilesPath anges när externa hemligheter roteras. |
Internal |
Sträng | Falskt | Heter | Ingen | Intern flagga måste användas när som helst som en Azure Stack Hub-operatör vill rotera interna infrastrukturhemligheter. |
PathAccessCredential |
PSCredential | Falskt | Heter | Ingen | PowerShell-autentiseringsuppgifterna för filresursen i katalogen \Certificates som innehåller alla externa nätverksslutpunktscertifikat. Krävs endast när externa hemligheter roteras. |
ReRun |
SwitchParameter | Falskt | Heter | Ingen | Måste användas när hemlighetsrotationen försöker igen efter ett misslyckat försök. |
Syntax
För rotation av externa hemligheter
Start-SecretRotation [-PfxFilesPath <string>] [-PathAccessCredential <PSCredential>] [-CertificatePassword <SecureString>]
För intern hemlighetsrotation
Start-SecretRotation [-Internal]
För omkörning av extern hemlighet
Start-SecretRotation [-ReRun]
För omkörning av intern hemlighetsrotation
Start-SecretRotation [-ReRun] [-Internal]
Exempel
Rotera endast interna infrastrukturhemligheter
Det här kommandot måste köras via Azure Stack Hub-miljöns privilegierade slutpunkt.
PS C:\> Start-SecretRotation -Internal
Det här kommandot roterar alla infrastrukturhemligheter som exponeras för det interna Azure Stack Hub-nätverket.
Rotera endast externa infrastrukturhemligheter
# 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
Det här kommandot roterar de TLS-certifikat som används för Azure Stack Hubs slutpunkter för extern nätverksinfrastruktur.
Rotera interna och externa infrastrukturhemligheter (endast före 1811 )
Viktigt
Det här kommandot gäller endast för Azure Stack Hub före 1811 eftersom rotationen har delats för interna och externa certifikat.
Från 1811+ kan du inte rotera både interna och externa certifikat längre!
# 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
Det här kommandot roterar de infrastrukturhemligheter som exponeras för det interna Nätverket i Azure Stack Hub och de TLS-certifikat som används för Azure Stack Hubs slutpunkter för extern nätverksinfrastruktur. Start-SecretRotation roterar alla stackgenererade hemligheter och eftersom det finns tillhandahållna certifikat roteras även externa slutpunktscertifikat.