<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Open Policy Agent on 小惡魔 - AppleBOY</title><link>https://blog.wu-boy.com/tags/open-policy-agent/</link><description>Recent content in Open Policy Agent on 小惡魔 - AppleBOY</description><generator>Hugo</generator><language>en-us</language><managingEditor>appleboy.tw@gmail.com (Appleboy)</managingEditor><webMaster>appleboy.tw@gmail.com (Appleboy)</webMaster><lastBuildDate>Sun, 24 Oct 2021 11:39:20 +0800</lastBuildDate><atom:link href="https://blog.wu-boy.com/tags/open-policy-agent/feed.xml" rel="self" type="application/rss+xml"/><item><title>Introduction to Open Policy Agent 初探權限控管機制</title><link>https://blog.wu-boy.com/2021/10/introduction-to-open-police-agent-in-mopconf/</link><pubDate>Sun, 24 Oct 2021 11:39:20 +0800</pubDate><author>appleboy.tw@gmail.com (Appleboy)</author><guid>https://blog.wu-boy.com/2021/10/introduction-to-open-police-agent-in-mopconf/</guid><description>&lt;p&gt;&lt;img src="https://lh3.googleusercontent.com/qLGheyjm3eVL-TRP_MT1X9j2QrNrtIIAlVPmLbvNGWcLkqfUTpH87D2GCzYmce8eU88oMF-82lSqT6DwOByPWEKVZP4nGWT-IZFDvpVwnil2AeXZaYxZN5J33IpfsYfP6mljV3S51R4=w1920-h1080" alt="logo"&gt;&lt;/p&gt;
&lt;p&gt;很高興可以在 &lt;a href="https://mopcon.org/2021/"&gt;Mopconf&lt;/a&gt; 分享 &lt;a href="https://www.openpolicyagent.org/"&gt;Open Policy Agent&lt;/a&gt;。本議程最主要是跟大家初步分享 OPA 的概念，我們團隊如何將 OPA 導入系統架構，及分享如何設計 RBAC 及 &lt;a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html"&gt;IAM Role&lt;/a&gt; 架構，底下是這次預計會分享的內容:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Why do we need a Policy Engine?&lt;/li&gt;
&lt;li&gt;Why do we choose Open Policy Agent?&lt;/li&gt;
&lt;li&gt;Workflow with Open Policy Agent?&lt;/li&gt;
&lt;li&gt;What is Policy Language (Rego)?&lt;/li&gt;
&lt;li&gt;RBAC and IAM Role Design&lt;/li&gt;
&lt;li&gt;Three ways to deploy an Open Policy Agent.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;可以參考另外兩篇介紹&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://blog.wu-boy.com/2021/04/setup-rbac-role-based-access-control-using-open-policy-agent/"&gt;初探 Open Policy Agent 實作 RBAC (Role-based access control) 權限控管&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.wu-boy.com/2021/05/comunicate-with-open-policy-agent-using-resful-api/"&gt;使用 RESTful API 串接 Open Policy Agent&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果可以的話，大家可以給我一些回饋，請填寫&lt;a href="https://docs.google.com/forms/d/e/1FAIpQLSfRuK40O1j5KIPHt6RQyY3Au77bW91kgGIEGOrNxsjxHUSwgA/viewform"&gt;會後問卷&lt;/a&gt;&lt;/p&gt;</description></item><item><title>使用 RESTful API 串接 Open Policy Agent</title><link>https://blog.wu-boy.com/2021/05/comunicate-with-open-policy-agent-using-resful-api/</link><pubDate>Tue, 04 May 2021 02:14:12 +0000</pubDate><author>appleboy.tw@gmail.com (Appleboy)</author><guid>https://blog.wu-boy.com/2021/05/comunicate-with-open-policy-agent-using-resful-api/</guid><description>&lt;p&gt;&lt;a href="https://lh3.googleusercontent.com/qLGheyjm3eVL-TRP_MT1X9j2QrNrtIIAlVPmLbvNGWcLkqfUTpH87D2GCzYmce8eU88oMF-82lSqT6DwOByPWEKVZP4nGWT-IZFDvpVwnil2AeXZaYxZN5J33IpfsYfP6mljV3S51R4=w1920-h1080" title="Open Policy Agent"&gt;&lt;img src="https://lh3.googleusercontent.com/qLGheyjm3eVL-TRP_MT1X9j2QrNrtIIAlVPmLbvNGWcLkqfUTpH87D2GCzYmce8eU88oMF-82lSqT6DwOByPWEKVZP4nGWT-IZFDvpVwnil2AeXZaYxZN5J33IpfsYfP6mljV3S51R4=w1920-h1080" alt="Open Policy Agent" title="Open Policy Agent"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;上一篇『&lt;a href="https://blog.wu-boy.com/2021/04/setup-rbac-role-based-access-control-using-open-policy-agent/"&gt;初探 Open Policy Agent 實作 RBAC (Role-based access control) 權限控管&lt;/a&gt;』介紹了如何透過 &lt;a href="https://golang.org"&gt;Go 語言&lt;/a&gt;直接嵌入 Open Policy Agent (簡稱 OPA)設定檔，並透過 Go 套件直接查詢使用者權限。由於目前 OPA 只有支援三種模式串接各種不同的 Application，一種是透過 Go 語言直接整合，詳細請看上一篇教學，另一種是透過 RESTful API，也就是本篇的教學，最後一種是透過 &lt;a href="https://webassembly.org/"&gt;WebAssembly&lt;/a&gt; 讓其他 application 可以直接讀取。之後有機會再來寫 WebAssembly 教學。而本篇將帶您了解如何透過 RESTful API 方式來完成 &lt;a href="https://en.wikipedia.org/wiki/Role-based_access_control"&gt;RBAC 權限控管&lt;/a&gt;，其實我比較期待支援 &lt;a href="https://grpc.io/"&gt;gRPC&lt;/a&gt; 模式，但是看到這篇 &lt;a href="https://github.com/open-policy-agent/opa/issues/841"&gt;issue 提到&lt;/a&gt;，OPA 現在已經支援 Plugin 模式，大家想擴充的，可以自行處理。&lt;/p&gt;</description></item><item><title>初探 Open Policy Agent 實作 RBAC (Role-based access control) 權限控管</title><link>https://blog.wu-boy.com/2021/04/setup-rbac-role-based-access-control-using-open-policy-agent/</link><pubDate>Sun, 18 Apr 2021 07:24:13 +0000</pubDate><author>appleboy.tw@gmail.com (Appleboy)</author><guid>https://blog.wu-boy.com/2021/04/setup-rbac-role-based-access-control-using-open-policy-agent/</guid><description>&lt;p&gt;&lt;a href="https://lh3.googleusercontent.com/qLGheyjm3eVL-TRP_MT1X9j2QrNrtIIAlVPmLbvNGWcLkqfUTpH87D2GCzYmce8eU88oMF-82lSqT6DwOByPWEKVZP4nGWT-IZFDvpVwnil2AeXZaYxZN5J33IpfsYfP6mljV3S51R4=w1920-h1080" title="Open Policy Agent"&gt;&lt;img src="https://lh3.googleusercontent.com/qLGheyjm3eVL-TRP_MT1X9j2QrNrtIIAlVPmLbvNGWcLkqfUTpH87D2GCzYmce8eU88oMF-82lSqT6DwOByPWEKVZP4nGWT-IZFDvpVwnil2AeXZaYxZN5J33IpfsYfP6mljV3S51R4=w1920-h1080" alt="Open Policy Agent" title="Open Policy Agent"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;最近公司內部多個專案都需要用到 &lt;a href="https://zh.wikipedia.org/wiki/%E4%BB%A5%E8%A7%92%E8%89%B2%E7%82%BA%E5%9F%BA%E7%A4%8E%E7%9A%84%E5%AD%98%E5%8F%96%E6%8E%A7%E5%88%B6"&gt;RBAC&lt;/a&gt; (Role-based access control) 權限控管，所以決定來找尋 Go 語言的解決方案及套件，在 Go 語言比較常聽到的就是 &lt;a href="https://casbin.org/"&gt;Casbin&lt;/a&gt;，大家眾所皆知，但是隨著專案變大，系統複雜性更高，希望未來可以打造一套可擴充性的權限機制，故網路上看到一篇 &lt;a href="https://gist.github.com/Wang-Kai/18fe4e662ef795805c14b1ec94932834"&gt;ladon vs casbin&lt;/a&gt; 的介紹文章，文章留言有中國開發者對於 Casbin 的一些看法，以及最後他推薦另一套 &lt;a href="https://www.cncf.io/"&gt;CNCF&lt;/a&gt; 的專案叫 &lt;a href="https://www.openpolicyagent.org/"&gt;Open Policy Agent&lt;/a&gt; 來實作權限控管機制。本篇直接來針對 Open Policy Agent 簡稱 (OPA) 來做介紹，並且用 Go 語言來驗證 RBAC 權限。底下是文章內其他開發者用過 Casbin 的感想&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;1.使用覺得ladon的質量更好，支持類ACL和RBAC的權限系統，跟亞馬遜AWS的IAM非常契合 2.casbin那些庫的質量真的是無力吐槽，都沒有經常測試的東西就往github發，UI也到處bug，全都是畢業生寫的一樣，試用便知 3.casbin這個項目不讓提問題，提問題就給你關閉，作者很涉別人提問題 4.這些確實是本人的經歷，大家慎重選擇吧&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;最後的推薦&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;強烈推薦CNCF今年畢業的策略引擎OPA（維護團隊主要是Google，微軟，Styra等），可以實現ABAC，RBAC，PBAC等各種權限模型，目前我們已經在生產環境中使用。 也是基於OPA實現的。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;本篇所使用的範例程式碼請從&lt;a href="https://github.com/go-training/opa-demo/tree/v0.0.1"&gt;這邊下載或觀看&lt;/a&gt;。&lt;/p&gt;</description></item></channel></rss>