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
Amazon Verified PermissionsのWorkshopをやってみた
Search
Takahiro Tanaka
August 06, 2023
Technology
240
0
Share
Amazon Verified PermissionsのWorkshopをやってみた
Takahiro Tanaka
August 06, 2023
More Decks by Takahiro Tanaka
See All by Takahiro Tanaka
脅威モデリングをやってみた
ledsue
0
250
マネージドサービスで作る認証機能
ledsue
0
190
Other Decks in Technology
See All in Technology
AIはハッカーを減らすのか、増やすのか?──現役ホワイトハッカーから見るAI時代のリアル【MEGU-Meet】
cscengineer
PRO
0
210
Do Ruby::Box dream of Modular Monolith?
joker1007
1
360
20年前の「OSS革命」に学ぶ AI時代の生存戦略
samakada
0
490
Class.new is all you need
riseshia
1
180
20260428_Product Management Summit_Loglass_JoeHirose
loglassjoe
3
3.9k
目的ファーストのハーネス設計 ~ハーネスの変更容易性を高めるための優先順位~
gotalab555
8
2.4k
色を視る
yuzneri
0
120
AI와 협업하는 조직으로의 여정
arawn
0
520
AWS Transform CustomでIaCコードを自由自在に変換しよう
duelist2020jp
0
160
Route 53 Global Resolver で高額課金発生!
otanikohei2023
0
120
これからの「データマネジメント」の話をしよう
sansantech
PRO
0
150
Shipping AI Agents — Lessons from Production
vvatanabe
0
290
Featured
See All Featured
Building the Perfect Custom Keyboard
takai
2
740
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
0
280
Designing Powerful Visuals for Engaging Learning
tmiket
1
350
ラッコキーワード サービス紹介資料
rakko
1
3.1M
The SEO Collaboration Effect
kristinabergwall1
1
430
AI: The stuff that nobody shows you
jnunemaker
PRO
6
590
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.7k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
210
The Spectacular Lies of Maps
axbom
PRO
1
710
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
270
Typedesign – Prime Four
hannesfritz
42
3k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
180
Transcript
JAWS-UG 名古屋 Amazon Verified Permissions のWorkshopをやってみた 2023年8月5日
自己紹介 名前:田中 隆博(すえぞう) ついったー:@led_suezou Note:https://note.com/ledsue 仕事:ユーザ系IT子会社にてインフラ構築、運用を担当
好きなAWSサービス:EC2、CDK
はじめに 今日お話しすること Amazon Verified Permissions Workshopをやってみての気づき (https://catalog.workshops.aws/verified-permissions-in-action/en-US) 今日、お話しないこと
Amazon Verified Permissionsを使ってのアプリケーション開発の細かい点
まずAmazon Verified Permissionsについて Amazon Verified Permissions(以下、⾧いのでAVPと略します)は、アプリケーションが各種リソースに アクセスする際の認可部分を提供するサービス 公式ドキュメント的には
Amazon Cognitoなどの任意のidPと組み合わせて利用 権限の管理を外部化 動的でリアルタイムな権限判断
どうやって制御するのか? AVPでは、(IAMと用語が混ざりますが)ポリシーを使って権限を記述します。 ポリシーを記述するにはJSONによく似たCedarを使って記述をします。 ポリシーストア ポリシーA permit(principal, action, resource)
when { principal == resource.owner} ; ポリシーB permit( principal, action in [ TinyTodo::Action::”CreateList”], resource ); ポリシーでは、プリンシパル、アクション、リ ソースを定義することができます。 左の例では、ポリシーAはリソースのオーナであれ ば許可され、ポリシーBではCreateListアクションだ けが許可されるポリシーとなっています。
どうやって制御するのか? ポリシーには「静的ポリシー」と「テンプレートリンクポリシー」の2つがあります。 テンプレートリンクポリシーは、ポリシー内にプレイスホルダが設定できるポリシーで、動的にポリ シーを作成することが可能です。 注意事項 プレイスホルダに指定できる項目は「プリンシパル」と「リソース」の2つだけ
どうやってアプリ側から使うのか? Workshopで作成されたLambda「TinyTodoApiLambda」の中を見てみると ここで利用しているpermissions自体は、boto3でのpermissionsのAPI操作ラッピングしている permissions_check関数で task_listに対するアクセス 権限をチェック 作成しているポリシーストアとポリ シーテンプレートのIDを指定
どうやってアプリ側から使うのか? is_authorized関数を使って権限を チェックして結果を返却
is_authorized関数の中身は? boto3の公式ドキュメントだと パラメータに記述されたサービス要求について認可決定を行う。パラメータ内の情報は、Verified Permissions が評価に含めることができる追加のコンテキストを定義することもできます。リクエス トは指定されたポリシーストア内の全てのマッチするポリシーに対して評価される。判定結果は Allow か
Deny のどちらかであり、判定結果となったポリシーのリストも表示される。 (DeepL訳) https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/verifiedpermissions/client/is _authorized.html
まとめ AVP自体は、認可のチェックしかしないから、別途IAMの設定は必要… 複雑なアクセス制御じゃなければ、Condition句にcognitoのuser_id指定してやればいいんじゃないか?、 という思いもやってみて思う。
参考資料 Boto3のVerified Permissionsに関するリファレンス https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/verifiedpermissions.html Verified Permissionsユーザガイド
https://docs.aws.amazon.com/verifiedpermissions/latest/userguide/what-is-avp.html JAWS-UG 名古屋で発表したCaderの資料 https://speakerdeck.com/ledsue/whatsthecedar