Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Azure IoT Operations använder TLS för att kryptera kommunikationen mellan alla komponenter. Den här artikeln beskriver hur du hanterar certifikat för intern och extern kommunikation och hur du tar med din egen certifikatutfärdare (CA) för intern kommunikation i en produktionsdistribution.
Förutsättningar
För att hantera certifikat för extern kommunikation behöver du en Azure IoT Operations-instans som distribueras med säkra inställningar. Om du har distribuerat Azure IoT Operations med testinställningar måste du först aktivera säkra inställningar.
Hantera certifikat för intern kommunikation
All kommunikation i Azure IoT Operations krypteras med hjälp av TLS. För att hjälpa dig att komma igång distribueras Azure IoT Operations med en standardrotcertifikatutfärdare och utfärdare för TLS-servercertifikat. Du kan använda standardinställningen för utveckling och testning. För en produktionsdistribution rekommenderar vi att du använder en egen CA-utfärdare och en PKI-lösning för företag.
Standard självsignerad utfärdare och rotcertifikatutfärdarcertifikat för TLS-servercertifikat
För att hjälpa dig att komma igång distribueras Azure IoT Operations med en självsignerad standardutfärdare och rotcertifikatutfärdarcertifikat för TLS-servercertifikat. Du kan använda den här utfärdaren för utveckling och testning. Azure IoT Operations använder cert-manager för att hantera TLS-certifikat och trust-manager för att distribuera förtroendepaket till komponenter.
CA-certifikatet är självsignerat och inga klienter utanför Azure IoT Operations litar på det. Certifikatutfärdarcertifikatets ämne är
CN=Azure IoT Operations Quickstart Root CA - Not for Production. Cert-manager roterar automatiskt CA-certifikatet.Rotcertifikatutfärdarcertifikatet lagras i en Kubernetes-hemlighet som anropas
azure-iot-operations-aio-ca-certificateundercert-managernamnområdet.En ConfigMap som kallas
azure-iot-operations-aio-ca-trust-bundleunderazure-iot-operationsnamespace lagrar den offentliga delen av rot-CA-certifikatet. Du kan hämta CA-certifikatet från ConfigMap och inspektera det med kubectl och openssl. Förtroendehanteraren håller ConfigMap uppdaterat när cert-manager roterar CA-certifikatet.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]Som standard finns det redan en utfärdare som har konfigurerats i namnet
azure-iot-operations namespaceazure-iot-operations-aio-certificate-issuer. Den används som vanlig utfärdare för alla TLS-servercertifikat för IoT-åtgärder. MQTT Broker använder en utfärdare som skapats från samma CA-certifikat, som signeras av den självsignerade utfärdaren för att utfärda TLS-servercertifikat för TLS-standardlyssnaren på port 18883. Du kan inspektera utfärdaren med följande kommando: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
Ta med din egen utfärdare
För produktionsdistributioner rekommenderar vi att du konfigurerar Azure IoT-åtgärder med en företags-PKI för att hantera certifikat och att du tar med din egen CA-utfärdare som fungerar med företagets PKI i stället för att använda den självsignerade standardutfärdaren för att utfärda TLS-certifikat för intern kommunikation.
Om du vill konfigurera Azure IoT Operations med din egen utfärdare för intern kommunikation använder du följande steg innan du distribuerar en instans till klustret:
Följ stegen i Förbered klustret för att konfigurera klustret.
Installera cert-manager. Cert-manager hanterar TLS-certifikat.
Installera trust-manager. När du installerar förtroendehanteraren anger du
trust namespacetill cert-manager. Till exempel:helm upgrade trust-manager jetstack/trust-manager --install --namespace cert-manager --set app.trust.namespace=cert-manager --waitTrust-manager används för att distribuera ett förtroendepaket till komponenter.
Skapa Azure IoT Operations-namnområdet.
kubectl create namespace azure-iot-operationsDistribuera en utfärdare som fungerar med cert-manager. En lista över alla utfärdare som stöds finns i utfärdare av certifikathanterare.
Utfärdaren kan vara av typen
ClusterIssuerellerIssuer. Om du använderIssuermåste utfärdarresursen skapas i Azure IoT Operations-namnområdet.Konfigurera förtroendepaket i Azure IoT Operations-namnområdet.
Om du vill konfigurera förtroendepaket skapar du en ConfigMap i Azure IoT Operations-namnområdet. Placera den offentliga nyckeldelen av certifikatutfärdarcertifikatet i konfigurationskartan med ett valfritt nyckelnamn.
Hämta den offentliga nyckeldelen av certifikatutfärdarcertifikatet. Stegen för att hämta den offentliga nyckeln beror på vilken utfärdare du väljer.
Skapa ConfigMap. Till exempel:
kubectl create configmap -n azure-iot-operations <YOUR_CONFIGMAP_NAME> --from-file=<CA_CERTIFICATE_FILENAME_PEM_OR_DER>
Följ stegen i Distribuera Azure IoT-åtgärder att distribuera med några ändringar.
Lägg till parametern
--user-trustnär du förbereder klustret. Till exempel:az iot ops init --subscription <SUBSCRIPTION_ID> --cluster <CLUSTER_NAME> -g <RESOURCE_GROUP> --user-trustLägg till parametern
--trust-settingsmed nödvändig information när du distribuerar Azure IoT Operations. Till exempel: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>
Anmärkning
Det anpassade platsnamnet har en maximal längd på 63 tecken.
Hantera certifikat för extern kommunikation
Azure IoT Operations använder Azure Key Vault som lösning för hanterat valv i molnet och använder Azure Key Vault secret store-tillägg för Kubernetes för att synkronisera konfidentiella uppgifter från molnet och lagra dem vid kanten som Kubernetes-konfidentiella uppgifter.
Viktigt!
Även om Azure IoT Operations använder certifikat för att skydda extern kommunikation lagras dessa certifikat som hemligheter i Azure Key Vault. När du lägger till ett certifikat i Azure Key Vault måste du lägga till det som en hemlighet, inte som en certifikatresurs.
Konfigurera Azure Key Vault-behörigheter
Om du vill använda driftupplevelsen för att skapa hemligheter i nyckelvalvet kräver användaren behörigheter för Key Vault Secrets Officer på resursnivå i Azure.
I en test- eller utvecklingsmiljö använder du följande steg för att tilldela rollen Key Vault Secrets Officer till din användare på resursgruppsnivå där Azure IoT Operations-instansen och Azure Key Vault-instansen distribueras:
Om du vill hitta namnet på resursgruppen går du till webbgränssnittet för driftupplevelse , går till sidan Instanser och letar reda på din Azure IoT Operations-instans. Resursgruppens namn visas i fältet Resursgrupp .
Gå till Azure-portalen och gå sedan till resursgruppen där din Azure IoT Operations-instans och Azure Key Vault-instans distribueras.
Tips/Råd
Använd sökrutan överst i Azure-portalen för att snabbt hitta resursgruppen genom att skriva in namnet.
Välj Åtkomstkontroll (IAM) på den vänstra menyn. Välj sedan + Lägg till > rolltilldelning.
På fliken Roll väljer du Key Vault Secrets Officer i listan över roller och väljer sedan Nästa.
På fliken Medlemmar väljer du Användare, grupp eller tjänstens huvudnamn, väljer Välj medlemmar, väljer den användare som du vill tilldela rollen Key Vault Secrets Officer till och väljer sedan Nästa.
Välj Granska + tilldela för att genomföra rolltilldelningen.
I en produktionsmiljö följer du metodtipsen för att skydda Azure Key Vault som du använder med Azure IoT Operations. Mer information finns i Metodtips för att använda Azure Key Vault.
Lägga till och använda certifikat
Anslutningsappar använder certifikathanteringsmiljön för att konfigurera programautentisering till externa servrar. Mer information om hur anslutningsappar använder certifikat för att upprätta ömsesidigt förtroende med externa servrar finns i dokumentationen för anslutningsspecifik certifikathantering, till exempel Förstå OPC UA-certifikatinfrastrukturen.
När du distribuerar Azure IoT-operationer med säkra inställningar kan du börja lägga till certifikat i Azure Key Vault och synkronisera dem till Kubernetes-klustret för användning i listan över betrodda och utfärdarlistan för externa anslutningar. Varje anslutningsapp har en egen förtroendelista för att lagra certifikaten för de externa servrar som den litar på och ansluter till.
Följ dessa steg för att hantera certifikat för extern kommunikation:
Gå till Azure IoT Operations-upplevelsen och välj din webbplats och Azure IoT Operations-instans.
I det vänstra navigeringsfönstret väljer du Enheter.
Välj Hantera certifikat och hemligheter.
På sidan Certifikat och hemligheter väljer du Lägg till nytt certifikat.
Du kan lägga till ett nytt certifikat på två sätt:
Ladda upp certifikat: Laddar upp ett certifikat som ska läggas till som en hemlighet i Azure Key Vault och synkroniseras automatiskt till klustret med hjälp av tillägget hemligt arkiv.
- Visa certifikatinformationen när du har laddat upp för att se till att du har rätt certifikat innan du lägger till i Azure Key Vault och synkroniserar till klustret.
- Använd ett intuitivt namn så att du kan känna igen vilken hemlighet som representerar din hemlighet i framtiden.
- Välj lämpligt certifikatarkiv för anslutningsappen som använder certifikatet. Till exempel OPC UA-förtroendelista.
Anmärkning
Att bara ladda upp certifikatet lägger inte till hemligheten i Azure Key Vault och synkroniserar till klustret. Du måste välja Tillämpa för att ändringarna ska tillämpas.
Lägg till från Azure Key Vault: Lägg till en befintlig hemlighet från Azure Key Vault som ska synkroniseras till klustret.
Anmärkning
Välj den hemlighet som innehåller det certifikat som du vill synkronisera med klustret. Om du väljer en hemlighet som inte är rätt certifikat misslyckas anslutningen.
Med listvyn kan du hantera de synkroniserade certifikaten. Du kan visa alla synkroniserade certifikat och vilket certifikatarkiv det synkroniseras med:
Du kan också ta bort synkroniserade certifikat. När du tar bort ett synkroniserat certifikat tar det bara bort det synkroniserade certifikatet från Kubernetes-klustret och tar inte bort den inneslutna hemliga referensen från Azure Key Vault. Du måste ta bort certifikathemligheten manuellt från nyckelvalvet.
Använda CLI-kommandon för att skapa certifikat
I föregående avsnitt beskrivs hur du hanterar certifikat med hjälp av webbgränssnittet för driftsmiljön och Azure-portalen. Du kan också använda Azure CLI för att hantera certifikaten i anslutningsappen för OPC UA-förtroende- och utfärdarlistor. Mer information finns i az iot ops connector opcua trust och az iot ops connector opcua issuer-kommandon.
Tips/Råd
Kom ihåg att dessa certifikat måste lagras som hemligheter i Azure Key Vault.
Lägga till certifikat som hemligheter i Azure Key Vault
Om du använder driftupplevelsen för att välja befintliga certifikat som tidigare har lagts till i Azure Key Vault kontrollerar du att hemligheterna är i ett format och kodning som stöds av Azure IoT Operations.
Om du vill lägga till en PEM-certifikathemlighet i Azure Key Vault kan du använda ett kommando som i följande exempel:
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'
Om du vill lägga till en binär DER-certifikathemlighet i Azure Key Vault kan du använda ett kommando som i följande exempel:
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'