はじめに
生成AIを業務やプロダクトに組み込む際、「不適切な出力」「ハルシネーション」「意図しない情報漏えい」への対策が必要になります。これらのリスクに対処するための仕組みとしてAmazon Bedrockで提供されている Bedrock Guardrails の機能について整理しました。
想定読者
- Amazon Bedrockを使った生成AIアプリケーションを検討・開発している
- RAG(Knowledge Bases)や Agents / Flows の安全設計について知りたい
- 生成AIの「ガバナンス」「安全性」「責任あるAI」に関心がある
Amazon Bedrock Guardrails 概要
Bedrock Guardrailsは、利用する基盤モデル(FM)に依存せず、生成AIの入出力を制御・検査するためのポリシーレイヤーです。
GuardrailsはBedrockが提供する、以下の機能に対して横断的に適用できます。
- Knowledge Bases(RAG)
- Bedrock Agents
- Bedrock Flows
- InvokeModel / Converse API(モデルへの推論)

出典:Build responsible AI applications with Amazon Bedrock Guardrails
Guardrailsが提供する制御は、大きく以下の5つに分類されます。これらのフィルターを単一で、あるいは、複数組み合わせて、1つのポリシーとして利用できます。
- コンテンツフィルター
- 単語フィルター
- 拒否トピック
- 機密情報フィルター
- コンテキストグラウンディングチェック(Contextual Grounding Check)
日本語のサポートについて
2025年11月時点で、単語フィルター、コンテキストグラウンディングチェックは日本語ではサポートされていません
各機能の概要は以下の通りです。また各機能では有害な内容が検出された場合、「ブロック」または「検出(アクションなし)」の対処が選択できます。
コンテンツフィルター
Guardrailsは、モデルの 入力(Prompt) と出力(Response) の両方に対して、コンテンツフィルターを適用できます。テキスト・画像(動画は除く)がサポートされます。
対象となるカテゴリは以下が定義されています。
- Hate(差別・憎悪表現)
- Insults(侮辱)
- Sexual(性的表現)
- Violence(暴力表現)
- Misconduct(違法・不正行為 など)
また、プロンプト攻撃として以下の2種類の攻撃を検出します。
- Jailbreaks
「Do Anything Now (DAN)」のような基盤モデルのセキュリティ機能をバイパスするように設計されたユーザープロンプト - Prompt Injection
システムプロンプト上書きするように設計されたユーザープロンプト
InvokeModel API/ InvokeModelResponseStream API を使用する場合
ガードレールで入力タグの使用が必須。タグがない場合、プロンプト攻撃がフィルタリングされない
単語フィルター
単語フィルターでは、指定した単語・フレーズを制御します。リストとして作成したカスタム単語フィルター や事前に定義された冒涜的な表現フィルター がモデルの入力・出力に含まれていないかを検査し、検出した場合はブロックします。冒涜的な表現フィルターはAWSによって継続的に更新されています。
コンテンツフィルターが抽象的・広義な表現を対象にしているのに対し、単語フィルターでは明示的に単語/フレーズを制御します。単語フィルターは表記揺れや言い換えには弱いため、コンテンツフィルターとの併用が有効です。
拒否トピック
Guardrailsでは、特定の話題(トピック)を禁止できます。トピックは以下のように自然言語で定義し、該当のトピックが検出された場合、Guardrailsは事前に指定されたメッセージ(警告文など)を返します。
例:
- 医療・法律など、誤回答リスクが高い分野
- 社内ポリシー上、AIに回答させたくないテーマ
- 投資助言・診断行為 など
コンテンツフィルターは事前に用意されているカテゴリから指定するのに対し、拒否トピックでは任意のトピックを自然言語で指定できる点が違いとなります。
機密情報フィルター
Guardrails は、以下のような個人情報(PII)や機密情報 の自動検出にも対応しています。事前に定義された機密情報以外にも、正規表現を使用して固有のポリシーを定義することも可能です。
- 氏名
- メールアドレス
- 電話番号
- クレジットカード番号
- その他の識別情報
検出した情報に対しては、以下の制御いずれかを行います。
- 出力をブロック
- 特定文字列にマスキング(例:
***) - 検出のみ
これにより、ユーザー入力に含まれた個人情報の再出力や、RAGから取得した文書内の情報漏えいといったセキュリティリスクへの対策をアプリ側で実装せずに、Bedrockによって実現できます。
コンテキストグラウンディングチェック
Guardrailsの特徴的な機能がコンテキストグラウンディングチェックです。ハルシネーションを抑制するため、以下の2つの観点からモデルの出力を評価します。
-
グラウンディング
モデルの出力が事実上正確であり、ソースに基づいているかどうかを評価 -
関連性
モデルの出力がユーザーからの入力に関連しているかどうかを評価
コンテキストグラウンディングチェックの結果は「信頼スコア」によって表現され、事前に指定した「しきい値」を下回った場合、有害なコンテンツとして検出されます。
生成したコードへの適用
2025年11月のアップデートにより、コード関連のユースケースもサポートされました。
具体的には、生成されたコードに含まれる以下のようなリスクを検出・制御できます。
- 拒否トピック(脆弱性を含むコードなど)に該当する内容
- コメントや変数名に含まれる不適切・有害な表現
- 機密情報や個人情報(APIキー、トークン形式の文字列など)
まとめ
Bedrock Guardrailsは生成AIの安全性を実現するための中核機能であり、生成したコードへの評価もサポート開始しました。RAGやAgentsを本番運用する際には、抑えておきたい機能です。
関連する記事
