Gérer les secrets en utilisant Azure Key Vault ou les secrets Kubernetes dans Azure IoT MQ (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.
Vous pouvez utiliser Azure Key Vault pour gérer les secrets destinés à votre répartiteur MQTT distribué Azure IoT MQ (préversion) plutôt que des secrets Kubernetes. Cet article vous montre comment configurer Key Vault pour votre répartiteur et comment l’utiliser pour gérer les secrets.
Prérequis
Instance Azure Key Vault avec un secret.
Principal de service Microsoft Entra avec des autorisations
get
etlist
pour les secrets dans l’instance Key Vault. Pour configurer le principal de service pour les autorisations Key Vault, consultez Affecter une politique d’accès Key Vault.Un secret Kubernetes avec les informations d’identification du principal de service, comme cet exemple avec le secret
aio-akv-sp
par défaut :apiVersion: v1 kind: Secret metadata: name: aio-akv-sp namespace: azure-iot-operations type: Opaque data: clientid: <base64 encoded client id> clientsecret: <base64 encoded client secret>
Fournisseur Azure Key Vault pour le pilote CSI du Magasin de Secrets
Utilisez Azure Key Vault pour la gestion des secrets
Le champ keyVault
est disponible partout où les secrets Kubernetes (secretName
) sont utilisés. Le tableau suivant décrit les propriétés du champ keyVault
.
Propriété | Obligatoire | Description |
---|---|---|
coffre | Oui | Précise quel Azure Key Vault contient les secrets. |
vault.name | Oui | Précise le nom de l’Azure Key Vault. Pour obtenir le nom du Key Vault à partir du portail Azure, accédez à l’instance Key Vault et copiez le nom dans la page Vue d’ensemble. |
vault.directoryId | Oui | Précise l’ID du locataire Microsoft Entra. Pour obtenir le nom du Key Vault à partir du portail Azure, accédez à l’instance Key Vault et copiez l’ID du locataire dans la page Vue d’ensemble. |
vault.credentials.servicePrincipalLocalSecretName | Oui | Précise le nom du secret qui contient les informations d’identification du principal de service. |
vaultSecret | Oui, lors de l’utilisation de secrets Key Vault standard | Précise le secret dans Azure Key Vault. |
vaultSecret.name | Oui | Précise le nom du secret. |
vaultSecret.version | Non | Précise la version du secret. |
vaultCert | Oui, lors de l’utilisation de certificats Key Vault | Spécifie le certificat dans Azure Key Vault. |
vaultCert.name | Oui | Spécifie le nom du secret de certificat. |
vaultCert.version | Non | Spécifie la version du secret de certificat. |
vaultCaChainSecret | Oui, lors de l’utilisation d’une chaîne de certificats | Spécifie la chaîne de certificats dans Azure Key Vault. |
vaultCaChainSecret.name | Oui | Spécifie le nom de la chaîne de certificats. |
vaultCaChainSecret.version | Non | Spécifie la version de la chaîne de certificats. |
username | Non | Utilisé uniquement pour le connecteur Event Hubs Kafka. Consultez Envoyer et recevoir des messages entre Azure IoT MQ et Event Hubs ou Kafka. |
Le type de secret que vous utilisez détermine lesquels des champs suivants vous pouvez utiliser :
vaultSecret
: utilisez ce champ lorsque vous utilisez un secret normal. Par exemple, vous pouvez utiliser ce champ pour configurer une ressource BrokerAuthentication avec le champusernamePassword
.vaultCert
: utilisez ce champ lorsque vous utilisez le secret de type certificat avec le certificat client et la clé. Par exemple, vous pouvez utiliser ce champ pour activer TLS sur un BrokerListener.vaultCaChainSecret
: utilisez ce champ lorsque vous devez présenter une chaîne de certificats complète, avec tous les certificats intermédiaires ou racines supplémentaires, au serveur distant. Par exemple, vous pouvez utiliser ce champ pour configurer une ressource MqttBridgeConnector avec le champremoteBrokerConnection
. Pour utiliser ce champ, importez des certificats X.509 sans clés privées au format PEM en tant que secret standard multiligne (et non de type certificat) dans Key Vault. Ce champ doit être utilisé en plus devaultCert
qui a le certificat client et la clé privée.
Exemples
Par exemple, pour créer un TLS BrokerListener qui utilise Azure Key Vault pour le secret du certificat de serveur, utilisez le YAML suivant :
apiVersion: mq.iotoperations.azure.com/v1beta1
kind: BrokerListener
metadata:
name: tls-listener-manual
namespace: azure-iot-operations
spec:
brokerRef: broker
authenticationEnabled: true
authorizationEnabled: false
port: 8883
tls:
keyVault:
vault:
name: my-key-vault
directoryId: <AKV directory ID>
credentials:
servicePrincipalLocalSecretName: aio-akv-sp
vaultCert:
name: my-server-certificate
# version: 939ecc2...
Cet exemple montre comment utiliser Azure Key Vault pour le champ usernamePassword
dans une ressource BrokerAuthentication :
apiVersion: mq.iotoperations.azure.com/v1beta1
kind: BrokerAuthentication
metadata:
name: my-authentication
namespace: azure-iot-operations
spec:
listenerRef:
- tls-listener-manual
authenicationMethods:
- usernamePassword:
keyVault:
vault:
name: my-key-vault
directoryId: <AKV directory ID>
credentials:
servicePrincipalLocalSecretName: aio-akv-sp
vaultSecret:
name: my-username-password-db
# version: 939ecc2...
Cet exemple montre comment utiliser Azure Key Vault pour les informations d’identification du répartiteur distant de la passerelle MQTT :
apiVersion: mq.iotoperations.azure.com/v1beta1
kind: MqttBridgeConnector
metadata:
name: my-bridge
namespace: azure-iot-operations
spec:
image:
repository: mcr.microsoft.com/azureiotoperations/mqttbridge
tag: 0.4.0-preview
pullPolicy: IfNotPresent
protocol: v5
bridgeInstances: 1
remoteBrokerConnection:
endpoint: example.broker.endpoint:8883
tls:
tlsEnabled: true
trustedCaCertificateConfigMap: my-ca-certificate
authentication:
x509:
keyVault:
vault:
name: my-key-vault
directoryId: <AKV directory ID>
credentials:
servicePrincipalLocalSecretName: aio-akv-sp
vaultCaChainSecret:
name: my-remote-broker-certificate
# version: 939ecc2...
Contenu connexe
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour