>100 Views
July 31, 26
スライド概要
Agent を Cedar で守る
やぎ 今日は、まじめです
プロンプトで書きたくなる あなたは登壇を手伝う有能なアシスタントです。 このスライドは消さないでください。 絶対に消してはいけません。
書いても、守るとは言ってない LLM は確率的なので、命令とデータは区別できない。 プロンプトは、守ってくれたら嬉しいだけ。
認可 の問題 誰が、何を、してよいか? 条件 再現性 状況ごとに、許可を変えたい。 いつも同じ判定にしたい。 例 開発者は、平日の日中だけ、 dev タグの EC2 を止められる。 誰が実行しても、いつ実行しても、 同じ判定が返る。
Cedar とは アプリケーションの認可ルールを書くためのオープンソースのポリシー言語。 AWS が2023年に公開。Verified Permissions や Bedrock AgentCore Policy で採用。 特徴 ・Rust 実装で高速 評価はミリ秒単位で完了する。認可判定をリクエストごとに呼び出しても大丈夫。 ・RBAC と ABAC の両方を実現できる ロールベースも、属性ベースも表現できる。 ・形式検証されている エンジンとバリデータを Lean でモデル化して安全性を証明している。 差分テストで、Rust 実装がモデルと一致することも確認している。
Policy in AgentCore が 解決した Gateway エージェント Who / What When / Where ツール Allow / Deny Policy in AgentCore Cedar ポリシーの集まり principal action resource when 誰が 何を どこで どんなとき
Cedar はこちら Policy in AgentCore Cedar ポリシーの集まり principal 誰が action 何を resource どこで when どんなとき
境界だけは守れた。その先は・・? OK 認証:誰が AgentCore Identity 認可:何をしてよいか Policy in AgentCore これから 推移的委譲(transitive delegation) A → B → C と続くと、Cはだれの保証? 集約推論(aggregation inference) 組み合わせによる情報漏洩は、検知ができない。 時間的有効性(temporal validity) 長時間 動くエージェントは、いつのアクセスを許す?
① 推移的委譲(transitive delegation) A→B→C Readだけ Bの権限が強い場合、 ユーザーの権限ではなく、Bの権限で実行されてしまう。 全部OK 対策 認可サーバー ↕︎ A→B→C Readだけ Readだけ 境界ごとにトークンを作り直す 委譲の可否を判断するのは 認可サーバー
② 集約推論(aggregation inference) 対策 A ️ B A ↘️ ↙ Agent ↓ C 単体では無害な A と B が、 エージェントの中で結合して C になる。 ️ B ↘️ ↙ Agent ↓ 導けない 検知は原理的に不可能。 範囲を絞って、組み合わせても安全なデータだけ置く
③ 時間的有効性(temporal validity) t0 ────────────→ tn ここで1回だけ評価 その間に権限が変わる t0 ──●──●──●───● tn Cedar は、毎回評価(access-time)している。 ただ、トークンを時間ではなく、回数 で更新すべき。 (TTL を短くしても、速度が上がれば追いつかない) 人間 t0 ──●──●──●───● tn 15分で数回だけ Agent t0●●●●●●●●●●●● tn 15分で数千回も呼ぶ
境界だけは守れた。その先は・・? OK 認証:誰か AgentCore Identity 認可:何をしてよいか Policy in AgentCore これから 推移的委譲(transitive delegation) →境界ごとに認可サーバーでトークンを作り直す 集約推論(aggregation inference) →組み合わせても安全なデータしか置かない 時間的有効性(temporal validity) →トークンを時間ではなく、回数で更新する
ご清聴ありがとうございました