Mengelola rahasia menggunakan rahasia Azure Key Vault atau Kubernetes di Pratinjau Azure IoT MQ
Penting
Pratinjau Operasi Azure IoT – diaktifkan oleh Azure Arc saat ini dalam PRATINJAU. Anda tidak boleh menggunakan perangkat lunak pratinjau ini di lingkungan produksi.
Lihat Ketentuan Penggunaan Tambahan untuk Pratinjau Microsoft Azure untuk persyaratan hukum yang berlaku pada fitur Azure dalam versi beta, pratinjau, atau belum dirilis secara umum.
Anda dapat menggunakan Azure Key Vault untuk mengelola rahasia untuk broker MQTT terdistribusi Pratinjau Azure IoT MQ, bukan rahasia Kubernetes. Artikel ini menunjukkan kepada Anda cara menyiapkan Key Vault untuk broker Anda dan menggunakannya untuk mengelola rahasia.
Prasyarat
Instans Azure Key Vault dengan rahasia.
Perwakilan layanan Microsoft Entra dengan
get
izin danlist
untuk rahasia dalam instans Key Vault. Untuk mengonfigurasi perwakilan layanan untuk izin Key Vault, lihat Menetapkan kebijakan akses Key Vault.Rahasia Kubernetes dengan kredensial perwakilan layanan, seperti contoh ini dengan rahasia default
aio-akv-sp
:apiVersion: v1 kind: Secret metadata: name: aio-akv-sp namespace: azure-iot-operations type: Opaque data: clientid: <base64 encoded client id> clientsecret: <base64 encoded client secret>
Menggunakan Azure Key Vault untuk manajemen rahasia
Bidang keyVault
ini tersedia di mana pun rahasia Kubernetes (secretName
) digunakan. Tabel berikut ini menjelaskan properti keyVault
bidang .
Properti | Diperlukan | Deskripsi |
---|---|---|
vault | Ya | Menentukan Azure Key Vault yang berisi rahasia. |
vault.name | Ya | Menentukan nama Azure Key Vault. Untuk mendapatkan nama Key Vault dari portal Azure, navigasikan ke instans Key Vault dan salin nama dari halaman Gambaran Umum. |
vault.directoryId | Ya | Menentukan ID penyewa Microsoft Entra. Untuk mendapatkan ID penyewa dari portal Azure, navigasikan ke instans Key Vault dan salin ID penyewa dari halaman Gambaran Umum. |
vault.credentials.servicePrincipalLocalSecretName | Ya | Menentukan nama rahasia yang berisi kredensial perwakilan layanan. |
vaultSecret | Ya, saat menggunakan rahasia Key Vault biasa | Menentukan rahasia di Azure Key Vault. |
vaultSecret.name | Ya | Menentukan nama rahasia. |
vaultSecret.version | No | Menentukan versi rahasia. |
vaultCert | Ya, saat menggunakan sertifikat Key Vault | Menentukan sertifikat di Azure Key Vault. |
vaultCert.name | Ya | Menentukan nama rahasia sertifikat. |
vaultCert.version | No | Menentukan versi rahasia sertifikat. |
vaultCaChainSecret | Ya, saat menggunakan rantai sertifikat | Menentukan rantai sertifikat di Azure Key Vault. |
vaultCaChainSecret.name | Ya | Menentukan nama rantai sertifikat. |
vaultCaChainSecret.version | No | Menentukan versi rantai sertifikat. |
Nama pengguna | No | Hanya digunakan untuk konektor Azure Event Hubs Kafka, lihat Mengirim dan menerima pesan antara Azure IoT MQ dan Azure Event Hubs atau Kafka. |
Jenis rahasia yang Anda gunakan menentukan bidang mana yang bisa Anda gunakan:
vaultSecret
: Gunakan bidang ini saat Anda menggunakan rahasia biasa. Misalnya, Anda dapat menggunakan bidang ini untuk mengonfigurasi sumber daya BrokerAuthentication denganusernamePassword
bidang .vaultCert
: Gunakan bidang ini saat Anda menggunakan rahasia jenis sertifikat dengan sertifikat dan kunci klien. Misalnya, Anda dapat menggunakan bidang ini untuk mengaktifkan TLS pada BrokerListener.vaultCaChainSecret
: Gunakan bidang ini saat Anda perlu menyajikan rantai sertifikat lengkap, dengan semua sertifikat perantara atau akar tambahan, ke server jarak jauh. Misalnya, Anda dapat menggunakan bidang ini untuk mengonfigurasi sumber daya MqttBridge Koneksi or denganremoteBrokerConnection
bidang . Untuk menggunakan bidang ini, impor sertifikat X.509 tanpa kunci privat dalam format PEM sebagai rahasia reguler multibaris (bukan jenis sertifikat) ke Key Vault. Bidang ini harus digunakan selainvaultCert
yang memiliki sertifikat klien dan kunci privat.
Contoh
Misalnya, untuk membuat TLS BrokerListener yang menggunakan Azure Key Vault untuk rahasia sertifikat server, gunakan YAML berikut:
apiVersion: mq.iotoperations.azure.com/v1beta1
kind: BrokerListener
metadata:
name: tls-listener-manual
namespace: azure-iot-operations
spec:
brokerRef: broker
authenticationEnabled: true
authorizationEnabled: false
port: 8883
tls:
keyVault:
vault:
name: my-key-vault
directoryId: <AKV directory ID>
credentials:
servicePrincipalLocalSecretName: aio-akv-sp
vaultCert:
name: my-server-certificate
# version: 939ecc2...
Contoh berikutnya ini menunjukkan cara menggunakan Azure Key Vault untuk usernamePassword
bidang dalam sumber daya BrokerAuthentication:
apiVersion: mq.iotoperations.azure.com/v1beta1
kind: BrokerAuthentication
metadata:
name: my-authentication
namespace: azure-iot-operations
spec:
listenerRef:
- tls-listener-manual
authenicationMethods:
- usernamePassword:
keyVault:
vault:
name: my-key-vault
directoryId: <AKV directory ID>
credentials:
servicePrincipalLocalSecretName: aio-akv-sp
vaultSecret:
name: my-username-password-db
# version: 939ecc2...
Contoh ini menunjukkan cara menggunakan Azure Key Vault untuk info masuk broker jarak jauh jembatan MQTT:
apiVersion: mq.iotoperations.azure.com/v1beta1
kind: MqttBridgeConnector
metadata:
name: my-bridge
namespace: azure-iot-operations
spec:
image:
repository: mcr.microsoft.com/azureiotoperations/mqttbridge
tag: 0.4.0-preview
pullPolicy: IfNotPresent
protocol: v5
bridgeInstances: 1
remoteBrokerConnection:
endpoint: example.broker.endpoint:8883
tls:
tlsEnabled: true
trustedCaCertificateConfigMap: my-ca-certificate
authentication:
x509:
keyVault:
vault:
name: my-key-vault
directoryId: <AKV directory ID>
credentials:
servicePrincipalLocalSecretName: aio-akv-sp
vaultCaChainSecret:
name: my-remote-broker-certificate
# version: 939ecc2...