Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Azure IoT-bewerkingen 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-bewerkingen-exemplaar nodig dat is geïmplementeerd met beveiligde instellingen. Als u Azure IoT-bewerkingen 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-bewerkingen 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 certificaat van de uitgever en root-CA-certificaat voor TLS-servercertificaten
Om u te helpen aan de slag te gaan, wordt Azure IoT-bewerkingen geïmplementeerd met een standaard zelfondertekend verlener en basis-CA-certificaat voor TLS-servercertificaten. U kunt deze uitgever gebruiken voor ontwikkelings- en testdoeleinden. Azure IoT-bewerkingen maakt gebruik van certificaatbeheer voor het beheren van TLS-certificaten en vertrouwensbeheer om vertrouwensbundels te distribueren naar onderdelen.
Het CA-certificaat is zelfondertekend en klanten buiten Azure IoT-bewerkingen vertrouwen het niet. Het onderwerp van het CA-certificaat is
CN=Azure IoT-bewerkingen Quickstart Root CA - Not for Production. Cert-manager vernieuwt automatisch het CA-certificaat.Het basis-CA-certificaat wordt opgeslagen in een Kubernetes-geheim dat wordt aangeroepen
azure-iot-operations-aio-ca-certificateonder decert-managernaamruimte.Een ConfigMap die wordt aangeroepen
azure-iot-operations-aio-ca-trust-bundleonder deazure-iot-operationsnaamruimte, slaat het openbare gedeelte van het basis-CA-certificaat op. U kunt het CA-certificaat ophalen uit de ConfigMap en dit inspecteren met kubectl en openssl. Trust-manager houdt de ConfigMap bijgewerkt wanneer certificaatbeheer het CA-certificaat roteert.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 uitgever geconfigureerd in
azure-iot-operations namespacemet de naamazure-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
Gebruik je eigen uitgever
Voor productie-implementaties wordt u aangeraden Azure IoT-bewerkingen in te stellen met een PKI voor ondernemingen 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-bewerkingen 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-bewerkingen-naamruimte.
kubectl create namespace azure-iot-operationsImplementeer een verlener die werkt met certificaatbeheer. Zie cert-manager issuers voor een lijst van alle ondersteunde issuers.
De verlener kan van het type
ClusterIssuerzijn ofIssuer. Als uIssuergebruikt, moet de uitgeverresource worden gemaakt in de naamruimte van Azure IoT-bewerkingen.Stel de vertrouwensbundel in de Azure IoT-bewerkingen-naamruimte in.
Als u een vertrouwensbundel wilt instellen, maakt u een ConfigMap in de Azure IoT-bewerkingen-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 Deploy Azure IoT-bewerkingen om te implementeren, met een paar wijzigingen.
Voeg de parameter
--user-trusttoe bij het voorbereiden 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-bewerkingen. 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
Azure IoT-bewerkingen maakt gebruik van Azure Key Vault als de beheerde kluisoplossing in de cloud en maakt gebruik van de Azure Key Vault-extensie voor het geheimarchief voor Kubernetes om de geheimen uit de cloud te synchroniseren en op te slaan op de rand als Kubernetes-geheimen.
Belangrijk
Hoewel Azure IoT-bewerkingen certificaten gebruikt om externe communicatie te beveiligen, worden deze certificaten opgeslagen als geheimen in Azure Key Vault. Wanneer u een certificaat aan Azure Key Vault toevoegt, moet u dit als geheim toevoegen, niet als certificaatresource.
Azure Key Vault-machtigingen configureren
In Azure moet de gebruiker, om de operations ervaring te gebruiken voor het aanmaken van geheimen in de sleutelkluis, over Key Vault Secrets Officer-machtigingen beschikken op het niveau van resources.
Gebruik in een test- of ontwikkelomgeving de volgende stappen om de rol Key Vault Secrets Officer toe te wijzen aan uw gebruiker op het niveau van de resourcegroep waar het Azure IoT-bewerkingen-exemplaar en het Azure Key Vault-exemplaar worden geïmplementeerd:
Als u de naam van de resourcegroep wilt vinden, gaat u naar de webinterface van de operations-omgeving, gaat u naar de pagina Instanties en zoekt u uw Azure IoT-bewerkingen-exemplaar. De naam van de resourcegroep wordt weergegeven in het veld Resourcegroep .
Ga naar Azure Portal en ga vervolgens naar de resourcegroep waar uw Azure IoT-bewerkingen-exemplaar en Azure Key Vault-exemplaar zijn geïmplementeerd.
Aanbeveling
Gebruik het zoekvak boven aan Azure Portal om snel de resourcegroep te vinden door de naam te typen.
Selecteer Toegangsbeheer (IAM) in het linkermenu. Selecteer vervolgens + Toevoegen Roltoewijzing toevoegen>.
Selecteer op het tabblad Rol de rol Key Vault Secrets Officer in de lijst met rollen en selecteer vervolgens Volgende.
Selecteer op het tabblad Ledende optie Gebruiker, groep of service-principal, selecteer Leden selecteren, selecteer de gebruiker waaraan u de rol Key Vault Secrets Officer wilt toewijzen en selecteer vervolgens Volgende.
Selecteer Beoordelen en toewijzen om de roltoewijzing te voltooien.
Volg in een productieomgeving de aanbevolen procedures om de Azure Key Vault te beveiligen die u gebruikt met Azure IoT-bewerkingen. Zie Best practices voor het gebruik van Azure Key Vault voor meer informatie.
Certificaten toevoegen en gebruiken
Connectors gebruiken de ervaring voor certificaatbeheer om toepassingsverificatie te configureren voor externe servers. De connector voor OPC UA maakt bijvoorbeeld gebruik van certificaten in de vertrouwenslijst om de serveridentiteit te verifiëren van de OPC UA-servers die hiermee verbinding maken.
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. Elke connector heeft een eigen vertrouwenslijst voor het opslaan van de certificaten van de externe servers die het vertrouwt en waarmee het verbinding maakt.
U kunt certificaten voor externe communicatie beheren met behulp van de webgebruikersinterface van operations experience of de Azure CLI:
Volg deze stappen om certificaten voor externe communicatie te beheren:
Ga naar de Azure IoT-bewerkingen-ervaring en kies uw site en het Azure IoT-bewerkingen-exemplaar.
Selecteer Apparaten in het linkernavigatiedeelvenster.
Selecteer Beheer certificaten en geheimen.
Selecteer op de pagina Certificaten en geheimen de optie Nieuw certificaat toevoegen.
U kunt op twee manieren een nieuw certificaat toevoegen:
Certificaat uploaden: uploadt een certificaat dat u als geheim wilt toevoegen aan Azure Key Vault en synchroniseert automatisch naar het cluster met behulp van de extensie voor het geheimarchief.
- 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.
- Selecteer het juiste certificaatarchief voor de connector die gebruikmaakt van het certificaat. Bijvoorbeeld OPC UA-vertrouwenslijst.
Opmerking
Het louter uploaden van het certificaat voegt het geheim niet toe aan Azure Key Vault en voert geen synchronisatie uit met het cluster. U moet Toepassen selecteren om de wijzigingen door te voeren.
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:
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.
Certificaten als geheimen toevoegen aan Azure Key Vault
Als u de bewerkingservaring gebruikt om bestaande certificaten te selecteren die eerder aan Azure Key Vault zijn toegevoegd, moet u ervoor zorgen dat de geheimen een indeling en codering hebben die wordt ondersteund door Azure IoT-bewerkingen.
Als u een PEM-certificaatgeheim wilt toevoegen aan Azure Key Vault, kunt u een opdracht gebruiken zoals in het volgende voorbeeld:
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'
Als u een binair DER-certificaatgeheim wilt toevoegen aan Azure Key Vault, kunt u een opdracht gebruiken zoals in het volgende voorbeeld:
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'