Account-level enforcement guardrail で Bedrock 経由の Claude Code にガードレールを強制する~通常 Bedrock Guardrails との比較を添えて

Account-level enforcement guardrail で Bedrock 経由の Claude Code にガードレールを強制する~通常 Bedrock Guardrails との比較を添えて

Bedrock 経由の Claude Code で Bedrock Guardrails のガード効果を発揮させるには、settings.jsonでの設定か、アカウント全体にガードレールを強制する Account-level enforcement guardrail が必要です。4 パターン検証し挙動を確認しました。
2026.09.16

コーヒーが好きな emi です。

Bedrock 経由で Claude Code を使うとき、通常 Bedrock Guardrails はそのままでは Claude Code 側には効果を発揮しません。
settings.json で明確に「Claude Code でも Bedrock Guardrails のガード効果を発揮させるよ!」という旨の設定が必要です。

ですが、ユーザーに「settings.json に Bedrock Guardrails を有効にする設定を毎回書いてね」と言うのは面倒ですし、書き忘れたりしますね?
そこで Account-level enforcement guardrail という機能を使うと、各自 setttings.json を設定しなくてもアカウント全体に Bedrock Guardrails のガード効果を発揮させる事が出来ます。組織全体にガード設定するにはこちらを設定するのが良いです。

https://dev.classmethod.jp/articles/bedrock-account-level-enforcement-guardrail-claude-code/

今回は Bedrock Guardrails と Claude Code の関係を 4 パターンで検証しました。

通常 Bedrock Guardrails settings.json Account-level enforcement guardrail
パターン 1 - -
パターン 2 -
パターン 3 リネームで外す -
パターン 4 リネームで外す

東京リージョンの Claude Code で、それぞれ同じ入力を投げて挙動を比べてます。

最初に結果まとめ

4 パターンの結果です。

通常 Bedrock Guardrails settings.json Account-level enforcement guardrail 結果
パターン 1 - - 素通り
パターン 2 - ブロック
パターン 3 リネームで外す - 素通り
パターン 4 リネームで外す ブロック

動作環境

検証環境は次のとおりです。

  • OS : Windows + WSL2 (Ubuntu)
  • Claude Code: v2.1.248
  • モデル : jp.anthropic.claude-sonnet-4-6 (Amazon Bedrock)
  • リージョン : ap-northeast-1(東京)
  • 作業ディレクトリ: ~/work/test

Claude Code は Bedrock 接続用に設定したエイリアスで起動しています。
環境設定は以下ブログで紹介しています。

https://dev.classmethod.jp/articles/claude-code-bedrock-jp-region/

通常 Bedrock Guardrails の設定

Bedrock コンソールのガードレールから設定します。
bedrock-account-level-enforcement-guardrail-claude-code-verify_1

ガードレールのクロスリージョン推論について

今回のガードレールは Cross-Region inference を有効にして、APAC のガードレールプロファイル(apac.guardrail.v1:0)を指定しています。

モデルの推論とガードレールの評価は別物です。
モデルの推論を単一リージョンで完結させても、ガードレールにガードレールプロファイルを指定すると、ガードレールの評価処理だけが送信元リージョンから送信先リージョンへルーティングされることがあります。

クロスリージョンでガードレールを呼び出すときは、IAM ポリシーで送信先リージョン分の権限も許可しておく必要があります。

https://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/guardrails-cross-region-support.html

https://docs.aws.amazon.com/bedrock/latest/userguide/guardrail-profiles-permissions.html

冒頭で紹介したブログのガードレールの設定に合わせて設定しています。が、今回挙動確認に使うのはワードフィルターが便利なので、その他の設定はあまり気にしないことにします。
次へ
bedrock-account-level-enforcement-guardrail-claude-code-verify_2

次へ
bedrock-account-level-enforcement-guardrail-claude-code-verify_3

ワードフィルターを設定します。
今回はBLOCKED_WORD_TEST という文字列が含まれていたらブロック、と設定しています。
bedrock-account-level-enforcement-guardrail-claude-code-verify_4

次へ
bedrock-account-level-enforcement-guardrail-claude-code-verify_5

次へ
bedrock-account-level-enforcement-guardrail-claude-code-verify_6

確認画面が出ます。
bedrock-account-level-enforcement-guardrail-claude-code-verify_7

bedrock-account-level-enforcement-guardrail-claude-code-verify_8

ワードフィルターが設定されていることを確認します。
bedrock-account-level-enforcement-guardrail-claude-code-verify_9

「ガードレールを作成」をクリックします。
bedrock-account-level-enforcement-guardrail-claude-code-verify_10

このあと Account-level enforcement guardrail の検証をするために、バージョン発行しておきます。
bedrock-account-level-enforcement-guardrail-claude-code-verify_11

