إدارة الأسرار باستخدام Azure Key Vault أو أسرار Kubernetes في Azure IoT MQ Preview
هام
معاينة عمليات Azure IoT - التي تم تمكينها بواسطة Azure Arc قيد المعاينة حاليا. يجب عدم استخدام برنامج المعاينة هذا في بيئات الإنتاج.
للحصول على الشروط القانونية التي تنطبق على ميزات Azure الموجودة في الإصدار التجريبي، أو المعاينة، أو التي لم يتم إصدارها بعد في التوفر العام، راجع شروط الاستخدام التكميلية لمعاينات Microsoft Azure.
يمكنك استخدام Azure Key Vault لإدارة الأسرار لوسيط MQTT الموزع ل Azure IoT MQ Preview بدلا من أسرار Kubernetes. توضح لك هذه المقالة كيفية إعداد Key Vault للوسيط الخاص بك واستخدامه لإدارة الأسرار.
المتطلبات الأساسية
مثيل Azure Key Vault مع سر.
كيان خدمة Microsoft Entra مع
get
وأذوناتlist
للبيانات السرية في مثيل Key Vault. لتكوين كيان الخدمة لأذونات Key Vault، راجع تعيين نهج الوصول إلى Key Vault.سر Kubernetes مع بيانات اعتماد كيان الخدمة، مثل هذا المثال مع السر الافتراضي
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>
استخدام Azure Key Vault لإدارة البيانات السرية
keyVault
يتوفر الحقل أينما يتم استخدام أسرار Kubernetes (secretName
). يصف الجدول التالي خصائص keyVault
الحقل.
الخاصية | المطلوب | الوصف |
---|---|---|
المخزن | نعم | يحدد Azure Key Vault الذي يحتوي على الأسرار. |
vault.name | نعم | يحدد اسم Azure Key Vault. للحصول على اسم Key Vault من مدخل Microsoft Azure، انتقل إلى مثيل Key Vault وانسخ الاسم من صفحة Overview. |
vault.directoryId | نعم | تحديد معرف مستأجر Microsoft Entra. للحصول على معرف المستأجر من مدخل Microsoft Azure، انتقل إلى مثيل Key Vault وانسخ معرف المستأجر من صفحة نظرة عامة. |
vault.credentials.servicePrincipalLocalSecretName | نعم | تحديد اسم السر الذي يحتوي على بيانات اعتماد كيان الخدمة. |
vaultSecret | نعم، عند استخدام أسرار Key Vault العادية | يحدد السر في Azure Key Vault. |
vaultSecret.name | نعم | يحدد اسم السر. |
vaultSecret.version | لا | تحديد إصدار السر. |
vaultCert | نعم، عند استخدام شهادات Key Vault | تحديد الشهادة في Azure Key Vault. |
vaultCert.name | نعم | يحدد اسم سر الشهادة. |
vaultCert.version | لا | تحديد إصدار بيانات الشهادة السرية. |
vaultCaChainSecret | نعم، عند استخدام سلسلة الشهادات | تحديد سلسلة الشهادات في Azure Key Vault. |
vaultCaChainSecret.name | نعم | تحديد اسم سلسلة الشهادات. |
vaultCaChainSecret.version | لا | تحديد إصدار سلسلة الشهادات. |
اسم المستخدم | لا | يستخدم فقط لموصل Kafka لمراكز الأحداث، راجع إرسال الرسائل وتلقيها بين Azure IoT MQ ومراكز الأحداث أو Kafka. |
يحدد نوع البيانات السرية التي تستخدمها أي من الحقول التالية يمكنك استخدامها:
vaultSecret
: استخدم هذا الحقل عند استخدام سر عادي. على سبيل المثال، يمكنك استخدام هذا الحقل لتكوين مورد BrokerAuthentication معusernamePassword
الحقل.vaultCert
: استخدم هذا الحقل عند استخدام سر نوع الشهادة مع شهادة العميل والمفتاح. على سبيل المثال، يمكنك استخدام هذا الحقل لتمكين TLS على BrokerListener.vaultCaChainSecret
: استخدم هذا الحقل عندما تحتاج إلى تقديم سلسلة شهادات كاملة، مع جميع الشهادات المتوسطة أو الجذر الإضافية، إلى الخادم البعيد. على سبيل المثال، يمكنك استخدام هذا الحقل لتكوين مورد MqttBridge الاتصال or معremoteBrokerConnection
الحقل. لاستخدام هذا الحقل، قم باستيراد شهادات X.509 بدون مفاتيح خاصة بتنسيق PEM كسر عادي متعدد الأسطر (وليس نوع الشهادة) إلى Key Vault. يجب استخدام هذا الحقل بالإضافة إلىvaultCert
الذي يحتوي على شهادة العميل والمفتاح الخاص.
الأمثلة
على سبيل المثال، لإنشاء TLS BrokerListener يستخدم Azure Key Vault للبيانات السرية لشهادة الخادم، استخدم YAML التالي:
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...
يوضح هذا المثال التالي كيفية استخدام Azure Key Vault للحقل usernamePassword
في مورد 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...
يوضح هذا المثال كيفية استخدام Azure Key Vault لبيانات اعتماد وسيط جسر 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...