본문 바로가기
OpenClaw

[openclaw 완전 가이드] 12편 openclaw 채널 보안 — 권한 통제 및 allowlist 설정으로 안전한 AI 에이전트 만들기

by 퀀트형 Kai 2026. 3. 31.
반응형
openclaw 채널 보안설정

내가 공들여 만든 AI 비서의 봇 아이디나 왓츠앱 번호가 외부에 알려진다면 어떻게 될까요? 모르는 사람이 말을 걸어 내 비싼 LLM API 토큰 요금을 순식간에 소모하거나, 나의 개인 대화 내용이 다른 사람의 맥락에 뒤섞이는 끔찍한 상황이 현실이 될 수 있습니다.

이번 12편에서는 openclaw 채널 보안의 핵심인 dmPolicy 4가지 모드와 세션 격리 설정을 처음부터 끝까지 다룹니다. 이 글을 따라 하시면 내가 허락한 사람만 AI와 대화할 수 있는 철통 보안 환경을 완성할 수 있습니다.

지난 편(이전: 채널 동시 운영 — 하나의 게이트웨이로 여러 채널 관리하기)에서는 텔레그램·디스코드·왓츠앱 등 여러 채널을 단 하나의 게이트웨이로 묶어 운영하는 멀티채널 구축 방법을 알아보았습니다. 연결 통로가 많아진 만큼 이번 편에서 다루는 보안 설정은 더욱 중요합니다.

dmPolicy 4가지 모드 — 내 봇 접근 권한 직접 설계하기

메신저에서 봇에게 1:1로 말을 거는 상황, 즉 DM(개인 메시지)을 통제하는 것이 openclaw 채널 보안의 첫 번째 관문입니다. OpenClaw는 이를 위해 설정 파일의 dmPolicy 항목에서 선택할 수 있는 4가지 모드를 제공합니다. 각 모드의 특성을 정확히 이해하고 상황에 맞는 정책을 선택하는 것이 보안 설정의 핵심입니다.

openclaw 채널 보안설정

모드별 특징과 추천 사용 시나리오

  • pairing (페어링 — 기본/추천): 처음 말을 건 모르는 사용자에게 6자리 인증 코드를 요구합니다. 코드는 1시간 동안 유효하며, 서버 관리자가 터미널에서 직접 openclaw pairing approve [채널명] [인증코드]를 입력해야만 그 사용자와의 대화가 시작됩니다. 불특정 다수가 접근을 시도할 수 있는 환경에서 가장 균형 잡힌 방어선이 됩니다.
  • allowlist (허용 목록 — 강력 추천): 설정 파일의 allowFrom 배열에 미리 등록해 둔 사용자 ID 또는 전화번호만 접근할 수 있습니다. 가족, 팀원 등 사용자가 명확히 특정되는 상황에서 가장 강력하고 간단한 보안 방식입니다.
  • disabled (비활성화): 개인 메시지(DM) 기능을 완전히 차단합니다. 봇은 단체 채팅방(그룹/서버)에서만 작동하며, 1:1 DM 요청은 일절 무시됩니다. 업무용 팀 봇처럼 그룹 맥락에서만 운영할 때 적합합니다.
  • open (개방): 누구나 자유롭게 봇에게 DM을 보낼 수 있습니다. 공개 서비스나 테스트 목적 이외에 실 서비스 환경에서는 절대 사용하지 마세요. API 요금 폭탄을 맞을 위험이 매우 높습니다.
ℹ️ 참고 각 채널(텔레그램, 디스코드, 왓츠앱 등)마다 dmPolicy를 개별적으로 다르게 설정할 수 있습니다. 텔레그램은 allowlist, 디스코드는 pairing처럼 채널 특성에 맞게 혼용하는 것도 가능합니다.
📎 OpenClaw 공식 문서 원문 보기 →
💡 핵심 요약 dmPolicy는 4가지 모드(pairing · allowlist · disabled · open) 중 하나를 선택해 봇에 대한 DM 접근 권한을 결정합니다. 사용자가 명확한 경우 allowlist, 불특정 다수 환경에선 pairing이 최선의 선택입니다.

다중 사용자 환경의 필수 보안 — 세션 격리(dmScope) 완전 이해

allowlist로 여러 명의 사용자(예: 나, 배우자, 직장 동료)에게 봇 접근을 허용했다면, 반드시 주의해야 할 설정이 하나 더 있습니다. 바로 세션 격리(session.dmScope)입니다. 이 설정을 놓치면 예상치 못한 개인정보 유출이 발생할 수 있습니다.

openclaw 채널 보안설정

왜 세션 격리가 반드시 필요한가?

