logologo
시작
가이드
개발
플러그인
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
시작
가이드
개발
플러그인
API
logologo
보안 가이드
토큰 정책

비밀번호 정책

비밀번호 정책
사용자 잠금
IP 제한
감사 로그
2단계 인증 (2FA)
필드 암호화
Next Page토큰 정책
TIP

이 문서는 AI로 번역되었습니다. 부정확한 내용이 있을 경우 영어 버전을 참조하세요

#NocoBase 보안 가이드

NocoBase는 기능 설계부터 시스템 구현에 이르기까지 데이터와 애플리케이션의 보안을 중요하게 생각합니다. 플랫폼에는 사용자 인증, 접근 제어, 데이터 암호화 등 다양한 보안 기능이 내장되어 있으며, 실제 필요에 따라 보안 정책을 유연하게 설정할 수 있습니다. 사용자 데이터 보호, 접근 권한 관리, 개발 및 운영 환경 분리 등 어떤 상황에서든 NocoBase는 실용적인 도구와 솔루션을 제공합니다. 이 가이드는 NocoBase를 안전하게 사용하는 방법을 안내하여 사용자가 데이터, 애플리케이션 및 환경을 보호하고, 안전한 환경에서 시스템 기능을 효율적으로 활용할 수 있도록 돕는 것을 목표로 합니다.

#사용자 인증

사용자 인증은 사용자 신원을 확인하고, 승인되지 않은 사용자가 시스템에 접근하는 것을 방지하며, 사용자 신원이 오용되지 않도록 보장하는 데 사용됩니다.

#토큰 키

기본적으로 NocoBase는 JWT (JSON Web Token)를 사용하여 서버 측 API를 인증합니다. 사용자는 시스템 환경 변수 APP_KEY를 통해 토큰 키를 설정할 수 있습니다. 애플리케이션의 토큰 키가 외부에 유출되지 않도록 잘 관리해 주십시오. APP_KEY가 변경되면 기존 토큰도 무효화된다는 점에 유의하시기 바랍니다.

#토큰 정책

NocoBase는 사용자 토큰에 대해 다음과 같은 보안 정책 설정을 지원합니다.

설정 항목설명
세션 유효 기간사용자가 로그인할 때마다 부여되는 최대 유효 시간입니다. 세션 유효 기간 내에는 토큰이 자동으로 갱신되며, 이 기간을 초과하면 사용자는 다시 로그인해야 합니다.
토큰 유효 기간발급된 각 API 토큰의 유효 기간입니다. 토큰 만료 후에도 세션 유효 기간 내에 있고 갱신 제한 시간을 초과하지 않았다면, 서버는 사용자 세션을 유지하기 위해 새 토큰을 자동으로 발급합니다. 그렇지 않은 경우 사용자는 다시 로그인해야 합니다. (각 토큰은 한 번만 갱신될 수 있습니다.)
만료 토큰 갱신 제한 시간토큰 만료 후 갱신이 허용되는 최대 시간입니다.

일반적으로 관리자에게 다음을 권장합니다.

  • 토큰 노출 시간을 제한하기 위해 토큰 유효 기간을 짧게 설정하십시오.
  • 사용자 경험과 보안의 균형을 맞추기 위해 토큰 유효 기간보다 길지만 너무 길지 않은 합리적인 세션 유효 기간을 설정하십시오. 토큰 자동 갱신 메커니즘을 활용하여 활성 사용자 세션이 중단되지 않도록 하면서 장기 세션 오용 위험을 줄일 수 있습니다.
  • 사용자가 장시간 비활성 상태일 때 새 토큰이 발급되지 않고 토큰이 자연스럽게 만료되도록 합리적인 만료 토큰 갱신 제한 시간을 설정하여 유휴 사용자 세션 오용 위험을 줄이십시오.

#토큰 클라이언트 저장

기본적으로 사용자 토큰은 브라우저의 LocalStorage에 저장됩니다. 브라우저 페이지를 닫았다가 다시 열었을 때 토큰이 여전히 유효하다면 사용자는 다시 로그인할 필요가 없습니다.

사용자가 페이지에 접속할 때마다 다시 로그인하도록 하려면, 환경 변수 API_CLIENT_STORAGE_TYPE=sessionStorage를 설정하여 사용자 토큰을 브라우저의 SessionStorage에 저장할 수 있습니다. 이를 통해 사용자가 페이지를 열 때마다 다시 로그인하도록 할 수 있습니다.

