Rotera hemligheter för Event Hubs på Azure Stack Hub

Den här artikeln visar hur du roterar hemligheter som används av Event Hubs-resursprovidern.

Översikt och förutsättningar

Anteckning

Hemlig rotation för resursproviders (RPs) för mervärde stöds för närvarande endast via PowerShell. Dessutom måste du proaktivt rotera hemligheter för värdetilläggs-RP:er regelbundet, eftersom administrativa aviseringar för närvarande inte genereras.

Precis som Azure Stack Hub-infrastrukturen använder resursprovidrar för mervärde både interna och externa hemligheter. Hemligheter kan ha flera former, inklusive lösenord och krypteringsnycklar som underhålls av X509-certifikat. Som operatör ansvarar du för:

  • Tillhandahålla uppdaterade externa hemligheter, till exempel ett nytt TLS-certifikat som används för att skydda resursproviderns slutpunkter.
  • Hantera regelbundet rotering av resursproviderns hemlighet.

Som förberedelse för rotationsprocessen:

  1. Läs kraven för Azure Stack Hub PKI-certifikat (Public Key Infrastructure) för viktig nödvändig information innan du hämtar/förnyar ditt X509-certifikat, inklusive information om det PFX-format som krävs. Granska även kraven som anges i avsnittet Valfria PaaS-certifikat för din specifika värdetilläggsresursprovider.

  2. Om du inte redan har gjort det installerar du PowerShell Az-modulen för Azure Stack Hub innan du fortsätter. Version 2.0.2-förhandsversion eller senare krävs för hemlig rotation i Azure Stack Hub. Mer information finns i Migrera från AzureRM till Azure PowerShell Az i Azure Stack Hub.

Förbereda ett nytt TLS-certifikat

Skapa eller förnya sedan ditt TLS-certifikat för att skydda slutpunkterna för resursprovidern för mervärde:

  1. Slutför stegen i Generera certifikatsigneringsbegäranden (CSR) för certifikatförnyelse för resursprovidern. Här använder du verktyget Beredskapskontroll för Azure Stack Hub för att skapa CSR. Se till att köra rätt cmdlet för resursprovidern i steget "Generera certifikatbegäranden för andra Azure Stack Hub-tjänster". Till exempel New-AzsHubEventHubsCertificateSigningRequest används för Event Hubs. När du är klar skickar du den genererade . REQ-fil till certifikatutfärdare (CA) för det nya certifikatet.

  2. När du har tagit emot certifikatfilen från certifikatutfärdare slutför du stegen i Förbereda certifikat för distribution eller rotation. Du använder verktyget Beredskapskontroll igen för att bearbeta filen som returneras från ca:en.

  3. Slutför slutligen stegen i Verifiera Azure Stack Hub PKI-certifikat. Du använder verktyget Beredskapskontroll en gång till för att utföra valideringstester på det nya certifikatet.

Rotera hemligheter

Slutligen fastställer du resursproviderns senaste distributionsegenskaper och använder dem för att slutföra den hemliga rotationsprocessen.

Fastställa distributionsegenskaper

Resursprovidrar distribueras till din Azure Stack Hub-miljö som ett versionspaket. Paket tilldelas ett unikt paket-ID i formatet '<product-id>.<installed-version>'. Där <product-id> är en unik sträng som representerar resursprovidern och <installed-version> representerar en specifik version. Hemligheterna som är associerade med varje paket lagras i Tjänsten Azure Stack Hub Key Vault.

