Partage via


Rotation des secrets pour Event Hubs sur Azure Stack Hub

Cet article explique comment effectuer une rotation des secrets utilisés par le fournisseur de ressources Event Hubs.

Vue d’ensemble et conditions préalables

Remarque

Pour les fournisseurs de ressources à valeur ajoutée, la rotation des secrets n'est actuellement prise en charge que via PowerShell. De plus, vous devez régulièrement effectuer une rotation proactive des secrets des fournisseurs de ressources à valeur ajoutée, car les alertes administratives ne sont pas générées pour l’instant.

À l'instar de l'infrastructure Azure Stack Hub, les fournisseurs de ressources à valeur ajoutée utilisent à la fois des secrets internes et externes. Les secrets peuvent se présenter sous différentes formes, comme des mots de passe et des clés de chiffrement gérées par des certificats X509. En tant qu'opérateur, vous devez :

  • fournir des secrets externes à jour, tels qu'un nouveau certificat TLS pour sécuriser les points de terminaison des fournisseurs de ressources ;
  • gérer la rotation des secrets des fournisseurs de ressources sur une base régulière.

Pour préparer le processus de rotation :

  1. Consultez Exigences en matière de certificat pour infrastructure à clé publique (PKI) Azure Stack Hub afin d'obtenir des informations préalables importantes avant d'acquérir/de renouveler votre certificat X509, avec des détails sur le format PFX requis. Consultez également la section Certificats PaaS facultatifs pour connaître les exigences relatives à votre fournisseur de ressources à valeur ajoutée spécifique.

  2. Si ce n'est déjà fait, veillez à Installer le module PowerShell Az pour Azure Stack Hub avant de continuer. La version 2.0.2-preview (ou ultérieure) est requise pour la rotation des secrets Azure Stack Hub. Pour plus d'informations, consultez Effectuer une migration d'AzureRM vers Azure PowerShell Az dans Azure Stack Hub.

Préparer un nouveau certificat TLS

Ensuite, créez ou renouvelez votre certificat TLS pour sécuriser les points de terminaison de fournisseur de ressources à valeur ajoutée :

  1. Suivez les étapes décrites dans Générer des demandes de signature de certificat (CSR) pour le renouvellement de certificat pour votre fournisseur de ressources. Pour créer la CSR, utilisez l'outil Readiness Checker d'Azure Stack Hub. À l'étape « Générer des demandes de certificat pour d'autres services Azure Stack Hub », veillez à exécuter la cmdlet qui correspond à votre fournisseur de ressources. Par exemple, la cmdlet New-AzsHubEventHubsCertificateSigningRequest est utilisée pour Event Hubs. Lorsque vous avez terminé, vous devez envoyer le fichier .REQ généré à votre autorité de certification pour obtenir le nouveau certificat.

  2. Une fois le fichier de certificat reçu de l'autorité de certification, suivez les étapes décrites dans Préparer des certificats pour le déploiement ou la rotation. Utilisez à nouveau l'outil Readiness Checker pour traiter le fichier renvoyé par l'autorité de certification.

  3. Enfin, suivez les étapes décrites dans Valider des certificats PKI Azure Stack Hub. Utilisez à nouveau l'outil Readiness Checker pour procéder aux tests de validation sur votre nouveau certificat.

Faire pivoter les clés secrètes

Enfin, déterminez les propriétés de déploiement les plus récentes du fournisseur de ressources et utilisez-les pour terminer le processus de rotation des secrets.

Déterminer les propriétés de déploiement

Les fournisseurs de ressources sont déployés dans votre environnement Azure Stack Hub sous forme de package de produit avec version. Les packages se voient attribuer un ID de package unique, au format '<product-id>.<installed-version>'. Où <product-id> correspond à un chaîne unique représentant le fournisseur de ressources, et <installed-version> à une version spécifique. Les secrets associés à chaque package sont stockés dans le service Key Vault Hub Azure Stack.

