Blog
nificfmclouderatroubleshootingtlssecuritybrowser

CFM 4 / NiFi 2.x에서 Copy & Paste가 안 되는 이유

HTTP 기반 Non-Secure NiFi에서 복사·붙여넣기가 막히는 건 권한 문제가 아니라 브라우저 Secure Context 제한입니다. 원인과 두 가지 해결책을 정리합니다.

Data Dynamics2026年9月30日9 min read
This post is not yet translated. The original Korean version is shown below.

Cloudera CFM 4 환경에서 NiFi UI의 Copy / Paste 기능이 동작하지 않는 현상이 보고되곤 합니다. 처음에는 대부분 NiFi 권한 설정을 의심하지만, 실제 원인은 NiFi 바깥에 있습니다.

결론부터 말하면 NiFi 2.x가 사용하는 브라우저 Clipboard API가 Secure Context(HTTPS)에서만 허용되기 때문입니다. 다음처럼 HTTP로 접속하는 Non-Secure 환경에서 주로 발생합니다.

http://node3.cfm4.lab.data-dynamics.io:8080

NiFi 권한 문제가 아닌 이유

Non-Secure NiFi Cluster는 Authentication과 Authorization을 아예 수행하지 않습니다. 사용자 권한으로 UI 작업이 제한되는 구조 자체가 없다는 뜻입니다. 따라서 아래 항목들은 이 현상의 원인 후보에서 제외됩니다.

  • User Authentication
  • User Authorization
  • Access Policy
  • Processor 또는 Process Group 권한

즉 NiFi 설정 문제가 아니라 브라우저 측 보안 정책이 원인입니다.

NiFi 2.x의 Clipboard 동작 방식

CFM 4에 포함된 NiFi 2.x는 Copy / Paste를 처리하기 위해 브라우저의 Clipboard API를 사용합니다.

navigator.clipboard

NiFi UI에서 Copy를 수행하면 내부적으로 이 API를 통해 데이터가 브라우저 Clipboard에 저장됩니다.

Loading diagram…

브라우저 Secure Context 제한

Chrome을 비롯한 최신 브라우저는 navigator.clipboard를 보안상의 이유로 Secure Context에서만 사용하도록 제한합니다. 일반적으로 HTTPS로 접속한 페이지가 Secure Context로 간주됩니다.

URLSecure Context
https://nifi.example.comYes
http://nifi.example.com:8080No

따라서 HTTP 기반 NiFi에 접속하면 브라우저가 Clipboard API 사용을 차단할 수 있습니다.

Loading diagram…

접속 방식별 동작

NiFi 접속 방식Secure ContextClipboard APICopy / Paste
https://nifi.example.comYes사용 가능정상
http://localhost:8080브라우저 예외 처리 가능사용 가능할 수 있음정상 가능
http://hostname:8080No제한실패 가능
http://IP:8080No제한실패 가능

localhost는 브라우저가 예외적으로 Secure Context에 준하여 취급하므로, 같은 NiFi라도 로컬에서 접속하면 멀쩡해 보이는 함정이 있습니다.

해결 방법 1 — Chrome에서 HTTP Origin을 Secure로 강제

테스트·개발 환경에서는 Chrome 설정으로 특정 HTTP URL을 Secure Context로 취급하게 만들 수 있습니다. Cloudera 측에서도 테스트 환경에서 이 설정으로 Copy / Paste가 정상 동작함을 확인했습니다.

1. Chrome Flags 페이지 접속

주소창에 다음을 입력합니다.

chrome://flags/#unsafely-treat-insecure-origin-as-secure

2. Insecure origins treated as secure 활성화

Insecure origins treated as secure 항목을 찾아 값을 Enabled로 변경합니다.

3. NiFi URL 등록

설정 항목의 텍스트 박스에 NiFi URL을 입력합니다.

http://node3.cfm4.lab.data-dynamics.io:8080

브라우저는 URL이 아니라 Origin 단위로 처리합니다. Origin은 Protocol + Host + Port의 조합입니다.

