Sdílet prostřednictvím


Správa certifikátů pro nasazení operací Azure IoT

Operace Azure IoT používají protokol TLS k šifrování komunikace mezi všemi komponentami. Tento článek popisuje, jak spravovat certifikáty pro interní a externí komunikaci, a jak použít vlastní certifikační autoritu pro interní komunikaci v rámci produkčního nasazení.

Požadavky

Ke správě certifikátů pro externí komunikaci potřebujete instanci provozu Azure IoT nasazenou se zabezpečeným nastavením. Pokud jste nasadili operace Azure IoT s testovacím nastavením, musíte nejprve povolit zabezpečená nastavení.

Správa certifikátů pro interní komunikaci

Veškerá komunikace v rámci operací Azure IoT se šifruje pomocí protokolu TLS. Abyste mohli začít, nasadí se operace Azure IoT s výchozí kořenovou certifikační autoritou a vystavitelem pro certifikáty serveru TLS. Pro účely vývoje a testování můžete použít výchozí nastavení. Pro produkční nasazení doporučujeme použít svou vlastní certifikační autoritu (CA vystavitele) a podnikové řešení PKI.

Výchozí vystavitel podepsaný svým držitelem a kořenový certifikát certifikační autority pro certifikáty serveru TLS

Aby vám to pomohlo začít, nasadí se operace Azure IoT s výchozím vystavitelem podepsaným svým držitelem a kořenovým certifikátem certifikační autority pro certifikáty serveru TLS. Tento vystavitel můžete použít pro vývoj a testování. Operace Azure IoT používají nástroj cert-manager ke správě certifikátů TLS a správce důvěryhodnosti k distribuci sad důvěryhodnosti do komponent.

  • Certifikát certifikační autority je podepsaný svým držitelem a není důvěryhodný pro žádné klienty mimo provoz Azure IoT. Subjektem certifikátu certifikační autority je CN=Azure IoT Operations Quickstart Root CA - Not for Production. Certifikát certifikační autority se automaticky otočí správcem certifikátů.

  • Kořenový certifikát certifikační autority je uložený v tajném kódu Kubernetes volaném azure-iot-operations-aio-ca-certificate pod oborem cert-manager názvů.

  • Veřejná část kořenového certifikátu certifikační autority je uložena v objektu ConfigMap volaném azure-iot-operations-aio-ca-trust-bundle pod oborem azure-iot-operations názvů. Certifikát certifikační autority můžete načíst z objektu ConfigMap a zkontrolovat ho pomocí kubectl a openssl. Objekt ConfigMap se aktualizuje správcem důvěryhodnosti při obměně certifikátu certifikační autority nástrojem cert-manager.

    kubectl get configmap azure-iot-operations-aio-ca-trust-bundle -n azure-iot-operations -o "jsonpath={.data['ca\.crt']}" | openssl x509 -text -noout
    
    Certificate: 
        Data: 
            Version: 3 (0x2) 
            Serial Number: 
                <SERIAL-NUMBER> 
            Signature Algorithm: sha256WithRSAEncryption 
            Issuer: O=Microsoft, CN=Azure IoT Operations Quickstart Root CA - Not for Production 
            Validity 
                Not Before: Sep 18 20:42:19 2024 GMT 
                Not After : Sep 18 20:42:19 2025 GMT 
            Subject: O=Microsoft, CN=Azure IoT Operations Quickstart Root CA - Not for Production 
            Subject Public Key Info: 
                Public Key Algorithm: rsaEncryption 
                    Public-Key: (2048 bit) 
                    Modulus: <MODULUS> 
                                        Exponent: 65537 (0x10001) 
            X509v3 extensions: 
                X509v3 Key Usage: critical 
                    Certificate Sign, CRL Sign 
                X509v3 Basic Constraints: critical 
                    CA:TRUE 
                X509v3 Subject Key Identifier: 
                    <SUBJECT-KEY-IDENTIFIER> 
        Signature Algorithm: sha256WithRSAEncryption 
    [Signature] 
    
  • Ve výchozím nastavení je volaný azure-iot-operations namespacejiž vystavitel nakonfigurovaný azure-iot-operations-aio-certificate-issuer . Používá se jako společný vystavitel pro všechny certifikáty serveru TLS pro operace IoT. Zprostředkovatel MQTT používá vystavitele vytvořeného ze stejného certifikátu certifikační autority podepsaného vystavitelem podepsaným svým držitelem k vydávání certifikátů serveru TLS pro výchozí naslouchací proces TLS na portu 18883. Vystavitele můžete zkontrolovat pomocí následujícího příkazu:

    kubectl get clusterissuer azure-iot-operations-aio-certificate-issuer -o yaml
    
    apiVersion: cert-manager.io/v1 
    kind: ClusterIssuer 
    metadata: 
      creationTimestamp: "2024-09-18T20:42:17Z" 
      generation: 1 
      name: azure-iot-operations-aio-certificate-issuer 
      resourceVersion: "36665" 
      uid: 592700a6-95e0-4788-99e4-ea93934bd330 
    spec: 
      ca: 
        secretName: azure-iot-operations-aio-ca-certificate 
    status: 
      conditions: 
      - lastTransitionTime: "2024-09-18T20:42:22Z" 
        message: Signing CA verified 
        observedGeneration: 1 
        reason: KeyPairVerified 
        status: "True" 
        type: Ready 
    

