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
0
230
Amazon Verified PermissionsのWorkshopをやってみた
Takahiro Tanaka
August 06, 2023
Tweet
Share
More Decks by Takahiro Tanaka
See All by Takahiro Tanaka
脅威モデリングをやってみた
ledsue
0
190
マネージドサービスで作る認証機能
ledsue
0
180
Other Decks in Technology
See All in Technology
リセラー企業のテクサポ担当が考える、生成 AI 時代のトラブルシュート 2025
kazzpapa3
1
160
速習AGENTS.md:5分で精度を上げる "3ブロック" テンプレ
ismk
6
1.1k
プロダクトのコードから見るGoによるデザインパターンの実践 #go_night_talk
bengo4com
1
2.4k
能登半島地震で見えた災害対応の課題と組織変革の重要性
ditccsugii
0
660
Adapty_東京AI祭ハッカソン2025ピッチスライド
shinoyamada
0
280
GoでもGUIアプリを作りたい!
kworkdev
PRO
0
140
やる気のない自分との向き合い方/How to Deal with Your Unmotivated Self
sanogemaru
0
490
【Kaigi on Rails 事後勉強会LT】MeはどうしてGirlsに? 私とRubyを繋いだRail(s)
joyfrommasara
0
240
これがLambdaレス時代のChatOpsだ!実例で学ぶAmazon Q Developerカスタムアクション活用法
iwamot
PRO
6
1k
Exadata Database Service on Dedicated Infrastructure(ExaDB-D) UI スクリーン・キャプチャ集
oracle4engineer
PRO
3
5.5k
スタートアップにおけるこれからの「データ整備」
shomaekawa
2
420
"プロポーザルってなんか怖そう"という境界を超えてみた@TSUDOI by giftee Tech #1
shilo113
0
180
Featured
See All Featured
Optimising Largest Contentful Paint
csswizardry
37
3.4k
A Tale of Four Properties
chriscoyier
161
23k
Thoughts on Productivity
jonyablonski
70
4.9k
Making Projects Easy
brettharned
119
6.4k
How to Think Like a Performance Engineer
csswizardry
27
2k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.2k
RailsConf 2023
tenderlove
30
1.2k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Building an army of robots
kneath
306
46k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
Gamification - CAS2011
davidbonilla
81
5.5k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
45
2.5k
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