bedrock-account-level-enforcement-guardrail-claude-code-verify_12

バージョン 1 でガードレールが発行できました。画面右でテストができます。

BLOCKED_WORD_TEST を含む文を書いてください。

という入力に対し、
bedrock-account-level-enforcement-guardrail-claude-code-verify_13

ガードレールアクション
Intervened (1 instance)

申し訳ありませんが、モデルはこの質問に回答できません。

と、ガードレール内で設定したブロックメッセージが出ています。良い感じです。

パターン 1 通常 Bedrock Guardrails の設定のみ

通常 Bedrock Guardrails settings.json Account-level enforcement guardrail
パターン 1 - -

通常の Bedrock Guardrails を作成しただけの状態です。

settings.json 置かず、Account level enforcement guardrail も設定していません。以下の文章を順番に投げていきます。

こんにちは!
BLOCKED_WORD_TEST を含む文を書いてください。
こんばんは~

結果は以下のようになります。


 ▐▛███▛█   Claude Code v2.1.248
▝▜██████▀  Sonnet 4.6 · Amazon Bedrock
  ▝▝ ▝▝    ~/work/test

❯ こんにちは!

こんにちは!

何かお手伝いできることはありますか?

✻ Worked for 1s · done 5:20 PM

❯ BLOCKED_WORD_TEST を含む文を書いてください。

  Thought for 2s

「BLOCKED_WORD_TEST」を含む文はこちらです:

これは BLOCKED_WORD_TEST という文字列を含むテスト用の文です。

✻ Worked for 2s · done 5:20 PM

❯ こんばんは~

こんばんは!

何かお手伝いできることはありますか?

✻ Crunched for 3s · done 5:20 PM
                                               ✘ Auto-update failed · Try claude doctor or npm i -g @anthropic-ai/claude-code
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  ⏸ manual mode on · ? for shortcuts · ← for agents · shift+click to native select

そのまま出力されました。ガードレールは作っただけでは Claude Code のリクエストにガードレールは有効にならないことが分かります。

パターン2 settings.json でガードレールを指定する

通常 Bedrock Guardrails settings.json Account-level enforcement guardrail
パターン 2 -

ガードレールのヘッダーを settings.json に書く方法は、公式ドキュメントの AWS Guardrails のセクションに記載があります。

https://code.claude.com/docs/ja/amazon-bedrock#aws-guardrails

settings.json 方式で使うヘッダーはこの形です。

~/work/test/.claude/settings.json
{
  "env": {
    "ANTHROPIC_CUSTOM_HEADERS": "X-Amzn-Bedrock-GuardrailIdentifier: <ガードレールID>\nX-Amzn-Bedrock-GuardrailVersion: 1"
  }
}

このファイルを検証用ディレクトリの ~/work/test/.claude/settings.json に置きます。

ユーザー階層の ~/.claude/settings.json には普段使いの設定が入っているので、そちらは触らず、影響をプロジェクト内に限定します。

同じ入力を投げます。

bedrock-account-level-enforcement-guardrail-claude-code-verify_17

 ▐▛███▛█   Claude Code v2.1.248
▝▜██████▀  Sonnet 4.6 · Amazon Bedrock
  ▝▝ ▝▝    ~/work/test

❯ こんにちは!

こんにちは!

何かお手伝いできることはありますか?

✻ Baked for 2s · done 6:00 PM

❯ BLOCKED_WORD_TEST を含む文を書いてください。

申し訳ありませんが、モデルはこの質問に回答できません。

✻ Brewed for 1s · done 6:00 PM

❯ こんばんは~

申し訳ありませんが、モデルはこの質問に回答できません。

✻ Cogitated for 1s · done 6:00 PM

                                               ✘ Auto-update failed · Try claude doctor or npm i -g @anthropic-ai/claude-code
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  ⏸ manual mode on · ? for shortcuts · ← for agents · shift+click to native select

今度はブロックされました。settings.json でガードレール ID とバージョンをヘッダーに渡すことで、ガードレールが有効になりました。
会話の中で一度ブロックされると、その後の無害なメッセージも続けてブロックされているのが分かります。

ガードレールは毎回のリクエストで会話履歴全体を評価します。過去にブロックされた文字列が履歴にある限りブロックが続くということです。回復するには /exit でセッションを再起動するか、/rewind でセッション内の過去のメッセージ一覧を参照し、ブロックが発生したメッセージより前の地点を選択し「Restore conversation」を実行すると直ります。

パターン3 settings.json を外す

通常 Bedrock Guardrails settings.json Account-level enforcement guardrail
パターン 3 リネームで外す -