Používání vlastního vystavitele

V případě produkčních nasazení doporučujeme nastavit Azure IoT operaci s podnikovou PKI pro správu certifikátů a použít vlastní vystavitele CA, který funguje s podnikovou PKI, místo použití výchozího vystavitele samo podepsaného k vydávání certifikátů TLS pro interní komunikaci.

Pokud chcete nastavit operace Azure IoT s vlastním vystavitelem pro interní komunikaci, před nasazením instance do clusteru postupujte následovně:

  1. Postupujte podle kroků v části Příprava clusteru a nastavte cluster.

  2. Nainstalujte nástroj cert-manager. Cert-manager spravuje certifikáty TLS.

  3. Nainstalujte správce důvěryhodnosti. Při instalaci správce důvěryhodnosti nastavte trust namespace na cert-manager. Například:

    helm upgrade trust-manager jetstack/trust-manager --install --namespace cert-manager --set app.trust.namespace=cert-manager --wait
    

    Správce důvěryhodnosti se používá k distribuci sady důvěryhodnosti komponentám.

  4. Vytvořte obor názvů operací Azure IoT.

    kubectl create namespace azure-iot-operations
    
  5. Nasaďte vystavitele, který funguje s nástrojem cert-manager. Seznam všechpodporovaných

    Vystavitel může být typu ClusterIssuer nebo Issuer. Pokud používáte Issuerprostředek vystavitele, musí se vytvořit v oboru názvů Azure IoT Operations.

  6. Nastavte sadu důvěryhodnosti v oboru názvů operací Azure IoT.

    1. Pokud chcete nastavit sadu důvěryhodnosti, vytvořte v oboru názvů Operací Azure IoT objekt ConfigMap. Část veřejného klíče certifikátu certifikační autority umístěte do mapy konfigurace s názvem klíče podle vašeho výběru.

    2. Získejte část veřejného klíče certifikátu certifikační autority. Postup získání veřejného klíče závisí na zvoleném vystaviteli.

    3. Vytvořte objekt ConfigMap. Například:

      kubectl create configmap -n azure-iot-operations <YOUR_CONFIGMAP_NAME> --from-file=<CA_CERTIFICATE_FILENAME_PEM_OR_DER>
      
  7. Podle kroků v části Nasazení operací Azure IoT proveďte nasazení s několika změnami.

    1. --user-trust Přidejte parametr při přípravě clusteru. Například:

      az iot ops init --subscription <SUBSCRIPTION_ID> --cluster <CLUSTER_NAME>  -g <RESOURCE_GROUP> --user-trust
      
    2. --trust-settings Při nasazování operací Azure IoT přidejte parametr s potřebnými informacemi. Například:

      az iot ops create --subscription <SUBSCRIPTION_ID> -g <RESOURCE_GROUP> --cluster <CLUSTER_NAME> --custom-location <CUSTOM_LOCATION> -n <INSTANCE_NAME> --sr-resource-id <SCHEMAREGISTRY_RESOURCE_ID> --trust-settings configMapName=<CONFIGMAP_NAME> configMapKey=<CONFIGMAP_KEY_WITH_PUBLICKEY_VALUE> issuerKind=<CLUSTERISSUER_OR_ISSUER> issuerName=<ISSUER_NAME>
      

    Poznámka:

    Název vlastního umístění má maximální délku 63 znaků.

Správa certifikátů pro externí komunikaci

Operace Azure IoT používají Azure Key Vault jako řešení spravovaného trezoru v cloudu a k synchronizaci tajných kódů z cloudu používá rozšíření Azure Key Vault Secret Store pro Kubernetes a ukládá je na hraničních zařízeních jako tajné kódy Kubernetes. Certifikáty přidáte do služby Azure Key Vault jako tajné kódy a rozšíření je synchronizuje s hraničními klíči jako tajné kódy Kubernetes.

Konfigurace oprávnění služby Azure Key Vault

Pokud chce uživatel používat provozní prostředí k vytváření tajných kódů v trezoru klíčů, vyžaduje oprávnění správce tajných kódů služby Key Vault na úrovni prostředků v Azure.

