
こんにちは、「カミナシ レポート」の開発に携わっている furuya です。
re:Invent2025 の参加レポート第三弾です。前回に引き続き現地レポートとセッションレポートをお送りします。
現地レポート:ラスベガスを生き残るために
今回初めての長期海外出張ということで、事前に集められるだけの情報を集めて準備は念入りにしていきました。その中でも持っていってよかったもの、使わなかったものをご紹介します。ラスベガスに行ってみたい!と思っている方の参考になれば幸いです。
持っていってよかったもの
ウォーキングシューズ
第一弾で書きましたがめちゃくちゃ歩くので、いいウォーキングシューズ(1ヶ月程度履き慣らしておく)は必須です。連日歩きまくってもダメージが少ないと感じています。経験者にオススメしてもらい、Nike の Pegasus シリーズの靴を履いていきました。
ウルトラライトダウン / パフテックジャケット
温度調節がしやすく重宝しました。軽くてコンパクトにできるのもgood。(後半は swag でもらったジャケットを着ていたので早々にパッキングしましたが…)
使わなかったもの
やや大きめのモバイルバッテリー
大きめのバッテリーを持っていったのですが、飛行機では機内持ち込みしないといけないし、会場のセキュリティチェックでたまにひっかかるしであまり使いませんでした… 移動日に使う用であればもっと小さいのでよかったかも。
10ドル以上の紙幣
チップ用の外貨を持っていく、ということで交換所に行ったときに「最近はアメリカも物価が高いからチップも多めにしないとだめですよ!」みたいな感じで受付の方に言われてまんまと多めに持っていったのですが全然使いませんでした… 現金はホテルの部屋に毎日$2, 3置くのに使っただけでした。カジノもやらなかったので…
セッションレポート
ラスベガスでの必需品をご紹介したところで、Amazon Bedrock の必需品、Amazon Bedrock Guardrails のセッションレポートです。
Building Secure and Responsible Gen AI with GuardRails for Amazon Bedrock
Amazon Bedrock の具体的なユースケースとともにガードレールを設定し、その効果を確認するワークショップです。AI をアプリに組み込むことがだんだんと一般的になってきていることから、Bedrock の利用には欠かせないガードレールのことを学びたいと思い、本セッションを受講しました。
おさらい:生成 AI におけるガードレールとは何か?
ガードレールを利用するとユーザーの入力と AI の出力をチェックし、安全でない内容をマスキングしたりブロックしたりできます。AI の出力にだけ有効であると勘違いしていたのですが、ユーザーの入力についてもガードレールが働くんですね。
Amazon Bedrock Guardrails 設定のポイント
ブロックするトピックを設定するのですが、ここで設定する「定義」と「サンプルフレーズ」が重要です。ここで曖昧な定義やサンプルになっているとうまくガードレールが効かなくなりそうです。ユーザーからの入力、Bedrock からの出力それぞれで有効無効、アクション(ブロック or 検知)が細かく設定できるようになっています。以下画像の例だと、政治系の話題(支持している政党など)は入出力ともにブロックするようにしています。

PII(Personally Identifiable Information)についても同様ですが、こちらはブロックだけでなくマスキングができるようになっています。名前、メールアドレスなど一通りの PII タイプが備わっています。

ガードレールの適用
せっかく作ったガードレール、適用しないと意味がありません。むしろガードレールがないモデル呼び出しは拒否する、といった制御がないと本番環境で事故を起こしかねません。ワークショップの内容ではないのですが気になったので調べてみたところ、IAM の条件キーで縛れるようです。
Bedrock の基盤モデルを呼び出すときにガードレールが設定されていないと拒否されるように、呼び出し元の IAM 権限を設定できます。上記ドキュメントから抜粋すると、以下のように Condition 句でガードレールとそのバージョンを指定することができます。
{ "Version":"2012-10-17", "Statement": [ { "Sid": "InvokeFoundationModelStatement1", "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": [ "arn:aws:bedrock:us-east-1::foundation-model/*" ], "Condition": { "StringEquals": { "bedrock:GuardrailIdentifier": "arn:aws:bedrock:us-east-1:123456789012:guardrail/guardrail-id:1" } } }, { "Sid": "InvokeFoundationModelStatement2", "Effect": "Deny", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": [ "arn:aws:bedrock:us-east-1::foundation-model/*" ], "Condition": { "StringNotEquals": { "bedrock:GuardrailIdentifier": "arn:aws:bedrock:us-east-1:123456789012:guardrail/guardrail-id:1" } } }, { "Sid": "ApplyGuardrail", "Effect": "Allow", "Action": [ "bedrock:ApplyGuardrail" ], "Resource": [ "arn:aws:bedrock:us-east-1:123456789012:guardrail/guardrail-id" ] } ] }
もう一声ほしいなと思うところとしては、その IAM 権限を設定しそこねていたら結局ガードレールなしで呼び出しできてしまうのではないかというところです。と思ってみていたら preview ではあるものの強制する方法があるようでした。
今回有効にするところまでは試せていないのですが、確かに AWS Organizations に Bedrock policies があります。

ドキュメント記載の手順で組織全体に対してガードレールの利用を強制すれば、意図せず効いていなかった、ということは回避できそうです。
まとめ
Amazon Bedrock Guardrails について深堀りできるセッションのご紹介でした。少し取り扱っているバージョンが古いのですが、似たようなワークショップが公開されていたのでご紹介します(本ブログもこちらを見ながら復習 & 思い出しつつ書きました)。
安全な生成 AI アプリケーションを作るためにはガードレールの機能が必須といえます。アップデートも定期的に行われているようですので、今後さらに使いやすく、よりよくなっていくことを期待しています。