Home / Strands 멀티에이전트 운영 / 멀티에이전트 Safety
Note

멀티에이전트 Safety

패턴별 Safety 설정, Cedar 인가, Guardrails

⏱ 35분 117 / 189

멀티에이전트 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 덱에서 다룹니다.

멀티에이전트는 만드는 것보다 운영이 어렵습니다.

통신 · 에러 · 안전장치 — 세 축을 잡아야 프로덕션에서 살아남습니다