Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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 nevěří mu klienti mimo Azure IoT Operations. Subjektem certifikátu certifikační autority je
CN=Azure IoT Operations Quickstart Root CA - Not for Production. Cert-manager automaticky otočí certifikát certifikační autority.Kořenový certifikát certifikační autority je uložený v tajném kódu Kubernetes volaném
azure-iot-operations-aio-ca-certificatepod oboremcert-managernázvů.Objekt ConfigMap nazvaný
azure-iot-operations-aio-ca-trust-bundlev oboru názvůazure-iot-operationsukládá veřejnou část kořenového certifikátu CA. Certifikát certifikační autority můžete načíst z objektu ConfigMap a zkontrolovat ho pomocí kubectl a openssl. Správce důvěryhodnosti udržuje objekt ConfigMap aktualizovaný, když cert-manager otočí certifikát certifikační autority.kubectl get configmap azure-iot-operations-aio-ca-trust-bundle -n azure-iot-operations -o "jsonpath={.data['ca\.crt']}" | openssl x509 -text -nooutCertificate: 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, který je sám podepsaný k vydávání TLS serverových certifikátů pro výchozí TLS posluchač na portu 18883. Vystavitele můžete zkontrolovat pomocí následujícího příkazu:kubectl get clusterissuer azure-iot-operations-aio-certificate-issuer -o yamlapiVersion: 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 operace Azure IoT s podnikovou PKI pro správu certifikátů a mít vlastního vystavitele CA, který funguje s podnikovou PKI, místo použití výchozího samopodepsaného vystavitele k vydávání certifikátů TLS v rámci interní komunikace.
Pokud chcete nastavit operace Azure IoT s vlastním vystavitelem pro interní komunikaci, před nasazením instance do clusteru postupujte následovně:
Postupujte podle kroků v části Příprava clusteru a nastavte cluster.
Nainstalujte nástroj cert-manager. Cert-manager spravuje certifikáty TLS.
Nainstalujte správce důvěryhodnosti. Při instalaci správce důvěryhodnosti nastavte
trust namespacena cert-manager. Například:helm upgrade trust-manager jetstack/trust-manager --install --namespace cert-manager --set app.trust.namespace=cert-manager --waitSprávce důvěryhodnosti se používá k distribuci sady důvěryhodnosti komponentám.
Vytvořte obor názvů operací Azure IoT.
kubectl create namespace azure-iot-operationsNasaďte vystavitele, který funguje s nástrojem cert-manager. Seznam všechpodporovaných
Vystavitel může být typu
ClusterIssuerneboIssuer. Pokud používáteIssuerprostředek vystavitele, musí se vytvořit v oboru názvů Azure IoT Operations.Nastavte sadu důvěryhodnosti v oboru názvů operací Azure IoT.
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.
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.
Vytvořte objekt ConfigMap. Například:
kubectl create configmap -n azure-iot-operations <YOUR_CONFIGMAP_NAME> --from-file=<CA_CERTIFICATE_FILENAME_PEM_OR_DER>
Podle kroků v části Nasazení operací Azure IoT proveďte nasazení s několika změnami.
--user-trustPřidejte parametr při přípravě clusteru. Například:az iot ops init --subscription <SUBSCRIPTION_ID> --cluster <CLUSTER_NAME> -g <RESOURCE_GROUP> --user-trust--trust-settingsPř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í úložiště tajných kódů služby Azure Key Vault pro Kubernetes a ukládá je na hraničních zařízeních jako tajné kódy Kubernetes.
Důležité
Přestože operace Azure IoT používají k zabezpečení externí komunikace certifikáty, tyto certifikáty se ukládají jako tajné kódy ve službě Azure Key Vault. Když do služby Azure Key Vault přidáte certifikát, nezapomeňte ho přidat jako tajný klíč, ne jako prostředek certifikátu.
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:
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ů .
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.
V nabídce vlevo vyberte Řízení přístupu (IAM ). Pak vyberte + Přidat > Přidat přiřazení role.
Na kartě Role vyberte v seznamu rolí správce tajných kódů služby Key Vault a pak vyberte Další.
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ší.
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í 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, jako je vysvětlení infrastruktury certifikátů OPC UA.
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í. Každý konektor má svůj vlastní seznam důvěryhodnosti pro ukládání certifikátů externích serverů, kterým důvěřuje, a připojuje se k němu.
Pokud chcete spravovat certifikáty pro externí komunikaci, postupujte takto:
Přejděte do provozního prostředí Azure IoT a zvolte svou lokalitu a instanci Azure IoT Operations.
V levém navigačním podokně vyberte Zařízení.
Vyberte možnost Spravovat certifikáty a tajné kódy.
Na stránce Certifikáty a tajné kódy vyberte možnost Přidat nový certifikát.
Nový certifikát můžete přidat dvěma způsoby:
Nahrát certifikát: Nahraje certifikát, který se 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.
Poznámka:
Pouhé nahrání certifikátu nepřidá tajemství do Azure Key Vault ani jej 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.
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í.
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:
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íčů.
Vytvoření certifikátů pomocí příkazů rozhraní příkazového řádku
Předchozí části vysvětlují, jak spravovat certifikáty pomocí webového uživatelského rozhraní provozního prostředí a webu Azure Portal. K řízení certifikátů v konektoru pro seznamy důvěryhodných a vystavujících entit OPC UA lze také použít Azure CLI. Další informace najdete v příkazech az iot ops connector opcua trust a az iot ops connector opcua issuer.
Návod
Nezapomeňte, že tyto certifikáty musí být uložené jako tajné kódy ve službě Azure Key Vault.
Přidání certifikátů jako tajných kódů do služby Azure Key Vault
Pokud používáte provozní prostředí k výběru existujících certifikátů, které byly dříve přidány do služby Azure Key Vault, ujistěte se, že jsou tajné kódy ve formátu a kódování podporované operacemi Azure IoT.
Pokud chcete do služby Azure Key Vault přidat tajný klíč certifikátu PEM, můžete použít příkaz podobný následujícímu příkladu:
az keyvault secret set \
--vault-name <your-key-vault-name> \
--name my-cert-pem \
--file ./my-cert.pem \
--encoding hex \
--content-type 'application/x-pem-file'
Pokud chcete do služby Azure Key Vault přidat binární tajný klíč certifikátu DER, můžete použít příkaz podobný následujícímu příkladu:
az keyvault secret set \
--vault-name <your-key-vault-name> \
--name my-cert-der \
--file ./my-cert.der \
--encoding hex \
--content-type 'application/pkix-cert'