#비밀번호 정책

전문 버전 이상

NocoBase는 모든 사용자를 대상으로 비밀번호 규칙과 비밀번호 로그인 시도 잠금 정책을 설정하여 비밀번호 로그인이 활성화된 NocoBase 애플리케이션의 보안을 강화합니다. 각 설정 항목에 대한 자세한 내용은 비밀번호 정책을 참조하십시오.

#비밀번호 규칙

설정 항목설명
비밀번호 길이비밀번호의 최소 길이 요구 사항이며, 최대 길이는 64자입니다.
비밀번호 복잡성비밀번호의 복잡성 요구 사항을 설정하며, 반드시 포함해야 하는 문자 유형입니다.
비밀번호에 사용자 이름 포함 불가비밀번호에 현재 사용자의 사용자 이름을 포함할 수 있는지 여부를 설정합니다.
비밀번호 기록 기억사용자가 최근에 사용한 비밀번호 개수를 기억하며, 비밀번호 변경 시 재사용할 수 없습니다.

#비밀번호 만료 설정

설정 항목설명
비밀번호 유효 기간사용자 비밀번호의 유효 기간입니다. 사용자는 비밀번호 만료 전에 비밀번호를 변경해야 유효 기간이 다시 계산됩니다. 만료 전에 비밀번호를 변경하지 않으면 이전 비밀번호로 로그인할 수 없으며, 관리자의 도움을 받아 재설정해야 합니다.
다른 로그인 방식이 설정되어 있다면 사용자는 다른 방식으로 로그인할 수 있습니다.
비밀번호 만료 알림 채널사용자 비밀번호 만료 10일 전부터 사용자가 로그인할 때마다 알림을 보냅니다.

#비밀번호 로그인 보안

설정 항목설명
최대 유효하지 않은 비밀번호 로그인 시도 횟수사용자가 지정된 시간 간격 내에 시도할 수 있는 최대 로그인 시도 횟수를 설정합니다.
최대 유효하지 않은 비밀번호 로그인 시간 간격 (초)사용자 최대 유효하지 않은 로그인 시도 횟수를 계산하는 시간 간격을 초 단위로 설정합니다.
잠금 시간 (초)사용자가 유효하지 않은 비밀번호 로그인 제한을 초과한 후 사용자를 잠그는 시간을 초 단위로 설정합니다 (0은 제한 없음을 의미).
사용자가 잠금 상태인 동안에는 API 키를 포함한 어떠한 인증 방식으로도 시스템에 접근할 수 없습니다.

일반적으로 다음을 권장합니다.

  • 비밀번호가 연관성 추측이나 무차별 대입 공격에 의해 노출될 위험을 줄이기 위해 강력한 비밀번호 규칙을 설정하십시오.
  • 사용자가 정기적으로 비밀번호를 변경하도록 강제하기 위해 합리적인 비밀번호 유효 기간을 설정하십시오.
  • 유효하지 않은 비밀번호 로그인 횟수와 시간 설정을 결합하여 단시간 내에 빈번한 비밀번호 로그인 시도를 제한하고 무차별 대입 공격을 방지하십시오.
  • 보안 요구 사항이 엄격한 환경에서는 로그인 제한 초과 시 사용자를 잠그는 합리적인 시간을 설정할 수 있습니다. 하지만 잠금 시간 설정은 악용될 수 있다는 점에 유의해야 합니다. 공격자가 특정 계정을 대상으로 의도적으로 여러 번 잘못된 비밀번호를 입력하여 계정이 잠기고 정상적으로 사용할 수 없게 만들 수 있습니다. 실제 사용 시에는 IP 제한, API 빈도 제한 등의 수단을 결합하여 이러한 공격을 방지할 수 있습니다.
  • NocoBase의 기본 root 사용자 이름, 이메일, 비밀번호를 변경하여 악용되는 것을 방지하십시오.
  • 비밀번호 만료 또는 계정 잠금으로 인해 관리자 계정을 포함한 시스템 접근이 불가능해질 수 있으므로, 시스템 내에 비밀번호 재설정 및 사용자 잠금 해제 권한을 가진 여러 계정을 설정하는 것이 좋습니다.

#사용자 잠금

전문 버전 이상, 비밀번호 정책 플러그인에 포함

