Amazon Bedrock ガードレールの機密情報フィルターは、どのような処理で個人情報をブロックやマスクしていますか
困っていること
Amazon Bedrock のガードレール機能を使って、ユーザーが入力した個人情報(PII)を制御したいと考えています。
社内のセキュリティ要件で、生成AIに個人情報を渡すのは NG とされています。
そのため、ガードレールが入力内容から個人情報を検知してブロックやマスクをする処理自体を、生成AIが行っているのではないかと気になっています。
もし生成AIが処理を行っていない場合、ガードレールは内部でどのようにデータを読み取り、ブロックやマスク処理を行っているのでしょうか。
回答
結論として、入力時の個人情報の検知とブロックまたはマスクは、利用者が指定した基盤モデルではなく、ガードレール側の機械学習ベースの評価処理によって、基盤モデルに渡る前に行われます。ブロック対象と判定された場合は、ブロックメッセージが返され、基盤モデル推論は破棄されます。
Amazon Bedrock ガードレールは、推論時にまず入力を評価し、入力評価の時点でガードレール介入が発生した場合は、ブロックメッセージを返して基盤モデル推論は破棄されます。また、機密情報フィルターは ブロック または マスク を設定でき、マスク の場合は {NAME} や {EMAIL} のように置き換えられます。
入力評価の結果、ガードレールが介入する場合は、設定済みの ブロックメッセージ のレスポンスが返され、基盤モデルの推論は破棄されます。
https://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/guardrails-how.html
モデルのリクエストまたはレスポンスで機密情報が検出された場合、ガードレールはそれをマスク処理して PII タイプ (
{NAME}や{EMAIL}など) に置き換えます。
https://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/guardrails-sensitive-filters.html
入力時のデータの流れ
入力時の流れは、概ね以下のとおりです。
- ユーザーが個人情報などを含むテキストを入力する
- ガードレールが基盤モデルに届く前に入力を評価する
- 設定に応じて、入力に対して ブロック または マスク を適用
- ブロックされた場合は、ブロックメッセージが返され、基盤モデル推論は破棄される
そのため、入力に対してブロックまたはマスクを設定できること、そしてブロック時には基盤モデル推論が実行されないことは言えます。
ガードレールで指定されているポリシーに照らして、入力が評価されます。
https://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/guardrails-how.html
つまり、入力に含まれる生の個人情報を、そのまま利用者が指定した基盤モデルへ渡したくないという要件に対して、ガードレールの機密情報フィルターは有力な選択肢の一つです。
※補足
入力時はガードレールが基盤モデル推論の前に評価し、介入時は推論自体が破棄されます。
一方、出力時は基盤モデルが生成したレスポンスをガードレールが後段で評価して、必要に応じてブロックまたはマスクします。
入力が評価に合格した場合、ガードレールで設定されたポリシーに照らして、今度はモデルのレスポンスが評価されます。
https://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/guardrails-how.html
機密情報フィルターの検知の仕組み
機密情報フィルターは、AWS ドキュメントでは文脈依存の確率機械学習 (ML) ベースのソリューションとして説明されています。加えて、必要に応じて正規表現も定義でき、ブロック や マスク に利用できます。
- 確率機械学習 (ML) ベースの検知
文脈に基づいて、氏名や住所などの機密情報を検出します。 - 正規表現によるパターンマッチング
電話番号やメールアドレス、独自 ID など、パターンで定義しやすい値の検知に利用できます。
このフィルターは、コンテキストに依存し、入力プロンプトまたはモデルレスポンス内のコンテキストに基づいて機密情報を検出する確率機械学習 (ML) ベースのソリューションです。
https://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/guardrails-sensitive-filters.html
また、ApplyGuardrail API を使えば、基盤モデルを呼び出さずにガードレールだけでテキストを評価できます。したがって、少なくとも AWS の公開仕様上は、機密情報の検知は利用者が指定した基盤モデルとは独立した、ガードレール側の評価処理として扱うのが自然です。
ApplyGuardrailAPI を使用して、基盤モデルを呼び出すことなく、事前設定された Amazon Bedrock ガードレールを使用してテキストを評価できます。
https://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/guardrails-use-independent-api.html
ただし、この検知自体は AWS ドキュメント上、文脈依存の確率機械学習 (ML) ベースの処理として説明されていますので、利用者が指定した基盤モデルが判定しているわけではありませんが、単純なルールベース処理だけで行われているわけでもありません。
AWS のデータ保護仕様
Amazon Bedrock の標準仕様では、入力プロンプトやモデルの応答は保存またはログ記録されず、AWS モデルのトレーニングにも使用されず、第三者にも配布されません。
ガードレール の評価処理のために入力内容が参照されるとしても、そのデータが Bedrock の標準動作として保存されたり、AWS モデルのトレーニングに使用されたりする前提ではありません。
Amazon Bedrock では、プロンプトおよび AI のレスポンスを保存またはログに記録することはありません。Amazon Bedrock は、ユーザーのプロンプトやそれに対する AI のレスポンスを AWS モデルのトレーニングに使用したり、第三者に配布したりすることはありません。
https://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/data-protection.html
一方で、利用者側の設定により、必要に応じて モデル呼び出しログ を有効化し、リクエストデータやレスポンスデータを CloudWatch Logs や S3 に出力することも可能です。
モデル呼び出しログ はデフォルトでは無効ですが、有効化するとリクエスト・レスポンス・メタデータを保存できます。そのため、セキュリティ要件を確認する際は、Bedrock の標準仕様に加えて、ログ出力設定もあわせて確認するのが安全です。
With invocation logging, you can collect the full request data, response data, and metadata associated with all calls performed in your account in a Region.
https://docs.aws.amazon.com/bedrock/latest/userguide/model-invocation-logging.html
Model invocation logging is disabled by default.
https://docs.aws.amazon.com/bedrock/latest/userguide/model-invocation-logging.html
さらに、ガードレールのドキュメントでは、ブロックされたコンテンツも、ログを有効化している場合はプレーンテキストで表示されると説明されています。PII を扱う場合は、この点も見落とさないほうがよいです。
上記のポリシーによってブロックされたコンテンツはすべて、Amazon Bedrock モデル呼び出しログにプレーンテキストとして表示されます (ログを有効にしている場合)。
https://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/guardrails-components.html
社内ルール上の考え方
このため、社内ポリシーが「基盤モデルへの個人情報入力は禁止」なのか、あるいは「機械学習ベースの検知機構に渡すこと自体が禁止」なのかで、ガードレール の許容可否は変わります。
前者であれば、ガードレール は基盤モデル入力の前段で評価する仕組みとして整理しやすいです。一方、後者であれば、ガードレール の機密情報フィルターも対象に含まれる可能性があります。
補足 その他のフィルター機能について
ガードレールには機密情報フィルター以外にも以下の機能があり、入力に対しては、これらのフィルターも同様に、基盤モデル推論の前段で ガードレール側が評価します。
入力評価でガードレール介入が発生した場合は、基盤モデル推論は実行されません。
- コンテンツフィルター(有害なテキストや画像を検知します。有害コンテンツを分類するために特化したメカニズムを使用して検知します。)
- 拒否トピック (Denied topics)(アプリケーションに不適切なトピックを定義してブロックします。入力されたテキストが定義されたトピックに該当するかどうかを判定するメカニズムを使用して検知します。)
- ワードフィルター (Word filters)(不適切な言葉や競合他社名など、カスタムの単語やフレーズをブロックします。完全一致の文字列検索(ルールベース)によって高速に検知します。)









