🛡️
관리자 전용 문서

이 문서는 SentinelOne 내부 관리자만 열람해야 합니다. 파트너사와 공유하지 마세요. 관리자 계정 정보, Firebase 설정, 시스템 구성 정보가 포함되어 있습니다.

1

시스템 개요

구성 파일
index.html ← 파트너용 포털 메인 (= partner-portal.html)
admin.html ← 관리자 로그인 및 관리 화면
guide.html ← 파트너용 사용 가이드
admin-guide.html ← 이 문서 (관리자 전용)
기술 스택 및 비용
구성 요소서비스비용용도
호스팅Cloudflare Pages무료정적 HTML 파일 서빙
데이터베이스Firebase Realtime Database무료 (Spark)FAQ, Q&A, 계정, 댓글 저장
이메일 알림Formspree무료 50건/월질문 제출 시 이메일 수신
전체 월 비용$0 ~ $10Formspree 초과 시 $10/월
Firebase 데이터 구조
partner_accounts/ ← 파트너 계정 (이메일, 비밀번호 해시, 회사명)
faqs/ ← FAQ 데이터 (질문, 답변, 카테고리)
pending/ ← 미답변 질문 (파트너 제출)
qna/ ← Q&A 아카이브 (질문+답변 이력)
resources/ ← 자료실 (제목, URL, 카테고리)
comments/ ← 댓글 (FAQ ID별 그룹)
logs/ ← 접속 로그 (타임스탬프, 이벤트)
guide/ ← 가이드 편집 내용 (향후 사용)
2

관리자 로그인

포털 URL (파트너/관리자 통합)
https://s1partnerportal.pages.dev
  1. 포털 주소로 접속합니다 파트너와 동일한 로그인 화면이 표시됩니다.
  2. 관리자 이메일과 비밀번호를 입력합니다 관리자 계정으로 로그인하면 자동으로 관리자 화면으로 이동합니다.
⚠️
보안 주의사항
  • 관리자 계정 정보를 이메일, 메신저로 공유하지 마세요
  • 공용 PC나 공유 브라우저에서 로그인 후 반드시 로그아웃하세요
  • 초기 비밀번호는 사용 후 즉시 변경을 권장합니다
3

대시보드

관리자로 로그인하면 대시보드가 자동으로 표시됩니다. 포털 현황을 한눈에 파악할 수 있습니다.

3
📥 미답변 질문 (빨간색 = 즉시 처리 필요)
24
📚 전체 FAQ 수
8
👤 활성 파트너 계정 수
41
💬 Q&A 아카이브 건수
ℹ️

미답변 건수가 빨간색으로 표시되면 처리가 필요한 질문이 있음을 의미합니다. 대시보드 수치는 Firebase에서 실시간으로 반영됩니다.

4

파트너 계정 관리

파트너 계정을 생성, 수정, 비활성화, 삭제할 수 있습니다. 생성된 계정은 Firebase에 즉시 저장됩니다.

  1. 왼쪽 사이드바 "👤 파트너 계정"을 클릭합니다 관리자 화면 좌측 메뉴에서 파트너 계정 탭으로 이동합니다.
  2. "+ 계정 추가" 버튼을 클릭합니다 계정 추가 양식이 열립니다.
  3. 계정 정보를 입력합니다 회사명, 담당자명, 이메일 주소, 초기 비밀번호를 입력합니다. 비밀번호는 SHA-256으로 해시되어 저장됩니다.
  4. "저장" 버튼을 클릭합니다 계정이 Firebase에 저장되며 파트너는 즉시 로그인할 수 있습니다.
  5. 파트너에게 계정 정보를 전달합니다 이메일로 포털 주소, 이메일 주소, 초기 비밀번호를 안내합니다.
계정 관리 옵션
기능설명
비활성화/활성화계정을 임시 비활성화하면 해당 파트너는 로그인 불가. 재활성화 시 즉시 복구.
비밀번호 재설정파트너 요청 시 새 비밀번호를 설정하여 전달. 해시 자동 처리.
계정 삭제Firebase에서 영구 삭제. 삭제 전 파트너에게 안내 권장.
실시간 반영

