보안과 확장성은 Azure IoT 작업을 배포하는 데 있어 가장 우선합니다. 이 문서에서는 프로덕션을 위해 Azure IoT 작업을 설정할 때 고려해야 할 지침을 설명합니다.
적절한 구성을 고려하기 전에 Azure IoT 작업을 단일 노드 클러스터에 배포할지, 다중 노드 클러스터에 배포할지 결정합니다. 이 문서의 많은 지침은 클러스터 유형에 관계없이 적용되지만 차이점이 있는 경우 구체적으로 설명합니다.
플랫폼
현재 Ubuntu 24.04의 K3s는 프로덕션 환경에서 Azure IoT 작업을 배포하는 데 일반 공급한 유일한 플랫폼입니다.
클러스터 설정
하드웨어 설정이 시나리오에 적합한지 확인하고 안전한 환경에서 시작합니다.
시스템 구성
시스템 요구 사항을 충족하는 Arc 지원 K3s 클러스터를 만듭니다.
- Azure IoT Operations에 지원되는 환경을 사용합니다.
- 설명서에 따라 클러스터를 구성합니다.
- 클러스터에 일시적인 연결이 필요한 경우 클러스터가 오프라인 상태인 동안 클러스터 캐시 데이터 및 메시지에 충분한 디스크 공간을 할당해야 합니다.
- 가능하다면 기본 프로덕션 클러스터에 배포하기 전에 새로운 변경 내용을 테스트하기 위한 준비 영역으로 두 번째 클러스터를 마련합니다.
- 클러스터에 새 업데이트가 적용되는 시기를 완전히 제어하려면 Azure Arc에 대한 자동 업그레이드를 해제합니다. 대신 필요에 따라 에이전트를 수동으로 업그레이드합니다 .
- 다중 노드 클러스터의 경우: 배포 중에 내결함성을 사용하도록 준비하도록 Edge 볼륨 을 사용하여 클러스터를 구성합니다.
보안
배포 전에 클러스터 설정이 안전한지 확인하려면 다음 측정값을 고려합니다.
- 이미지의 유효성 을 검사하여 Microsoft에서 서명했는지 확인합니다.
- TLS 암호화를 수행할 때 사용자 고유의 발급자를 가져와 엔터프라이즈 PKI와 통합합니다.
- 온-프레미스 인증에 비밀을 사용합니다.
- 클라우드 연결 에 사용자 할당 관리 ID 를 사용합니다.
- 모든 보안 및 버그 수정 사항을 적용하려면 최신 패치와 부 릴리스를 사용하여 클러스터와 Azure IoT 작업 배포를 최신 상태로 유지합니다.
네트워킹
엔터프라이즈 방화벽 또는 프록시를 사용하는 경우 허용 목록에 Azure IoT Operations 엔드포인트를 추가합니다 .
가시성
프로덕션 배포의 경우 Azure IoT Operations를 배포 하기 전에 클러스터에 관찰성 리소스를 배포합니다. 또한 Azure Monitor에서 Prometheus 경고를 설정하는 것이 좋습니다.
배포
프로덕션에 바로 사용할 수 있는 배포의 경우 Azure IoT 작업 배포 중에 다음 구성을 포함합니다.
MQTT Broker
Azure Portal 배포 마법사에서 Broker 리소스는 구성 탭에 설정됩니다.
메모리 프로필 및 연결 및 메시지 처리 요구 사항에 따라 카디널리티 설정을 구성합니다. 예를 들어, 다음 설정은 단일 노드 또는 다중 노드 클러스터를 지원할 수 있습니다.
설정 단일 노드 다중 노드 프론트엔드 복제본 1 5 프론트엔드 작업자 4 8 (여덟) backendRedundancyFactor 2 2 백엔드 작업자들 1 4 백엔드 파티션 1 5 메모리 프로필 낮음 높음 내부 트래픽을 암호화합니다.
RAM 오버플로를 방지하는 최대 크기로 디스크 지원 메시지 버퍼 를 설정합니다.
스키마 레지스트리 및 스토리지
Azure Portal 배포 마법사에서 스키마 레지스트리 및 필요한 스토리지 계정이 종속성 관리 탭에 설정됩니다.
- 스토리지 계정에는 계층 구조 네임스페이스가 사용하도록 설정되어 있어야 합니다.
- 스키마 레지스트리의 관리 ID에는 스토리지 계정에 대한 기여자 권한이 있어야 합니다.
- 스토리지 계정은 공용 네트워크 액세스가 사용하도록 설정된 경우에만 지원됩니다.
프로덕션 배포의 경우 신뢰할 수 있는 Azure 서비스의 트래픽만 허용하도록 스토리지 계정의 공용 네트워크 액세스 범위를 지정합니다. 다음은 그 예입니다.
- Azure Portal에서 스키마 레지스트리에서 사용하는 스토리지 계정으로 이동합니다.
- 탐색 메뉴에서 보안 + 네트워킹 > 을 선택합니다.
- 공용 네트워크 액세스 설정의 경우 선택한 가상 네트워크 및 IP 주소에서 [사용]을 선택합니다.
- 네트워킹 페이지의 예외 섹션에서 신뢰할 수 있는 Microsoft 서비스가 이 리소스 옵션에 액세스하도록 허용 옵션이 선택되어 있는지 확인합니다.
- 저장을 선택하여 변경 내용을 적용합니다.
자세한 내용은 Azure Storage 방화벽 구성 및 가상 네트워크를 > 참조하여 신뢰할 수 있는 Azure 서비스에 대한 액세스 권한을 부여합니다.
내결함성
다중 노드 클러스터: Azure Portal 배포 마법사의 종속성 관리 탭에서 내결함성을 사용하도록 설정할 수 있습니다. 이 기능은 다중 노드 클러스터에서만 지원되며, 프로덕션 배포에 권장됩니다.
보안 설정
배포하는 동안 테스트 설정이나 보안 설정을 사용할 수 있습니다. 프로덕션 배포의 경우 보안 설정을 선택합니다. 프로덕션에 대한 기존 테스트 설정 배포를 업그레이드하는 경우 보안 설정 사용의 단계를 따릅니다.
배포 후
Azure IoT 작업을 배포한 후 프로덕션 시나리오에 맞게 다음 구성을 준비합니다.
MQTT Broker
배포 후 BrokerListener 리소스를 편집할 수 있습니다.
- 수신기에 대한 자동 인증서 관리를 사용하여 TLS를 구성합니다.
BrokerAuthentication 리소스를 편집할 수도 있습니다.
- 인증에 X.509 인증서 또는 Kubernetes 서비스 계정 토큰을 사용합니다.
- no-auth를 사용하지 마세요.
새 리소스를 만들 때 해당 리소스의 권한을 관리합니다.
- BrokerAuthorization 리소스를 만들고 토픽 자산에 필요한 최소 권한을 제공합니다.
OPC UA 브로커
프로덕션 환경에서 자산에 연결하려면 OPC UA 인증을 구성합니다.
- no-auth 옵션을 사용하지 마세요. 인증 없이는 OPC UA 서버에 대한 연결이 지원되지 않습니다.
- OPC UA 서버에 대한 보안 연결을 설정합니다. 프로덕션 PKI를 사용하고 애플리케이션 인증서 및신뢰 목록을 구성합니다.
데이터 흐름
프로덕션에서 데이터 흐름을 사용하는 경우:
- MQTT broker(기본값)를 사용하여 SAT(서비스 계정 토큰) 인증을 사용합니다.
- 항상 관리 ID 인증이 사용됩니다. 가능하면 유연성과 감사성을 위해 데이터 흐름 엔드포인트에서 사용자 할당 관리 ID를 사용합니다 .
- 데이터 흐름 프로필을 확장 하여 처리량을 개선하고 고가용성을 갖습니다.
- 여러 데이터 흐름을 데이터 흐름 프로필로 그룹화하고 각 프로필에 맞게 크기 조정을 사용자 지정합니다.