Gateway

운영자 범위

운영자 범위는 Gateway 클라이언트가 인증한 후 수행할 수 있는 작업을 제한합니다. 이는 하나의 신뢰할 수 있는 Gateway 운영자 도메인 내에서 작동하는 제어 영역 보호 장치이며, 적대적인 다중 테넌트 격리를 제공하지는 않습니다. 사람, 팀 또는 머신을 강력하게 분리하려면 서로 다른 OS 사용자 또는 호스트에서 별도의 Gateway를 실행하세요.

관련 문서: 보안, Gateway 프로토콜, Gateway 페어링, 기기 CLI.

역할

모든 Gateway WebSocket 클라이언트는 다음 역할 중 하나로 연결됩니다.

  • operator: CLI, 제어 UI, 자동화, 신뢰할 수 있는 도우미 프로세스 등의 제어 영역 클라이언트입니다.
  • node: node.invoke를 통해 명령을 노출하는 기능 호스트(macOS, iOS, Android, 헤드리스)입니다.

운영자 RPC 메서드에는 operator 역할이 필요하며, Node에서 시작된 메서드에는 node 역할이 필요합니다.

범위 수준

범위 의미
operator.read 읽기 전용 상태, 목록, 카탈로그, 로그, 세션 조회 및 기타 변경을 수행하지 않는 호출입니다.
operator.write 메시지 전송, 도구 호출, 대화/음성 설정 업데이트, Node 명령 중계 등 상태를 변경하는 운영자 작업입니다. operator.read도 충족합니다.
operator.admin 관리 액세스입니다. 모든 operator.* 범위를 충족합니다. 구성 변경, 업데이트, 네이티브 훅, 예약된 네임스페이스 및 고위험 승인에 필요합니다.
operator.pairing 기기 및 Node 페어링 관리: 목록 조회, 승인, 거부, 제거, 교체, 취소입니다.
operator.approvals 실행 및 Plugin 승인 API입니다.
operator.talk.secrets 비밀 정보가 포함된 대화 구성을 조회합니다.

향후 추가되는 알 수 없는 operator.* 범위는 호출자가 이미 operator.admin을 보유한 경우가 아니라면 정확히 일치해야 합니다.

메서드 범위는 첫 번째 관문일 뿐입니다

각 Gateway RPC에는 요청이 핸들러에 도달할 수 있는지를 결정하는 최소 권한 메서드 범위가 있습니다. 일부 핸들러는 승인되거나 변경되는 구체적인 대상에 따라 이후에 더 엄격한 검사를 적용합니다.

  • device.pair.approve에는 operator.pairing으로 접근할 수 있지만, 운영자 기기를 승인할 때는 호출자가 이미 보유한 범위만 발급하거나 유지할 수 있습니다.
  • node.pair.approve에는 operator.pairing으로 접근할 수 있으며, 이후 대기 중인 Node가 선언한 명령 목록에서 추가 승인 범위를 도출합니다.
  • chat.send는 쓰기 범위 메서드이지만, /config set/config unset 채팅 명령에는 호출자의 채팅 전송 범위와 관계없이 추가로 operator.admin이 필요합니다.

따라서 모든 페어링 승인을 관리자 전용으로 만들지 않고도 낮은 범위의 운영자가 위험도가 낮은 페어링 작업을 수행할 수 있습니다.

기기 페어링 승인

기기 페어링 레코드는 승인된 역할과 범위의 영구적인 원본입니다. 이미 페어링된 기기의 액세스 권한이 자동으로 확대되지는 않습니다. 더 광범위한 역할이나 범위를 요청하며 다시 연결하면 새로운 대기 중 업그레이드 요청이 생성됩니다.

기기 요청을 승인할 때는 다음 규칙이 적용됩니다.

  • 운영자 역할이 없는 요청에는 운영자 범위 승인이 필요하지 않습니다.
  • 운영자가 아닌 기기 역할(예: node) 요청에는 operator.admin이 필요합니다. 이는 device.pair.approve 자체에는 operator.pairing만 필요하더라도 마찬가지입니다.
  • operator.read, operator.write, operator.approvals, operator.pairing 또는 operator.talk.secrets 요청을 승인하려면 호출자가 해당 범위나 operator.admin을 이미 보유해야 합니다.
  • operator.admin 요청에는 operator.admin이 필요합니다.
  • 명시적인 범위가 없는 복구 요청은 기존 운영자 토큰의 범위를 상속할 수 있습니다. 해당 토큰에 관리자 범위가 있다면 승인에는 여전히 operator.admin이 필요합니다.

관리자가 아닌 공유 비밀 정보 및 신뢰할 수 있는 프록시 세션은 자체적으로 선언한 운영자 범위 내의 운영자 기기 요청만 승인할 수 있습니다. 해당 세션에서 그 밖의 경우 operator.pairing을 사용할 수 있더라도 운영자가 아닌 역할은 관리자만 승인할 수 있습니다.

페어링된 기기 토큰 세션의 경우 호출자에게 operator.admin이 없으면 관리 범위가 자기 자신으로 제한됩니다. 관리자가 아닌 호출자는 자신의 페어링 항목만 볼 수 있으며, 자신의 기기 항목만 승인, 거부, 교체, 취소 또는 제거할 수 있습니다.

Node 페어링 승인

레거시 node.pair.* 메서드는 Gateway가 소유하는 별도의 Node 페어링 저장소를 사용합니다. WS Node는 대신 기기 페어링(role: node)을 사용하지만 동일한 승인 용어가 적용됩니다. 두 저장소의 관계는 Gateway 페어링을 참조하세요.

node.pair.approve는 대기 중인 요청의 명령 목록에서 추가로 필요한 범위를 도출합니다.

선언된 명령 필요한 범위
없음 operator.pairing
실행 이외의 Node 명령 operator.pairing + operator.write
system.run, system.run.prepare 또는 system.which operator.pairing + operator.admin

Node 선언을 승인해도 별도의 런타임 허용 목록 관문이 있는 명령은 활성화되지 않습니다. 예를 들어 computer.act를 선언한 Node를 승인하려면 페어링 범위와 쓰기 범위가 필요하지만, 이는 해당 기능 표면만 기록합니다. 관리자 또는 소유자가 별도로 computer.act를 활성화해야 합니다. 활성화된 동안에는 쓰기 범위가 적용되는 node.invoke 메서드를 통해 이를 호출할 때 각 작업마다 관리자 범위가 필요하지 않습니다.

Node 페어링은 ID와 신뢰를 설정하지만, Node 자체의 system.run 실행 승인 정책을 대체하지는 않습니다.

공유 비밀 정보 인증

공유 Gateway 토큰/비밀번호 인증은 해당 Gateway에 대해 신뢰할 수 있는 운영자 액세스로 처리됩니다. OpenAI 호환 HTTP 기능 표면, /tools/invoke 및 HTTP 세션 기록 엔드포인트는 호출자가 더 좁은 선언 범위를 전송하더라도 공유 비밀 정보 보유자 인증에 대해 전체 기본 운영자 범위 집합을 복원합니다.

신뢰할 수 있는 프록시 인증이나 비공개 인그레스 none처럼 ID를 포함하는 모드에서는 명시적으로 선언된 범위를 계속 준수할 수 있습니다. 실제 신뢰 경계를 분리하려면 별도의 Gateway를 사용하세요.

Was this useful?
On this page

On this page