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
45
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資格のニュース】SAP が SAP-C03 に変わります
akagami
PRO
0
2
【力学 #5】単振り子と小角近似
akagami
PRO
0
5
【AIニュース】Genie 4 とは何か
akagami
PRO
0
15
【基本情報対策】IPアドレスとサブネットマスク
akagami
PRO
0
15
GPT-6 Cyber とは何か
akagami
PRO
0
15
【AWSの新サービス】Amazon ECS Gateway とは何か
akagami
PRO
0
20
【力学 #4】単振動:ばねの運動方程式を解く
akagami
PRO
0
9
【力学 #4】単振動:ばねの運動方程式を解く
akagami
PRO
0
10
Cloudflare の AI で他人の会話が混ざった?
akagami
PRO
0
27
Other Decks in Programming
See All in Programming
動画プレイヤーはなぜカクつくのか 〜Flutterのレンダリングとネイティブの境界を解剖する〜
naruogram
0
330
全ての永続トークンを、生まれる前に消し去りたい!
sylph01
3
1.7k
AI Augmentation Techniques with Liberty
ivargrimstad
1
440
TS 7.0 で baseUrl が使えなくなった今、パスエイリアスをどうするか
bicstone
2
600
GraphQL の onError と Nullability のこれから
quramy
0
210
Goコンパイラを作ってGoをもっと理解する / Build a Go compiler to better understand Go
ikura_hamu
0
130
AIがコードを書いてくれる時代、我々は何を確かめるのか
yosuke_furukawa
PRO
13
5.9k
Будущее локальных LLM – Алексей Голобурдин, PythoNN
sobolevn
0
120
AWS CDKを理解するために公式の定義を深掘って解説してみる / Understanding AWS CDK by Digging into Its Official Definition
akihisaikeda
3
290
作れるエンジニアから、価値を届けるエンジニアへ
ryunakayama
1
260
Enforcing Your Architecture with Unit Tests in the AI Era (Swift Connection X)
steliosf
PRO
1
170
作れる、でも消せるか?──安全に「枯らして消す」機能削除術 / Drain, Then Delete
chobishiba
3
1.5k
Featured
See All Featured
KATA
mclloyd
PRO
35
16k
Un-Boring Meetings
codingconduct
0
490
Code Review Best Practice
trishagee
74
20k
The untapped power of vector embeddings
frankvandijk
2
2k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
50
10k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
Into the Great Unknown - MozCon
thekraken
41
2.8k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
680
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
203
77k
ラッコキーワード サービス紹介資料
rakko
5
5.8M
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
760
Visualization
eitanlees
153
17k
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