Node-RED 사용자 인증 :
초기설정은 누구나 웹 브라우저를 통해 접속할 수 있는 구조로 되어 있어, 내부망 또는 외부망에서 실행할 경우 보안상 위험이 존재한다.
1. Node-RED 사용자 인증 필요한 이유
초기설정은 기본적으로 로그인 없이 접속 가능하며, 플로우를 자유롭게 수정하거나 삭제할 수 있다.
이 기능은 개발 초기에는 편리하지만, 다음과 같은 상황에서는 반드시 인증이 필요하다.
- NAS 또는 클라우드에 설치되어 외부 접속이 가능한 경우
- 여러 명이 함께 사용하는 스마트홈 또는 IoT 환경
- 기업 내부망에서 민감한 데이터 처리 중인 경우
2. Node-RED 사용자 인증 설정 방법 요약
사용자 인증 기능은 설정 파일인 settings.js를 통해 구성할 수 있으며, 비밀번호는 해시값(SHA-256)으로 저장해야 한다.
설정 순서는 다음과 같다:
- 비밀번호 해시 생성
- settings.js 파일 수정
- Node-RED 재시작
3. 비밀번호 해시 생성
비밀 번호를 입력하여 비밀 번호 해시(hash)를 생성한다.
해시(hash)는 별도의 알고리즘에 의하여 원본과 다르게 해독하기 어려운 문장으로 바꾼 것이다.
Win +R 키를 누르면 다음 화면이 나옵니다. cmd가 선택된 채로 확인 버튼을 누릅니다.

명령 프롬프트에 다음 명령어를 입력한다.
node-red admin hash-pw
Password를 입력하면 비밀번호 해시가 표시된다.
Password: $2y$08$qyRghRs1ZDO3/8Nhnt9Fn.xG6CVm55SNPxqf4eCHoEEVRGjzkWV3S
이 문자열을 복사해둔다.
4. settings.js 파일 수정
이제 설정 파일인 settings.js를 수정한다.
일반적으로 이 파일은 /data/settings.js 또는 /home/<사용자>/.node-red/settings.js 경로에 위치한다.
해당 파일을 열고 다음 항목을 찾아 수정한다:
// property can be used. See http://nodered.org/docs/security.html for details.
adminAuth: {
type: "credentials",
users: [{
username: "admin",
password: "$2y$08$qyRghRs1ZDO3/8Nhnt9Fn.xG6CVm55SNPxqf4eCHoEEVRGjzkWV3S",
permissions: "*"
}]
},
5. 재시작
설정을 저장한 후 재시작한다.
Docker 환경이라면 다음 명령으로 재시작할 수 있다:
docker restart node-red
Container Manager를 사용하는 경우 DSM에서 컨테이너를 중지했다가 다시 실행하면 된다.
6. Node-RED 사용자 인증 적용 확인
웹 브라우저에서 접속하면 로그인 화면이 나타난다. 앞서 설정한 사용자 이름과 비밀번호를 입력하면 대시보드에 접근할 수 있다.

7. 마무리
사용자 인증 설정은 Node-RED 보안을 위한 필수 조치다. 특히 Synology NAS나 클라우드처럼 외부 접속이 가능한 환경에서 Node-RED를 운용한다면, 기본 상태 그대로 사용하는 것은 매우 위험하다.
관리자 계정에 비밀번호를 설정하는 것만으로도 시스템의 무단 접근을 차단할 수 있으며, 가능하다면 DSM의 리버스 프록시 기능을 통해 HTTPS 접속까지 함께 적용하면 보안 수준이 크게 향상된다.
Node-RED에서는 다중 사용자 계정 추가, 읽기 전용 사용자 구성, 사용자 권한 분리 등도 설정할 수 있다.
예를 들어, 관리자 계정은 모든 작업이 가능하지만, 단순 모니터링을 위한 계정은 read
권한으로 제한할 수 있다. 이를 통해 협업 환경에서도 안전한 운영이 가능하다.
추가적으로, 인증 설정 시 아래 옵션들도 고려할 수 있다:
contextStorage
설정을 통해 사용자별 세션 데이터를 분리 저장- LDAP 또는 OAuth2 연동을 통한 중앙 인증 체계 구축
- 환경 변수 설정으로 컨테이너 실행 시 인증 정보 자동 삽입
이처럼 Node-RED는 인증 기능을 통해 단순한 자동화 도구를 넘어서, 보안이 강화된 서비스 플랫폼으로 확장될 수 있다.
지금 바로 사용자 인증을 설정해두고, 더 안전한 자동화 환경을 만들어보자.