Megosztás a következőn keresztül:


Titkos kódok kezelése az Azure Key Vault vagy a Kubernetes titkos kulcsokkal az Azure IoT MQ előzetes verziójában

Fontos

Az Azure IoT Operations Előzetes verziója – az Azure Arc által engedélyezett verzió jelenleg előzetes verzióban érhető el. Ezt az előzetes verziójú szoftvert nem szabad éles környezetben használni.

A bétaverziójú, előzetes verziójú vagy másként még általánosan nem elérhető Azure-szolgáltatások jogi feltételeit lásd: Kiegészítő használati feltételek a Microsoft Azure előzetes verziójú termékeihez.

Az Azure Key Vault használatával kubernetes titkos kulcsok helyett az Azure IoT MQ Preview elosztott MQTT-közvetítő titkos kulcsait kezelheti. Ez a cikk bemutatja, hogyan állíthatja be a Key Vaultot a közvetítőhöz, és hogyan kezelheti a titkos kulcsokat.

Előfeltételek

Az Azure Key Vault használata titkos kódok kezeléséhez

A keyVault mező mindenhol elérhető, ahol a Kubernetes titkos kulcsokat (secretName) használják. Az alábbi táblázat a mező tulajdonságait keyVault ismerteti.

Tulajdonság Kötelező Leírás
tár Igen Megadja a titkos kulcsokat tartalmazó Azure Key Vaultot.
vault.name Igen Az Azure Key Vault nevét adja meg. Ha le szeretné szerezni a Key Vault nevét az Azure Portalról, lépjen a Key Vault-példányra, és másolja a nevet az Áttekintés lapról.
vault.directoryId Igen A Microsoft Entra bérlőazonosítóját adja meg. Ha le szeretné szerezni a bérlőazonosítót az Azure Portalról, lépjen a Key Vault-példányra, és másolja a bérlőazonosítót az Áttekintés lapról.
vault.credentials.servicePrincipalLocalSecretName Igen Megadja a szolgáltatásnév hitelesítő adatait tartalmazó titkos kód nevét.
vaultSecret Igen, ha normál Key Vault-titkos kulcsokat használ Az Azure Key Vault titkos kulcsát adja meg.
vaultSecret.name Igen Megadja a titkos kód nevét.
vaultSecret.version Nem A titkos kód verzióját adja meg.
vaultCert Igen, a Key Vault-tanúsítványok használatakor Megadja a tanúsítványt az Azure Key Vaultban.
vaultCert.name Igen Megadja a tanúsítvány titkos kódjának nevét.
vaultCert.version Nem A tanúsítványtitkok verzióját adja meg.
vaultCaChainSecret Igen, tanúsítványlánc használatakor Az Azure Key Vault tanúsítványláncát adja meg.
vaultCaChainSecret.name Igen Megadja a tanúsítványlánc nevét.
vaultCaChainSecret.version Nem A tanúsítványlánc verzióját adja meg.
username Nem Csak az Event Hubs Kafka-összekötőhöz használható, lásd : Üzenetek küldése és fogadása az Azure IoT MQ és az Event Hubs vagy a Kafka között.

A használt titkos kód típusa határozza meg, hogy az alábbi mezők közül melyiket használhatja:

  • vaultSecret: Használja ezt a mezőt normál titkos kód használatakor. Ezt a mezőt használhatja például egy BrokerAuthentication-erőforrás mezővel való usernamePassword konfigurálásához.
  • vaultCert: Ezt a mezőt akkor használja, ha ügyféltanúsítvánnyal és kulccsal használja a tanúsítványtípus titkos kódját. Ezt a mezőt használhatja például a TLS engedélyezéséhez egy BrokerListeneren.
  • vaultCaChainSecret: Akkor használja ezt a mezőt, ha teljes tanúsítványláncot kell bemutatnia az összes további köztes vagy főtanúsítvánnyal együtt a távoli kiszolgálónak. Ezt a mezőt használhatja például egy MqttBridge Csatlakozás or erőforrás konfigurálásához a remoteBrokerConnection mezővel. A mező használatához importálja az X.509-tanúsítványokat titkos kulcsok nélkül PEM formátumban, többsoros normál titkos kódként (nem tanúsítványtípusként) a Key Vaultba. Ezt a mezőt az ügyféltanúsítvány vaultCert és a titkos kulcs mellett kell használni.

Példák

Ha például létre szeretne hozni egy TLS BrokerListenert , amely az Azure Key Vaultot használja a kiszolgálótanúsítvány titkosításához, használja a következő YAML-t:

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...

Ez a következő példa bemutatja, hogyan használhatja az Azure Key Vaultot egy usernamePassword BrokerAuthentication-erőforrás mezőihez:

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...

Ez a példa bemutatja, hogyan használhatja az Azure Key Vaultot az MQTT-híd távoli közvetítői hitelesítő adataihoz:

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...