Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencobamasuk ataumengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencobamengubah direktori.
Operasi Azure IoT menggunakan TLS untuk mengenkripsi komunikasi antara semua komponen. Artikel ini menjelaskan cara mengelola sertifikat untuk komunikasi internal dan eksternal, serta cara menggunakan penerbit otoritas sertifikat (CA) milik Anda sendiri untuk komunikasi internal dalam penerapan produksi.
Prasyarat
Untuk mengelola sertifikat untuk komunikasi eksternal, Anda memerlukan instans Operasi Azure IoT yang disebarkan dengan pengaturan yang aman. Jika Anda menyebarkan Operasi Azure IoT dengan pengaturan pengujian, Anda harus terlebih dahulu mengaktifkan pengaturan aman.
Untuk membuat rahasia di Azure Key Vault, Anda memerlukan izin petugas Rahasia di tingkat sumber daya. Untuk informasi tentang menetapkan peran kepada pengguna, lihat Langkah-langkah untuk menetapkan peran Azure.
Mengelola sertifikat untuk komunikasi internal
Semua komunikasi dalam Operasi Azure IoT dienkripsi menggunakan TLS. Untuk membantu Anda memulai, Operasi Azure IoT disebarkan dengan CA akar default dan penerbit untuk sertifikat server TLS. Anda dapat menggunakan penyiapan default untuk tujuan pengembangan dan pengujian. Untuk implementasi produksi, kami merekomendasikan menggunakan penerbit CA Anda sendiri dan solusi PKI perusahaan.
Penerbit default yang ditandatangani sendiri dan sertifikat CA akar untuk sertifikat server TLS
Untuk membantu Anda memulai, Operasi Azure IoT disebarkan dengan penerbit default yang ditandatangani sendiri dan sertifikat CA akar untuk sertifikat server TLS. Anda dapat menggunakan penerbit ini untuk pengembangan dan pengujian. Azure IoT Operations menggunakan cert-manager untuk mengelola sertifikat TLS, dan trust-manager untuk mendistribusikan bundel kepercayaan ke komponen.
Sertifikat CA ditandatangani sendiri dan tidak dipercaya oleh klien mana pun di luar Operasi Azure IoT. Subjek sertifikat CA adalah
CN=Azure IoT Operations Quickstart Root CA - Not for Production. Sertifikat CA secara otomatis diputar oleh cert-manager.Sertifikat OS akar disimpan dalam rahasia Kubernetes yang disebut
azure-iot-operations-aio-ca-certificatedicert-managerbawah namespace.Bagian publik sertifikat OS akar disimpan dalam ConfigMap yang disebut
azure-iot-operations-aio-ca-trust-bundlediazure-iot-operationsbawah namespace layanan. Anda dapat mengambil sertifikat CA dari ConfigMap dan memeriksanya dengan kubectl dan openssl. ConfigMap terus diperbarui oleh trust-manager ketika sertifikat CA diputar oleh cert-manager.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]Secara default, sudah ada pengeluar sertifikat yang dikonfigurasi dalam yang
azure-iot-operations namespacedisebutazure-iot-operations-aio-certificate-issuer. Ini digunakan sebagai penerbit umum untuk semua sertifikat server TLS untuk Operasi IoT. Broker MQTT menggunakan penerbit yang dibuat dari sertifikat CA yang sama yang ditandatangani oleh penerbit yang ditandatangani sendiri untuk menerbitkan sertifikat server TLS untuk pendengar TLS default pada port 18883. Anda dapat memeriksa pengeluar sertifikat dengan perintah berikut: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
Bawa penerbit Anda sendiri
Untuk penyebaran produksi, kami sarankan Anda menyiapkan Operasi Azure IoT dengan PKI perusahaan untuk mengelola sertifikat, dan Anda membawa penerbit CA Anda sendiri yang bekerja dengan PKI perusahaan Anda, alih-alih menggunakan penerbit default yang ditandatangani sendiri untuk menerbitkan sertifikat TLS untuk komunikasi internal.
Untuk menyiapkan Operasi Azure IoT dengan penerbit Anda sendiri untuk komunikasi internal, gunakan langkah-langkah berikut sebelum menyebarkan instans ke kluster Anda:
Ikuti langkah-langkah dalam Menyiapkan kluster Anda untuk menyiapkan kluster Anda.
Pasang cert-manager. Cert-manager mengelola sertifikat TLS.
Instal trust-manager . Saat menginstal manajer kepercayaan, atur
trust namespaceke cert-manager. Contohnya:helm upgrade trust-manager jetstack/trust-manager --install --namespace cert-manager --set app.trust.namespace=cert-manager --waitPengelola kepercayaan digunakan untuk mendistribusikan bundel kepercayaan ke komponen.
Buat namespace Operasi Azure IoT.
kubectl create namespace azure-iot-operationsSebarkan pengeluar sertifikat yang berfungsi dengan cert-manager. Untuk daftar semua penerbit yang didukung, lihat penerbit cert-manager.
Pengeluar sertifikat dapat berjenis
ClusterIssueratauIssuer. Jika menggunakanIssuer, sumber daya penerbit harus dibuat di namespace Operasi Azure IoT.Siapkan bundel kepercayaan di namespace Operasi Azure IoT.
Untuk menyiapkan bundel kepercayaan, buat ConfigMap di namespace Operasi Azure IoT. Tempatkan bagian kunci publik sertifikat CA Anda ke dalam peta konfigurasi dengan nama kunci pilihan Anda.
Dapatkan bagian kunci publik dari sertifikat CA Anda. Langkah-langkah untuk memperoleh kunci publik bergantung pada penerbit yang Anda pilih.
Buat ConfigMap. Contohnya:
kubectl create configmap -n azure-iot-operations <YOUR_CONFIGMAP_NAME> --from-file=<CA_CERTIFICATE_FILENAME_PEM_OR_DER>
Ikuti langkah-langkah dalam Menyebarkan Operasi Azure IoT untuk disebarkan, dengan beberapa perubahan.
--user-trustTambahkan parameter saat menyiapkan kluster. Contohnya:az iot ops init --subscription <SUBSCRIPTION_ID> --cluster <CLUSTER_NAME> -g <RESOURCE_GROUP> --user-trust--trust-settingsTambahkan parameter dengan informasi yang diperlukan saat menyebarkan Operasi Azure IoT. Contohnya: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>
Nota
Nama lokasi kustom memiliki panjang maksimum 63 karakter.
Mengelola sertifikat untuk komunikasi eksternal
Pengalaman manajemen sertifikat untuk komunikasi eksternal menggunakan Azure Key vault sebagai solusi vault terkelola di cloud. Sertifikat ditambahkan ke brankas kunci sebagai rahasia dan disinkronkan ke edge sebagai rahasia Kubernetes melalui ekstensi Azure Key Vault Secret Store.
Konektor menggunakan pengalaman manajemen sertifikat untuk mengonfigurasi autentikasi aplikasi klien ke server eksternal. Untuk mempelajari selengkapnya tentang cara konektor menggunakan sertifikat untuk membangun kepercayaan bersama dengan server eksternal, lihat dokumentasi manajemen sertifikat khusus konektor.
Saat Anda menyebarkan Operasi Azure IoT dengan pengaturan aman, Anda dapat mulai menambahkan sertifikat ke Azure Key Vault, dan menyinkronkannya ke kluster Kubernetes untuk digunakan dalam daftar Kepercayaan dan penyimpanan daftar Penerbit untuk koneksi eksternal.
Untuk mengelola sertifikat untuk komunikasi eksternal, ikuti langkah-langkah berikut:
Buka pengalaman Operasi Azure IoT, dan pilih situs Anda dan instans Operasi Azure IoT.
Di panel navigasi kiri, pilih Perangkat.
Klik Kelola sertifikat dan rahasia.
Di halaman Sertifikat dan Rahasia, klik Tambahkan sertifikat baru.
Anda dapat menambahkan sertifikat baru dengan dua cara:
Unggah Sertifikat: Mengunggah sertifikat yang kemudian ditambahkan sebagai rahasia ke Azure Key Vault dan secara otomatis disinkronkan ke kluster menggunakan ekstensi Secret Store.
- Lihat detail sertifikat setelah diunggah, untuk memastikan Anda memiliki sertifikat yang benar sebelum menambahkan ke Azure Key Vault dan menyinkronkan ke kluster.
- Gunakan nama intuitif sehingga Anda dapat mengenali rahasia mana yang mewakili rahasia Anda di masa mendatang.
- Pilih penyimpanan sertifikat yang sesuai untuk konektor yang menggunakan sertifikat. Misalnya, daftar kepercayaan OPC UA.
Nota
Cukup mengunggah sertifikat tidak akan menambahkan rahasia ke Azure Key Vault dan menyinkronkan ke kluster, Anda harus memilih Terapkan agar perubahan diterapkan.
Tambahkan dari Azure Key Vault: Tambahkan rahasia yang ada dari Azure Key vault untuk disinkronkan ke kluster.
Nota
Pastikan untuk memilih rahasia yang menyimpan sertifikat yang ingin Anda sinkronkan ke kluster. Memilih rahasia yang bukan sertifikat yang benar menyebabkan koneksi gagal.
Menggunakan tampilan daftar, Anda dapat mengelola sertifikat yang disinkronkan. Anda dapat melihat semua sertifikat yang disinkronkan serta ke mana penyimpanan sertifikat tersebut disinkronkan.
Untuk mempelajari selengkapnya tentang bagaimana sertifikat kepercayaan dikelola untuk konektor tertentu, lihat dokumentasi manajemen sertifikat khusus konektor.
Anda juga dapat menghapus sertifikat yang disinkronkan. Saat Anda menghapus sertifikat yang disinkronkan, sertifikat tersebut hanya menghapus sertifikat yang disinkronkan dari kluster Kubernetes, dan tidak menghapus referensi rahasia yang terkandung dari Azure Key Vault. Anda harus menghapus rahasia sertifikat secara manual dari brankas kunci.