Zabezpečení komunikace Azure IoT MQ Preview pomocí BrokerListeneru
Důležité
Azure IoT Operations Preview – Služba Azure Arc je aktuálně ve verzi PREVIEW. Tento software ve verzi Preview byste neměli používat v produkčních prostředích.
Právní podmínky, které platí pro funkce Azure, které jsou ve verzi beta, verzi Preview nebo které zatím nejsou veřejně dostupné, najdete v Dodatečných podmínkách použití pro Microsoft Azure verze Preview.
K přizpůsobení síťového přístupu a zabezpečení použijte prostředek BrokerListener . Naslouchací proces odpovídá koncovému bodu sítě, který zprostředkuje zprostředkovatele síti. Pro každý prostředek zprostředkovatele můžete mít jeden nebo více prostředků BrokerListener, a tedy více portů s jiným řízením přístupu.
Každý naslouchací proces může mít vlastní ověřovací a autorizační pravidla, která definují, kdo se může připojit k naslouchacímu procesu a jaké akce můžou u zprostředkovatele provádět. Prostředky BrokerAuthentication a BrokerAuthorization můžete použít k určení zásad řízení přístupu pro každý naslouchací proces. Tato flexibilita umožňuje jemně vyladit oprávnění a role klientů MQTT na základě jejich potřeb a případů použití.
Prostředek BrokerListener má tato pole:
Název pole | Požadováno | Popis |
---|---|---|
brokerRef |
Ano | Název prostředku zprostředkovatele, ke kterému tento naslouchací proces patří. Toto pole je povinné a musí odpovídat existujícímu prostředku zprostředkovatele ve stejném oboru názvů. |
port |
Ano | Číslo portu, na který tento naslouchací proces naslouchá. Toto pole je povinné a musí být platným číslem portu TCP. |
serviceType |
No | Typ služby Kubernetes vytvořené pro tento naslouchací proces. Toto dílčí pole je volitelné a výchozí hodnota clusterIp je . Musí být buď loadBalancer , clusterIp nebo nodePort . |
serviceName |
No | Název služby Kubernetes vytvořené pro tento naslouchací proces. Kubernetes vytvoří záznamy DNS, serviceName které by klienti měli použít pro připojení k Azure IoT MQ Preview. Toto dílčí pole je volitelné a výchozí hodnota aio-mq-dmqtt-frontend je . Důležité: Pokud máte více naslouchacích procesů se stejnými serviceType a serviceName naslouchací procesy sdílejí stejnou službu Kubernetes. Další informace naleznete v tématu Název služby a typ služby. |
authenticationEnabled |
No | Logický příznak, který označuje, jestli tento naslouchací proces vyžaduje ověření od klientů. Pokud je true tato hodnota nastavená, použije tento naslouchací proces k ověření a ověření klientů všechny prostředky BrokerAuthentication přidružené k němu. Pokud je tato možnost nastavená, false tento naslouchací proces umožňuje každému klientovi připojit se bez ověřování. Toto pole je volitelné a výchozí hodnota false je . Další informace o ověřování najdete v tématu Konfigurace ověřování Azure IoT MQ Preview. |
authorizationEnabled |
No | Logický příznak, který označuje, jestli tento naslouchací proces vyžaduje autorizaci od klientů. Pokud je tato možnost nastavená, true používá tento naslouchací proces k ověření a autorizaci klientů všechny prostředky BrokerAuthorization přidružené k němu. Pokud je tato možnost nastavená na false , tento naslouchací proces umožňuje každému klientovi připojit se bez autorizace. Toto pole je volitelné a výchozí hodnota false je . Další informace o autorizaci najdete v tématu Konfigurace autorizace Azure IoT MQ Preview. |
tls |
No | Nastavení protokolu TLS pro naslouchací proces. Pole je volitelné a je možné ho vynechat a zakázat tls pro naslouchací proces. Pokud chcete nakonfigurovat protokol TLS, nastavte ho jedním z těchto typů: * Pokud je nastavena hodnota automatic , tento naslouchací proces používá nástroj cert-manager k získání a obnovení certifikátu pro naslouchací proces. Chcete-li použít tento typ, zadejte issuerRef pole, které má odkazovat na vystavitele cert-manageru. * Pokud je nastavená hodnota manual , naslouchací proces používá pro naslouchací proces ručně zadaný certifikát. Chcete-li použít tento typ, zadejte pole, které odkazuje na tajný klíč Kubernetes obsahující certifikát a privátní klíč.secretName * Pokud je nastavená hodnota keyVault , naslouchací proces používá certifikát ze služby Azure Key Vault. Pokud chcete tento typ použít, zadejte keyVault pole, které odkazuje na instanci a tajný klíč služby Azure Key Vault. |
protocol |
No | Protokol, který tento naslouchací proces používá. Toto pole je volitelné a výchozí hodnota mqtt je . Musí být buď mqtt nebo websockets . |
Výchozí brokerListener
Když nasadíte Azure IoT Operations Preview, nasazení také vytvoří prostředek BrokerListener pojmenovaný listener
v azure-iot-operations
oboru názvů. Tento naslouchací proces je propojený s výchozím prostředkem zprostředkovatele, broker
který se vytvoří také během nasazení. Výchozí naslouchací proces zpřístupňuje zprostředkovatele na portu 8883 s povoleným ověřováním TLS a SAT. Certifikát TLS se automaticky spravuje správcem certifikátů. Autorizace je ve výchozím nastavení zakázaná.
Pokud chcete zkontrolovat naslouchací proces, spusťte:
kubectl get brokerlistener listener -n azure-iot-operations -o yaml
Výstup by měl vypadat takto, přičemž většina metadat byla odebrána kvůli stručnosti:
apiVersion: mq.iotoperations.azure.com/v1beta1
kind: BrokerListener
metadata:
name: listener
namespace: azure-iot-operations
spec:
brokerRef: broker
authenticationEnabled: true
authorizationEnabled: false
port: 8883
serviceName: aio-mq-dmqtt-frontend
serviceType: clusterIp
tls:
automatic:
issuerRef:
group: cert-manager.io
kind: Issuer
name: mq-dmqtt-frontend
Další informace o výchozím prostředku BrokerAuthentication propojeném s tímto naslouchacím procesem najdete v tématu Výchozí prostředek BrokerAuthentication.
Vytvoření nových brokerListeners
Tento příklad ukazuje, jak vytvořit dva nové prostředky BrokerListener pro prostředek zprostředkovatele s názvem my-broker. Každý prostředek BrokerListener definuje port a nastavení PROTOKOLU TLS pro naslouchací proces, který přijímá připojení MQTT z klientů.
- První prostředek BrokerListener s názvem my-test-listener definuje naslouchací proces na portu 1883 bez tls a ověřování vypnuto. Klienti se můžou k zprostředkovateli připojit bez šifrování nebo ověřování.
- Druhý prostředek BrokerListener s názvem my-secure-listener definuje naslouchací proces na portu 8883 s povoleným protokolem TLS a ověřováním. K zprostředkovateli se můžou připojit pouze ověření klienti pomocí šifrování TLS. Pole
tls
je nastavené naautomatic
hodnotu , což znamená, že naslouchací proces používá nástroj cert-manager k získání a obnovení certifikátu serveru.
Pokud chcete vytvořit tyto prostředky BrokerListener , použijte tento manifest YAML na cluster Kubernetes:
apiVersion: mq.iotoperations.azure.com/v1beta1
kind: BrokerListener
metadata:
name: my-test-listener
namespace: azure-iot-operations
spec:
authenticationEnabled: false
authorizationEnabled: false
brokerRef: broker
port: 1883
---
apiVersion: mq.iotoperations.azure.com/v1beta1
kind: BrokerListener
metadata:
name: my-secure-listener
namespace: azure-iot-operations
spec:
authenticationEnabled: true
authorizationEnabled: false
brokerRef: broker
port: 8883
tls:
automatic:
issuerRef:
name: e2e-cert-issuer
kind: Issuer
group: cert-manager.io
Název služby a typ služby
Pokud máte více prostředků BrokerListener se stejnými serviceType
prostředky a serviceName
prostředky sdílejí stejnou službu Kubernetes. To znamená, že služba zveřejňuje všechny porty všech naslouchacích procesů. Pokud máte například dva naslouchací procesy se stejnými serviceType
a serviceName
, jeden na portu 1883 a druhý na portu 8883, služba zveřejňuje oba porty. Klienti se můžou připojit ke zprostředkovateli na obou portech.
Při sdílení názvu služby je potřeba dodržovat dvě důležitá pravidla:
Naslouchací procesy se stejnými
serviceType
musí sdílet stejnéserviceName
.Naslouchací procesy s různými
serviceType
musí mít jinéserviceName
.
Zejména je služba pro výchozí naslouchací proces na portu 8883 clusterIp
a pojmenována aio-mq-dmqtt-frontend
. Následující tabulka shrnuje, co se stane, když vytvoříte nový naslouchací proces na jiném portu:
Nový naslouchací proces serviceType |
Nový naslouchací proces serviceName |
Výsledek |
---|---|---|
clusterIp |
aio-mq-dmqtt-frontend |
Nový naslouchací proces se úspěšně vytvoří a služba zveřejňuje oba porty. |
clusterIp |
my-service |
Nový naslouchací proces se nepodaří vytvořit, protože typ služby je v konfliktu s výchozím naslouchacím procesem. |
loadBalancer nebo nodePort |
aio-mq-dmqtt-frontend |
Nový naslouchací proces se nepodaří vytvořit, protože název služby je v konfliktu s výchozím naslouchacím procesem. |
loadBalancer nebo nodePort |
my-service |
Nový naslouchací proces se úspěšně vytvoří a vytvoří se nová služba. |
Související obsah
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro