AI 에이전트, 똑똑하게 쓰려면? 해고당하지 않는 안전 사용법 공개!

by DD
2개월 전
조회수 18

AI 에이전트(AI Agent)가 이메일 및 슬랙(Slack)과 연동되어 업무 자동화를 돕지만, 무분별한 사용 시 해고 위험 존재

시스템 프롬프트(System Prompt), Allowlisting, Steering, Cedar Policies 등 4가지 방어 기법을 통해 에이전트의 안전한 사용 유도

Deterministic Allowlisting은 허용된 툴만 사용하도록 제한하여 예측 가능한 보안(Deterministic Security)을 확보

Steering은 LLM(Large Language Model)을 활용하여 상황에 맞는 유연한 제어를 제공하며, 상황 인지 기반의 의사 결정(Context-aware Decision Making) 가능

클라우드 환경에서는 Cedar Policies를 통해 중앙 집중식 권한 관리 및 세분화된 접근 제어(Fine-grained Access Control) 구현

AI 에이전트(AI Agent)의 위험성: 무분별한 권한 사용

본문은 AI 에이전트(AI Agent)가 이메일 및 슬랙(Slack)과 연동되어 업무 효율성을 높이는 동시에, 무책임한 툴 사용(Unsupervised Tool Use)으로 인한 위험성을 지적한다.

MCP 서버(MCP Server)는 에이전트에게 읽기 및 쓰기 권한을 모두 제공하여, 의도치 않은 메시지 전송(Unintended Message Sending) 가능성 존재

저자는 시스템 프롬프트(System Prompt)를 통해 에이전트의 행동을 제어하려 했지만, 프롬프트 인젝션(Prompt Injection) 및 모델의 할루시네이션(Hallucination)으로 인해 한계 직면

따라서, 단순한 지시만으로는 안전을 보장할 수 없으며, 보다 강력한 보안 메커니즘(Security Mechanism) 필요

Deterministic Allowlisting: 허용된 툴만 사용

저자는 Deterministic Allowlisting 방식을 통해 에이전트가 사용할 수 있는 툴을 명시적으로 제한하여 안전성을 확보한다.

MCP 서버(MCP Server)의 동적 툴 목록(Dynamic Tool List) 대신, 사전 정의된 툴 목록(Predefined Tool List)을 사용함으로써 예측 가능한 보안(Deterministic Security) 구현

Strands Agents SDK(Strands Agents SDK)의 BeforeToolCallEvent 훅(Hook)을 활용하여, 허용되지 않은 툴 호출 시 실행 차단(Execution Blocking) 및 에러 메시지 제공

코드 예시: `tools_that_will_not_get_me_fired` 리스트에 정의된 툴만 사용 가능하며, 허가되지 않은 툴 호출 시 'BLOCKED' 메시지 출력

이 방식은 유연성은 떨어지지만, 가장 확실한 보안(Most Reliable Security)을 제공한다.

Steering: LLM 기반의 유연한 제어

Steering은 LLM(Large Language Model)을 활용하여 툴 사용에 대한 상황 인지 기반의 의사 결정(Context-aware Decision Making)을 가능하게 한다.

LLMSteeringHandler를 통해 툴 호출 전 'Will this get me fired?' 질문에 대한 답변을 얻어, Proceed, Guide, Interrupt 액션 수행

Proceed: 툴 실행 허용, Guide: 툴 실행 거부 및 피드백 제공, Interrupt: 인간의 개입 요청

WillThisGetMeFiredHandler를 통해 외부 이메일 주소로의 전송을 차단하는 등, 세분화된 제어(Fine-grained Control) 구현 가능

Steering은 Allowlisting보다 유연하며, 상황에 맞는 판단(Contextual Judgement)을 통해 안전성과 효율성을 동시에 추구한다.

클라우드 환경에서의 정책 기반 접근 제어

클라우드 환경에서는 AgentCore GatewayCedar Policies를 활용하여 에이전트의 접근 권한을 중앙 집중식으로 관리한다.

Cedar는 정책 기반의 권한 관리 언어로, 세분화된 접근 제어(Fine-grained Access Control)를 구현하여 특정 툴의 특정 파라미터에 대한 접근을 제어

Default Deny 원칙을 적용하여, 명시적으로 허용된 경우에만 툴 사용 가능

Forbid 정책을 통해 특정 액션을 전역적으로 차단(Globally Blocking)하여, 안전성을 극대화

이러한 정책 기반 접근 제어는 운영팀(Operation Team)이 에이전트 코드 변경 없이 보안 정책을 업데이트할 수 있도록 지원한다.

AI 에이전트(AI Agent) 보안의 핵심 원칙

저자는 AI 에이전트(AI Agent)의 안전한 사용을 위해 점진적인 신뢰 구축(Graduated Trust Model)을 강조하며, 세 가지 레이어를 제시한다.

시스템 프롬프트(System Prompt): 에이전트의 행동 지침 설정

Deterministic Hooks: 허용되지 않은 툴 사용을 하드 코딩으로 차단

Steering: LLM(Large Language Model)을 활용하여 상황에 맞는 유연한 제어

클라우드 환경에서는 Cedar Policies를 통해 중앙 집중식 권한 관리

결론적으로, 모델 자체에 의존하는 것이 아니라, 코드(Code)와 정책(Policy)을 통해 에이전트의 행동을 제어하는 것이 핵심이다.

How to Stop My Agent from Getting Me Fired