유효하지 않은 비밀번호 로그인 제한을 초과하여 잠긴 사용자를 관리합니다. 잠긴 사용자를 직접 잠금 해제하거나, 비정상적인 사용자를 잠금 목록에 수동으로 추가할 수 있습니다. 사용자가 잠금 상태가 되면 API 키를 포함한 어떠한 인증 방식으로도 시스템에 접근할 수 없습니다.

#API 키

NocoBase는 API 키를 통해 시스템 API를 호출하는 것을 지원합니다. 사용자는 API 키 플러그인 설정에서 API 키를 추가할 수 있습니다.

  • API 키에 올바른 역할을 바인딩하고, 해당 역할과 관련된 권한이 올바르게 설정되었는지 확인하십시오.
  • API 키 사용 중 외부로 유출되지 않도록 주의하십시오.
  • 일반적으로 API 키에 유효 기간을 설정하고 "영구 만료 없음" 옵션을 사용하지 않는 것을 권장합니다.
  • API 키가 비정상적으로 사용되어 유출 위험이 있다고 판단되면, 해당 API 키를 삭제하여 무효화할 수 있습니다.

#싱글 사인온 (Single Sign-On, SSO)

상업용 플러그인

NocoBase는 OIDC, SAML 2.0, LDAP, CAS 등 다양한 주요 프로토콜을 지원하는 풍부한 SSO 인증 플러그인을 제공합니다. 또한 NocoBase는 완벽한 인증 방식 확장 인터페이스를 갖추고 있어 다른 인증 유형을 빠르게 개발하고 통합할 수 있습니다. 기존 IdP(Identity Provider)를 NocoBase와 쉽게 연동하여 IdP에서 사용자 신원을 중앙 집중식으로 관리하고 보안을 강화할 수 있습니다.

#이중 인증 (Two-factor authentication)

엔터프라이즈 버전

이중 인증은 사용자가 비밀번호로 로그인할 때, 신뢰할 수 있는 장치로 일회성 동적 인증 코드를 전송하는 것과 같이 신원을 증명할 수 있는 두 번째 유효한 정보를 제공하도록 요구합니다. 이는 사용자 신원을 확인하고 오용을 방지하며, 비밀번호 유출로 인한 위험을 줄이는 데 도움이 됩니다.

#IP 접근 제어

엔터프라이즈 버전

NocoBase는 사용자 접근 IP에 대해 블랙리스트 또는 화이트리스트 설정을 지원합니다.

  • 보안 요구 사항이 엄격한 환경에서는 IP 화이트리스트를 설정하여 특정 IP 또는 IP 대역만 시스템에 접근하도록 허용함으로써, 승인되지 않은 외부 네트워크 연결을 제한하고 근본적으로 보안 위험을 줄일 수 있습니다.
  • 공개 네트워크 접근 환경에서 관리자가 비정상적인 접근을 발견하면, IP 블랙리스트를 설정하여 알려진 악성 IP 주소 또는 의심스러운 출처의 접근을 차단하고 악성 스캔, 무차별 대입 공격과 같은 보안 위협을 줄일 수 있습니다.
  • 거부된 접근 요청에 대해서는 로그 기록을 보관합니다.

#권한 제어

시스템에 다양한 역할을 설정하고 각 역할에 적절한 권한을 부여함으로써, 사용자가 리소스에 접근하는 권한을 세밀하게 제어할 수 있습니다. 관리자는 실제 시나리오 요구 사항에 맞춰 합리적으로 설정하여 시스템 리소스 유출 위험을 줄여야 합니다.

#Root 사용자

NocoBase를 처음 설치할 때 애플리케이션은 root 사용자를 초기화합니다. 사용자는 시스템 환경 변수를 설정하여 root 사용자 관련 정보를 수정하고 악용되는 것을 방지하는 것이 좋습니다.

  • INIT_ROOT_USERNAME - root 사용자 이름
  • INIT_ROOT_EMAIL - root 사용자 이메일
  • INIT_ROOT_PASSWORD - root 사용자 비밀번호 (강력한 비밀번호를 설정하십시오.)

시스템을 계속 사용하는 동안에는 다른 관리자 계정을 설정하고 사용하는 것을 권장하며, root 사용자로 애플리케이션을 직접 조작하는 것은 가능한 한 피하십시오.

