Come ruotare i segreti per Hub eventi nell'hub di Azure Stack

Questo articolo illustra come ruotare i segreti usati dal provider di risorse di Hub eventi.

Panoramica e prerequisiti

Nota

La rotazione dei segreti per i provider di risorse aggiunti a valore è attualmente supportata solo tramite PowerShell. Inoltre, è necessario ruotare in modo proattivo i segreti per gli indirizzi RP aggiunti a valore a intervalli regolari, in quanto gli avvisi amministrativi non vengono attualmente generati.

Analogamente all'infrastruttura dell'hub di Azure Stack, i provider di risorse con valore add usano segreti interni ed esterni. I segreti possono assumere più forme, incluse le password e le chiavi di crittografia gestite dai certificati X509. In qualità di operatore, si è responsabili di:

  • Fornire segreti esterni aggiornati, ad esempio un nuovo certificato TLS usato per proteggere gli endpoint del provider di risorse.
  • Gestione della rotazione dei segreti del provider di risorse a intervalli regolari.

In preparazione del processo di rotazione:

  1. Esaminare i requisiti dei certificati dell'infrastruttura a chiave pubblica (PKI) dell'hub di Azure Stack per informazioni importanti sui prerequisiti prima di acquisire/rinnovare il certificato X509, inclusi i dettagli sul formato PFX richiesto. Esaminare anche i requisiti specificati nella sezione Certificati PaaS facoltativi per il provider di risorse con valore aggiunto specifico.

  2. Se non è già stato fatto, installare il modulo Az di PowerShell per l'hub di Azure Stack prima di continuare. Per la rotazione dei segreti dell'hub di Azure Stack è necessaria la versione 2.0.2-preview o successiva. Per altre informazioni, vedere Eseguire la migrazione da AzureRM a Azure PowerShell Az nell'hub di Azure Stack.

Preparare un nuovo certificato TLS

Successivamente, creare o rinnovare il certificato TLS per proteggere gli endpoint del provider di risorse con valore aggiunto:

  1. Completare i passaggi descritti in Generare richieste di firma del certificato per il rinnovo del certificato per il provider di risorse. Qui si usa lo strumento Verifica conformità hub di Azure Stack per creare la richiesta di firma del certificato. Assicurarsi di eseguire il cmdlet corretto per il provider di risorse, nel passaggio "Generare richieste di certificato per altri servizi dell'hub di Azure Stack". Ad esempio New-AzsHubEventHubsCertificateSigningRequest , viene usato per Hub eventi. Al termine, si invia l'oggetto generato. File REQ nell'autorità di certificazione (CA) per il nuovo certificato.

  2. Dopo aver ricevuto il file del certificato dalla CA, completare i passaggi descritti in Preparare i certificati per la distribuzione o la rotazione. Per elaborare il file restituito dalla CA, usare di nuovo lo strumento Readiness Checker.

  3. Completare infine i passaggi descritti in Convalidare i certificati PKI dell'hub di Azure Stack. Per eseguire i test di convalida sul nuovo certificato, usare lo strumento Verifica idoneità.

Ruotare i segreti

Infine, determinare le proprietà di distribuzione più recenti del provider di risorse e usarle per completare il processo di rotazione dei segreti.

Determinare le proprietà di distribuzione

I provider di risorse vengono distribuiti nell'ambiente hub di Azure Stack come pacchetto di prodotti con versione. Ai pacchetti viene assegnato un ID pacchetto univoco, nel formato '<product-id>.<installed-version>'. Dove <product-id> è una stringa univoca che rappresenta il provider di risorse e <installed-version> rappresenta una versione specifica. I segreti associati a ogni pacchetto vengono archiviati nel servizio hub di Azure Stack Key Vault.

