
내가 공들여 만든 AI 비서의 봇 아이디나 왓츠앱 번호가 외부에 알려진다면 어떻게 될까요? 모르는 사람이 말을 걸어 내 비싼 LLM API 토큰 요금을 순식간에 소모하거나, 나의 개인 대화 내용이 다른 사람의 맥락에 뒤섞이는 끔찍한 상황이 현실이 될 수 있습니다.
이번 12편에서는 openclaw 채널 보안의 핵심인 dmPolicy 4가지 모드와 세션 격리 설정을 처음부터 끝까지 다룹니다. 이 글을 따라 하시면 내가 허락한 사람만 AI와 대화할 수 있는 철통 보안 환경을 완성할 수 있습니다.
지난 편(이전: 채널 동시 운영 — 하나의 게이트웨이로 여러 채널 관리하기)에서는 텔레그램·디스코드·왓츠앱 등 여러 채널을 단 하나의 게이트웨이로 묶어 운영하는 멀티채널 구축 방법을 알아보았습니다. 연결 통로가 많아진 만큼 이번 편에서 다루는 보안 설정은 더욱 중요합니다.
dmPolicy 4가지 모드 — 내 봇 접근 권한 직접 설계하기
메신저에서 봇에게 1:1로 말을 거는 상황, 즉 DM(개인 메시지)을 통제하는 것이 openclaw 채널 보안의 첫 번째 관문입니다. OpenClaw는 이를 위해 설정 파일의 dmPolicy 항목에서 선택할 수 있는 4가지 모드를 제공합니다. 각 모드의 특성을 정확히 이해하고 상황에 맞는 정책을 선택하는 것이 보안 설정의 핵심입니다.

모드별 특징과 추천 사용 시나리오
- 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)입니다. 이 설정을 놓치면 예상치 못한 개인정보 유출이 발생할 수 있습니다.

왜 세션 격리가 반드시 필요한가?
기본값인 "dmScope": "main"으로 두면, 허용된 모든 사용자가 하나의 공유 대화 컨텍스트(세션)를 사용하게 됩니다. 내가 봇에게 "오늘 오후 3시에 중요한 계약 미팅이 있어"라고 말한 뒤, 직장 동료가 "오늘 내 일정이 뭐야?"라고 물으면 봇이 나의 개인 일정을 그대로 답해버리는 심각한 데이터 혼재가 발생합니다.
이를 완벽히 방지하려면 반드시 아래 설정을 적용해 각 사용자의 대화 기록을 완전히 독립시켜야 합니다.
"dmScope": "main"(기본값 — 위험): 모든 DM 사용자가 하나의 세션을 공유합니다. 개인 정보가 다른 사용자에게 노출될 수 있습니다."dmScope": "per-channel-peer"(권장): 채널 + 사용자 ID 조합별로 세션이 완전히 분리됩니다. 각자의 대화 기록이 독립적으로 유지되어 개인정보 혼재를 원천 차단합니다.
실전 적용 — allowlist + 세션 격리 설정 파일 완성하기
지금까지 배운 openclaw 채널 보안 개념을 바탕으로, 아래 순서대로 따라 하시면 5분 내에 철통 보안 환경을 완성할 수 있습니다. 텔레그램 채널을 기준으로 설명드립니다.
- 설정 파일 열기터미널을 실행하고 OpenClaw 설정 파일을 텍스트 편집기로 엽니다. 파일 경로는
~/.openclaw/openclaw.json입니다. # nano 또는 VS Code 등 원하는 편집기로 설정 파일 열기 nano ~/.openclaw/openclaw.json- session.dmScope 설정 추가최상위
session블록에dmScope를 추가합니다. 이 설정 하나로 모든 채널의 DM 세션이 사용자별로 완전히 격리됩니다. { "session": { "dmScope": "per-channel-peer" } }- channels 섹션에 dmPolicy와 allowFrom 추가채널별 설정 블록에서
dmPolicy를"allowlist"로 지정하고,allowFrom배열에 허용할 텔레그램 사용자 ID를 등록합니다. 아래 완성 예시를 참고하세요. { "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 } } }- 게이트웨이 재시작으로 설정 반영파일을 저장한 뒤 아래 명령어를 실행하면 새로운 보안 정책이 즉시 적용됩니다. 이후
allowFrom에 등록되지 않은 사용자가 DM을 보내도 봇은 응답하지 않습니다. # 새로운 보안 및 채널 정책을 적용하기 위해 게이트웨이 재시작 openclaw gateway restart

allowFrom에 등록하는 사용자 ID 형식은 채널마다 다릅니다. 텔레그램은 telegram:@username, 왓츠앱은 국제 전화번호 형식(whatsapp:+821012345678)을 사용합니다. 정확한 포맷은 반드시 OpenClaw 공식 문서에서 채널별 항목을 확인하세요.그룹 채팅 추가 보안 — groupPolicy와 mentionGating 설정
DM 보안을 완성했다면, 다음은 그룹 채팅방(단체 대화방, 서버 채널)에서의 보안도 챙겨야 합니다. 단톡방에 봇을 초대하면 방 참여자 누구든 봇을 호출할 수 있기 때문에, groupPolicy와 mentionGating 설정으로 이를 제한하는 것이 필수입니다.
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
}
dmPolicy: "allowlist" + dmScope: "per-channel-peer"로 사용자별 완전 격리를, 그룹 채팅은 groupPolicy: "mention" + mentionGating: true로 무단 호출을 차단합니다. 다음 섹션의 실전 팁으로 보안을 한 단계 더 강화해 보세요.
실전 팁과 주의사항
- 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 채널 보안 설정에서 막히는 부분은 댓글에 남겨주세요 — 직접 답변드립니다.
📬 새 편 알림 받기 → AI 활용 가이드 구독
'OpenClaw' 카테고리의 다른 글
| openclaw 완전 가이드 13편. openclaw 아키텍처 완전 해설 — Gateway·Node·Client 관계 이해 (0) | 2026.04.01 |
|---|---|
| [openclaw 완전 가이드] 11편 openclaw 멀티채널 — 하나의 게이트웨이로 여러 메신저 동시 운영하기 (0) | 2026.03.31 |
| [openclaw 완전 가이드] 10편 Mattermost·Teams 채널 연결 — 기업 메신저 연동 가이드 (1) | 2026.03.31 |
| [openclaw 완전 가이드] 9편 Signal·Slack 연결 — 보안·업무 채널을 위한 AI 에이전트 설정법 (0) | 2026.03.30 |
| [openclaw 완전 가이드] 8편 WhatsApp + OpenClaw QR 페어링 (0) | 2026.03.30 |
댓글