V testovacím nebo vývojovém prostředí použijte následující kroky k přiřazení role Key Vault Secrets Officer svému uživateli na úrovni skupiny prostředků, kde je nasazena instance služby Azure IoT Operations a instance služby Azure Key Vault:

  1. Pokud chcete najít název skupiny prostředků, přejděte do webového uživatelského rozhraní provozního prostředí , přejděte na stránku Instances a vyhledejte instanci azure IoT Operations. Název skupiny prostředků se zobrazí v poli Skupina prostředků .

  2. Přejděte na web Azure Portal a pak přejděte do skupiny prostředků, do které se nasadí vaše instance Azure IoT Operations a instance služby Azure Key Vault.

    Návod

    Pomocí vyhledávacího pole v horní části webu Azure Portal můžete rychle najít skupinu prostředků zadáním názvu.

  3. V nabídce vlevo vyberte Řízení přístupu (IAM ). Pak vyberte + Přidat > Přidat přiřazení role.

  4. Na kartě Role vyberte v seznamu rolí správce tajných kódů služby Key Vault a pak vyberte Další.

  5. Na kartě Členové vyberte Uživatel, skupina nebo instanční objekt, vyberte Vybrat členy, vyberte uživatele, kterému chcete přiřadit roli Key Vault Secrets Officer , a poté vyberte Další.

  6. Výběrem možnosti Zkontrolovat a přiřadit dokončete přiřazení role.

V produkčním prostředí postupujte podle osvědčených postupů pro zabezpečení služby Azure Key Vault, kterou používáte s operacemi Azure IoT. Další informace najdete v tématu Osvědčené postupy pro používání služby Azure Key Vault.

Přidání a použití certifikátů

Konektory používají prostředí pro správu certifikátů ke konfiguraci ověřování klientských aplikací na externí servery. Další informace o tom, jak konektory používají certifikáty k navázání vzájemného vztahu důvěryhodnosti s externími servery, najdete v dokumentaci ke správě certifikátů specifických pro konektory.

Když nasadíte operace Azure IoT se zabezpečeným nastavením, můžete začít přidávat certifikáty do služby Azure Key Vault a synchronizovat je s clusterem Kubernetes, který se použije v úložištích seznamu důvěryhodnosti a seznamu vystavitelů pro externí připojení.

Pokud chcete spravovat certifikáty pro externí komunikaci, postupujte takto:

  1. Přejděte do provozního prostředí Azure IoT a zvolte svou lokalitu a instanci Azure IoT Operations.

  2. V levém navigačním podokně vyberte Zařízení.

  3. Klikněte na Spravovat certifikáty a tajné kódy.

    Snímek obrazovky znázorňující možnost Spravovat certifikáty a tajné kódy v levém navigačním podokně

  4. Na stránce Certifikáty a tajné kódy klikněte na Přidat nový certifikát.

    Snímek obrazovky znázorňující tlačítko Přidat nový certifikát na stránce zařízení

  5. Nový certifikát můžete přidat dvěma způsoby:

    • Nahrát certifikát: Nahraje certifikát, který se pak přidá jako tajný klíč do služby Azure Key Vault a automaticky se synchronizuje do clusteru pomocí rozšíření Úložiště tajných kódů.

      • Po nahrání si prohlédněte podrobnosti o certifikátu, abyste měli jistotu, že máte správný certifikát před přidáním do služby Azure Key Vault a synchronizací do clusteru.
      • Použijte intuitivní název, abyste mohli rozpoznat, které tajemství představuje vaše tajemství do budoucna.
      • Vyberte příslušné úložiště certifikátů pro konektor, který certifikát používá. Například seznam důvěryhodnosti OPC UA.

      Snímek obrazovky znázorňující možnost Nahrát certifikát při přidávání nového certifikátu na stránku zařízení

      Poznámka:

      Jednoduché nahrání certifikátu nepřidá tajemství do služby Azure Key Vault ani nesynchronizuje do clusteru; musíte vybrat Použít, aby se změny použily.

    • Přidat ze služby Azure Key Vault: Přidejte existující tajný klíč ze služby Azure Key Vault, který se má synchronizovat s clusterem.

      Snímek obrazovky znázorňující možnost Přidat ze služby Azure Key Vault při přidávání nového certifikátu na stránku zařízení

      Poznámka:

      Nezapomeňte vybrat tajný klíč, který obsahuje certifikát, který chcete synchronizovat do clusteru. Výběr tajného kódu, který není správným certifikátem, způsobí selhání připojení.

  6. Pomocí zobrazení seznamu můžete spravovat synchronizované certifikáty. Můžete zobrazit všechny synchronizované certifikáty a úložiště certifikátů, do kterých se synchronizuje:

    Snímek obrazovky znázorňující seznam certifikátů na stránce zařízení a filtrování podle seznamu důvěryhodných certifikátů a seznamu vystavitelů

Další informace o správě certifikátů důvěryhodnosti pro konkrétní konektory najdete v dokumentaci ke správě certifikátů specifických pro konektory.

Synchronizované certifikáty můžete také odstranit. Když odstraníte synchronizovaný certifikát, odstraní se jenom synchronizovaný certifikát z clusteru Kubernetes a neodstraní z Azure Key Vaultu obsažené odkazy na tajné kódy. Tajný klíč certifikátu musíte odstranit ručně z trezoru klíčů.