Aprire una console di PowerShell con privilegi elevati e completare i passaggi seguenti per determinare le proprietà necessarie per ruotare i segreti del provider di risorse:

  1. Accedere all'ambiente dell'hub di Azure Stack usando le credenziali dell'operatore. Vedere Connessione all'hub di Azure Stack con PowerShell per lo script di accesso di PowerShell. Assicurarsi di usare i cmdlet az di PowerShell (invece di AzureRM) e sostituire tutti i valori segnaposto, ad esempio gli URL degli endpoint e il nome del tenant della directory.

  2. Eseguire il Get-AzsProductDeployment cmdlet per recuperare un elenco delle distribuzioni più recenti del provider di risorse. La raccolta restituita "value" contiene un elemento per ogni provider di risorse distribuito. Trovare il provider di risorse di interesse e prendere nota dei valori per queste proprietà:

    • "name" : contiene l'ID prodotto del provider di risorse nel secondo segmento del valore.
    • "properties"."deployment"."version" : contiene il numero di versione attualmente distribuito.

    Nell'esempio seguente si noti la distribuzione del punto di ripristino di Hub eventi nel primo elemento della raccolta, con ID prodotto , "microsoft.eventhub"e versione "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. Compilare l'ID pacchetto del provider di risorse concatenando l'ID prodotto e la versione del provider di risorse. Ad esempio, usando i valori derivati nel passaggio precedente, l'ID del pacchetto RP di Hub eventi è microsoft.eventhub.1.2003.0.0.

  4. Usando l'ID pacchetto derivato nel passaggio precedente, eseguire Get-AzsProductSecret -PackageId per recuperare l'elenco di tipi segreti usati dal provider di risorse. Nell'insieme restituito value trovare l'elemento contenente un valore per "Certificate" la "properties"."secretKind" proprietà . Questo elemento contiene le proprietà per il segreto del certificato del punto di ripristino. Prendere nota del nome assegnato a questo segreto del certificato, identificato dall'ultimo segmento della "name" proprietà, appena sopra "properties".

    Nell'esempio seguente la raccolta di segreti restituita per il punto di ripristino di Hub eventi contiene un "Certificate" segreto denominato 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"
                                        }
                        },
                        ...
                    ]
    }
    

Ruotare i segreti

  1. Usare il Set-AzsProductSecret cmdlet per importare il nuovo certificato in Key Vault, che verrà usato dal processo di rotazione. Sostituire i valori segnaposto della variabile di conseguenza prima di eseguire lo script:

    Segnaposto Descrizione Valore di esempio
    <product-id> ID prodotto della distribuzione più recente del provider di risorse. microsoft.eventhub
    <installed-version> Versione della distribuzione più recente del provider di risorse. 1.2003.0.0
    <cert-secret-name> Nome in cui è archiviato il segreto del certificato. aseh-ssl-gateway-pfx
    <cert-pfx-file-path> Percorso del file PFX del certificato. C:\dir\eh-cert-file.pfx
    <pfx-password> Password assegnata al certificato . File PFX. 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. Infine, usare il Invoke-AzsProductRotateSecretsAction cmdlet per ruotare i segreti interni ed esterni:

    Nota

    Il completamento del processo di rotazione richiede circa 3,5 - 4 ore.

    Invoke-AzsProductRotateSecretsAction -ProductId $productId
    

    È possibile monitorare lo stato di avanzamento della rotazione dei segreti nella console di PowerShell o nel portale di amministrazione selezionando il provider di risorse nel servizio Marketplace:

    secret-rotation-progress

Risoluzione dei problemi

La rotazione del segreto deve essere completata correttamente senza errori. Se si verifica una delle condizioni seguenti nel portale di amministrazione, aprire una richiesta di supporto per assistenza:

  • Problemi di autenticazione, inclusi i problemi di connessione al provider di risorse di Hub eventi.
  • Impossibile aggiornare il provider di risorse o modificare i parametri di configurazione.
  • Le metriche di utilizzo non vengono visualizzate.
  • Le fatture non vengono generate.
  • I backup non si verificano.

Passaggi successivi

Per informazioni dettagliate sulla rotazione dei segreti dell'infrastruttura dell'hub di Azure Stack, vedere Ruotare i segreti nell'hub di Azure Stack.