<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
    <channel>
        <title>Rebac - Tag - SNOWMERAK</title>
        <link>https://snowmerak.pages.dev/tags/rebac/</link>
        <description>Rebac - Tag - SNOWMERAK</description>
        <generator>Hugo -- gohugo.io</generator><language>ko-kr</language><lastBuildDate>Sat, 04 Jul 2026 16:45:20 &#43;0900</lastBuildDate><atom:link href="https://snowmerak.pages.dev/tags/rebac/" rel="self" type="application/rss+xml" /><item>
    <title>Opinionated Zanzibar</title>
    <link>https://snowmerak.pages.dev/posts/058_rebac/</link>
    <pubDate>Sat, 04 Jul 2026 16:45:20 &#43;0900</pubDate>
    <author>snowmerak</author>
    <guid>https://snowmerak.pages.dev/posts/058_rebac/</guid>
    <description><![CDATA[<h2 id="zanzibar">Zanzibar</h2>
<h3 id="개요">개요</h3>
<p>Zanzibar(이하 잔지바)는 구글에서 실제 사용하고 있으며, 수년 전에 논문을 통해 공개된 권한 관리 시스템입니다. 잔지바는 주로 관계 튜플이란 것에 의해 권한 관계가 정의됩니다. 각각의 사용자, 권한 관계, 객체에 대해서 튜플 이용하여 아래와 같이 정의합니다.</p>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-">
        <span class="code-title"><i class="arrow fas fa-chevron-right fa-fw" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h fa-fw" aria-hidden="true"></i></span>
        <span class="copy" title="Copy to clipboard"><i class="far fa-copy fa-fw" aria-hidden="true"></i></span>
    </div><pre tabindex="0"><code>document:roadmap#owner@user:alice
document:roadmap#viewer@user:bob
document:roadmap#viewer@group:platform#member
group:platform#member@user:charlie</code></pre></div>
<p>읽는 것 자체는 쉽습니다.</p>
<ol>
<li><code>로드맵 문서에 대해서 앨리스라는 유저가 오너이다.</code></li>
<li><code>로드맵 문서에 대해서 밥이란 유저라 뷰어이다.</code></li>
<li><code>로드맵 문서에 대해서 플랫폼 그룹의 멤버는 뷰어이다.</code></li>
<li><code>유저 찰리가 그룹 플랫폼의 멤버이다.</code></li>
</ol>
<p>그리고 이 튜플들을 그래프 알고리즘으로 순회하여 로드맵 문서에 누가 데이터를 쓸 수 있는지, 누가 데이터를 읽을 수 있는 지 확인하여 권한을 확인합니다. 이 방식은 단순하고 강력합니다. 단지 규칙 조금을 추가함으로 새로운 유저나 객체, 권한 관계 등을 서술할 수 있습니다.</p>]]></description>
</item>
</channel>
</rss>
