Dela via


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 Azure Stack Hub-infrastrukturresurser och -tjänster.

Ö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 möjlighet att rotera hemligheter med frekvenser som är förenliga med organisationens säkerhetskrav.

När hemligheter snart upphör att gälla genereras följande aviseringar i administratörsportalen. Genom att slutföra hemlig rotation löser du dessa aviseringar:

  • Väntar på att lösenordet för tjänstkontot ska upphöra 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 innan de upphör att gälla:

  • 90 dagar innan förfallodatumet genereras en varningsavisering.
  • 30 dagar innan förfallodatum genereras en kritisk avisering.

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älsotillstånd och aviseringar i Azure Stack Hub.

Kommentar

Azure Stack Hub-miljöer i versioner före 1811 kan se aviseringar för väntande interna certifikat eller hemliga förfallodatum. Aviseringarna är felaktiga och bör ignoreras utan att den interna hemliga rotationen körs. 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

  1. 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ören. 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.
  2. 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.

  3. Generera begäranden om certifikatsignering för Azure Stack Hub.

  4. Förbereda Azure Stack Hub PKI-certifikat.

  5. Under rotationen av hemligheter kan operatorer märka aviseringar öppna och stänga automatiskt. Det här beteendet är förväntat och aviseringar kan ignoreras. Operatorer kan kontrollera giltigheten för dessa aviseringar med hjälp av PowerShell-cmdleten Test-AzureStack. För operatörer som använder System Center Operations Manager för att övervaka Azure Stack Hub-system hindrar 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 hemlig rotation för:

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örsnyckelvalv
  • Key Vault
  • Administratörstilläggsvärd
  • ACS (inklusive blob, tabell och kölagring)
  • ADFS1
  • Diagram1
  • Container Registry2

1Gäller 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:

  1. Test-AzureStack Kör PowerShell-cmdleten med parametern -group SecretRotationReadiness för att bekräfta att alla testutdata är felfria innan du roterar hemligheter.

  2. Förbered 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) för att skicka 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 Versionsstöd för Azure Stack Hub
      Självsignerat Stora företag 1903 & senare
      Självsignerat Självsignerat Stöds inte
      Självsignerat Offentlig* 1803 & senare
      Stora företag Stora företag 1803 & senare; 1803-1903 om SAMMA företagscertifikatutfärdarorganisation som används vid distribution
      Stora företag Självsignerat Stöds inte
      Stora företag Offentlig* 1803 & senare
      Offentlig* Stora företag 1903 & senare
      Offentlig* Självsignerat Stöds inte
      Offentlig* Offentlig* 1803 & senare

      *En del av windows betrodda rotprogram.

    • Kontrollera 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.

  3. 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.

  4. 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.

  5. Öppna en PowerShell ISE-konsol från en dator där du har åtkomst till filresursen. Navigera till din filresurs, där du skapar kataloger för att placera dina externa certifikat.

  6. Skapa en mapp i filresursen med namnet Certificates. I mappen certifikat skapar du en undermapp med namnet AAD eller ADFS, beroende på vilken identitetsprovider som hubben använder. Till exempel .\Certificates\AAD eller .\Certificates\ADFS. Inga andra mappar förutom certifikatmappen och undermappen identitetsprovider ska skapas här.

  7. 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 antingen vara AAD eller ADFS. Se till att de alternativa ämnesnamnen för dina externa ersättningscertifikat följer det cert.<regionName>.<externalFQDN> format som anges i PKI-certifikatkraven (Azure Stack Hub Public Key Infrastructure).

    Här är ett exempel på en mappstruktur för Microsoft Entra-identitetsprovidern:

        <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.