Ouvrez une console PowerShell avec élévation de privilèges et suivez les étapes ci-dessous pour déterminer les propriétés requises afin d’effectuer la rotation des secrets du fournisseur de ressources :

  1. Connectez-vous à votre environnement Azure Stack Hub à l'aide de vos informations d’identification d’opérateur. Consultez Se connecter à Azure Stack Hub avec PowerShell pour le script de connexion PowerShell. Veillez à utiliser les cmdlets PowerShell Az (plutôt que AzureRM) et remplacez toutes les valeurs d’espace réservé, telles que les URL de point de terminaison et le nom de locataire d’annuaire.

  2. Exécutez la cmdlet Get-AzsProductDeployment pour récupérer la liste des déploiements des fournisseurs de ressources les plus récents. La collection "value" retournée contient un élément pour chaque fournisseur de ressources déployé. Recherchez le fournisseur de ressources qui vous intéresse et notez les valeurs correspondant à ces propriétés :

    • "name" - contient l’ID produit du fournisseur de ressources dans le deuxième segment de la valeur.
    • "properties"."deployment"."version" - contient le numéro de la version actuellement déployée.

    Dans l’exemple suivant, notez le déploiement RP Event Hubs dans le premier élément de la collection, qui présente l’ID produit "microsoft.eventhub" et la version "1.2003.0.0" :

    PS C:\WINDOWS\system32> Get-AzsProductDeployment -AsJson
    VERBOSE: GET https://adminmanagement.myregion.mycompany.com/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Deployment.Admin/locations/global/productDeployments/microsoft.eventhub",
                          "name":  "global/microsoft.eventhub",
                          "type":  "Microsoft.Deployment.Admin/locations/productDeployments",
                          "properties":  {
                                             "status":  "DeploymentSucceeded",
                                             "subscriptionId":  "bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f",
                                             "deployment":  {
                                                                "version":  "1.2003.0.0",
                                                                "actionPlanInstanceResourceId":"/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Deployment.Admin/locations/global/actionplans/cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a",
                                                                "parameters":  {
    
                                                                               }
                                                            },
                                             "lastSuccessfulDeployment":  {
                                                                              "version":  "1.2003.0.0",
                                                                              "actionPlanInstanceResourceId":"/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Deployment.Admin/locations/global/actionplans/cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a",
                                                                              "parameters":  {
    
                                                                                             }
                                                                          },
                                             "provisioningState":  "Succeeded"
                                         }
                      },
                      {
                      ...
                      }
                  ]
    }
    
  3. Générez l’ID de package du fournisseur de ressources en concaténant l’ID produit et la version du fournisseur de ressources. Par exemple, en utilisant les valeurs dérivées à l’étape précédente, l’ID de package RP Event Hubs est microsoft.eventhub.1.2003.0.0.

  4. À l’aide de l’ID de package dérivé à l’étape précédente, exécutez Get-AzsProductSecret -PackageId pour récupérer la liste des types de secrets utilisés par le fournisseur de ressources. Dans la collection value retournée, recherchez l’élément contenant la valeur "Certificate" pour la propriété "properties"."secretKind". Cet élément contient les propriétés pour le secret de certificat du RP. Notez le nom attribué à ce secret de certificat, qui est identifié par le dernier segment de la propriété "name", juste au-dessus de "properties".

    Dans l’exemple suivant, la collection de secrets renvoyée pour RP Event Hubs contient un secret "Certificate" nommé 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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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"
                                        }
                        },
                        ...
                    ]
    }
    

Effectuer la rotation des secrets

  1. Utilisez la cmdlet Set-AzsProductSecret pour importer votre nouveau certificat dans Key Vault ; celui-ci sera utilisé par le processus de rotation. Remplacez les valeurs d’espace réservé de la variable en conséquence avant d’exécuter le script :

    Espace réservé Description Valeur d'exemple
    <product-id> ID produit du déploiement du fournisseur de ressources le plus récent. microsoft.eventhub
    <installed-version> Version du dernier déploiement du fournisseur de ressources. 1.2003.0.0
    <cert-secret-name> Nom sous lequel le secret de certificat est stocké. aseh-ssl-gateway-pfx
    <cert-pfx-file-path> Chemin d’accès à votre fichier de certificat PFX. C:\dir\eh-cert-file.pfx
    <pfx-password> Mot de passe attribué à votre fichier de certificat .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. Enfin, utilisez la cmdlet Invoke-AzsProductRotateSecretsAction pour effectuer la rotation des secrets internes et externes :

    Remarque

    Le processus de rotation prend de 3,5 à 4 heures.

    Invoke-AzsProductRotateSecretsAction -ProductId $productId
    

    Vous pouvez surveiller la progression de la rotation des secrets à l’aide de la console PowerShell ou du portail d’administration en sélectionnant le fournisseur de ressources dans le service Place de marché :

    secret-rotation-progress

Résolution des problèmes

La rotation du secret doit s'effectuer correctement et sans erreur. Si vous rencontrez l'un des problèmes suivants sur le portail administrateur, ouvrez une demande de support pour obtenir de l'aide :

  • Problèmes d’authentification, comme les problèmes de connexion au fournisseur de ressources Event Hubs.
  • Impossible de mettre à niveau le fournisseur de ressources ou de modifier les paramètres de configuration.
  • Les métriques d'utilisation ne sont pas affichées.
  • Les factures ne sont pas générées.
  • Les sauvegardes n'ont pas lieu.

Étapes suivantes

Pour plus d'informations sur la rotation des secrets dans l'infrastructure Azure Stack Hub, consultez Effectuer la rotation des secrets dans Azure Stack Hub.