Öppna en upphöjd PowerShell-konsol och utför följande steg för att fastställa vilka egenskaper som krävs för att rotera resursproviderns hemligheter:

  1. Logga in på din Azure Stack Hub-miljö med dina autentiseringsuppgifter för operatören. Se Ansluta till Azure Stack Hub med PowerShell för PowerShell-inloggningsskript. Se till att använda PowerShell Az-cmdletar (i stället för AzureRM) och ersätt alla platshållarvärden, till exempel slutpunkts-URL:er och katalogklientnamn.

  2. Kör cmdleten Get-AzsProductDeployment för att hämta en lista över de senaste distributionerna av resursprovidern. Den returnerade "value" samlingen innehåller ett element för varje distribuerad resursprovider. Hitta resursprovidern av intresse och anteckna värdena för dessa egenskaper:

    • "name" – innehåller resursproviderns produkt-ID i det andra segmentet av värdet.
    • "properties"."deployment"."version" – innehåller det för tillfället distribuerade versionsnumret.

    I följande exempel ser du Event Hubs RP-distributionen i det första elementet i samlingen, som har ett produkt-ID för "microsoft.eventhub"och version "1.2003.0.0":

    PS C:\WINDOWS\system32> Get-AzsProductDeployment -AsJson
    VERBOSE: GET https://adminmanagement.myregion.mycompany.com/subscriptions/ze22ca96-z546-zbc6-z566-z35f68799816/providers/Microsoft.Deployment.Admin/locations/global/productDeployments?api-version=2019-01-01 with 0-char payload
    VERBOSE: Received 2656-char response, StatusCode = OK
    {
        "value":  [
                      {
                          "id":  "/subscriptions/ze22ca96-z546-zbc6-z566-z35f68799816/providers/Microsoft.Deployment.Admin/locations/global/productDeployments/microsoft.eventhub",
                          "name":  "global/microsoft.eventhub",
                          "type":  "Microsoft.Deployment.Admin/locations/productDeployments",
                          "properties":  {
                                             "status":  "DeploymentSucceeded",
                                             "subscriptionId":  "b37ae55a-a6c6-4474-ba97-81519412adf5",
                                             "deployment":  {
                                                                "version":  "1.2003.0.0",
                                                                "actionPlanInstanceResourceId":"/subscriptions/ze22ca96-z546-zbc6-z566-z35f68799816/providers/Microsoft.Deployment.Admin/locations/global/actionplans/abcdfcd3-fef0-z1a3-z85d-z6ceb0f31e36",
                                                                "parameters":  {
    
                                                                               }
                                                            },
                                             "lastSuccessfulDeployment":  {
                                                                              "version":  "1.2003.0.0",
                                                                              "actionPlanInstanceResourceId":"/subscriptions/ze22ca96-z546-zbc6-z566-z35f68799816/providers/Microsoft.Deployment.Admin/locations/global/actionplans/abcdfcd3-fef0-z1a3-z85d-z6ceb0f31e36",
                                                                              "parameters":  {
    
                                                                                             }
                                                                          },
                                             "provisioningState":  "Succeeded"
                                         }
                      },
                      {
                      ...
                      }
                  ]
    }
    
  3. Skapa resursproviderns paket-ID genom att sammanfoga resursproviderns produkt-ID och version. Om du till exempel använder värdena som härleddes i föregående steg är microsoft.eventhub.1.2003.0.0Event Hubs RP-paket-ID:t .

  4. Använd paket-ID:t som härleddes i föregående steg och kör Get-AzsProductSecret -PackageId för att hämta listan över hemliga typer som används av resursprovidern. Leta reda på elementet som innehåller värdet "Certificate" för egenskapen "properties"."secretKind" i den returnerade value samlingen. Det här elementet innehåller egenskaper för RP:s certifikathemlighet. Anteckna namnet som tilldelats den här certifikathemligheten, som identifieras av det sista segmentet i "name" egenskapen, precis ovanför "properties".

    I följande exempel innehåller hemlighetssamlingen som returnerades för Event Hubs RP en "Certificate" hemlighet med namnet aseh-ssl-gateway-pfx.

    PS C:\WINDOWS\system32> Get-AzsProductSecret -PackageId 'microsoft.eventhub.1.2003.0.0' -AsJson
    VERBOSE: GET
    https://adminmanagement.myregion.mycompany.com/subscriptions/ze22ca96-z546-zbc6-z566-z35f68799816/providers/Microsoft.Deployment.Admin/locations/global/productPackages/microsoft.eventhub.1.2003.0.0/secrets?api-version=2019-01-01 with 0-char payload
    VERBOSE: Received 617-char response, StatusCode = OK
    {
        "value":  [
                        {
                            "id":  "/subscriptions/ze22ca96-z546-zbc6-z566-z35f68799816/providers/Microsoft.Deployment.Admin/locations/global/productPackages/microsoft.eventhub.1.2003.0.0/secrets/aseh-ssl-gateway-pfx",
                            "name":  "global/microsoft.eventhub.1.2003.0.0/aseh-ssl-gateway-pfx",
                            "type":  "Microsoft.Deployment.Admin/locations/productPackages/secrets",
                            "properties":  {
                                            "secretKind":  "Certificate",
                                            "description":  "Event Hubs gateway SSL certificate.",
                                            "expiresAfter":  "P730D",
                                            "secretDescriptor":  {
    
                                                                    },
                                            "secretState":  {
                                                                "status":  "Deployed",
                                                                "rotationStatus":  "None",
                                                                "expirationDate":  "2022-03-31T00:16:05.3068718Z"
                                                            },
                                            "provisioningState":  "Succeeded"
                                        }
                        },
                        ...
                    ]
    }
    

