Partager via


Gérer les secrets pour votre déploiement d’Opérations Azure IoT (préversion)

Important

Opérations Azure IoT (préversion) – activé parc Azure Arc est actuellement en PRÉVERSION. Vous ne devez pas utiliser ce logiciel en préversion dans des environnements de production.

Pour connaître les conditions juridiques qui s’appliquent aux fonctionnalités Azure en version bêta, en préversion ou plus généralement non encore en disponibilité générale, consultez l’Avenant aux conditions d’utilisation des préversions de Microsoft Azure.

La gestion des secrets dans Opérations Azure IoT (préversion) utilise Azure Key Vault comme solution de coffre managé sur le cloud et utilise le pilote CSI du magasin de secrets pour extraire les secrets du cloud et les stocker à la périphérie.

Prérequis

Configurer un magasin de secrets sur votre cluster

Opérations Azure IoT prend en charge Key Vault pour le stockage des secrets et des certificats. La commande Azure CLI az iot ops init automatise les étapes de configuration d’un principal de service pour accorder l’accès au coffre de clés et de configuration des secrets dont vous avez besoin pour exécuter Opérations Azure IoT.

Pour plus d’informations, consultez Déployer les extensions de la préversion d’Opérations Azure IoT sur un cluster Kubernetes.

Configurer manuellement le principal de service et le Key Vault

Si le compte Azure exécutant la commande az iot ops init ne dispose pas des autorisations nécessaires pour interroger Microsoft Graph et créer des principaux de service, vous pouvez préparer ceux-ci à l’avance et utiliser d’autres arguments supplémentaires lors de l’exécution de la commande CLI, comme décrit dans Déployer des extensions Opérations Azure IoT.

Configurer le principal de service pour interagir avec Key Vault via Microsoft Entra ID

Suivez ces étapes pour créer une inscription d’application pour l’application Opérations Azure IoT à utiliser pour s’authentifier auprès de Key Vault.

Tout d’abord, inscrivez une application avec Microsoft Entra ID :

  1. Dans la barre de recherche du Portail Azure, recherchez et sélectionnez Microsoft Entra ID.

  2. Sélectionnez Inscriptions d’applications dans la section Gérer du menu Microsoft Entra ID.

  3. Sélectionnez Nouvelle inscription.

  4. Dans la page Inscrire une application, fournissez les informations suivantes :

    Champ Valeur
    Nom Fournissez un nom pour votre application.
    Types de comptes pris en charge Vérifiez que Comptes dans ce répertoire organisationnel uniquement (<YOUR_TENANT_NAME> uniquement – Tenant unique) est sélectionné.
    URI de redirection Sélectionnez Web comme plateforme. Vous pouvez laisser l’adresse web vide.
  5. Sélectionnez Inscrire.

    Une fois votre application créée, vous êtes dirigé vers sa page de ressources.

  6. Copiez l’ID d’application (client) à partir de la page de présentation de l’inscription d’application. Vous utiliserez cette valeur comme argument lors de l’exécution du déploiement d’Opérations Azure IoT avec la commande az iot ops init.

Accordez ensuite à votre application des autorisations pour le coffre de clés :

  1. Dans la page de ressources de votre application, sélectionnez Autorisations d’API dans la section Gérer du menu de l’application.

  2. Sélectionnez Ajouter une autorisation.

  3. Dans la page Demander des autorisations d’API, faites défiler vers le bas et sélectionnez Azure Key Vault.

  4. Sélectionnez Autorisations déléguées.

  5. Cochez la case pour sélectionner les autorisations user_impersonation.

  6. Sélectionnez Ajouter des autorisations.

Créez une clé secrète client qui est ajoutée à votre cluster Kubernetes pour vous authentifier auprès de votre coffre de clés :

  1. Dans la page de ressources de votre application, sélectionnez Certificats et secrets dans la section Gérer du menu de l’application.

  2. Sélectionnez Nouveau secret client.

  3. Fournissez une description facultative du secret, puis sélectionnez Ajouter.

  4. Copiez la Valeur de votre nouveau secret. Vous utiliserez cette valeur ultérieurement lorsque vous exécuterez az iot ops init.

Récupérez l’ID d’objet du principal de service :

  1. Sur la page de présentation de votre application, dans la section Essentiels, sélectionnez le lien Nom de l’application sous Application gérée dans le répertoire local. Cela ouvre les propriétés d’application d’entreprise. Copiez l’ID d’objet à utiliser lorsque vous exécutez az iot ops init.

Création d’un coffre de clés

Créez une nouvelle instance Azure Key Vault et assurez-vous que le modèle de permission est défini sur la stratégie d’accès à la Vault.

az keyvault create --enable-rbac-authorization false --name "<your unique key vault name>" --resource-group "<the name of the resource group>"

Si vous disposez d’un coffre de clés existant, vous pouvez modifier le modèle d’autorisation en exécutant la commande suivante :

az keyvault update --name "<your unique key vault name>" --resource-group "<the name of the resource group>" --enable-rbac-authorization false 