Firebase 동기화로 계정 생성, 수정, 삭제가 즉시 반영됩니다. 별도 서버 재시작이 필요 없습니다.

5

미답변 질문 처리

파트너가 포털에서 제출한 질문을 확인하고 답변을 등록합니다. 답변 후 FAQ 또는 Q&A 아카이브에 저장하고 파트너에게 Gmail로 이메일을 보낼 수 있습니다.

  1. "📥 미답변" 탭으로 이동합니다 관리자 화면 좌측에서 미답변 탭을 클릭합니다. 대기 중인 질문 목록이 표시됩니다.
  2. 질문을 선택하고 "💬 답변 작성" 버튼을 클릭합니다 파트너가 제출한 질문 내용과 카테고리를 확인합니다.
  3. 답변 내용을 작성합니다 정확하고 명확한 답변을 작성합니다. 마크다운 형식을 지원합니다.
  4. 저장 위치를 선택합니다 아래 옵션 중 하나 이상을 선택합니다.
  5. "✅ 답변 등록" 버튼을 클릭합니다 선택한 방식으로 저장 및 발송이 동시에 처리됩니다.
저장 위치 선택 옵션
  • ☑ FAQ 등록 — 모든 파트너에게 공개되는 FAQ로 등록. 반복되는 질문에 적합.
  • ☑ Q&A 아카이브 — 질문+답변 이력을 아카이브로 보관. 맥락 보존 필요 시 선택.
  • ☑ Gmail로 답장 — 파트너 이메일로 답변 발송. Gmail 작성 화면이 자동으로 열림.
💡
효율적인 처리 방법

일반적으로 Q&A 아카이브 + Gmail 답장을 함께 선택하는 것을 권장합니다. 자주 묻는 질문이라면 FAQ에도 추가하세요. 미답변 질문은 매일 확인하고 1~2 영업일 내 처리를 목표로 합니다.

6

FAQ 관리

FAQ를 직접 추가, 수정, 삭제할 수 있습니다. 변경사항은 Firebase를 통해 파트너 화면에 즉시 반영됩니다.

  1. "📚 FAQ 관리" 탭으로 이동합니다 관리자 좌측 메뉴에서 FAQ 관리 탭을 선택합니다.
  2. "+ 새 Q&A 추가" 버튼을 클릭합니다 새 FAQ 항목 추가 양식이 열립니다.
  3. 카테고리, 질문, 답변을 입력합니다 카테고리: EDR / Prompt Security / 일반 중 선택. 답변은 HTML 또는 일반 텍스트로 입력.
  4. "저장" 버튼을 클릭합니다 Firebase에 저장되며 파트너 포털에 즉시 표시됩니다.
FAQ 카테고리
EDR

Endpoint Detection & Response 관련 FAQ

Prompt Security

AI/LLM 보안 제품 관련 FAQ

일반

라이선스, 파트너십, 기타 FAQ

실시간 Firebase 동기화

FAQ 추가, 수정, 삭제는 Firebase Realtime Database에 저장되어 파트너 포털 화면에 즉시 반영됩니다.

7

Q&A 아카이브 관리

파트너 질문과 답변의 이력을 관리합니다. 미답변 처리 시 아카이브 체크를 선택한 항목만 표시됩니다.

  1. "💬 Q&A 아카이브" 탭으로 이동합니다 관리자 좌측 메뉴에서 Q&A 아카이브 탭을 선택합니다.
  2. 아카이브 목록을 확인합니다 미답변 처리 시 아카이브에 체크한 항목들이 질문+답변 형태로 표시됩니다.
  3. 부적절한 내용은 삭제합니다 민감한 정보, 오류 답변 등 부적절한 항목은 삭제 버튼으로 제거합니다.
ℹ️
파트너 열람 가능 여부

