很高興可以在 Mopconf 分享 Open Policy Agent。本議程最主要是跟大家初步分享 OPA 的概念,我們團隊如何將 OPA 導入系統架構,及分享如何設計 RBAC 及 IAM Role 架構,底下是這次預計會分享的內容:
- Why do we need a Policy Engine?
- Why do we choose Open Policy Agent?
- Workflow with Open Policy Agent?
- What is Policy Language (Rego)?
- RBAC and IAM Role Design
- Three ways to deploy an Open Policy Agent.
可以參考另外兩篇介紹
如果可以的話,大家可以給我一些回饋,請填寫會後問卷
投影片
現場提問
底下是在 Youtube 直播時候,大家的討論,相當熱烈
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
| Yu-Ting Lin: 我第一次知道 Policy Agent ,我之前都自幹Orz
SiegeLeo: 自幹+1 但多層級權限繼承不好搞
Bo-Yi Wu: 看情境,有些簡易的系統,也沒在用這套,我用這套目的是因為 Group 權限太複雜,加上要串其他系統
Bo-Yi Wu: 另外我也推薦 https://github.com/casbin/casbin
kevin31408: 權限系統不是應該是
kevin31408: 每個都不一樣?
Bo-Yi Wu: 每個都不一樣?
MOPCON: 有問題歡迎到 Slido 提問:https://app.sli.do/event/8dj78nnl 呦~
kevin31408: 就是每個專案不一樣
kevin31408: 應該這樣說
Bo-Yi Wu: 如果有用了 OPA,幾本上就是透過此 Service
Bo-Yi Wu: 用 OPA 掛在整個 RESTful 或 GraphlQL 前面的 Middleware
kevin31408: 所以這個service就可以通用?
Bo-Yi Wu: 你想像他可以寫成一個簡易的 Restful API Service
Bo-Yi Wu: 你可以把 input + data 丟給 OPA API,回傳 Ture 或 False
J Cyuan: 感覺 是開個接口 給各個不同需求去實作 驗證和資料面 其他架構 用OPA 不知道這樣理解正確嗎?
Bo-Yi Wu: 你可以把 OPA 想成他就是專門做權限驗證的 API Service,其他 service 就是把 Input + Data 丟給 OPA,他會根據你的 input + data 來決定此 input 是否可以通過權限
李冠廷: 目前碰到的權限管理都是 case by case
Bo-Yi Wu: 不一定每一種情境都需要用到 OPA,而是把一些共同的權限,或較複雜的權限控管,交由 OPA 進行 Policy 的設計,可以減少你在服務內撰寫權限的邏輯。
李冠廷: 最麻煩的還是在建立權限邏輯的部分,這邊就像是 Policy Rule
Bo-Yi Wu: 是的,你用 OPA Policy Rule 可以減少你在跨平台的權限控管
Bo-Yi Wu: 就像你的服務有 Node.js 或 Golang,但是需要共同的權限控管判斷機制,那不可能兩邊都開發一次吧?這時候 OPA 這服務就很重要
李冠廷: 恩恩,沒錯
陳少康: Testing 應該算獨立對吧
Bo-Yi Wu: 包康可看一下 https://github.com/go-training/opa-demo
kevin31408: 講的很棒
SiegeLeo: 每call一次restful api 就把要一大包{input, user_data} 餵給 OPA 確認嗎?
陳少康: washhands
SiegeLeo: yougotthis
SiegeLeo: 謝謝講者分享
Mick Hsieh: 謝謝分享
MOPCON: 感謝大家的參與,Bo-Yi Wu 的 初探 Open Policy Agent 實作權限控管 議程即將結束。歡迎到 Discord Q&A 區跟講者繼續交流 🙌🏼Discord:https://discord.gg/6ykDqsmBVt頻道名稱:R3 Q&A 區也別忘了幫我們填寫議程問卷,抽小禮物唷!👉 議程問卷:https://forms.gle/qeZE9ir8ByqxrNtu9
Jessie Cheng: 謝謝分享
Bo-Yi Wu: input 通常不會很大包,如果是 Data 先過濾,在餵給 OPA 這樣比較適合
Bo-Yi Wu: 這樣說好了,平常我們在實作權限,也都是要整理 input + data,而中間的邏輯判斷部分,就是抽出來雪成 police rule。
|
實作範例
See also