Kommentar

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:

  1. 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 den privilegierade slutpunkten 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 referensen Start-SecretRotation :

      Parameter Olika 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 av 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
    
  2. Den externa hemlighetsrotationen tar ungefär en timme. När det har slutförts visas ett ActionPlanInstanceID ... CurrentStatus: Completed meddelande i konsolen följt av Action 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.

    Kommentar

    Om den hemliga rotationen misslyckas följer du anvisningarna i felmeddelandet och kör Start-SecretRotation med parametern igen -ReRun .

    Start-SecretRotation -ReRun
    

    Kontakta supporten om det uppstår upprepade fel vid rotering av hemligheter.

  3. Om du vill bekräfta att alla externa certifikat har roterats kör du valideringsverktyget Test-AzureStack med hjälp av 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 för 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:

  1. Kör följande PowerShell-skript. Observera att för intern hemlig rotation använder avsnittet "Kör hemlig rotation" endast parametern -Internal till cmdleten Start-SecretRotation:

    # 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
    

    Kommentar

    Före 1811-versioner kräver -Internal inte flaggan.

  2. När det har slutförts visas ett ActionPlanInstanceID ... CurrentStatus: Completed meddelande i konsolen följt av Action plan finished with status: 'Completed'.

    Kommentar

    Om en rotation misslyckas följer du anvisningarna i felmeddelandet och kör Start-SecretRotationpå nytt med parametrarna -Internal och -ReRun.

    Start-SecretRotation -Internal -ReRun
    

    Kontakta supporten om det uppstår upprepade fel vid rotering av hemligheter.

Rotera Rotcertifikat för Azure Stack Hub

Azure Stack Hub-rotcertifikatet etableras under distributionen med en giltighetstid på fem år. Från och med 2108 roterar även intern hemlig rotation rotcertifikatet. Standardhemlighetens förfalloavisering identifierar rotcertifikatets upphörande 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-hanteringsstyrenheten övervakar servrarnas fysiska tillstånd. Information om hur du uppdaterar användarnamnet och lösenordet för BMC finns i oem-maskinvaruleverantören (originalutrustningstillverkaren).

Kommentar

Oem-tillverkaren kan tillhandahålla ytterligare hanteringsappar. Uppdatering av användarnamnet eller lösenordet för andra hanteringsappar påverkar inte BMC-användarnamnet eller lösenordet.

  1. Uppdatera BMC på fysiska Azure Stack Hub-servrar genom att följa oem-instruktionerna. Användarnamnet och lösenordet för varje BMC i din miljö måste vara detsamma. BMC-användarnamnen får inte överstiga 16 tecken.
  1. 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.
  1. Öppna en privilegierad slutpunkt i Azure Stack Hub-sessioner. Instruktioner finns i Använda den privilegierade slutpunkten i Azure Stack Hub.

  2. När du har öppnat en privilegierad slutpunktssession kör du ett 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 din privilegierade slutpunktssessionsvariabel 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: Cmdleten Start-SecretRotation

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 bara certifikaten för alla externa nätverksinfrastrukturslutpunkter.

Parameter Type Obligatoriskt Position Standardvärde beskrivning
PfxFilesPath String Falsk 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 Falsk Heter Ingen Lösenordet för alla certifikat som anges i -PfXFilesPath. Obligatoriskt värde om PfxFilesPath tillhandahålls när externa hemligheter roteras.
Internal String Falsk Heter Ingen Intern flagga måste användas när en Azure Stack Hub-operatör vill rotera interna infrastrukturhemligheter.
PathAccessCredential PSCredential Falsk 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 Falsk Heter Ingen Måste användas när hemlighetsrotationen görs om efter ett misslyckat försök.

Syntax

För extern hemlig rotation

Start-SecretRotation [-PfxFilesPath <string>] [-PathAccessCredential <PSCredential>] [-CertificatePassword <SecureString>]  

För intern hemlig rotation

Start-SecretRotation [-Internal]  

För omkörning av extern hemlighet

Start-SecretRotation [-ReRun]

För intern omkörning av 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 externa nätverksinfrastrukturslutpunkter.

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 infrastrukturhemligheterna som exponeras för det interna Azure Stack Hub-nätverket 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 certifikat roteras även externa slutpunktscertifikat.

Nästa steg

Läs mer om Säkerhet i Azure Stack Hub