Q&A 아카이브는 로그인한 파트너 모두가 열람할 수 있습니다. 특정 파트너의 회사명이나 민감한 정보가 포함되어 있는지 저장 전에 확인하세요.

8

자료실 관리

파트너에게 제공할 공식 문서, 가이드, 교육 자료의 링크를 관리합니다.

  1. "📁 자료실" 탭으로 이동합니다 관리자 좌측 메뉴에서 자료실 탭을 선택합니다.
  2. "+ 자료 추가" 버튼을 클릭합니다 새 자료 추가 양식이 열립니다.
  3. 자료 정보를 입력합니다 제목, 카테고리(EDR/PS/일반/교육), 외부 URL, 설명을 입력합니다.
  4. "저장" 버튼을 클릭합니다 Firebase에 저장되며 파트너 자료실에 즉시 표시됩니다.
지원 자료 유형
유형예시
공식 문서SentinelOne 기술 문서, API 가이드, 릴리스 노트
YouTube 영상제품 데모, 교육 영상, 웨비나 녹화
웹페이지SentinelOne 공식 블로그, 파트너 페이지
PDF 링크데이터 시트, 백서, 인증서 등 (외부 URL 형태)
💡
URL 형식 안내

자료는 외부 URL 링크 형태로만 제공됩니다. 파일을 직접 업로드하는 기능은 없으므로, Google Drive, Dropbox 공유 링크 또는 공식 URL을 사용하세요.

9

접속 로그

포털의 주요 이벤트가 Firebase에 자동으로 기록됩니다. 최근 200건을 조회할 수 있습니다.

  1. "📊 접속 로그" 탭으로 이동합니다 관리자 좌측 메뉴에서 접속 로그 탭을 선택합니다.
  2. 로그 목록을 확인합니다 타임스탬프와 함께 이벤트 유형, 관련 계정 정보가 표시됩니다.
  3. "🔄 새로고침" 버튼으로 최신 로그를 불러옵니다 실시간 자동 갱신은 되지 않으므로, 최신 로그 확인 시 새로고침을 클릭합니다.
수집 이벤트 목록
이벤트기록 시점
파트너 접속파트너 로그인 성공 시
파트너 로그아웃파트너 로그아웃 버튼 클릭 시
관리자 로그인관리자 인증 성공 시
관리자 로그아웃관리자 로그아웃 시
질문 제출파트너 질문 제출 완료 시
답변 등록관리자 답변 저장 완료 시
10

Firebase 설정

현재 Firebase URL
https://s1-partner-qna-portal-default-rtdb.firebaseio.com
  1. "⚙️ 설정" 탭 → Firebase URL 항목을 확인합니다 관리자 화면 설정 탭에서 현재 연결된 Firebase Realtime Database URL을 확인할 수 있습니다.
  2. Firebase 콘솔에서 데이터를 직접 확인할 수 있습니다 console.firebase.google.com에서 데이터 구조를 직접 열람하거나 수동으로 수정할 수 있습니다.
⚠️
30일 후 보안 규칙 변경 필요

현재 Firebase는 테스트 모드(30일 임시 허용)로 동작 중입니다. 만료 후에도 정상 동작을 위해 아래 규칙을 Firebase 콘솔에서 적용해야 합니다.

Firebase 보안 규칙 (30일 후 적용)
{ "rules": { ".read": true, ".write": true } }
💡
보안 규칙 적용 방법
  • Firebase 콘솔 → Realtime Database → 규칙(Rules) 탭 클릭
  • 위 JSON 코드를 붙여넣기
  • "게시" 버튼 클릭으로 저장
11

Formspree 설정

Formspree는 파트너가 질문을 제출할 때 관리자에게 이메일 알림을 보내는 서비스입니다. 설정되지 않은 경우 Gmail mailto 방식으로 대체 작동합니다.

  1. formspree.io에 가입합니다 무료 플랜으로 가입하면 월 50건의 이메일 수신이 가능합니다.
  2. 새 폼을 생성합니다 Formspree 대시보드에서 "+ New Form"을 클릭하고 이메일 수신 주소(kyeongill.kim@sentinelone.com / yongsoo.kim@sentinelone.com)를 설정합니다.
  3. Form ID를 복사합니다 생성된 폼의 ID (예: xbzyqkpl)를 복사합니다.
  4. 관리자 설정 탭에 입력합니다 "⚙️ 설정" 탭 → Formspree ID 항목에 복사한 ID를 붙여넣고 저장합니다.
