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

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

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:

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

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

  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. Gå till filresursen, 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 för identitetsprovidern bör 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 vara AAD eller ADFS. Se till att de alternativa ämnesnamnen (SAN) för dina externa ersättningscertifikat följer det cert.<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:

  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 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
    
  2. Den externa hemlighetsrotationen tar ungefär en timme. När det är klart visar konsolen ett ActionPlanInstanceID ... CurrentStatus: Completed meddelande 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.

    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.

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

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

  2. När det är klart visar konsolen ett ActionPlanInstanceID ... CurrentStatus: Completed meddelande följt av Action plan finished with status: 'Completed'.

    Anteckning

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

  1. 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.
  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. Anvisningar finns i Använda den privilegierade slutpunkten i Azure Stack Hub.

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

Nästa steg

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