$30 off During Our Annual Pro Sale. View Details »
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
200
マネージドサービスで作る認証機能
ledsue
0
180
Other Decks in Technology
See All in Technology
直接メモリアクセス
koba789
0
140
なぜ使われないのか?──定量×定性で見極める本当のボトルネック
kakehashi
PRO
1
810
HIG学習用スライド
yuukiw00w
0
110
Data Hubグループ 紹介資料
sansan33
PRO
0
2.3k
.NET 10 のパフォーマンス改善
nenonaninu
2
4.8k
Bill One 開発エンジニア 紹介資料
sansan33
PRO
4
16k
バグハンター視点によるサプライチェーンの脆弱性
scgajge12
2
510
法人支出管理領域におけるソフトウェアアーキテクチャに基づいたテスト戦略の実践
ogugu9
1
140
プロダクトマネジメントの分業が生む「デリバリーの渋滞」を解消するTPMの越境
recruitengineers
PRO
3
460
Introduction to Sansan, inc / Sansan Global Development Center, Inc.
sansan33
PRO
0
2.9k
その設計、 本当に価値を生んでますか?
shimomura
3
190
All About Sansan – for New Global Engineers
sansan33
PRO
1
1.3k
Featured
See All Featured
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.2k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.1k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Site-Speed That Sticks
csswizardry
13
990
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.8k
How STYLIGHT went responsive
nonsquared
100
5.9k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
A designer walks into a library…
pauljervisheath
210
24k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.3k
How to Think Like a Performance Engineer
csswizardry
28
2.3k
Java REST API Framework Comparison - PWX 2021
mraible
34
9k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
960
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