Delen via


Geheimen roteren voor Event Hubs in Azure Stack Hub

In dit artikel wordt uitgelegd hoe u de geheimen kunt roteren die worden gebruikt door de Event Hubs-resourceprovider.

Overzicht en vereisten

Notitie

Geheimrotatie voor resourceproviders (RPs) wordt momenteel alleen ondersteund via PowerShell. U moet ook proactief geheimen roteren voor RP's met toegevoegde waarde op een regelmatige basis, omdat er momenteel geen beheerderswaarschuwingen worden gegenereerd.

Net als de Azure Stack Hub-infrastructuur gebruiken resourceproviders met toegevoegde waarde zowel interne als externe geheimen. Geheimen kunnen meerdere vormen aannemen, waaronder wachtwoorden en de versleutelingssleutels die worden onderhouden door X509-certificaten. Als operator bent u verantwoordelijk voor:

  • Het verstrekken van bijgewerkte externe geheimen, zoals een nieuw TLS-certificaat dat wordt gebruikt om eindpunten van de resourceprovider te beveiligen.
  • Regelmatig roulatie van geheimen van resourceproviders beheren.

Ter voorbereiding op het rotatieproces:

  1. Bekijk de certificaatvereisten voor openbare-sleutelinfrastructuur (PKI) van Azure Stack Hub voor belangrijke vereiste informatie voordat u uw X509-certificaat verkrijgt/vernieuwt, inclusief details over de vereiste PFX-indeling. Bekijk ook de vereisten die zijn opgegeven in de sectie Optionele PaaS-certificaten voor uw specifieke resourceprovider voor het toevoegen van waarde.

  2. Als u dat nog niet hebt gedaan, installeert u de PowerShell Az-module voor Azure Stack Hub voordat u verdergaat. Versie 2.0.2-preview of hoger is vereist voor het rouleren van geheimen in Azure Stack Hub. Zie Migreren van AzureRM naar Azure PowerShell Az in Azure Stack Hub voor meer informatie.

Een nieuw TLS-certificaat voorbereiden

Maak of vernieuw vervolgens uw TLS-certificaat voor het beveiligen van de eindpunten van de resourceprovider met waardetoevoeging:

  1. Voer de stappen uit in Certificaatondertekeningsaanvragen (CDR's) genereren voor certificaatvernieuwing voor uw resourceprovider. Hier gebruikt u het hulpprogramma Gereedheidscontrole van Azure Stack Hub om de CSR te maken. Zorg ervoor dat u de juiste cmdlet voor uw resourceprovider uitvoert in de stap Certificaataanvragen genereren voor andere Azure Stack Hub-services. Wordt bijvoorbeeld New-AzsHubEventHubsCertificateSigningRequest gebruikt voor Event Hubs. Wanneer u klaar bent, verzendt u de gegenereerde . REQ-bestand naar uw certificeringsinstantie (CA) voor het nieuwe certificaat.

  2. Zodra u het certificaatbestand van de CA hebt ontvangen, voert u de stappen in Certificaten voorbereiden voor implementatie of rotatie uit. U gebruikt het hulpprogramma Gereedheidscontrole opnieuw om het bestand te verwerken dat is geretourneerd door de CA.

  3. Voltooi ten slotte de stappen in PKI-certificaten van Azure Stack Hub valideren. U gebruikt het hulpprogramma Gereedheidscontrole nogmaals om validatietests uit te voeren op uw nieuwe certificaat.

Geheimen roteren

Bepaal ten slotte de meest recente implementatie-eigenschappen van de resourceprovider en gebruik deze om het geheimrotatieproces te voltooien.

Implementatie-eigenschappen bepalen

Resourceproviders worden in uw Azure Stack Hub-omgeving geïmplementeerd als een versie van een productpakket. Aan pakketten wordt een unieke pakket-id toegewezen, in de indeling '<product-id>.<installed-version>'. Waarbij <product-id> een unieke tekenreeks is die de resourceprovider vertegenwoordigt en <installed-version> een specifieke versie vertegenwoordigt. De geheimen die aan elk pakket zijn gekoppeld, worden opgeslagen in de Azure Stack Hub Key Vault-service.

Open een PowerShell-console met verhoogde bevoegdheid en voer de volgende stappen uit om de eigenschappen te bepalen die nodig zijn om de geheimen van de resourceprovider te roteren:

  1. Meld u aan bij uw Azure Stack Hub-omgeving met uw operatorreferenties. Zie Verbinding maken met Azure Stack Hub met PowerShell voor PowerShell-aanmeldingsscript. Zorg ervoor dat u de PowerShell Az-cmdlets gebruikt (in plaats van AzureRM) en alle tijdelijke aanduidingen vervangt, zoals eindpunt-URL's en de naam van de maptenant.

  2. Voer de Get-AzsProductDeployment cmdlet uit om een lijst met de meest recente implementaties van de resourceprovider op te halen. De geretourneerde verzameling bevat een -element voor elke geïmplementeerde "value" resourceprovider. Zoek de resourceprovider van belang en noteer de waarden voor deze eigenschappen:

    • "name" - bevat de product-id van de resourceprovider in het tweede segment van de waarde.
    • "properties"."deployment"."version" - bevat het momenteel geïmplementeerde versienummer.

    In het volgende voorbeeld ziet u de RP-implementatie van Event Hubs in het eerste element in de verzameling. Deze heeft de product-id en "microsoft.eventhub"versie "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. Bouw de pakket-id van de resourceprovider door de product-id en versie van de resourceprovider samen te stellen. Met behulp van de waarden die in de vorige stap zijn afgeleid, is microsoft.eventhub.1.2003.0.0de Event Hubs RP-pakket-id bijvoorbeeld .

  4. Voer uit met behulp van de pakket-id die in de vorige stap is afgeleid om Get-AzsProductSecret -PackageId de lijst met geheime typen op te halen die door de resourceprovider worden gebruikt. Zoek in de geretourneerde value verzameling het element met een waarde van "Certificate" voor de "properties"."secretKind" eigenschap. Dit element bevat eigenschappen voor het certificaatgeheim van de RP. Noteer de naam die is toegewezen aan dit certificaatgeheim, die wordt geïdentificeerd door het laatste segment van de "name" eigenschap, net boven "properties".

    In het volgende voorbeeld bevat de geheimenverzameling die wordt geretourneerd voor de Event Hubs RP een "Certificate" geheim met de naam 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"
                                        }
                        },
                        ...
                    ]
    }
    

