멀티에이전트 Safety
패턴별 Safety 설정, Cedar 인가, Guardrails
멀티에이전트를 프로덕션에서 운영한다
에이전트 간 통신·에러 복원·안전 보장 — 운영의 3축
🔒
Safety와 Guardrails
4계층 Safety · Cedar 정책 · Guardrail 적용 위치
PART 4 · Safety와 Guardrails
Safety 4계층 적용
입력부터 출력까지 실행 경로 전체에 가드 배치 — 한 계층을 통과한 위협은 다음 계층이 포착
Input Guard
사용자 입력에서 프롬프트 인젝션·탈옥 시도를 탐지합니다. Bedrock Guardrails의 content filter가 악의적 입력을 차단하고, 민감 정보(PII)를 마스킹합니다.
Reasoning Guard
에이전트의 추론 과정에서 허용되지 않은 계획을 감지합니다. Cedar 정책으로 특정 도구 조합이나 위험한 행동 시퀀스를 사전 차단합니다.
Action Guard
도구 호출 직전에 권한을 검증합니다. 에이전트별 허용 액션 목록과 대상 리소스를 Cedar forbid/permit 규칙으로 제어합니다.
Output Guard
최종 응답에서 민감 정보 노출·유해 콘텐츠·할루시네이션을 검증합니다. Grounding check로 출처 없는 주장을 필터링합니다.
PART 4 · Safety와 Guardrails
Cedar 정책으로 에이전트 권한 제어
선언적 정책 언어로 에이전트의 허용·금지 도구를 코드로 정의
핵심 포인트
- Action::"..."
- action이 곧 도구 이름 — pip install "strands-agents[cedar]"로 설치
- permit
- 허용 규칙 — action 목록에 있는 도구만 호출 가능
- when { context.session.role }
- 조건부 허용 — context_enricher가 invocation_state의 role을 주입 (호출 측: invocation_state={"role": "coordinator"})
- forbid
- 명시적 금지 — principal은 principal_resolver가 해석 (기본 User::"anonymous", 해석 실패 시 fail-closed)
코드
cedar
// 검색·요약 도구는 모두에게 허용
permit (
principal,
action in [Action::"web_search", Action::"summarize"],
resource
);
// 쓰기 도구는 coordinator 역할에만 허용
permit (
principal,
action in [Action::"create_ticket", Action::"send_email"],
resource
) when { context.session.role == "coordinator" };
// 삭제 도구는 명시적 금지
forbid (principal, action == Action::"delete_resource", resource);
PART 4 · Safety와 Guardrails
Guardrail 적용 위치
에이전트 실행 경로의 어디에 어떤 Guardrail을 배치하는지 매핑
| 적용 위치 | Guardrail 종류 | 구현 방법 | 차단 시 동작 |
| 사용자 입력 수신 | Content Filter + PII 마스킹 | BedrockModel(guardrail_id=, guardrail_version=) 모델 부착 — 입력 redact 기본(guardrail_redact_input=True) | 요청 거부 + 안내 메시지 |
| 에이전트 간 핸드오프 | Schema 검증 + 권한 확인 | Cedar Policy + InvokeGuardrailChecks(루프 중간 임의 지점 검사) | 핸드오프 거부 + Supervisor 알림 |
| 도구 호출 직전 | 액션 권한 + 파라미터 범위 | Strands Hook (BeforeToolCallEvent) + Cedar | 도구 호출 차단 + 대체 도구 시도 |
| 최종 출력 반환 | Grounding + 유해 콘텐츠 | Bedrock Guardrails + Custom Validator | 응답 필터링 + 재생성 요청 |
takeaway
네 위치 모두 패턴은 같습니다 — 차단하고 끝내지 않고 다음 동작으로 잇습니다: 안내·알림·대체 도구·재생성. Guardrails 정책 구성 상세는 bedrock-guardrails 덱에서 다룹니다.
멀티에이전트는 만드는 것보다 운영이 어렵습니다.
통신 · 에러 · 안전장치 — 세 축을 잡아야 프로덕션에서 살아남습니다