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 aggiuntivi (RPS) è attualmente supportata solo tramite PowerShell. Inoltre, è necessario ruotare in modo proattivo i segreti per i provider di sicurezza di valore su base regolare, poiché gli avvisi amministrativi non vengono attualmente generati.

Come l'infrastruttura dell'hub di Azure Stack, anche i provider di risorse a valore aggiunto usano segreti interni ed esterni. I segreti possono avere più formati, tra cui password e chiavi di crittografia gestite da certificati X509. Agli operatori vengono affidate le seguenti responsabilità:

  • Fornire segreti esterni aggiornati, ad esempio un nuovo certificato TLS per proteggere gli endpoint del provider di risorse.
  • Gestione della rotazione dei segreti del provider di risorse su base regolare.

In preparazione del processo di rotazione:

  1. Consultare i requisiti del certificato per l'infrastruttura a chiave pubblica (PKI) dell'hub di Azure Stack per apprendere informazioni importanti sui prerequisiti prima di acquisire/rinnovare il certificato X509, inclusi i dettagli sul formato PFX richiesto. Consultare i requisiti specificati nella sezione sui certificati PaaS facoltativi per il provider di risorse a 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 ad Azure PowerShell Az nell'hub di Azure Stack.

Preparare un nuovo certificato TLS

Creare o rinnovare quindi il certificato TLS per proteggere gli endpoint del provider di risorse a valore aggiunto:

  1. Completare la procedura illustrata in Generare richieste di firma del certificato per il rinnovo del certificato per il provider di risorse interessato. In questo caso si userà lo strumento Controllo conformità dell'hub di Azure Stack per creare la richiesta di firma del certificato. Assicurarsi di eseguire il cmdlet corretto per il provider di risorse, come specificato in "Generare richieste di certificato per altri servizi dell'hub di Azure Stack". Per Hub eventi, ad esempio, viene usato New-AzsHubEventHubsCertificateSigningRequest. Al termine, si invia l'oggetto generato. File REQ nell'autorità di certificazione (CA) per il nuovo certificato.

  2. Dopo aver ricevuto il file di certificato dall'autorità di certificazione, completare la procedura descritta in Preparare i certificati per la distribuzione o la rotazione. Per elaborare il file restituito dall'autorità di certificazione, si userà nuovamente lo strumento Controllo conformità.

  3. Completare infine la procedura illustrata in Convalida dei certificati PKI dell'hub di Azure Stack. Per eseguire i test di convalida del nuovo certificato, si userà ancora una volta lo strumento Controllo conformità.

Ruotare i segreti

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 inoltre 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 Key Vault dell'hub di Azure Stack.

Aprire una console di PowerShell con privilegi elevati e completare la procedura seguente 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 di operatore. Vedere Connettersi all'hub di Azure Stack con PowerShell per lo script di accesso di PowerShell. Assicurarsi di usare i cmdlet di PowerShell Az (anziché di AzureRM) e sostituire tutti i valori segnaposto, ad esempio gli URL dell'endpoint e il nome del tenant della directory.

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

    • "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 rp di Hub eventi nel primo elemento della raccolta, che ha un ID prodotto di "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. Usando, ad esempio, i valori ottenuti nel passaggio precedente, l'ID pacchetto del provider di risorse di Hub eventi sarà microsoft.eventhub.1.2003.0.0.

  4. Usando l'ID pacchetto ottenuto nel passaggio precedente, eseguire Get-AzsProductSecret -PackageId per recuperare l'elenco di tipi segreti usati dal provider di risorse. Nella raccolta value restituita individuare l'elemento contenente il valore "Certificate" per la proprietà "properties"."secretKind". Questo elemento conterrà le proprietà relative al segreto del certificato del provider di risorse. Annotare il nome assegnato al segreto del certificato, identificato dall'ultimo segmento della proprietà "name", appena sopra "properties".

    Nell'esempio seguente la raccolta dei segreti restituita per l'RP 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 cmdlet Set-AzsProductSecret per importare in Key Vault il nuovo certificato, che verrà usato dal processo di rotazione. Sostituire di conseguenza i valori segnaposto delle variabili 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 viene 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

    Richiede circa 3,5 - 4 ore per completare il processo di rotazione.

    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 interessato nel servizio Marketplace:

    secret-rotation-progress

Risoluzione dei problemi

La rotazione dei segreti 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.