新しいモデル出るの早いな・・・
新しいモデルが出るのはえ〜
AI機能をサービスに組み込むと、その新しいモデルを追いかけて更新していくことになるんですけど、Bedrockで日本国内推論で使えるモデルが常に最新とは限らないとかで最新モデルを追いかけることができなかったりもしますよね。
海外のリージョンで推論するのはどっちでもいいけどデータが海外に保存されるのは困るな〜!なんかモデルによっては良くない使い方すると保存されるとかも書いてあるし、Bedrockってデータ保存しないんじゃなかったの?って気持ちになります。
ということで、この記事のテーマは「Amazon Bedrockのデータ保持」です。
一旦今回の記事のまとめ
先に結論だけ。
-
「Bedrockはデータを保存しない」は、半分合ってて半分足りない。保存するかどうかは、アカウントのデータ保持モード × モデル側の条件で決まる
-
データを残したくないなら、 データ保持モードを
noneにする。 -
ただしモデルによっては例外がある。フラグされたものだけ最大30日残るモデルと、全部が最大30日残るモデルがいる
-
noneにすれば全部解決、でもなくて、保持可能性のあるモデルはnoneだとそもそも使えなくなる
Bedrockって、データを保存しないんじゃないの?
もとの認識はこうでした。「Bedrockはプロンプトや出力を保存しないし、学習にも使わない」。これは大きくは間違っていません。
ただ、混ざりがちなのがこの3つです。
- 保存するか(推論の入出力をストレージに残すか)
- モデルプロバイダーに渡すか
- モデルの学習に使うか
この3つは別物です。「学習に使わない」からといって「保存も一切しない」とは限らない、というのが今回の話のキモでした。
で、保存するかどうかを決めるのが、アカウント(やプロジェクト)に設定するデータ保持モードと、モデルごとに決まっている条件の組み合わせです。片方だけ見ても決まりません。
データ保持モードとは
データ保持モードは、Bedrockへの入力と出力をどう扱うかを決める設定です。モードは5つあります。
| モード | データは残る? | メモ |
|---|---|---|
none |
残らない | ZDR。プロバイダーにも渡らない。保持可能性のあるモデルは使えなくなる |
default |
モデル次第 | 前からZDRだったモデルはそのままZDR。ただし安全確認や不正検出のためにAWS側で保持される場合がある |
aws_review |
AWSの中で残る | AWSが人手で確認することがある、というモード。一部のモデルを使う条件になっている。プロバイダーには渡らない |
provider_data_share |
aws_review と実質同じ |
legacy扱い。今はプロバイダーに共有はされない。新しく設定するなら aws_review
|
inherit |
自分では決めない | 上位の設定か、モデルの既定に任せる。新しいアカウントやプロジェクトの初期値がこれ |
許容する順番は none < default < aws_review < provider_data_share で、モデルごとに「これ以上のモードじゃないと使えません」という下限があります。自分の設定がその下限に届いていないモデルは、呼んでもエラーになるか、一覧で利用不可になります。
ややこしいポイントが2つ。
1つ目は、設定はリージョンごとだということ。あるリージョンで none にしても、他のリージョンには伝わりません。未設定のリージョンは inherit のままで、モデルの既定に従います。
2つ目は、逆もあること。アカウント側を許容寄りに設定しても、モデル側が none を含む条件なら、そのモデルのデータは残りません。設定はあくまで「ここまでなら許す」という上限で、モデルが勝手に保持を始めるわけではない、という理解が近いです。
現在どのモードがアカウント、リージョンに設定されているかは以下のようにawsコマンドを打つと確認できます。
$ aws bedrock get-account-data-retention
{
"mode": "inherit"
}
使うモデルで話が変わる
ここがタイトルの「Bedrockって保存しないんじゃなかったの?」の答えは、モデルによって違います。
| モデルの区分 | 残り方 |
|---|---|
| 大半のモデル(Claude Fable 5より前に出たClaudeなど) | 残らない。none を選べる |
| OpenAI系のモデル(gpt-oss系の一部を除く) | 分類器にフラグされた入出力だけ、不正検出のために最大30日残る。条件を満たす顧客は、AWSのアカウントチーム経由でモデルごと・アカウントごとに完全なZDRを申請できる |
| Claude Fable 5 / 5.1 | 全部の入出力がAWSの中で最大30日残る。AWSが人手確認する場合がある。使うには aws_review(または legacy の provider_data_share)が必須で、none や default では使えない |
「別のモデルでは全部残る」と聞くと身構えますが、対象は今のところ Fable 5系ですし、残る先はモデルプロバイダーではなくAWSの中です。ここは分けて考えたいところですね。
OpenAI系も使えるようになったのでどんどん使っていきたいですが万が一保管される可能性を考えると扱いが難しいです。
あと例外中の例外として、不適切なコンテンツ(CSAM)検出に当たった場合は、モードによらず確認のために保存・レビューされることがあります。1
データを残したくないときの none
保存を許可したくないなら、モードを none にします。
実際に自分も none に変えました。これで、ZDR対応のモデルについてはデータが残らない状態になります。
$ aws bedrock put-account-data-retention \
--mode none
変更したら
$ aws bedrock get-account-data-retention
{
"mode": "none"
}
おーこれでデータは保持されないな!
GPT-6 Lunaを試すとエラーになった
実際、データ保持モードを none に変更し、不正入力でデータが保持されるGPT-6 Lunaをプレイグラウンドで試そうとしたら、以下のようなエラーが出てました。
エラー文
AccessDeniedException
openai.gpt-6-luna is not available for this account. You can explore other available models on Amazon Bedrock. For additional access options, contact AWS Sales at https://aws.amazon.com/contact-us/sales-support/
データは保持されなくなったが、保持される可能性があるものに関しては使えなくなりました。
データ保持モードをinheritに戻すと返答が返ってきました。
none のモードで使える生成AIモデルかどうかを確認する
none のモードで使える生成AIモデルかは確認できます。ただし、確認の仕方は呼び出し方で違います。
Mantleの場合
Mantle側では、モデルごとにデータ保持の情報が見えます。モデルの情報に data_retention として、今効いているモード(mode)と、そのモデルが許すモードの一覧(allowed_modes)が含まれます。
allowed_modes に none が入っていれば、そのモデルはZDRで使えます。入っていなければ、そのモデルを使うにはもっと許容するモードが必要です。
Runtimeの場合
Runtime(従来の呼び出し方)側には、モデルごとに保持条件を見る仕組みはありません。コントロールプレーンでアカウント単位にモードを設定し、その設定の下で呼び出す形になります。
なので、「モデル単位で事前に確かめたい」ならMantle側で見る、「アカウント全体の方針として決めたい」ならRuntime側の設定で見る、という使い分けになります。
ちなみにKnowledge Baseで使う埋め込みモデル(Titan Text Embeddings V2)やリランク(Rerank 1.0)みたいな呼び出しも、結局は推論の呼び出しです。チャットのモデルだけ none にして安心、ではなくて、こういう裏側の呼び出しも含めてアカウントのモードが効く、という点は確認しておくと良いでしょう。
より適したモデルを扱うために、データの保持について知っておこう
新しいモデルを使いたくても、処理する場所や保存する場所の条件が分からないと、なかなか切り替えられません。
ただ、「海外で推論するから、入出力も海外に保存される」と一括りにしてしまうと、使えるモデルを必要以上に絞ってしまいます。分けて考えたいのはこの辺です。
- 海外で処理されるのは許せるか、処理自体を国内に閉じたいか
- 処理はともかく、保存は避けたいのか
- 使いたいモデルの allowed_modes に
noneはあるか - モードは使っているリージョンごとに設定できているか
処理の話と保存の話を分けると、選べるモデルの幅が思ったより広がります。逆に、分けずに全部「なんか怖い」で止めてしまうと、せっかくの新しいモデルがずっと使えません。
「保存しないんじゃなかったの?」の答えは、「基本は保存しない。でもモードとモデルで例外がある。だから設定と確認が要る」でした。地味ですが、これが分かっただけでもモデル選びで迷うことが減りそうです。
出典
- Data retention - Amazon Bedrock: https://docs.aws.amazon.com/bedrock/latest/userguide/data-retention.html
- Amazon Bedrock abuse detection: https://docs.aws.amazon.com/bedrock/latest/userguide/abuse-detection.html
- Enforce zero data retention on Amazon Bedrock with Bedrock Projects and service control policies: https://aws.amazon.com/blogs/security/enforce-zero-data-retention-on-amazon-bedrock-with-bedrock-projects-and-service-control-policies/
-
Amazon Bedrockの不正検出では、CSAM(児童性的虐待素材)の可能性があると分類された入出力を、確認および関係機関への報告のために保存・レビューする場合があると公式に明記されています。 ↩