#역할 및 권한

NocoBase는 시스템에 역할을 설정하고, 각 역할에 권한을 부여하며, 사용자를 해당 역할에 바인딩함으로써 사용자가 리소스에 접근하는 권한을 제어합니다. 각 사용자는 여러 역할을 가질 수 있으며, 역할을 전환하여 다양한 관점에서 리소스를 조작할 수 있습니다. 부서 플러그인이 설치된 경우, 역할과 부서를 바인딩할 수도 있으며, 이 경우 사용자는 소속 부서에 바인딩된 역할을 갖게 됩니다.

#시스템 설정 권한

시스템 설정 권한에는 다음 항목이 포함됩니다.

  • 설정 인터페이스 허용 여부
  • 플러그인 설치, 활성화, 비활성화 허용 여부
  • 플러그인 설정 허용 여부
  • 캐시 지우기, 애플리케이션 재시작 허용 여부
  • 각 플러그인의 설정 권한

#메뉴 권한

메뉴 권한은 사용자가 데스크톱 및 모바일 환경을 포함하여 다양한 메뉴 페이지에 접근하는 권한을 제어하는 데 사용됩니다.

#데이터 권한

NocoBase는 사용자가 시스템 내 데이터에 접근하는 권한에 대해 세밀한 제어를 제공하여, 각 사용자가 자신의 직무와 관련된 데이터만 접근하도록 보장하고 권한 남용 및 데이터 유출을 방지합니다.

#전역 제어

#테이블 및 필드 수준 제어

#데이터 범위 제어

사용자가 조작할 수 있는 데이터 범위를 설정합니다. 여기에서 설정하는 데이터 범위는 블록에서 설정하는 데이터 범위와 다릅니다. 블록에서 설정하는 데이터 범위는 일반적으로 프런트엔드 데이터 필터링에만 사용됩니다. 사용자 데이터 리소스 접근 권한을 엄격하게 제어해야 하는 경우, 서버에서 제어하도록 여기에 설정해야 합니다.

#데이터 보안

데이터 저장 및 백업 과정에서 NocoBase는 데이터 보안을 보장하기 위한 효과적인 메커니즘을 제공합니다.

#비밀번호 저장

NocoBase 사용자 비밀번호는 scrypt 알고리즘으로 암호화되어 저장되며, 대규모 하드웨어 공격에 효과적으로 대응할 수 있습니다.

#환경 변수 및 키

NocoBase에서 타사 서비스를 사용할 때, 타사 키 정보를 환경 변수에 설정하고 암호화하여 저장하는 것을 권장합니다. 이는 다양한 환경에서 편리하게 설정하고 사용할 수 있게 하며, 보안을 강화합니다. 자세한 사용 방법은 문서를 참조하십시오.

WARNING

기본적으로 키는 AES-256-CBC 알고리즘으로 암호화됩니다. NocoBase는 32비트 암호화 키를 자동으로 생성하여 storage/.data/environment/aes_key.dat에 저장합니다. 사용자는 키 파일이 도난당하지 않도록 잘 보관해야 합니다. 데이터를 마이그레이션해야 하는 경우, 키 파일도 함께 마이그레이션해야 합니다.

#파일 저장

민감한 파일을 저장해야 하는 경우, S3 프로토콜과 호환되는 클라우드 저장 서비스를 사용하고 상업용 플러그인 File storage: S3 (Pro)와 함께 사용하여 파일의 비공개 읽기/쓰기를 구현하는 것을 권장합니다. 내부 네트워크 환경에서 사용해야 하는 경우, MinIO와 같이 프라이빗 배포를 지원하고 S3 프로토콜과 호환되는 저장 애플리케이션을 사용하는 것이 좋습니다.

#애플리케이션 백업

애플리케이션 데이터 보안을 보장하고 데이터 손실을 방지하기 위해 데이터베이스를 정기적으로 백업하는 것을 권장합니다.

오픈 소스 버전 사용자는 https://www.nocobase.com/en/blog/nocobase-backup-restore를 참조하여 데이터베이스 도구를 활용해 백업할 수 있습니다. 또한 백업 파일이 유출되지 않도록 잘 보관하는 것을 권장합니다.

