Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les paramètres sécurisés pour Opérations Azure IoT incluent la configuration de la gestion des secrets et une identité managée affectée par l’utilisateur pour les connexions cloud ; par exemple, un serveur OPC UA ou des points de terminaison de flux de données.
Cet article fournit des instructions pour activer les paramètres sécurisés si vous ne l’avez pas fait lors de votre déploiement initial.
Prerequisites
- Une instance Opérations Azure IoT déployée avec des paramètres de test.
La Azure CLI installée sur votre ordinateur de développement. Vérifiez les extensions Azure CLI disponibles pour connaître la version minimale requise afin d’utiliser l’extension azure-iot-ops. Utilisez
az --versionpour vérifier votre version etaz upgradepour effectuer une mise à jour si nécessaire. Pour plus d’informations, consultez la rubrique Installation de l’interface de ligne de commande Azure (CLI).Extension Opérations Azure IoT pour le Azure CLI. Utilisez la commande suivante pour ajouter l’extension ou la mettre à jour vers la dernière version :
az extension add --upgrade --name azure-iot-ops
La dernière version de l’extension connectedk8s pour Azure CLI. Utilisez la commande suivante pour ajouter l’extension ou la mettre à jour vers la dernière version :
az extension add --upgrade --name connectedk8s
Les exemples Azure CLI de cet article utilisent des variables d’environnement afin de pouvoir définir chaque valeur une fois puis copier-coller les commandes as-is. Si vous utilisez l'environnement Opérations Azure IoT Codespaces du quickstart, ces variables sont déjà définies pour vous et vous pouvez sauter cette étape. Sinon, définissez les variables d’environnement suivantes dans votre shell avant d’exécuter les commandes.
Les scripts suivants définissent les variables d’environnement les plus couramment utilisées :
| Variable d'environnement | Description |
|---|---|
SUBSCRIPTION_ID |
L’identifiant de l’abonnement contenant votre instance Opérations Azure IoT. |
RESOURCE_GROUP |
Le nom du groupe de ressources contenant votre instance Opérations Azure IoT. |
AIO_INSTANCE_NAME |
Le nom de votre instance Opérations Azure IoT. Pour lister vos instances, exécutez az iot ops list -o table. |
CLUSTER_NAME |
Le nom du cluster Kubernetes compatible Azure Arc qui héberge votre instance. |
LOCATION |
La région Azure à utiliser pour de nouvelles ressources, par exemple eastus. |
SUBSCRIPTION_ID=<subscription-id>
RESOURCE_GROUP=<resource-group-name>
AIO_INSTANCE_NAME=<instance-name>
CLUSTER_NAME=<cluster-name>
LOCATION=<region>
Vous n’avez qu’à définir les variables utilisées dans cet article. Cet article peut utiliser des variables d’environnement supplémentaires pour les noms de ressources que vous choisissez. L’article explique comment les placer là où ils sont introduits.
Activer le cluster pour les paramètres sécurisés
Pour activer la synchronisation des secrets pour votre instance Opérations Azure IoT, les fonctionnalités de fédération de l’identité de charge de travail et de l’émetteur OIDC doivent être activées sur votre cluster. Cette configuration est requise pour l’extension Azure Key Vault Secret Store pour synchroniser les secrets à partir d’un Azure Key Vault et les stocker sur la périphérie en tant que secrets Kubernetes.
Pour les clusters Azure Kubernetes Service (AKS), vous pouvez activer les fonctionnalités d’émetteur OIDC et d’identité de charge de travail lors de la création du cluster ou sur un cluster existant. Pour plus d’informations, voir Déployer et configurer ID de charge de travail Microsoft Entra sur un cluster AKS. Pour les clusters sur AKS Edge Essentials, le script automatisé active ces fonctionnalités par défaut. Pour les clusters AKS sur Azure Local, suivez les étapes pour Deployr et configurer l'identité de charge de travail sur un cluster AKS activé par Azure Arc cluster pour créer un cluster si vous n'en avez pas avec les fonctionnalités requises.
Pour les clusters k3s sur Kubernetes, vous pouvez mettre à jour un cluster existant. Pour activer et configurer ces fonctionnalités, procédez comme suit :
Mettez à jour le cluster pour activer l’identité de l’émetteur et de la charge de travail OIDC.
az connectedk8s update -n $CLUSTER_NAME -g $RESOURCE_GROUP --enable-oidc-issuer --enable-workload-identitySi vous avez activé les fonctionnalités d’identité de l’émetteur et de la charge de travail OIDC lorsque vous avez créé le cluster, vous n’avez pas besoin d’exécuter à nouveau la commande précédente. Utilisez la commande suivante pour vérifier l’état des fonctionnalités d’identité de l’émetteur OIDC et de la charge de travail pour votre cluster :
az connectedk8s show -g $RESOURCE_GROUP -n $CLUSTER_NAME --query "{ClusterName:name, OIDCIssuerEnabled:oidcIssuerProfile.enabled, WorkloadIdentityEnabled:securityProfile.workloadIdentity.enabled}"Obtenez l’URL de l’émetteur du cluster.
az connectedk8s show -g $RESOURCE_GROUP -n $CLUSTER_NAME --query oidcIssuerProfile.issuerUrl --output tsvNotez la sortie de cette commande à utiliser dans les étapes suivantes.
Créez le fichier de configuration k3s sur l’ordinateur sur lequel vous avez déployé votre cluster Kubernetes :
sudo nano /etc/rancher/k3s/config.yamlAjoutez le contenu suivant au fichier
config.yaml, en remplaçant l’espace réservé<SERVICE_ACCOUNT_ISSUER>par l’URL de l’émetteur de cluster que vous avez notée précédemment :kube-apiserver-arg: - service-account-issuer=<SERVICE_ACCOUNT_ISSUER> - service-account-max-token-expiration=24hEnregistrez le fichier et quittez l’éditeur nano.
Redémarrez le service k3s :
sudo systemctl restart k3s
Configurer la gestion des secrets
La gestion des secrets pour Opérations Azure IoT utilise l’extension Secret Store pour synchroniser les secrets à partir d’un coffre de clés Azure et les stocker sur la périphérie en tant que secrets Kubernetes. L’extension Secret Store nécessite une identité managée affectée par l’utilisateur avec accès au coffre de clés Azure où sont stockés les secrets. Pour plus d’informations, consultez Qu’est-ce que les identités managées pour les ressources Azure ?
Pour configurer la gestion des secrets :
Créez un Azure Key Vault pour stocker les secrets, et donnez à votre compte utilisateur les permissions de gérer les secrets en attribuant le
Key Vault Secrets Officerrôle. Assurez-vous que votre coffre de clés utilise le contrôle d’accès basé sur les rôles Azure comme modèle d’autorisation. Pour vérifier ce paramètre dans le portail Azure, sélectionnez votre coffre-fort à clés puis sélectionnez Paramètres>d’accès à la configuration.Créez une identité managée affectée par l’utilisateur pour l’extension Secret Store à utiliser pour accéder au coffre de clés.
Utilisez la commande az iot ops secretsync enable pour configurer l’instance de Opérations Azure IoT pour la synchronisation de secrets. Cette commande :
- Permet de créer des informations d’identification d’identité fédérée en utilisant l’identité managée affectée par l’utilisateur.
- Ajoute une attribution de rôle à l’identité managée affectée par l’utilisateur pour l’accès au Azure Key Vault.
- Ajoute une classe de fournisseur de secrets minimale associée à l’instance de Opérations Azure IoT.
# Variable block AIO_INSTANCE_NAME="<AIO_INSTANCE_NAME>" RESOURCE_GROUP="<RESOURCE_GROUP>" USER_ASSIGNED_MI_NAME="<USER_ASSIGNED_MI_NAME>" KEYVAULT_NAME="<KEYVAULT_NAME>" #Get the resource ID of the user-assigned managed identity USER_ASSIGNED_MI_RESOURCE_ID=$(az identity show --name $USER_ASSIGNED_MI_NAME --resource-group $RESOURCE_GROUP --query id --output tsv) #Get the resource ID of the key vault KEYVAULT_RESOURCE_ID=$(az keyvault show --name $KEYVAULT_NAME --resource-group $RESOURCE_GROUP --query id --output tsv) #Enable secret synchronization az iot ops secretsync enable --instance $AIO_INSTANCE_NAME \ --resource-group $RESOURCE_GROUP \ --mi-user-assigned $USER_ASSIGNED_MI_RESOURCE_ID \ --kv-resource-id $KEYVAULT_RESOURCE_ID
Maintenant que la configuration de la synchronisation des secrets est terminée, vous pouvez vous référer à Manage secrets pour votre déploiement de Opérations Azure IoT pour apprendre à utiliser des secrets avec Opérations Azure IoT.
Configurer une identité managée affectée par l’utilisateur pour les connexions cloud
Certains composants Opérations Azure IoT, tels que les points de terminaison de flux de données, utilisent une identité managée affectée par l’utilisateur pour les connexions cloud. Nous vous recommandons d’utiliser une identité distincte de celle utilisée pour configurer la gestion des secrets.
Créez une identité managée affectée par l’utilisateur utilisée pour les connexions cloud.
Note
Vous devrez accorder l’autorisation d’identité à la ressource cloud pour laquelle vous utiliserez l’identité managée.
Utilisez la commande az iot ops assign pour affecter l’identité à l’instance de Opérations Azure IoT. Cette commande crée également des informations d’identification d’identité fédérée à l’aide de l’émetteur OIDC du cluster connecté indiqué et du compte de service Opérations Azure IoT.
Important
La version par défaut de cette commande affecte une identité pour les flux de données. Si vous envisagez d’utiliser des graphiques de flux de données, incluez le
--usageparamètre avec la valeurwasm-graph.# Variable block AIO_INSTANCE_NAME="<AIO_INSTANCE_NAME>" RESOURCE_GROUP="<RESOURCE_GROUP>" USER_ASSIGNED_MI_NAME="<USER_ASSIGNED_MI_NAME FOR CLOUD CONNECTIONS>" #Get the resource ID of the user-assigned managed identity USER_ASSIGNED_MI_RESOURCE_ID=$(az identity show --name $USER_ASSIGNED_MI_NAME --resource-group $RESOURCE_GROUP --query id --output tsv) #Assign the identity to the Azure IoT Operations instance az iot ops identity assign --name $AIO_INSTANCE_NAME \ --resource-group $RESOURCE_GROUP \ --mi-user-assigned $USER_ASSIGNED_MI_RESOURCE_IDPour appliquer la nouvelle identité, redémarrez les pods du registre de schémas.
kubectl rollout restart statefulset adr-schema-registry -n azure-iot-operations
Vous pouvez maintenant utiliser cette identité managée dans des points de terminaison de flux de données pour des connexions cloud.
Bloquer l’accès des pods au service de métadonnées d’instance Azure
Lorsque vous déployez Opérations Azure IoT avec des paramètres sécurisés sur AKS, Microsoft recommande de bloquer l’accès des pods au point de terminaison du service de métadonnées d’instance Azure. Pour savoir comment activer cette fonctionnalité, consultez Bloquer l'accès des pods au point de terminaison du service Azure Instance Metadata (IMDS).