Vous aurez besoin de l’ID de la ressource Key Vault lors de l’exécution de az iot ops init. Pour récupérer l’ID de la ressource, exécutez :

az keyvault show --name "<your unique key vault name>" --resource-group "<the name of the resource group>" --query id  -o tsv

Définir la stratégie d’accès du principal de service dans Key Vault

Le principal de service qui vient d’être créée a besoin d’une stratégie d’accès Secretlist et get pour qu’Opérations Azure IoT fonctionnent avec le magasin de secrets.

Pour gérer les stratégies d’accès à la chambre forte, le principal connecté à l’interface de gestion doit disposer d’autorisations Azure suffisantes. Dans le modèle de contrôle d’accès basé sur les rôles (RBAC), cette autorisation est incluse dans les rôles de contributeur au Key Vault ou dans les rôles supérieurs.

Conseil

Si vous avez utilisé le principal CLI connecté pour créer le coffre-fort de clés, vous disposez probablement déjà des autorisations nécessaires. Toutefois, si vous pointez vers un coffre-fort de clés différent ou existant, vous devez vérifier que vous disposez des autorisations suffisantes pour définir des politiques d’accès.

Exécutez la commande suivante pour attribuer des autorisations de secretlist et get au principal du service.

az keyvault set-policy --name "<your unique key vault name>" --resource-group "<the name of the resource group>" --object-id <Object ID copied from Enterprise Application SP in Microsoft Entra ID> --secret-permissions get list

Passer les arguments du principal de service et de Key Vault au déploiement d’Opérations Azure IoT

Lorsque vous suivez le guide Déployer des extensions Opérations Azure IoT, passez d’autres indicateurs à la commande az iot ops init afin d’utiliser le principal de service préconfiguré et le coffre de clés.

L’exemple suivant montre comment préparer le cluster pour Opérations Azure IoT sans le déployer entièrement à l’aide d’un indicateur --no-deploy. Vous pouvez également exécuter la commande sans cet argument pour un déploiement Opérations Azure IoT par défaut.

az iot ops init --cluster "<your cluster name>" --resource-group "<the name of the resource group>" \
    --kv-id <Key Vault Resource ID> \
    --sp-app-id <Application registration App ID (client ID) from Microsoft Entra ID> \
    --sp-object-id <Object ID copied from Enterprise Application in Microsoft Entra ID> \
    --sp-secret "<Client Secret from App registration in Microsoft Entra ID>" \
    --no-deploy

L’une des étapes que prend la commande init consiste à garantir que toutes les classes de fournisseur de secrets (SPC) requises par les Opérations Azure IoT ont un secret par défaut configuré dans le coffre de clés. Si aucune valeur pour le secret par défaut n’existe init en créera une. Cette étape nécessite que le principal connecté à l’interface CLI dispose d’autorisations secrètes set. Si vous souhaitez utiliser un secret existant comme secret SPC par défaut, vous pouvez le spécifier avec le paramètre --kv-sat-secret-name , auquel cas le principal connecté a uniquement besoin des autorisations de secret get .

Ajouter un secret à un composant Opérations Azure IoT

Une fois le magasin de secrets configuré sur votre cluster, vous pouvez créer et ajouter des secrets Key Vault.

  1. Créez votre secret dans Key Vault avec le nom et la valeur dont vous avez besoin. Vous pouvez créer un secret à l’aide du portail Microsoft Azure ou de la commandeaz keyvault secret set.

  2. Sur votre cluster, identifiez la classe de fournisseur de secrets (SPC) pour le composant auquel vous souhaitez ajouter le secret. Par exemple : aio-default-spc. Utilisez la commande suivante pour répertorier tous les SPC de votre cluster :

    kubectl get secretproviderclasses -A
    
  3. Ouvrez le fichier dans l’éditeur de texte de votre choix. Si vous utilisez k9s, tapez e pour modifier.

  4. Ajoutez l’objet secret à la liste sous spec.parameters.objects.array. Par exemple :

    spec:
      parameters:
        keyvaultName: my-key-vault
        objects: |
          array:
            - |
              objectName: PlaceholderSecret
              objectType: secret
              objectVersion: ""
    
  5. Enregistrez vos modifications et appliquez-les à votre cluster. Si vous utilisez k9s, vos modifications sont automatiquement appliquées.

Le pilote CSI met à jour des secrets en utilisant un intervalle d'interrogation. Par conséquent, le nouveau secret n’est pas disponible pour le pod avant le prochain intervalle d’interrogation. Pour mettre à jour un composant immédiatement, redémarrez les pods du composant. Par exemple, pour redémarrer le composant Processeur de données, exécutez les commandes suivantes :

kubectl delete pod aio-dp-reader-worker-0 -n azure-iot-operations
kubectl delete pod aio-dp-runner-worker-0 -n azure-iot-operations

Secrets Azure IoT MQ (préversion)

Les étapes pour gérer des secrets avec Azure Key Vault pour Azure IoT MQ (préversion) sont différentes. Pour plus d’informations, consultez Gestion des secrets MQ à l’aide de Key Vault.