Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Azure IoT Operations maakt gebruik van TLS om de communicatie tussen alle onderdelen te versleutelen. In dit artikel wordt beschreven hoe u certificaten voor interne en externe communicatie beheert en hoe u uw eigen certificeringsinstantieverlener (CA) kunt gebruiken voor interne communicatie in een productie-implementatie.
Vereiste voorwaarden
- Als u certificaten voor externe communicatie wilt beheren, hebt u een Azure IoT Operations-exemplaar nodig dat is geïmplementeerd met beveiligde instellingen. Als u Azure IoT Operations met testinstellingen hebt geïmplementeerd, moet u eerst beveiligde instellingen inschakelen.
Certificaten voor interne communicatie beheren
Alle communicatie binnen Azure IoT-bewerkingen wordt versleuteld met BEHULP van TLS. Om u te helpen aan de slag te gaan, wordt Azure IoT Operations geïmplementeerd met een standaardhoofd-CA en verlener voor TLS-servercertificaten. U kunt de standaardinstelling gebruiken voor ontwikkelings- en testdoeleinden. Voor een productie-implementatie raden we u aan uw eigen CA-verlener en een enterprise PKI-oplossing te gebruiken.
Standaard zelfondertekend verlener en basis-CA-certificaat voor TLS-servercertificaten
Om u te helpen aan de slag te gaan, wordt Azure IoT Operations geïmplementeerd met een standaard zelfondertekend verlener en basis-CA-certificaat voor TLS-servercertificaten. U kunt deze verlener gebruiken voor ontwikkeling en testen. Azure IoT Operations maakt gebruik van certificaatbeheer voor het beheren van TLS-certificaten en vertrouwensbeheer om vertrouwensbundels te distribueren naar onderdelen.
Het CA-certificaat is zelfondertekend en wordt niet vertrouwd door clients buiten Azure IoT Operations. Het onderwerp van het CA-certificaat is
CN=Azure IoT Operations Quickstart Root CA - Not for Production. Het CA-certificaat wordt automatisch gedraaid door certificaatbeheer.Het basis-CA-certificaat wordt opgeslagen in een Kubernetes-geheim dat wordt aangeroepen
azure-iot-operations-aio-ca-certificateonder decert-managernaamruimte.Het openbare gedeelte van het basis-CA-certificaat wordt opgeslagen in een ConfigMap die wordt aangeroepen
azure-iot-operations-aio-ca-trust-bundleonder deazure-iot-operationsnaamruimte. U kunt het CA-certificaat ophalen uit de ConfigMap en dit inspecteren met kubectl en openssl. De ConfigMap wordt bijgewerkt door trust-manager wanneer het CA-certificaat wordt gedraaid door certificaatbeheerder.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]Standaard is er al een verlener geconfigureerd in de
azure-iot-operations namespaceaangeroepenazure-iot-operations-aio-certificate-issuer. Deze wordt gebruikt als de algemene verlener voor alle TLS-servercertificaten voor IoT-bewerkingen. MQTT Broker maakt gebruik van een verlener die is gemaakt op basis van hetzelfde CA-certificaat dat is ondertekend door de zelfondertekende verlener om TLS-servercertificaten uit te geven voor de standaard TLS-listener op poort 18883. U kunt de verlener inspecteren met de volgende opdracht: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
Bring Your Own Issuer
Voor productie-implementaties raden we u aan Azure IoT Operations in te stellen met een enterprise PKI voor het beheren van certificaten en dat u uw eigen CA-verlener gebruikt die met uw enterprise PKI werkt, in plaats van de standaard zelfondertekende uitgever te gebruiken om TLS-certificaten uit te geven voor interne communicatie.
Als u Azure IoT Operations wilt instellen met uw eigen verlener voor interne communicatie, gebruikt u de volgende stappen voordat u een exemplaar implementeert in uw cluster:
Volg de stappen in Het cluster voorbereiden om uw cluster in te stellen.
Installeer cert-manager. Certificaatbeheer beheert TLS-certificaten.
Installeer trust-manager. Stel tijdens het installeren van vertrouwensbeheer de
trust namespaceinstelling in op certificaatbeheer. Voorbeeld:helm upgrade trust-manager jetstack/trust-manager --install --namespace cert-manager --set app.trust.namespace=cert-manager --waitTrust-manager wordt gebruikt om een vertrouwensbundel te distribueren naar onderdelen.
Maak de Azure IoT Operations-naamruimte.
kubectl create namespace azure-iot-operationsImplementeer een verlener die werkt met certificaatbeheer. Zie cert-managerverleners voor een lijst met alle ondersteunde verleners.
De verlener kan van het type
ClusterIssuerzijn ofIssuer. Als uIssuerdeze gebruikt, moet de verlenerresource worden gemaakt in de Azure IoT Operations-naamruimte.Stel de vertrouwensbundel in de Azure IoT Operations-naamruimte in.
Als u een vertrouwensbundel wilt instellen, maakt u een ConfigMap in de Azure IoT Operations-naamruimte. Plaats het openbare sleutelgedeelte van uw CA-certificaat in de configuratietoewijzing met een sleutelnaam van uw keuze.
Haal het openbare sleutelgedeelte van uw CA-certificaat op. De stappen voor het verkrijgen van de openbare sleutel zijn afhankelijk van de verlener die u kiest.
Maak de ConfigMap. Voorbeeld:
kubectl create configmap -n azure-iot-operations <YOUR_CONFIGMAP_NAME> --from-file=<CA_CERTIFICATE_FILENAME_PEM_OR_DER>
Volg de stappen in Azure IoT-bewerkingen implementeren om te implementeren, met enkele wijzigingen.
Voeg de parameter toe tijdens het
--user-trustvoorbereiden van het cluster. Voorbeeld:az iot ops init --subscription <SUBSCRIPTION_ID> --cluster <CLUSTER_NAME> -g <RESOURCE_GROUP> --user-trustVoeg de
--trust-settingsparameter toe met de benodigde informatie tijdens het implementeren van Azure IoT Operations. Voorbeeld: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>
Opmerking
De naam van de aangepaste locatie heeft een maximale lengte van 63 tekens.
Certificaten voor externe communicatie beheren
De ervaring voor certificaatbeheer voor externe communicatie maakt gebruik van Azure Key Vault als de oplossing voor beheerde kluizen in de cloud. Certificaten worden als geheimen toegevoegd aan de Key Vault en gesynchroniseerd met de Edge als Kubernetes-geheimen via de Azure Key Vault Secret Store extension.
Connectors gebruiken de ervaring voor certificaatbeheer om clienttoepassingsverificatie te configureren voor externe servers. Zie de connectorspecifieke documentatie voor certificaatbeheer voor meer informatie over het gebruik van certificaten om wederzijdse vertrouwen met externe servers tot stand te brengen.
Wanneer u Azure IoT-bewerkingen met beveiligde instellingen implementeert, kunt u certificaten toevoegen aan Azure Key Vault en deze synchroniseren met het Kubernetes-cluster dat moet worden gebruikt in de lijst met vertrouwens - en verlenerlijstarchieven voor externe verbindingen.
Volg deze stappen om certificaten voor externe communicatie te beheren:
Ga naar de Azure IoT Operations-ervaring en kies uw site en het Azure IoT Operations-exemplaar.
Selecteer Apparaten in het linkernavigatiedeelvenster.
Klik op Certificaten en geheimen beheren.
Klik op de pagina Certificaten en geheimen op Nieuw certificaat toevoegen.
U kunt op twee manieren een nieuw certificaat toevoegen:
Certificaat uploaden: uploadt een certificaat dat vervolgens wordt toegevoegd als geheim aan Azure Key Vault en automatisch wordt gesynchroniseerd met het cluster met behulp van de extensie Secret Store.
- Bekijk de certificaatdetails nadat het is geüpload, om ervoor te zorgen dat u het juiste certificaat hebt voordat u aan Azure Key Vault toevoegt en synchroniseert met het cluster.
- Gebruik een intuïtieve naam zodat u kunt herkennen welk geheim uw geheim in de toekomst vertegenwoordigt.
Opmerking
Als u het certificaat uploadt, wordt het geheim niet toegevoegd aan Azure Key Vault en gesynchroniseerd met het cluster. Selecteer Toepassen om de wijzigingen toe te passen.
Toevoegen vanuit Azure Key Vault: voeg een bestaand geheim toe uit de Azure Key Vault die moet worden gesynchroniseerd met het cluster.
Opmerking
Zorg ervoor dat u het geheim selecteert dat het certificaat bevat dat u wilt synchroniseren met het cluster. Als u een geheim selecteert dat niet het juiste certificaat is, mislukt de verbinding.
Met behulp van de lijstweergave kunt u de gesynchroniseerde certificaten beheren. U kunt alle gesynchroniseerde certificaten weergeven en met welk certificaatarchief het is gesynchroniseerd:
Zie de connectorspecifieke documentatie voor certificaatbeheer voor meer informatie over hoe vertrouwenscertificaten worden beheerd voor specifieke connectors.
U kunt ook gesynchroniseerde certificaten verwijderen. Wanneer u een gesynchroniseerd certificaat verwijdert, wordt alleen het gesynchroniseerde certificaat uit het Kubernetes-cluster verwijderd en wordt de ingesloten geheime verwijzing niet uit Azure Key Vault verwijderd. U moet het certificaatgeheim handmatig verwijderen uit de sleutelkluis.