AI 에이전트에게 CMS(콘텐츠 관리 시스템)를 조작시키는 것 자체는 이제 그리 드문 일이 아닙니다.
콘텐츠 작성, 편집, 관리 등 AI에 맡길 수 있는 작업은 늘어나고 있습니다.
하지만 실제로 CMS에 AI를 통합할 때 하나의 중요한 문제가 있습니다.
AI에게 어느 정도까지의 권한을 부여해야 하는가?
관리자와 동일한 권한을 가진 AI를 연결하면 편리할 수도 있습니다. 하지만 모든 AI에게 관리자 권한을 줄 필요는 없습니다. 반면, 안전성을 이유로 AI의 조작을 극단적으로 제한해 버리면 CMS에 통합하는 의미 자체가 퇴색되어 버립니다.
Birkly에서는 이 문제를 'AI 전용 특별 권한'을 만들어서 해결하려고 생각하지 않았습니다.
기본적인 생각은 간단합니다.
AI도 인간과 마찬가지로 CMS 내에서 역할(Role)과 권한을 가져야 한다.
이 글에서는 Birkly가 어떻게 AI를 통합하고, 권한 관리와 보안을 설계했는지 소개합니다.
Birkly는 AI를 연결하는 방법을 3가지로 준비했습니다.
사용 목적이나 필요한 권한에 따라 각각을 다르게 사용할 수 있습니다.
1. Personal Connector (개인 커넥터)
Personal Connector는 MCP(Model Context Protocol)를 이용한 연결 방식입니다.
이 연결에서는 AI가 연결을 설정한 사용자와 동일한 역할 및 권한을 승계합니다.
예를 들어, 관리자가 Personal Connector를 설정했다면, 해당 AI 연결은 관리자와 같은 권한을 갖게 됩니다. 편집자가 설정했다면, 편집자의 권한으로 작동합니다.
즉, AI는 사용자 본인을 대신하여 CMS를 조작합니다.
이 방식은 평소 사용하는 AI 어시스턴트에게 자신의 권한 범위 내에서 CMS 조작을 맡기고 싶을 때 적합합니다.
2. Service Agent (서비스 에이전트)
Service Agent 역시 MCP를 이용하지만, Personal Connector와는 권한에 대한 생각이 다릅니다.
こちらは AI 연결에 독립적인 역할을 할당합니다.
예를 들어, 관리자가 Service Agent를 설정할 때, 관리자 본인의 권한이 아니라 'Editor' 역할을 할당할 수 있습니다. 그 경우, 연결을 설정한 사람이 관리자라 하더라도 AI는 Editor의 권한으로만 조작할 수 있습니다.
이는 자동화나 특정 업무를 담당하는 AI 에이전트에게 적합한 구조입니다.
AI에게 일을 맡기면서도, 해당 AI가 무엇을 실행할 수 있는지 명확하게 제어할 수 있습니다.
3. Built-in Assistant (내장 어시스턴트)
세 번째는 Birkly에 내장된 AI 어시스턴트입니다.
こちらは MCP가 아닌 API를 이용하는 연결 방식입니다.
사용자는 Birkly의 관리 화면에서 자신이 사용하고 싶은 AI 서비스의 API 키를 설정할 수 있습니다.
AI 채팅은 Birkly 인터페이스에 통합되어 있으며, 화면 오른쪽 하단의 플로팅 버튼을 통해 어느 위치에서든 접근할 수 있습니다.
Built-in Assistant에도 독립적인 역할을 설정할 수 있다는 점이 Personal Connector와 큰 차이점입니다.
예를 들어, 관리자가 사용하는 Built-in Assistant에 Editor 역할을 할당하는 것도 가능합니다. 반대로 사용자 역할과 같은 권한을 설정하는 것도 가능합니다.
즉, Built-in Assistant는 로그인 중인 사용자의 권한을 자동으로 승계하는 것이 아니라, 설정된 역할과 권한에 따라 작동합니다.
권한이 허가하는 범위라면, 콘텐츠 작성이나 편집 등 인간 사용자와 똑같이 CMS 조작을 실행할 수 있습니다.
세 가지 연결 방식에는 차이가 있지만, 공통적인 설계 원칙이 있습니다.
AI라고 해서 특별한 권한을 부여해서는 안 된다.
Birkly에서는 AI도 사람과 같은 권한 관리 시스템을 따릅니다.
Personal Connector라면, 연결 출처 사용자의 권한이 적용됩니다. Service Agent와 Built-in Assistant라면, 각각에 할당된 역할에 의해 조작할 수 있는 범위가 결정됩니다.
인간 사용자처럼, AI에게 필요한 권한만을 부여할 수 있습니다.
이는 AI를 단순한 외부 서비스로 취급하는 것이 아니라, CMS 내에서 실제로 작업하는 사용자로서 취급한다는 생각입니다.
AI가 조작할 수 있다고 해서 모든 조작을 자동 실행시킬 필요는 없습니다.
Birkly에서는 AI 연결마다, 조작을 실행하기 전에 인간의 승인이 필요한지 여부를 설정할 수 있습니다.
예를 들어, 다음과 같은 운영이 가능합니다.
- 콘텐츠 초안 작성은 AI에 맡기고
- 게시나 중요한 변경에는 인간의 승인이 필요하며
- 신뢰할 수 있는 자동화 에이전트에게는 허가된 작업의 직접 실행을 허용합니다.
어느 정도까지 자동화할지는 사이트 운영 방침이나 AI 용도에 따라 관리자가 결정할 수 있습니다.
인간의 승인을 필수화하는 것도, 허가된 작업을 그대로 실행시키는 것도 가능합니다.
역할(Role)과 권한만으로는 사이트 전체의 보안 요구 사항을 충족할 수 없는 경우도 있습니다. 따라서 Birkly에는 AI 도구 실행을 제어하는, 사이트 전반에 적용되는 설정도 준비되어 있습니다.
주로 3가지 모드가 있습니다.
기본 설정입니다.
AI는 일반적인 역할(Role)과 권한에 따라 도구를 사용할 수 있습니다. 특별한 제한이 설정되어 있지 않다면, 할당된 권한 범위 내에서 작업을 수행할 수 있습니다. AI 채팅은 이용 가능하지만, MCP나 AI 채팅에는 도구가 공개되지 않고 작업도 실행되지 않습니다. AI와의 대화는 가능한 상태를 유지하면서 CMS에 대한 작업만 제한할 수 있습니다.
AI에 의한 도구 실행을 완전히 비활성화합니다.
MCP에서는 도구 목록도 비어 있게 됩니다. 필요할 때 사이트 전체에서 AI의 작업을 차단할 수 있는 메커니즘입니다.
플러그인 블랙리스트(Plugin Denylist)
또 하나 중요한 것이 플러그인 블랙리스트(Plugin Denylist)입니다. 이것은 특정 플러그인이나 리소스에 대한 접근을 AI에게 완전히 금지하는 메커니즘입니다.
예를 들어, 다음과 같은 제어가 가능합니다:
- 특정 컬렉션을 보호하거나
- Commerce나 Automation과 같이 특정 플러그인의 관리 영역에 대한 접근을 금지할 수 있습니다.
여기서 중요한 점은 블랙리스트(Denylist)가 일반적인 역할이나 권한보다 우선한다는 것입니다. 즉, AI 연결에 관리자 권한이 할당되어 있더라도, 블랙리스트로 금지된 리소스에는 접근할 수 없습니다. 이는 일반적인 권한 설정과는 별개이며 덮어쓸 수 없는 보안 경계입니다.
Birkly는 AI 통합 기능이나 AI 기능에 대해 추가 요금을 청구하지 않습니다. 사용자는 자신이 이미 이용하고 있는 AI 서비스나 API 키를 가져올 수 있습니다. 또한, 무료로 사용할 수 있는 모델이나 서비스를 선택할 수도 있습니다. 특정 AI 제공업체(AI Provider)나 자체 AI 구독에 얽매일 필요가 없습니다. 어떤 AI를 사용할지, 어떤 모델을 선택할지, 비용을 어떻게 관리할지는 사용자 스스로 결정할 수 있습니다. Birkly는 AI를 이용하기 위한 구조를 제공하지만, AI 그 자체를 독점적으로 제공하는 것을 목표로 하지 않습니다.
제가 Birkly를 설계할 때, AI는 나중에 추가할 편리한 기능이 아니었습니다. 인간 사용자처럼, AI도 CMS를 이용하는 주체가 될 것이라고 생각했습니다. 그렇기 때문에 AI 전용의 특별한 권한 시스템을 나중에 추가하는 것이 아니라, 처음부터 기존의 사용자(User), 역할(Role), 권한 메커니즘과 통합하는 것을 중요하게 여겼습니다.
AI가 할 수 있는 것을 늘리는 것만으로는 충분하지 않습니다. 무엇을 할 수 있는지, 무엇을 할 수 없는지, 누가 그 범위를 결정하는지. 그리고 필요할 때 인간이 제어할 수 있는지 여부. 저는 이것들이 AI를 CMS 내에서 안전하게 이용하기 위해 필수적인 요소라고 생각합니다.
AI를 인간과 동일한 권한 관리 메커니즘 하에 다루는 것.
그것이 Birkly의 AI 통합에 있어 기본적인 사고방식입니다.
Birkly는 PHP 기반의 API-first CMS입니다. 데이터베이스 없이도 이용할 수 있으며, 필요에 따라 데이터베이스를 사용할 수도 있습니다. 코어(Core)는 최소한으로 유지하고 필요한 기능은 플러그인(Plugin)으로 추가하는 설계입니다.
일본어 버전 웹사이트도 준비되어 있습니다.