기본값인 "dmScope": "main"으로 두면, 허용된 모든 사용자가 하나의 공유 대화 컨텍스트(세션)를 사용하게 됩니다. 내가 봇에게 "오늘 오후 3시에 중요한 계약 미팅이 있어"라고 말한 뒤, 직장 동료가 "오늘 내 일정이 뭐야?"라고 물으면 봇이 나의 개인 일정을 그대로 답해버리는 심각한 데이터 혼재가 발생합니다.

이를 완벽히 방지하려면 반드시 아래 설정을 적용해 각 사용자의 대화 기록을 완전히 독립시켜야 합니다.

  • "dmScope": "main" (기본값 — 위험): 모든 DM 사용자가 하나의 세션을 공유합니다. 개인 정보가 다른 사용자에게 노출될 수 있습니다.
  • "dmScope": "per-channel-peer" (권장): 채널 + 사용자 ID 조합별로 세션이 완전히 분리됩니다. 각자의 대화 기록이 독립적으로 유지되어 개인정보 혼재를 원천 차단합니다.

실전 적용 — allowlist + 세션 격리 설정 파일 완성하기

지금까지 배운 openclaw 채널 보안 개념을 바탕으로, 아래 순서대로 따라 하시면 5분 내에 철통 보안 환경을 완성할 수 있습니다. 텔레그램 채널을 기준으로 설명드립니다.

  1. 설정 파일 열기터미널을 실행하고 OpenClaw 설정 파일을 텍스트 편집기로 엽니다. 파일 경로는 ~/.openclaw/openclaw.json입니다.
  2. # nano 또는 VS Code 등 원하는 편집기로 설정 파일 열기 nano ~/.openclaw/openclaw.json
  3. session.dmScope 설정 추가최상위 session 블록에 dmScope를 추가합니다. 이 설정 하나로 모든 채널의 DM 세션이 사용자별로 완전히 격리됩니다.
  4. { "session": { "dmScope": "per-channel-peer" } }
  5. channels 섹션에 dmPolicy와 allowFrom 추가채널별 설정 블록에서 dmPolicy"allowlist"로 지정하고, allowFrom 배열에 허용할 텔레그램 사용자 ID를 등록합니다. 아래 완성 예시를 참고하세요.
  6. { "session": { "dmScope": "per-channel-peer" }, "channels": { "telegram": { "enabled": true, "botToken": "YOUR_TELEGRAM_BOT_TOKEN", "dmPolicy": "allowlist", "allowFrom": [ "telegram:@my_username", "telegram:@colleague_id" ], "groupPolicy": "mention", "mentionGating": true } } }
  7. 게이트웨이 재시작으로 설정 반영파일을 저장한 뒤 아래 명령어를 실행하면 새로운 보안 정책이 즉시 적용됩니다. 이후 allowFrom에 등록되지 않은 사용자가 DM을 보내도 봇은 응답하지 않습니다.
  8. # 새로운 보안 및 채널 정책을 적용하기 위해 게이트웨이 재시작 openclaw gateway restart
openclaw 채널 보안설정
✅ Pro Tip allowFrom에 등록하는 사용자 ID 형식은 채널마다 다릅니다. 텔레그램은 telegram:@username, 왓츠앱은 국제 전화번호 형식(whatsapp:+821012345678)을 사용합니다. 정확한 포맷은 반드시 OpenClaw 공식 문서에서 채널별 항목을 확인하세요.

그룹 채팅 추가 보안 — groupPolicy와 mentionGating 설정

DM 보안을 완성했다면, 다음은 그룹 채팅방(단체 대화방, 서버 채널)에서의 보안도 챙겨야 합니다. 단톡방에 봇을 초대하면 방 참여자 누구든 봇을 호출할 수 있기 때문에, groupPolicymentionGating 설정으로 이를 제한하는 것이 필수입니다.

groupPolicy와 mentionGating 핵심 옵션

두 옵션을 함께 사용하면 단톡방에서의 스팸·무단 호출을 효과적으로 차단할 수 있습니다.

  • "groupPolicy": "mention": 봇이 단톡방의 모든 메시지에 반응하지 않고, 누군가 봇을 직접 @태그할 때만 응답합니다. 조용한 그룹 운영을 원할 때 가장 권장되는 설정입니다.
  • "groupPolicy": "disabled": 그룹 채팅 기능을 완전히 비활성화합니다. 봇은 DM으로만 작동합니다.
  • "mentionGating": true: groupPolicy: "mention"과 함께 사용하여 스팸 방지를 강화합니다. 단순 언급이 아닌 명확한 의도의 멘션만 처리하도록 필터링합니다.