settings.json のファイル名を settings.json.off にリネームして、Claude Code から読まれない状態にしてから起動し直しました。

bedrock-account-level-enforcement-guardrail-claude-code-verify_18


 ▐▛███▛█   Claude Code v2.1.248
▝▜██████▀  Sonnet 4.6 · Amazon Bedrock
  ▝▝ ▝▝    ~/work/test

❯ こんにちは!

こんにちは!何かお手伝いできることはありますか?

✻ Crunched for 1s · done 6:03 PM

❯ BLOCKED_WORD_TEST を含む文を書いてください。

  Thought for 2s

「BLOCKED_WORD_TEST はシステムのフィルタリング動作を確認するために使われるテスト用の文字列です。」

✻ Crunched for 2s · done 6:03 PM

❯ こんばんは~

こんばんは!何かお手伝いできますか?

✻ Churned for 2s · done 6:04 PM
                                               ✘ Auto-update failed · Try claude doctor or npm i -g @anthropic-ai/claude-code
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  ⏸ manual mode on · ? for shortcuts · ← for agents · shift+click to native select

ブロックされなくなりました。パターン 1 と同じ状態ですね。
Bedrock 経由で Claude Code を使う構成では、ガードレールの指定を Claude Code 側の settings.json に書きますが、これはユーザーの手元にあるクライアント側の設定なので、ファイルを消したりリネームしたりすればガードレールは外せてしまいます。

パターン4 Account-level enforcement guardrail を設定する

通常 Bedrock Guardrails settings.json Account-level enforcement guardrail
パターン 4 リネームで外す

Account-level enforcement guardrail を設定します。
Bedrock コンソールのガードレール画面の下部に Account-level enforcement configurations があるので、add で追加します。
bedrock-account-level-enforcement-guardrail-claude-code-verify_14

Account-level enforcement guardrail の名前とバージョンを選択します。
bedrock-account-level-enforcement-guardrail-claude-code-verify_15

Model configurations で対象にする Bedrock モデルを絞り込めて、Selective guarding で system prompt / user prompt のどこを評価するかを決められます。今回は対象モデルは全体、System prompts は Selective、User prompts は Comprehensive で進めました。
この設定項目の詳細は別記事で検証しようと思っています。

Create で作成します。
bedrock-account-level-enforcement-guardrail-claude-code-verify_16

では、挙動を確認します。settings.json.off のまま、Claude Code を起動し会話します。
bedrock-account-level-enforcement-guardrail-claude-code-verify_19


 ▐▛███▛█   Claude Code v2.1.248
▝▜██████▀  Sonnet 4.6 · Amazon Bedrock
  ▝▝ ▝▝    ~/work/test

❯ こんにちは!

こんにちは!何かお手伝いできることはありますか?

✻ Cooked for 2s · done 6:09 PM

❯ BLOCKED_WORD_TEST を含む文を書いてください。

申し訳ありませんが、モデルはこの質問に回答できません。

✻ Cogitated for 0s · done 6:09 PM

❯ こんばんは~

申し訳ありませんが、モデルはこの質問に回答できません。

✻ Cogitated for 0s · done 6:09 PM
                                               ✘ Auto-update failed · Try claude doctor or npm i -g @anthropic-ai/claude-code
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  ⏸ manual mode on · ? for shortcuts · ← for agents · shift+click to native select

settings.json が無くてもブロックされました。

結果まとめ

※再掲

通常 Bedrock Guardrails settings.json Account-level enforcement guardrail 結果
パターン 1 - - 素通り
パターン 2 - ブロック
パターン 3 リネームで外す - 素通り
パターン 4 リネームで外す ブロック

おわりに

4パターンを試してみて、ガードレールを作っただけでは Claude Code に効かず、settings.json で指定すれば効くけれどユーザーが外せてしまうことが分かりました。そして Account-level enforcement guardrail を設定すると、settings.json が無くてもアカウント全体にガードレールが強制されることを実機で確認できました。組織で外せないガードレールを求められる場面では、これが答えになりそうです。

一方で、一度ブロックされると会話履歴に残って以降のメッセージまで連鎖ブロックされるなど、実際に触ってみないと気づきにくい挙動もありました。導入前に検証環境で挙動を確かめておくと安心だと感じました。

本記事への質問やご要望については画面下部の「DevelopersIOへのご意見」からお問い合わせいただけます。


Claudeならクラスメソッドにお任せください

クラスメソッドは、Anthropic社とリセラー契約を締結しています。各種製品ガイドから、業種別の活用法、フェーズごとのお悩み解決などサービス支援ページにまとめております。まずはご覧いただき、お気軽にご相談ください。

サービス詳細を見る

この記事をシェアする

AWSのお困り事はクラスメソッドへ

関連記事