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 23, 2026
Video
Programming
45
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
【AWS Dogwood入門】手元で動かしてみた
赤神青空
PRO
August 23, 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
AI時代のFlutter品質設計 — アプリ品質を守るQuality Layers
omatty198
0
370
Kawaiicon: Kubernetes, it's no longer cool, but let's secure it anyway!
barnbarn
0
130
Railsのためのパスキー実践入門 〜マルチテナントSaaSでの意思決定〜
utakaha
4
3.8k
SODA - FACT BOOK(JP)
sodainc
1
40k
Goコンパイラを作ってGoをもっと理解する / Build a Go compiler to better understand Go
ikura_hamu
0
130
Будущее локальных LLM – Алексей Голобурдин, PythoNN
sobolevn
0
120
そのデザイントークン、Flutterでも同じ見た目になりますか?
nakamizu
0
330
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
240
TanStack Vue Query と Pinia Colada から学ぶ非同期状態の型設計
aoshi
0
650
全ての永続トークンを、生まれる前に消し去りたい!
sylph01
3
1.7k
Python Lambdaにおけるテストしやすい設計とAI支援の活用 / Designing Testable Python Lambda Functions with AI
kitano_yuichi
1
310
AI時代のTerminal環境を UNIX哲学で設計・運用する
yasunori0418
1
350
Featured
See All Featured
The Invisible Side of Design
smashingmag
301
52k
Thoughts on Productivity
jonyablonski
76
5.5k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
560
The SEO identity crisis: Don't let AI make you average
varn
0
630
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
470
Highjacked: Video Game Concept Design
rkendrick25
PRO
2
560
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Exploring anti-patterns in Rails
aemeredith
4
560
BBQ
matthewcrist
90
10k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
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