섹션별 상세
콘텐츠 정책은 증오 표현, 모욕, 성적 내용, 폭력 등 6가지 카테고리에 대해 텍스트와 이미지를 모두 필터링할 수 있는 멀티모달 기능을 지원한다. 프롬프트 공격 방지 정책을 통해 탈옥(Jailbreak)이나 프롬프트 주입(Injection) 시도를 식별하여 애플리케이션 보안을 강화한다. 사용자는 각 카테고리별로 필터링 강도를 다르게 설정하여 서비스의 특성에 맞는 안전 수준을 정의할 수 있다.
가드레일 정책에는 클래식 티어와 표준 티어가 존재하며, 대부분의 경우 더 높은 정확도와 다국어 지원, 높은 쿼터를 제공하는 표준 티어 사용이 권장된다. 표준 티어는 로드에 따라 AWS 리전 간 트래픽을 분산하여 가용성을 높이며, 더 견고한 보호 기능을 제공한다.
탐지 모드(Detect mode)를 사용하면 실제 트래픽에서 가드레일이 어떻게 작동하는지 차단 없이 테스트할 수 있다. 추적 응답(Trace response)을 통해 식별된 내용을 확인하고 설정을 조정한 뒤, 확신이 생겼을 때 차단(Block) 또는 마스킹(Mask) 모드로 전환한다. 이는 운영 환경에 영향을 주지 않고 안전 장치를 미세 조정할 수 있는 핵심 도구이다.
필터 강도는 NONE부터 HIGH까지 4단계로 설정 가능하며, 이는 가드레일이 유해 콘텐츠라고 판단하는 '확신도(Confidence)'를 의미한다. 초기에는 HIGH로 설정하여 최대 보호를 유지하고, 실제 트래픽 샘플을 통해 오탐률(False positive)을 평가하며 점진적으로 강도를 낮추는 과정이 필요하다. LOW 설정은 가드레일이 유해하다고 매우 확신할 때만 차단하며, HIGH 설정은 낮은 확신도에서도 차단을 수행한다.
거부 주제(Denied topics) 설정 시에는 명령형이 아닌 정의형 문장을 사용하고, 부정문보다는 긍정문으로 명확하게 기술해야 한다. 특정 단어보다는 문맥적 테마에 집중하며, 차단하고자 하는 예시 문구를 포함하는 것이 효과적이다. 예를 들어 '암호화폐 관련 내용을 차단하라'는 지시 대신 '암호화폐 투자 및 거래와 관련된 모든 내용'으로 정의하는 것이 정확도를 높인다.
text
\b(0[1-9]|1[0-2])[\/\-](0[1-9]|[12]\d|3[01])[\/\-](19|20)\d{2}\bMM/DD/YYYY 형식의 날짜 데이터를 차단하기 위한 커스텀 정규식 필터 예시
구현 방식은 ApplyGuardrail API를 직접 호출하는 독립형 방식과 Bedrock 추론 API에 통합된 방식 중 선택할 수 있다. 독립형 방식은 지연 시간에 민감한 앱에서 추론과 가드레일 검사를 병렬로 처리할 수 있는 유연성을 제공하며, 통합 방식은 입력과 출력 모두에 대해 자동으로 이중 체크포인트를 수행하여 구현을 간소화한다.
멀티턴 대화에서 전체 대화 이력을 매번 검사하면 이전의 차단된 내용 때문에 새로운 유효한 질문까지 차단되는 '고착(Sticky)' 문제가 발생한다. 이를 방지하기 위해 guardContent 블록을 사용하여 최신 사용자 입력만 선택적으로 평가하는 전략이 권장된다. 이 방식은 대화의 흐름을 자연스럽게 유지할 뿐만 아니라, 중복 검사를 피함으로써 API 호출 비용과 지연 시간을 동시에 줄여준다.
python
import boto3
bedrock = boto3.client("bedrock-runtime", region_name="")
messages = [
{
"role": "user",
"content": [ {"text": "Do you sell bananas?"} ]
},
{
"role": "assistant",
"content": [ {"text": "I'm sorry, but I can't help with that topic."} ]
},
{
"role": "user",
"content": [
{
# Only this block will be evaluated by guardrails
"guardContent": {
"text": {
"text": "Can I book a flight to Paris?"
}
}
}
]
}
]
response = bedrock.converse(
modelId="",
guardrailConfig={
"guardrailIdentifier": "your-guardrail-id",
"guardrailVersion": "1",
"trace": "enabled"
},
messages=messages
)Converse API의 guardContent를 사용하여 멀티턴 대화에서 최신 메시지만 가드레일로 평가하는 예시
운영 환경에서는 DRAFT 버전 대신 숫자 버전(Numerical version)을 사용해야 서비스 중단을 방지할 수 있다. DRAFT 버전은 업데이트 중 'READY' 상태가 아니게 되어 호출 실패를 유발할 수 있으나, 숫자 버전은 불변(Immutable) 스냅샷이므로 일관된 보호를 보장한다. 숫자 버전은 CreateGuardrailVersion API를 통해 생성하며 자동 증가하는 번호로 관리된다.
python
response = bedrock.apply_guardrail(
guardrailId="your-guardrail-id",
guardrailVersion="47",
content=content,
source="your-source")운영 환경에서 특정 숫자 버전의 가드레일을 호출하는 예시
용어 해설
- 개인 식별 정보(PII)
- — 이름, 주소, 전화번호 등 특정 개인을 식별할 수 있는 데이터이다. Amazon Bedrock Guardrails는 이러한 민감 정보를 자동으로 마스킹하거나 제거하여 데이터 유출을 방지하고 규정 준수를 돕는 역할을 수행한다.
- 프롬프트 주입(Prompt Injection)
- — 사용자가 악의적인 입력을 통해 AI 모델의 원래 지침을 무시하고 공격자가 의도한 동작을 수행하게 만드는 공격 기법이다. 가드레일의 프롬프트 공격 방지 정책은 이러한 시도를 실시간으로 감지하고 차단한다.
- 문맥적 근거 확인(Contextual Grounding)
- — 모델의 응답이 제공된 참조 문서나 소스 데이터에 실제로 기반하고 있는지 검증하는 기술이다. 이를 통해 모델이 사실과 다른 내용을 지어내는 할루시네이션 현상을 억제하고 답변의 신뢰성을 확보한다.
- 탈옥(Jailbreaking)
- — AI 모델에 설정된 안전 가이드라인이나 제약 사항을 우회하여 금지된 콘텐츠를 생성하도록 유도하는 고도화된 공격 방식이다. 가드레일은 모델의 추론 전후 단계에서 이러한 패턴을 분석하여 부적절한 출력을 방지한다.
- 검색 증강 생성(RAG)
- — 외부 지식 베이스에서 관련 정보를 검색하여 모델의 입력 컨텍스트로 제공함으로써 답변의 정확도를 높이는 아키텍처이다. 가드레일은 RAG 파이프라인에서 검색된 문서의 유해성이나 근거 적합성을 평가하는 데 사용된다.
기술
- Amazon Bedrock
- Boto3
- Python
- ApplyGuardrail API
활용 사례
- 고객 서비스 챗봇
- RAG 기반 문서 요약 시스템
- 민감 정보 필터링 자동화
- 프롬프트 주입 공격 방어
AI 분석 전체 내용 보기
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
원문 발행 2026. 03. 03.수집 2026. 03. 03.출처 타입 RSS
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.