⚠️ 주의 그룹 내 특정 사용자만 봇을 쓰게 제한하려면, 채널 설정의 groups 또는 guilds 하위 항목에 "users": ["허용할_유저_ID"] 배열을 추가해야 합니다. 이 설정 없이 groupPolicy: "mention"만 적용하면 그룹 참여자 전원이 봇을 @태그해서 사용할 수 있습니다.
"telegram": {
  "enabled": true,
  "botToken": "YOUR_TELEGRAM_BOT_TOKEN",
  "dmPolicy": "allowlist",
  "allowFrom": ["telegram:@my_username"],
  "groupPolicy": "mention",
  "mentionGating": true
}
💡 여기까지 핵심 정리 DM은 dmPolicy: "allowlist" + dmScope: "per-channel-peer"로 사용자별 완전 격리를, 그룹 채팅은 groupPolicy: "mention" + mentionGating: true로 무단 호출을 차단합니다. 다음 섹션의 실전 팁으로 보안을 한 단계 더 강화해 보세요.
openclaw 채널 보안설정

실전 팁과 주의사항

  • open 모드는 절대 실 서비스에 금지: "dmPolicy": "open"은 누구나 봇을 사용할 수 있어 LLM API 요금이 무제한으로 청구될 수 있습니다. 프로덕션 환경에서는 반드시 allowlist 또는 pairing을 사용하세요.
  • 여러 명이 공유한다면 dmScope 설정은 선택이 아닌 필수: dmScope"per-channel-peer"로 설정하지 않으면 사용자 간 대화 컨텍스트가 뒤섞여 개인정보가 유출될 수 있습니다. 혼자만 사용하더라도 미리 설정해 두는 것을 권장합니다.
  • allowFrom 형식은 채널마다 다르다: 텔레그램은 telegram:@username, 왓츠앱은 whatsapp:+국제전화번호 형식입니다. 잘못된 형식으로 등록하면 허용 목록이 무시되므로 반드시 공식 문서에서 각 채널의 포맷을 확인하세요.
  • 토큰·API 키 유출 시 즉시 폐기: 텔레그램 봇 토큰이 유출됐다면 BotFather의 /revoke로 즉시 재발급하고, LLM API 키(OpenAI, Anthropic 등)도 해당 플랫폼에서 삭제 후 재발급해야 합니다. OpenClaw 게이트웨이 토큰이 유출됐다면 gateway.auth.token 값을 즉시 변경하고 openclaw gateway restart를 실행하세요.

자주 묻는 질문 (FAQ)

pairing 모드로 설정했는데 인증 코드는 어디서 어떻게 승인하나요?
봇에게 처음 DM을 보낸 사용자에게 봇이 6자리 인증 코드를 알려줍니다. 서버 터미널에 접속해 openclaw pairing approve [채널명] [인증코드] (예: openclaw pairing approve telegram ABC123)를 입력하면 즉시 해당 사용자의 접근이 승인됩니다.
단톡방에서 봇을 쓸 수 있는 사람을 특정 멤버만으로 제한할 수 있나요?
네, 가능합니다. 채널 설정의 groups 또는 guilds 항목 하위에 "users": ["허용할_유저_ID"] 배열을 추가하면, 그룹 내에서도 해당 사용자만 봇을 호출할 수 있도록 제한할 수 있습니다.
Python을 잘 모르는 초보자도 allowlist 보안 설정을 할 수 있나요?
물론입니다. OpenClaw의 설정 파일은 복잡한 코딩이 필요 없는 직관적인 JSON5 포맷입니다. "dmPolicy": "allowlist" 한 줄과 허용할 사용자 ID만 나열하면 끝이라, 본문의 예시 코드를 그대로 복사·붙여넣기만 해도 1분 내에 강력한 보안을 완성할 수 있습니다.
텔레그램 봇 토큰이나 LLM API 키가 외부에 유출된 것 같습니다. 어떻게 해야 하나요?
즉각 조치가 필요합니다. 텔레그램 BotFather에서 /revoke로 봇 토큰을 폐기·재발급하고, OpenAI·Anthropic 등 LLM 플랫폼에서 해당 API 키를 즉시 삭제 후 새로 발급받으세요. OpenClaw 게이트웨이 자체 접속 토큰이 유출된 경우에는 설정 파일의 gateway.auth.token 값을 변경하고 openclaw gateway restart를 실행하면 기존 토큰은 즉시 무효화됩니다.

🔜 다음 편 예고
다음: OpenClaw 아키텍처 완전 해설 — Gateway·Node·Client 관계 이해

보안까지 완성한 여러분의 AI 에이전트, 이제 내부 구조가 궁금해지지 않으셨나요? 다음 13편에서는 OpenClaw를 구성하는 Gateway·Node·Client 세 계층이 어떻게 맞물려 작동하는지 완전 해설합니다. 구조를 알면 더 강력한 활용이 가능해집니다.

→ 다음 편 바로가기    전체 목록 보기

이 글이 도움이 됐다면 댓글로 여러분의 경험을 알려주세요! 🙌

openclaw 채널 보안 설정에서 막히는 부분은 댓글에 남겨주세요 — 직접 답변드립니다.

📬 새 편 알림 받기 → AI 활용 가이드 구독

반응형

댓글