Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
【AWS Dogwood入門】イベントと演算子
Search
赤神青空
PRO
August 22, 2026
Video
Programming
34
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
【AWS Dogwood入門】イベントと演算子
赤神青空
PRO
August 22, 2026
Video
More Decks by 赤神青空
See All by 赤神青空
【AWSのログ周りを整理する】第6回 選び方 ── 結局ど う決めるのか
akagami
PRO
0
6
【AWSのログ周りを整理する】第5回 調べる ── 貯めたログに問い合わせる
akagami
PRO
0
14
【AWSのログ周りを整理する】第4回 貯める ── コストの大半はここで 決まる
akagami
PRO
0
14
【AWSのログ周りを整理する】第3回 運ぶ ── 発生源と置き場のあいだ
akagami
PRO
0
11
【AWSのログ周りを整理する】第2回 出す ── ログはどこで生まれるか
akagami
PRO
0
19
【AWSのログ周りを整理する】全体像 ── 4段に分けて 位置づける
akagami
PRO
0
21
【ORM不要論の歴史】で、AIは新しい根拠なのか
akagami
PRO
0
32
【ORM不要論の歴史】反論と、噛み合わなさの正体
akagami
PRO
0
44
【ORM不要論の歴史】2026年の不要論は何を言っているのか
akagami
PRO
0
34
Other Decks in Programming
See All in Programming
AI に Inclusive UI を書かせよう — Design Rules Skill で Compose UI を作り直す
theoriatec2024
1
490
AIは賢い。でも実行環境は? CLIおじさんがAI時代に伝えたいこと ~ CLIおじさんがAI時代に伝えたいこと ~
curekoshimizu
1
240
一人だけ、Kiroが静止する日
hideg
0
110
App Storeの外へ──日本のiOSサイドローディング入門 for iOSDC Japan 2026
yuukiw00w
0
220
[GoCon2026] When Goroutines Are Not Enough: Runtime Locality in High-Throughput Go
takehaya
6
2.3k
Everything will be SERVERLESS — 信じて運用した10年の経験値 / Everything Will be Serverless — Lessons Learned from 10 Years of Operational Experience
seike460
PRO
1
110
フロントエンドUIフレームワークのこれまでとこれから
ssssota
5
2.8k
AGENTS.md Is Not Enough:Build Skills, Don't Download Them
lx_t
0
120
{ Android | Kotlin } Gradle Plugin in 2026
ryunen344
1
320
C#の現在地 進化の歴史と、AI時代の.NET Everywhere
neuecc
4
2.1k
Go × SIMDで高速化するベクトル検索 ~ルーフラインモデルでSIMDが効く境界を探れ! ~
po3rin
1
1.3k
JPUG勉強会 OSSデータベースの内部構造を理解しよう(第2回)
oga5
0
250
Featured
See All Featured
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
500
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
360
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
410
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.5k
Heart Work Chapter 1 - Part 1
lfama
PRO
10
36k
Unsuck your backbone
ammeep
672
58k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
280
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
BBQ
matthewcrist
89
10k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.9k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
67
58k
Transcript
2026年8月 イベントと演算子 AWS Dogwood 入門②(全7回)── 何を材料に、何が書けるのか 赤神 青空
▪概要から、言語の中身へ 前回までのおさらい 前回はDogwoodが何者かを通しで見ました。今回は中身です。 まず、条件の材料になるイベントの種類 次に、条件そのものの3つの系統 最後に、演算子をひと通り触ります 今ココ おさらい 2/16
▪ポリシーが参照できる「過去」の正体 何がイベントになるか イベントは3種類。判定を求められるのは request だけ ::request 呼び出しが投げられた時点 判定あり ::response 呼び出しが成功して返った時点
input.*, principal, resource input.* に加えて output.* 判定中のリクエスト⾃⾝も履歴に⼊る 「成功したもの」だけが⼊る ALLOW / DENY が返る 履歴のみ 判定は付かないが後続を変える ::error 呼び出しが失敗した時点 履歴のみ ゲートウェイ側∕ツール側のエラー ::response を参照する条件は error にはマッチしない アクションスキーマ = ポリシーが名前を呼べるツールの集合 MCP の tools/list マニフェストから、1ツール=1アクションで⽣成できる(dogwood schema mcp) ポリシーによる DENY は error ではない。DENY は request イベントに付く判定 失敗した呼び出しは error になり、response には残らない 今ココ Dogwoodとは 3/16
▪temporal条件は3系統ある だけが増えたわけではない 【1】現在のリクエストを見る/【2】過去のイベント列を見る Cedar temporal 素の点認可 履歴を条件にする when { }
when temporal 【3】外から事実を持ち込む 情報提供 例 判定材料を外から供給 現在時刻もここ 小さな関数を呼ぶ Guardrails・分類器 context.system.now も、この3つ目の系統として供給される 今ココ Dogwoodとは 4/16
▪窓の中で一度でも起きたか formerly ── 有無を見る 後ろ向きの演算子です。within 1h が遡る幅を決めます。 dogwood permit (principal,
action == AgentCore::Action::"SellShares", resource) when temporal { formerly within 1h AgentCore::Action::"ApproveSale"::response{ input.stock: context.input.stock, input.shares: context.input.shares, output.approved: true } }; 今ココ 演算子 5/16
▪承認は20分後に1回だけ下りている 同じ頼みが、後から落ちる 条件:直近1時間に、同じ銘柄‧同じ株数の承認があること 承認が下りた(20分後) ここで売却を頼む 窓の中に承認がある 30分後の売却が⾒る「直近1時間」 ALLOW 承認はもう、この窓に⼊らない リクエストの中⾝は、上とまったく同じ
DENY 120分後の売却が⾒る「直近1時間」 (開始前) 0分 30分 60分 90分 120分 窓は「何時から何時まで」ではなく「いまから1時間前まで」。判定のたびに測り直される だから、同じ内容のリクエストでも、遅れて来ると落ちる 窓が動くので、リクエストが同じでも答えが変わる 今ココ 演算子 6/16
▪temporal素のCedarと混ぜる は式なので when の中に置ける 「小口であること」かつ「承認があること」の両方を要求します。 dogwood permit (principal, action ==
AgentCore::Action::"SellShares", resource) when { context.input.shares <= 100 && temporal { formerly within 1h AgentCore::Action::"ApproveSale"::response{ input.stock: context.input.stock, output.approved: true } } }; 今ココ 演算子 7/16
▪レートリミットはこれで書く count_within ── 回数 _ はワイルドカードで、「金額は問わない」という意味になります。 dogwood forbid (principal, action
== AgentCore::Action::"Transfer", resource) when temporal { count_within(1h, AgentCore::Action::"Transfer"::request{ input.amount: _ }) > 5 }; 今ココ 演算子 8/16
▪件数ではなく、異なる値の個数を見る 種類を数える 「1時間に3人までしか送金先を増やせない」。同じ相手への2回は1と数えます。 dogwood forbid (principal, action == AgentCore::Action::"Transfer", resource)
when temporal { count_distinct_within(u, 1h, AgentCore::Action::"Transfer"::request{ input.user: u }) > 3 }; 今ココ 演算子 9/16
▪件数ではなく金額の総量に蓋をする sum_within ── 合計 「何回に分けようと、1時間で $5,000 まで」。a に各件の金額が束ねられます。 dogwood forbid
(principal, action == AgentCore::Action::"Transfer", resource) when temporal { sum_within(a, 1h, AgentCore::Action::"Transfer"::request{ input.amount: a }) > 5000 }; 今ココ 演算子 10/16
▪固定値ではなく、集計そのものと比べる bind ── 集計に名前 「直近の実績を突然上回る1件」だけを拒む、いわゆるスパイク検知です。 dogwood forbid (principal, action ==
AgentCore::Action::"Transfer", resource) when temporal { bind(prior, sum_within(a, 1h, AgentCore::Action::"Transfer"::response{ input.amount: a }), context.input.amount > prior) }; 今ココ 演算子 11/16
▪上3つが言語のプリミティブ、下4つが標準マクロ 演算子の早見表 有無 直前 継続 回数 種類 合計 変数 formerly
previous since count_within count_distinct sum_within bind 今ココ 演算子 窓の中で一度でも起きたか ひとつ前の時点を見る ある事象からの継続を見る 窓の中のイベント数 束ねた値の異なり数(_within) 束ねた値の合計 集計に名前を付けて比較する 12/16
▪3つの修飾が、そのまま書き味になっている MFOTL を名前で割る Metric First-Order Temporal Logic。後ろから読むと構造が見えます。 Temporal ── 「いつ」を式に書ける
formerly / previous / since がこれにあたる 未来を見る演算子は、まだ入っていない First-Order ── 値を変数で束ねられる sum_within の a や count_distinct_within の u 引数を条件に使えるのは、この性質のおかげ Metric ── 演算子に時間の幅が付く within 1h。窓の指定は省略できない 有界だから、有限の状態で監視を回せる 今ココ Dogwoodとは 13/16
▪認可の話であると同時に、形式手法の話でもある 実行時検証という文脈 土台は MFOTL(Metric First-Order Temporal Logic)です。 便利な演算子はプリミティブではない count /
sum / bind は標準ライブラリのマクロ 素の MFOTL も直接書ける runtime verification という分野に由来する 動いている系を、仕様と突き合わせ続ける営み 認可を置き換えるのではなく一般化している 著者に Aurora DSQL を率いた Marc Brooker が入っている 今ココ Dogwoodとは 14/16
▪Cedar を拡張しなかったことの説明 新言語にした理由 時相条件は、Cedar が提供する自動推論の解析ツールを今のところ使えない。 — AWS Open Source Blog(要旨)
今ココ Dogwoodとは 15/16
▪この回の持ち帰り まとめ 01 材料はイベント3種 判定を受けるのは request だけ。あとの2つは履歴に残ります。 02 プリミティブ3つとマクロ4つ formerly・previous・since
が土台。count 等はその上。 03 素のCedarと混ぜられる temporal は式なので、ふつうの when の中に置けます。 今ココ おわりに 16/16