전문 버전 이상 사용자는 백업 관리자를 사용하여 백업할 수 있습니다. 백업 관리자는 다음과 같은 기능을 제공합니다.

  • 정기 자동 백업: 주기적인 자동 백업으로 시간과 수동 작업을 절약하고 데이터 보안을 더욱 강화합니다.
  • 백업 파일을 클라우드 저장소에 동기화: 백업 파일을 애플리케이션 서비스 자체와 분리하여 서버 장애로 인해 서비스가 중단되는 동시에 백업 파일이 손실되는 것을 방지합니다.
  • 백업 파일 암호화: 백업 파일에 비밀번호를 설정하여 백업 파일 유출로 인한 데이터 유출 위험을 줄입니다.

#실행 환경 보안

NocoBase를 올바르게 배포하고 실행 환경의 보안을 보장하는 것은 NocoBase 애플리케이션 보안을 위한 핵심 요소 중 하나입니다.

#HTTPS 배포

중간자 공격을 방지하기 위해 NocoBase 애플리케이션 사이트에 SSL/TLS 인증서를 추가하여 네트워크 전송 과정에서 데이터 보안을 보장하는 것을 권장합니다.

#API 전송 암호화

엔터프라이즈 버전

데이터 보안 요구 사항이 더욱 엄격한 환경에서 NocoBase는 API 전송 암호화를 활성화하여 API 요청 및 응답 내용을 암호화하고, 평문 전송을 방지하며, 데이터 해독의 문턱을 높이는 것을 지원합니다.

#프라이빗 배포

기본적으로 NocoBase는 타사 서비스와 통신할 필요가 없으며, NocoBase 팀은 어떠한 사용자 정보도 수집하지 않습니다. NocoBase 서버에 연결해야 하는 경우는 다음 두 가지 작업 시에만 해당됩니다.

  1. NocoBase 서비스 플랫폼을 통해 상업용 플러그인을 자동으로 다운로드할 때.
  2. 상업용 애플리케이션을 온라인으로 인증하고 활성화할 때.

일정 수준의 편의성을 포기할 의향이 있다면, 이 두 가지 작업 모두 오프라인으로 완료할 수 있으며 NocoBase 서버에 직접 연결할 필요가 없습니다.

NocoBase는 완전한 내부 네트워크 배포를 지원합니다. 다음을 참조하십시오.

  • https://www.nocobase.com/en/blog/load-docker-image
  • 플러그인 디렉터리에 플러그인 업로드하여 설치 및 업그레이드

#다중 환경 격리

전문 버전 이상

실제 사용 사례에서는 기업 사용자가 테스트 환경과 운영 환경을 격리하여 운영 환경의 애플리케이션 데이터 및 실행 환경 보안을 보장하는 것을 권장합니다. 마이그레이션 관리 플러그인을 활용하면 애플리케이션 데이터를 다른 환경 간에 마이그레이션할 수 있습니다.

#감사 및 모니터링

#감사 로그

엔터프라이즈 버전

NocoBase의 감사 로그 기능은 시스템 내 사용자 활동 기록을 저장합니다. 사용자의 주요 작업 및 접근 행동을 기록함으로써 관리자는 다음을 수행할 수 있습니다.

  • 사용자 접근 IP, 장치 정보 및 작업 시간 등을 확인하여 비정상적인 행동을 즉시 발견할 수 있습니다.
  • 시스템 내 데이터 리소스의 작업 이력을 추적할 수 있습니다.

#애플리케이션 로그

NocoBase는 다양한 로그 유형을 제공하여 사용자가 시스템 실행 상태 및 행동 기록을 이해하고, 시스템 문제를 적시에 발견 및 해결하며, 다양한 관점에서 시스템의 보안 및 제어 가능성을 보장하도록 돕습니다. 주요 로그 유형은 다음과 같습니다.

  • 요청 로그: API 요청 로그로, 접근 URL, HTTP 메서드, 요청 매개변수, 응답 시간 및 상태 코드 등의 정보를 포함합니다.
  • 시스템 로그: 서비스 시작, 설정 변경, 오류 메시지 및 주요 작업 등 애플리케이션 실행 이벤트를 기록합니다.
  • SQL 로그: 데이터베이스 작업 문과 해당 실행 시간을 기록하며, 조회, 업데이트, 삽입 및 삭제 등의 행동을 포함합니다.
  • 워크플로우 로그: 워크플로우의 실행 로그로, 실행 시간, 실행 정보, 오류 정보 등을 포함합니다.