본문 바로가기
C.W.K.
Stream
Lesson 06 of 10 · published

권한 경계 — 모델이 할 수 있는 일과 없는 일

~14 min · security, privilege

Level 0수련생
0 XP0/100 lessons0/14 achievements
0/120 XP to next level120 XP to go0% complete

최소 권한을 도구 모음으로 구현해

에이전트의 피해 반경은 도구가 할 수 있는 일의 합이야. 작업에 꼭 필요한 최소한으로 줄여. 주문 검색, 사람에게 인계, 메모 작성만 가능한 지원 에이전트가 내부 API의 모든 기능을 부를 수 있는 에이전트보다 훨씬 안전해.

권한의 네 단계

  • 읽기 전용 — 검색, 목록, 조회만 하고 값을 바꾸지 못해.
  • 자기 상태 변경 — 초안과 메모는 고쳐도 외부 기록은 바꾸지 못해.
  • 외부 기록 변경 — 원장에 쓸 수 있으므로 확인 절차가 필요해.
  • 외부 행동 실행 — 이메일 발송, 카드 결제처럼 부작용이 있는 호출이어서 가장 엄격히 살펴야 해.

사용자별 범위는 데이터 계층에서 막아

도구가 user_id나 범위 토큰을 받아 데이터 계층에서 소유권을 강제해야 해. “이 사용자의 주문만 보여줘”라는 프롬프트 규칙을 접근 통제로 믿으면 안 돼.

Code

사용자별 범위가 정해진 도구·python
@tool
def search_orders(customer_id: str, *, _ctx) -> list[dict]:
    # _ctx is injected by the agent runtime
    if customer_id != _ctx.authenticated_user_id and not _ctx.is_admin:
        raise PermissionError("agent cannot access other users' orders")
    return db.orders.find(customer_id)

External links

Exercise

에이전트의 도구를 읽기 전용, 자기 상태 변경, 외부 기록 변경, 외부 행동 실행으로 다시 나눠봐. 작업에 필요한 범위보다 넓은 도구를 찾아.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.