Skip to content

[FE/BE/Security][Chatbot] 내부 Chatbot 이용 권한·deployment access policy #650

Description

@HyungminYoon1

배경

현재 internal_chatbot 실행은 active organization membership과 workflow execute 권한을 확인하지만, Accepted ADR-0030과 Chatbot Deployment Target 계약은 내부 Chatbot 자체의 별도 이용 권한을 요구한다. Workflow를 일반 실행할 수 있다는 사실만으로 private Knowledge와 durable Conversation Memory를 사용하는 Chatbot에 접근할 수 있어서는 안 된다.

목표

내부 Chatbot deployment/version에 고정된 별도 이용 권한을 정의하고 관리·조회·preflight·Gateway 실행·Worker 재검증에 같은 정책을 적용한다. 권한이 없거나 회수된 사용자는 resource existence를 식별하거나 queue/provider/Memory side effect를 시작할 수 없다.

구현 범위

정책과 저장

  • exact organization과 internal Chatbot deployment/version에 결박된 canonical access policy를 정의한다.
  • 사용자 직접 grant와 팀 grant, 관리 권한, active/revoked lifecycle 및 정책 revision을 정의한다.
  • workflow execute, active membership, Knowledge permission/source ACL은 별도 필수 조건으로 유지하고 Chatbot 이용 권한으로 대체하지 않는다.
  • 새 deployment/version이 기존 grant를 자동 상속하는지 여부를 공식 ADR/feature 문서에서 명시한다. 명시적 정책이 없으면 fail-closed한다.

관리 API와 UI

  • active organization manager만 grant 조회·추가·회수할 수 있는 command/query API를 제공한다.
  • 대상 사용자/팀의 현재 organization membership과 resource scope를 mutation 전에 검증한다.
  • 최소 관리 UI 또는 기존 access-management UI 진입점을 제공하고 UI 우회 API 호출에도 동일한 서버 정책을 적용한다.
  • 다른 organization의 사용자·팀·deployment와 숨겨진 resource 정보를 응답에 노출하지 않는다.

실행 경계

  • run-info, run, Conversation Session create/resolve/turn/lifecycle에서 current user의 별도 Chatbot 이용 권한을 workflow dispatch, Memory write와 provider I/O 전에 확인한다.
  • Gateway preflight 결과만 신뢰하지 않고 Worker admission에서도 deployment/version, subject, organization, policy revision과 revoke 상태를 재검증한다.
  • revoke/delete는 새 실행과 다음 turn을 즉시 차단하며 이미 materialize된 raw context를 재사용하지 않는다.
  • Public Chatbot과 Public client-held history 경로는 이 권한을 수용하거나 optional login으로 승격하지 않는다.

Audit·redaction·검증

  • grant 생성·회수와 권한 거부를 canonical audit로 기록하되 raw transcript, token, prompt, private source와 hidden resource identity를 남기지 않는다.
  • user/team/direct grant, cross-organization, stale revision, revoke race, API 우회, Worker redelivery와 Public 경계 회귀 테스트를 추가한다.
  • docs/engineering/protected-resource-feature-completion.md의 저장·관리·preflight·runtime·lifecycle·audit/redaction 경계를 모두 완료 또는 근거 있는 비적용으로 기록한다.

완료 기준

  • workflow execute만 가진 사용자는 내부 Chatbot run-info/run/Memory session을 사용할 수 없다.
  • 별도 이용 권한, active membership, workflow execute, current Knowledge permission/source ACL을 모두 통과한 사용자만 실행할 수 있다.
  • 권한 회수 뒤 다음 요청과 Worker admission이 외부 I/O 전에 fail-closed한다.
  • 관리 API/UI, Gateway, Worker가 동일한 policy와 revision을 사용하고 resource-hiding·audit 계약을 지킨다.
  • Public Chatbot의 anonymous public-only 동작은 변경되지 않는다.

선행·관련

비범위

Metadata

Metadata

Assignees

Type

No type

Fields

Priority

None yet

Projects

Status
Backlog

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions