Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
【AWS Dogwood入門】手元で動かしてみた
Search
赤神青空
August 23, 2026
Programming
7
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
【AWS Dogwood入門】手元で動かしてみた
赤神青空
August 23, 2026
More Decks by 赤神青空
See All by 赤神青空
【AWS Dogwood入門】イベントと演算子
akagami
0
11
【AWS Dogwood入門】Dogwoodって何?
akagami
0
9
AWSのデータの選び方
akagami
0
18
Auroraは速いRDSではない
akagami
0
43
MySQLとPostgreSQLって何が違うの?
akagami
0
120
第何正規形かを判定する
akagami
0
29
なぜ正規化するのか
akagami
0
31
1NFから3NF
akagami
0
27
3NFの先にあるもの
akagami
0
24
Other Decks in Programming
See All in Programming
片田舎のおっさん、 Swift Buildのダイアモンド問題解決の不具合修正PRを出すが、解決方法がキャッシュをしないようにすることであり、ビルド時間が伸びると言われてマージされないので高速化もする/swiftbuild
yimajo
0
220
ソフトウェアラスタライザ
fadis
1
210
Go 1.27 における memory allocation の高速化
andpad
0
290
「寝てても仕事が進む」Claude Codeで組む第二の脳
tomoyafujita2016
0
350
仕様書を書く前にハーネスを作る - Agent Native開発は「探索を速く、判定を固く」
gotalab555
4
1.7k
Pythonの実行はどこまで賢くなったのか? CPythonとPyPyから見る最適化のしくみ
curekoshimizu
3
1k
Building a Meta Ray-Ban display app
akkeylab
0
170
Dockerfile CMD for Node.js
grazie1999
0
110
AI Readyの正体はデータマネジメントだ メダリオン2.0の最前線
freee
PRO
0
350
仕様駆動開発へのトライを機に チームに適合する手法を模索し続けている話
freee
PRO
0
590
170k Jobs a Day on GKE: Scaling Mercari's CI Platform - and What's Next for AI-Native Development
junyaokabe
0
120
全PRの83%がAIレビューだけでマージできるようになった開発組織はその後どうなったか
athug
1
1.9k
Featured
See All Featured
What's in a price? How to price your products and services
michaelherold
247
13k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.6k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
420
Building AI with AI
inesmontani
PRO
1
1.1k
Become a Pro
speakerdeck
PRO
31
6.2k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
HDC tutorial
michielstock
2
800
Accessibility Awareness
sabderemane
1
180
From π to Pie charts
rasagy
0
310
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
870
Transcript
2026年8月 手元で動かしてみた AWS Dogwood 入門③(全7回)── lower で中身を見る 赤神 青空
▪読めるようになったので、動かしてみる 前回までのおさらい 前回は書ける条件の範囲を、演算子まで見ました。 プリミティブ3つと標準マクロ4つで大体書ける ただし、読んだだけでは本当かどうか分からない 今回は参照実装のCLIで、実際に叩いてみます 今ココ おさらい 2/16
▪Rust 1.96.1 参照実装のCLI / dogwood 1.0.0 で確認 検証 再生 変換
生成 validate replay lower schema mcp 今ココ 手元で動かす 構文・型・スキーマを検査する 履歴を流して判定の変化を見る Cedar に落とした姿を見る tools/list からスキーマを作る 3/16
▪機密を読んだ後のメール送信を禁止する 題材:読んだ後は送るな 既定拒否かつ forbid 優先なので、全許可+例外禁止の2本立てで書けます。 dogwood // 基本すべて許可し、例外だけ禁じる permit (principal,
action, resource); @id("no_send_after_secret_read") forbid (principal, action == Agent::Action::"SendEmail", resource) when temporal { formerly within 24h Agent::Action::"ReadDocument"::response{ input.doc: "customer-secrets" } }; 今ココ 手元で動かす 4/16
▪流したのは7イベント。判定が出るのは5行 replay の出力 頭の @ は秒、隣の time point は何番目のイベントかの通し番号です。 console
$ dogwood replay policy.dw \ --policy-schema schema.cedarschema \ --trace trace.log @0 (time point 0): ALLOW @10 (time point 1): ALLOW [rules: 0] [rules: 0] @20 (time point 2): ALLOW @30 (time point 3): ALLOW [rules: 0] [rules: 0] @40 (time point 4): DENY [rules: 1] 今ココ 手元で動かす 5/16
▪ポリシーもリクエストも一字も変えていない 変えたのは履歴だけ 公開文書を挟めば通り、機密を挟むと止まる。 確かめられること しきい値の境界を机上で詰められる 確かめられないこと replay はイベントの真正性を見ない ツールも AWS
アカウントも要らずに、ここまで再現できます。 今ココ 手元で動かす 6/16
▪見よう見まねで書いたら動かなかった trace が最初は通らなかった 記事で見かけた形をそのまま書いても通らず、公式 examples 準拠で2つ足しました。 イベント行に足したもの request_context(input: { ...
}) を付ける requestId の指定 そこで学んだこと 記事の抜粋は、動くトレースの全体ではない リポジトリの examples が一番正確な仕様書になる dogwood --help の出力は最初に保存しておくとよい 今ココ 手元で動かす 7/16
▪この言語が中で何をしているか lower すると見える 書いたもの(Dogwood) 実際に評価されるもの(Cedar) forbid(..., action == "SendEmail", ...)
when temporal { lower forbid(..., action == "SendEmail", ...) when { formerly within 24h ... context.policy_1__temporal_0 }; }; 時相条件は、ただの真偽値のフィールド1つに置き換わる イベント履歴 request / response / error セッション単位で蓄積される Dogwood がやること 履歴から真偽を計算して context に詰めて渡す Cedar が判定する 評価エンジンは元のまま ALLOW / DENY やっていることは「アプリ側で集計して context に渡す」と同じ。置き場所が移った temporal を含まないポリシーが Cedar と同じ答えになるのも、評価している主体が同じだから 時相条件は Cedar の context フィールド1つに置き換わる 今ココ 手元で動かす 8/16
▪どの記事にも書かれていない挙動 連番が何を指すか temporal 節を持つポリシーを2本書いて lower すると、こうなりました。 dogwood @id("rule_a") forbid( ...
) when { context.policy_0__temporal_0 }; @id("rule_b") forbid( ... ) when { context.policy_1__temporal_0 }; 命名規則そのものは公式には未確認。「lower するとこうなる」までが言えること 今ココ 手元で動かす 9/16
▪「できなかったこと」が可能になったわけではない 移ったのは置き場所 Cedar でも、履歴を自前で集計して context に渡せば判定自体はできた。 これまで 記録・集計・相関をアプリに作り込 む これから
言語と実行基盤の側が引き受ける 効いてくるのは 条件分岐がレビューできる形になる こと 埋もれていたガードレールを、監査できるポリシーとして切り出せます。 今ココ 手元で動かす 10/16
▪validate演算子は全部通った だけを順に流した結果 OK OK OK NG NG プリミティブ3つ 標準マクロ4つ 生のMFOTL
AWS記事の生MFOTL eventResource 今ココ 手元で動かす formerly / previous / since count / distinct / sum / bind examples 準拠の形式なら通る そのままではパースエラー AgentCore 専用のフィールド 11/16
▪参照実装とマネージドで、書ける範囲が違う 通るものと通らないもの ◯ 参照実装で通る プリミティブ3つと標準マクロ4つ examples 準拠の生MFOTL schema mcp のスキーマ
素のCedar条件との混在 ✕ AgentCore 側の書式 eventResource フィールド AWSの記事のままの生MFOTL AgentCore::Action:: の名前空間 7つの型は手元では動かない 記事のコードを写して動かないとき、まず疑うのはどちら向けの例か。 今ココ 手元で動かす 12/16
▪同じ流れで、読み取りの結末だけを変えた error は response ではない 成功 失敗 無害 含意 読み取りが
response 読み取りが error 公開文書を読んだだけ DENY と error は別物 今ココ 手元で動かす 後続の送信は DENY 後続の送信は ALLOW 後続の送信は ALLOW DENY は request に付く判定 13/16
▪承認を0秒に置き、売却を1秒ずつ後ろへずらす(単位は秒) ちょうど1時間前は入るのか @3599 @3600 @3601 結論 1秒手前 ちょうど1時間 1秒だけ超過 within
は 3600秒を含む 今ココ 手元で動かす ALLOW ALLOW DENY ちょうど1時間前も条件に入る 14/16
▪実サーバーなし。JSON MCPマニフェストから 1つで一周できた 生成 検証 再生 含意 schema mcp validate
replay 手前で試せる 今ココ 手元で動かす Drupe::Action::"print_label" ができた そのまま通った 3回まで ALLOW、4回目で DENY ツール定義があれば書き始められる 15/16
▪この回の持ち帰り まとめ 01 AWSアカウントは要らない cargo build して CLI を叩くだけで、判定の変化まで見られます。 02
lower すると正体が見える 時相条件は Cedar の context フィールド1つに置き換わっていました。 03 参照実装とマネージドは書式が違う eventResource など、AgentCore 側にしかない記法があります。 今ココ おわりに 16/16