Rotera hemligheterna

  1. Använd cmdleten Set-AzsProductSecret för att importera ditt nya certifikat till Key Vault, som ska användas av rotationsprocessen. Ersätt variabelns platshållarvärden i enlighet med detta innan du kör skriptet:

    Platshållare Description Exempelvärde
    <product-id> Produkt-ID för den senaste resursproviderdistributionen. microsoft.eventhub
    <installed-version> Versionen av den senaste resursproviderdistributionen. 1.2003.0.0
    <cert-secret-name> Namnet under vilket certifikathemligheten lagras. aseh-ssl-gateway-pfx
    <cert-pfx-file-path> Sökvägen till PFX-certifikatfilen. C:\dir\eh-cert-file.pfx
    <pfx-password> Lösenordet som tilldelats certifikatet . PFX-fil. strong@CertSecret6
    $productId = '<product-id>'
    $packageId = $productId + '.' + '<installed-version>'
    $certSecretName = '<cert-secret-name>' 
    $pfxFilePath = '<cert-pfx-file-path>'
    $pfxPassword = ConvertTo-SecureString '<pfx-password>' -AsPlainText -Force   
    Set-AzsProductSecret -PackageId $packageId -SecretName $certSecretName -PfxFileName $pfxFilePath -PfxPassword $pfxPassword -Force
    
  2. Använd slutligen cmdleten Invoke-AzsProductRotateSecretsAction för att rotera interna och externa hemligheter:

    Anteckning

    Det tar cirka 3,5–4 timmar att slutföra rotationsprocessen.

    Invoke-AzsProductRotateSecretsAction -ProductId $productId
    

    Du kan övervaka förloppet för hemlig rotation antingen i PowerShell-konsolen eller i administratörsportalen genom att välja resursprovidern i Marketplace-tjänsten:

    secret-rotation-progress

Felsökning

Hemlig rotation bör slutföras utan fel. Om du upplever något av följande villkor i administratörsportalen öppnar du en supportbegäran om hjälp:

  • Autentiseringsproblem, inklusive problem med att ansluta till Event Hubs-resursprovidern.
  • Det går inte att uppgradera resursprovidern eller redigera konfigurationsparametrar.
  • Användningsstatistik visas inte.
  • Fakturor genereras inte.
  • Säkerhetskopieringar sker inte.

Nästa steg

Mer information om hur du roterar dina Azure Stack Hub-infrastrukturhemligheter finns i Rotera hemligheter i Azure Stack Hub.