De geheimen roteren

  1. Gebruik de Set-AzsProductSecret cmdlet om uw nieuwe certificaat te importeren in Key Vault, die wordt gebruikt door het rotatieproces. Vervang de waarden van de tijdelijke aanduidingen voor variabelen dienovereenkomstig voordat u het script uitvoert:

    Tijdelijke aanduiding Beschrijving Voorbeeldwaarde
    <product-id> De product-id van de meest recente implementatie van de resourceprovider. microsoft.eventhub
    <installed-version> De versie van de meest recente implementatie van de resourceprovider. 1.2003.0.0
    <cert-secret-name> De naam waaronder het certificaatgeheim wordt opgeslagen. aseh-ssl-gateway-pfx
    <cert-pfx-file-path> Het pad naar het PFX-bestand van uw certificaat. C:\dir\eh-cert-file.pfx
    <pfx-password> Het wachtwoord dat is toegewezen aan uw certificaat . PFX-bestand. 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. Gebruik ten slotte de Invoke-AzsProductRotateSecretsAction cmdlet om de interne en externe geheimen te roteren:

    Notitie

    Het duurt ongeveer 3,5 tot 4 uur om het rotatieproces te voltooien.

    Invoke-AzsProductRotateSecretsAction -ProductId $productId
    

    U kunt de voortgang van het rouleren van geheimen in de PowerShell-console of in de beheerportal bewaken door de resourceprovider te selecteren in de Marketplace-service:

    secret-rotation-progress

Problemen oplossen

Het rouleren van het geheim zou zonder fouten moeten worden voltooid. Als u een van de volgende voorwaarden ondervindt in de beheerdersportal, opent u een ondersteuningsaanvraag voor hulp:

  • Verificatieproblemen, waaronder problemen met het maken van verbinding met de Event Hubs-resourceprovider.
  • Kan de resourceprovider niet upgraden of configuratieparameters bewerken.
  • Metrische gegevens over gebruik worden niet weergegeven.
  • Facturen worden niet gegenereerd.
  • Er worden geen back-ups uitgevoerd.

Volgende stappen

Ga naar Geheimen roteren in Azure Stack Hub voor meer informatie over het roteren van uw Azure Stack Hub-infrastructuurgeheimen.