요소값
Protocolhttp
Hostnode3.cfm4.lab.data-dynamics.io
Port8080

4. Cluster의 여러 Node에 직접 접속하는 경우

NiFi Cluster의 각 Node URL로 직접 접속해야 한다면 Origin을 각각 등록해야 합니다. 아래 세 URL은 브라우저 관점에서 서로 다른 Origin입니다.

http://node1.cfm4.lab.data-dynamics.io:8080
http://node2.cfm4.lab.data-dynamics.io:8080
http://node3.cfm4.lab.data-dynamics.io:8080

5. Chrome 재시작

설정 후 화면 하단의 Relaunch 버튼을 클릭해 Chrome을 재시작하고, NiFi에 다시 접속해 Copy / Paste를 테스트합니다.

절차 요약

Loading diagram…

해결 방법 2 — NiFi에 TLS 구성

브라우저 설정을 건드리지 않으려면 NiFi에 TLS를 구성해 HTTPS로 접속하게 해야 합니다.

http://nifi.example.com:8080
        ↓
https://nifi.example.com        (또는 https://nifi.example.com:8443)

HTTPS를 사용하면 브라우저가 NiFi 페이지를 Secure Context로 인식하므로 navigator.clipboard가 정상 동작하고, 결과적으로 Copy / Paste도 복구됩니다.

TLS와 Authentication / Authorization

Cloudera는 브라우저 설정을 변경하지 않는 경우 다음과 같은 Secure NiFi 구성을 권고합니다.

Loading diagram…

단순히 Clipboard 문제만 푸는 것이 아니라 NiFi 자체를 Secure Mode로 구성하는 접근입니다. 이를 통해 다음을 함께 확보할 수 있습니다.

  • HTTPS 통신
  • Browser Secure Context
  • Clipboard API 정상 사용
  • 사용자 인증과 사용자별 권한 관리
  • NiFi UI 보안 강화

두 방법 비교

구분Chrome 설정 변경NiFi TLS 구성
적용 위치사용자 BrowserNiFi Server
적용 난이도낮음상대적으로 높음
Browser별 설정 필요YesNo
HTTPS 필요NoYes
Authentication 구성불필요일반적으로 구성
Authorization 구성불필요일반적으로 구성
테스트 환경적합가능
운영 환경비권장권장
근본적인 해결임시 우회Yes

환경별 권장

환경권장 방법
개인 개발 환경Chrome Flag 설정
PoC 환경Chrome Flag 또는 TLS
내부 테스트 환경Chrome Flag 사용 가능
개발/검증 환경가능하면 TLS
Production 환경TLS + Authentication + Authorization

Chrome 설정 이름을 다시 봅시다.

unsafely-treat-insecure-origin-as-secure

이름 그대로 보안되지 않은 HTTP Origin을 브라우저에서 강제로 Secure Context로 처리하는 설정입니다. 운영 환경에서 여러 사용자의 브라우저에 이 설정을 배포하는 방식보다는, NiFi 자체에 TLS를 구성하는 편이 적절합니다.

전체 문제 구조

Loading diagram…

정리

CFM 4 / NiFi 2.x의 Copy / Paste 문제는 Non-Secure NiFi의 사용자 권한 문제가 아니라 브라우저 Clipboard API의 Secure Context 제한 때문입니다.

단기적으로는 Chrome의 chrome://flags/#unsafely-treat-insecure-origin-as-secure에 NiFi HTTP URL을 Secure Origin으로 등록해 해결할 수 있습니다. 다만 이것은 브라우저 측 예외 처리이므로, 운영 환경의 근본적인 해결책은 NiFi에 TLS를 구성하고 HTTPS로 접속하는 것입니다.

개발·테스트 환경은 Chrome Flag로 넘기고, 운영 환경은 TLS + Authentication + Authorization을 갖춘 HTTPS 기반 NiFi로 가는 것이 정석입니다.