튜토리얼 9: 보안 설정
Tutorial 9: Security Settings — easy-to-understand guide based on official docs
튜토리얼 9: 보안 설정
다시 만나서 반갑습니다! 이번 튜토리얼에서는 Hermes Agent에서 가장 중요한 주제 중 하나인 보안에 대해 깊이 알아보겠습니다. 지금까지 따라오셨다면 Hermes가 얼마나 강력한지 아실 겁니다. 하지만 강력한 힘에는 그만큼 큰 책임이 따르죠—Hermes는 다층 방어(Defense-in-Depth) 보안 모델로 여러분을 안전하게 지켜드립니다.
성벽이 여러 겹으로 둘러싸인 성을 떠올려 보세요. 한 겹이 뚫려도 다른 겹이 여러분을 보호해 줍니다. 여덟 가지 보안 계층을 살펴본 후, 가장 실용적인 기능인 위험 명령 승인에 집중해 보겠습니다.
여덟 가지 보안 계층
Hermes는 여덟 가지 측면에서 여러분을 보호합니다:
- 사용자 인증 — 에이전트와 대화할 수 있는 사람을 제어합니다
- 위험 명령 승인 — 파괴적인 작업에 사람의 개입(Human-in-the-Loop)을 적용합니다
- 파일 쓰기 안전장치 — 파일 쓰기에 대한 차단 목록과 선택적 샌드박스를 제공합니다
- 컨테이너 격리 — Docker/Singularity/Modal 샌드박싱을 지원합니다
- MCP 자격증명 필터링 — MCP 하위 프로세스의 환경 변수를 격리합니다
- 컨텍스트 파일 스캐닝 — 프로젝트 파일에서 프롬프트 인젝션을 탐지합니다
- 세션 간 격리 — 세션 간에 서로의 데이터에 접근할 수 없습니다
- 입력 검증 — 셸 인젝션을 방지하기 위해 작업 디렉터리 매개변수를 검증합니다
정말 많은 보호 장치가 있죠! 하지만 여러분이 가장 자주 마주하게 될 것은 명령 승인 기능입니다.
위험 명령 승인 작동 방식
Hermes는 명령을 실행하기 전에 위험 패턴 목록과 대조합니다. 일치하는 항목이 있으면 승인을 요청합니다. 간단하죠?
이 설정은 ~/.hermes/config.yaml에서 구성합니다:
approvals:
mode: smart # smart | manual | off
timeout: 300 # 승인 대기 시간(초)
cron_mode: deny # deny | approve
single_query_mode: deny # deny | approve
mcp_reload_confirm: true # MCP 도구를 리로드하기 전에 확인
destructive_slash_confirm: true # /clear, /new 등을 실행하기 전에 확인
세 가지 승인 모드
스마트 모드(기본값) 는 가장 이상적인 균형점입니다. 보조 LLM을 사용해 위험도를 평가합니다:
- 위험도가 낮은 명령(예:
python -c "print('hello')")은 자동 승인됩니다 - 진짜 위험한 명령은 자동 거부됩니다
- 판단이 애매한 경우 수동 승인을 요청합니다
수동 모드는 항상 사용자에게 확인을 요청합니다. 자동 승인도, 예외도 없습니다.
끄기 모드는 모든 검사를 비활성화합니다—--yolo 플래그로 실행하는 것과 동일합니다. CI/CD 컨테이너 같은 신뢰할 수 있는 환경에서만 사용하세요.
⚠️ 경고:
approvals.mode: off로 설정하면 모든 안전 프롬프트가 비활성화됩니다. 신뢰할 수 있는 환경에서만 사용하세요!
YOLO 모드: 빠른 길 (주의해서 사용하세요)
YOLO 모드는 현재 세션의 모든 승인 프롬프트를 건너뜁니다. 세 가지 방법으로 활성화할 수 있습니다:
- CLI 플래그:
hermes --yolo또는hermes chat --yolo - 슬래시 명령: 세션 중에
/yolo입력 - 환경 변수:
HERMES_YOLO_MODE=1설정
/yolo 명령은 토글 방식입니다:
> /yolo
⚡ YOLO 모드 켜짐 — 모든 명령이 자동 승인됩니다. 주의해서 사용하세요.
> /yolo
⚠ YOLO 모드 꺼짐 — 위험한 명령은 승인이 필요합니다.
YOLO가 활성화되면 Hermes는 두 가지 시각적 알림을 표시합니다:
- 세션 시작 시 빨간 배너:
⚠ YOLO 모드 — 모든 승인 프롬프트가 건너뛰어집니다 - 상태 표시줄의
⚠ YOLO표시가 실시간으로 업데이트됩니다
⚠️ 위험: YOLO 모드는 하드라인 차단 목록을 제외한 모든 위험 명령 검사를 비활성화합니다. 생성되는 명령을 완전히 신뢰할 때만 사용하세요!
이번 버전의 새로운 기능
두 가지 새로운 설정이 특별히 주목할 만합니다:
mcp_reload_confirm (기본값 true): /reload-mcp를 실행하면 이제 MCP 도구 세트를 재구축하기 전에 확인을 요청합니다. 왜일까요? 재구축하면 공급자 프롬프트 캐시가 무효화되어 다음 메시지에서 전체 입력 토큰이 다시 전송되기 때문입니다. 항상 승인을 클릭하면 이 설정이 false로 전환됩니다.
destructive_slash_confirm (기본값 true): /clear, /new, /reset, /undo 같은 파괴적인 명령은 이제 대화 상태를 삭제하기 전에 확인을 요청합니다. 한 번 승인 / 항상 승인 / 취소의 세 가지 옵션 대화상자가 표시됩니다. Telegram, Discord, Slack에서는 기본 예/아니오 버튼으로 표시됩니다.
핵심 요약
- 스마트 모드가 가장 좋은 선택입니다—안전성과 속도의 균형을 잡아줍니다
- YOLO 모드는 토글 방식이지, 되돌릴 수 없는 문이 아닙니다
- Cron 및 단일 쿼리 세션은 위험한 명령에 대해 기본적으로
deny로 설정됩니다—에이전트는 다른 방법을 찾아야 합니다 - 시각적 표시를 항상 확인해서 YOLO가 활성화되어 있는지 파악하세요
보안은 과도한 의심이 아니라 준비된 태도입니다. Hermes의 다층 접근 방식을 통해 자신 있게 자동화할 수 있습니다. 안전하게 작업하시고, 즐거운 자동화 되세요!
📖 공식 문서
この記事は Hermes Agent の공식 문서に基づいています:공식 문서 › user-guide/security