Formspree 요금제
플랜월 제출 수비용
Free50건$0/월
Basic1,000건$10/월
ℹ️
Formspree 미설정 시 동작

Formspree ID가 입력되지 않은 경우, 파트너가 질문을 제출하면 Gmail 작성 창이 자동으로 열려 이메일로 질문 내용이 전송됩니다. 이 방법도 정상 작동하지만 Formspree를 통하면 관리자 화면의 미답변 탭에 자동으로 수집됩니다.

12

베타/운영 환경

베타 환경 (테스트용)
s1-partner-beta.pages.dev

내부 테스트 전용. 파트너에게 공개하지 마세요.

운영 환경 (실제 서비스)
s1partnerportal.pages.dev

파트너가 실제 접속하는 주소입니다.

업데이트 흐름
로컬 수정
베타 테스트
운영 배포
Cloudflare Pages 배포 방법
  1. 로컬에서 HTML 파일을 수정합니다 텍스트 에디터(VS Code 등)로 파일을 수정합니다.
  2. 베타 환경에 먼저 업로드합니다 Cloudflare Pages 대시보드에서 베타 프로젝트에 파일을 재업로드합니다.
  3. 베타에서 기능을 테스트합니다 변경된 기능이 정상 동작하는지 확인합니다.
  4. 운영 환경에 배포합니다 이상이 없으면 운영 프로젝트에도 동일하게 파일을 업로드합니다.
⚠️
운영 배포 전 반드시 베타에서 테스트하세요

운영 환경은 파트너가 실제로 접속하는 서비스입니다. 수정 후 즉시 운영에 배포하면 오류가 노출될 수 있습니다. 반드시 베타에서 검증 후 운영에 반영하세요.

13

관리자 비밀번호 변경

관리자 슈퍼 계정의 비밀번호는 admin.html 파일의 상단 SUPER.hash 값을 교체하는 방식으로 변경합니다. SHA-256 해시를 생성한 후 파일에 적용하고 재배포하면 됩니다.

Step 1. SHA-256 해시 생성

브라우저 개발자 도구(F12)를 열고 Console 탭에서 아래 코드를 실행합니다.

브라우저 Console (F12 → Console 탭)
const buf = await crypto.subtle.digest( 'SHA-256', new TextEncoder().encode('새비밀번호') ); console.log( Array.from(new Uint8Array(buf)) .map(b => b.toString(16).padStart(2, '0')) .join('') );
Step 2. 해시값을 admin.html에 적용

출력된 64자리 해시값을 admin.html 파일 상단의 SUPER.hash에 교체합니다.

admin.html 상단 (예시)
const SUPER = { email: 'kyeongill.kim@sentinelone.com / yongsoo.kim@sentinelone.com', hash: '여기에_새_해시값_붙여넣기' };
Step 3. 파일을 저장하고 Cloudflare Pages에 재배포합니다

베타 → 운영 순서로 재배포하면 비밀번호 변경이 완료됩니다.

⚠️
비밀번호 변경 시 주의사항
  • 해시 생성 시 새 비밀번호 부분에 실제 변경할 비밀번호를 입력하세요
  • 복사 시 앞뒤 공백이 포함되지 않도록 주의하세요
  • 변경 후 즉시 새 비밀번호로 로그인되는지 테스트하세요
  • 비밀번호는 안전한 곳에 별도 보관하세요 (복구 불가)
💡
권장 비밀번호 조건

영문 대소문자, 숫자, 특수문자를 조합한 12자 이상의 비밀번호를 사용하세요. (예: (별도 전달)@KR)