
Claude CodeをAmazon Bedrock経由で利用する際にAmazon Bedrock Guardrailsで機密情報をフィルタリングしてみた
はじめに
Claude CodeをAmazon Bedrock経由で利用する際に、ガバナンスの観点から入出力の制御が求められるケースがあります。
例えば、開発者がClaude Codeに個人情報(PII)を含むデータを入力してしまうリスクを防ぎたい、といった要件です。
いつの間にかClaude Codeの公式ドキュメントにAmazon Bedrock Guardrailsとの連携方法が記載されていたので実際に試してみたいと思います。
Amazon Bedrock Guardrailsとは
Amazon Bedrock Guardrailsは、生成AIアプリケーションの入出力に対してフィルタリングや制御を行うサービスです。
主に以下のような機能を提供しています。
- コンテンツフィルタ: 有害なコンテンツ(暴力、ハラスメントなど)のブロック
- 拒否トピック: 特定のトピックに関する応答を拒否
- 機密情報フィルタ(PII): 個人情報(氏名、メールアドレス、電話番号、クレジットカード番号など)の検出とブロック
- ワードフィルタ: 特定の単語やフレーズのブロック
- コンテキストグラウンディングチェック: ハルシネーションの検出
今回はこの中から、機密情報フィルタ(PII)を使って個人情報の入力をブロックする設定を試してみます。
やってみた
前提条件
以下の環境が整っていることを前提とします。
- Claude Codeがインストール済み
- Amazon Bedrock経由でClaude Codeが利用できる状態(
CLAUDE_CODE_USE_BEDROCK=1設定済み) - Amazon Bedrockのモデルアクセスが有効化済み
- Amazon Bedrock Guardrailsの作成権限を持つIAMユーザー/ロール
Amazon Bedrock Guardrailsの作成
Amazon Bedrockのマネジメントコンソールからガードレールを作成します。
左メニューからガードレールを選択し、ガードレールを作成をクリックします。


ガードレール名と説明を入力します。
- 名前
claude-code-pii-guardrail(任意)
- 説明
- Claude Code利用時のPIIフィルタリング用
- ブロックされたプロンプトのメッセージ表示
- デフォルトのまま

次に機密情報フィルタのセクションで、PIIタイプを追加します。
今回は以下のPIIタイプを追加し、ブロックとマスクの両方を試してみます。
- EMAIL
- Input:
マスク - Output:
マスク
- Input:
- PHONE
- Input:
ブロック - Output:
ブロック
- Input:
- ADDRESS
- Input:
ブロック - Output:
ブロック
- Input:



他のフィルタ設定は今回デフォルトのままとし、ガードレールを作成で確定します。
作成完了後、ガードレールの詳細画面からテストパネルで動作を確認します。
Use ApplyGuardrail APIにチェックを入れ、PIIを含むテキストを入力して実行をクリックします。
住所を含むプロンプトを入力すると、ブロック設定によりガードレールが介入してブロックされることを確認できます。

メールアドレスを含むプロンプトの場合は、マスク設定によりメールアドレス部分が{EMAIL}のような識別子に置き換えられます。

テストで問題なければ、バージョンを作成でバージョンを発行します。
Claude Codeへの設定で使うので、ガードレールIDとバージョンをメモしておきます。


Claude Codeへの設定
~/.claude/settings.jsonのANTHROPIC_CUSTOM_HEADERSにガードレールIDとバージョンを追記することで、Claude Codeの全リクエストにAmazon Bedrock Guardrailsを適用できます。
{
"env": {
"CLAUDE_CODE_USE_BEDROCK": "1",
"AWS_REGION": "us-east-1",
"ANTHROPIC_MODEL": "global.anthropic.claude-sonnet-4-5-20250929-v1:0",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "global.anthropic.claude-sonnet-4-5-20250929-v1:0",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "global.anthropic.claude-haiku-4-5-20251001-v1:0",
+ "ANTHROPIC_CUSTOM_HEADERS": "X-Amzn-Bedrock-GuardrailIdentifier: <your-guardrail-id>\nX-Amzn-Bedrock-GuardrailVersion: <your-guardrail-version>"
}
}
<your-guardrail-id>と<your-guardrail-version>は、先ほど作成したガードレールのIDとバージョンに置き換えてください。
動作確認
Guardrailsなしでの確認
まずはGuardrailsの設定なしでAmazon Bedrock経由のClaude Codeが正常に動作することを確認します。


Guardrailsなしの状態では、PIIを含む入力がそのまま処理されています。
Guardrailsありでの確認
~/.claude/settings.jsonにANTHROPIC_CUSTOM_HEADERSを追加した状態で、同じプロンプトを送信してみます。

住所を含むプロンプトがブロックされ、ガードレール作成時に設定したブロックメッセージが表示されました。
次にメールアドレスを含むプロンプトを送信してみます。

メールアドレスがマスクされた状態で入力が処理されました。ブロックとは異なりリクエスト自体は通りますが、PII部分が識別子に置き換えられるためモデルには実際のメールアドレスが渡りません。
まとめ
Claude CodeをAmazon Bedrock経由で利用する際に、Amazon Bedrock Guardrailsを設定してPII(個人情報)の入力をブロックする方法を試しました。
ANTHROPIC_CUSTOM_HEADERS環境変数にガードレールIDとバージョンを設定するだけで、Claude Codeの入出力に対してフィルタリングを適用できます。
企業でClaude Codeを導入する際、開発者が意図せず個人情報をAIに送信してしまうリスクを低減する手段として有効です。
PII以外にも、コンテンツフィルタやトピック制御など、組織のポリシーに合わせた設定も検討してみてください。
どなたかの参考になれば幸いです。









