본문으로 건너뛰기

Casbin의 슈퍼 관리자: 정책 검사 우회

슈퍼 관리자는 무엇인가요?​

Super Admin(예: root)은 일반적인 정책을 우회하고 항상 허용(allow)을 받는 주체(subject)입니다. r.sub == "root"와 같은 조건을 matcher에 추가하여 구현합니다. 예시:

[request_definition]
r = sub, obj, act

[policy_definition]
p = sub, obj, act

[policy_effect]
e = some(where (p.eft == allow))

[matchers]
m = r.sub == p.sub && r.obj == p.obj && r.act == p.act || r.sub == "root"

matcher는 요청이 (1) 정책 규칙과 일치하거나 (2) r.sub == "root"인 경우 허용합니다. 따라서 root는 절대 거부(deny)되지 않습니다. RBAC, ABAC 또는 도메인 포함 RBAC에서도 동일한 패턴이 적용됩니다: matcher에 || r.sub == "root"(또는 사용자 정의 슈퍼유저 이름)를 추가하십시오.

FAQ​

Casbin에서 슈퍼 관리자를 어떻게 만드나요? 위와 같이 matcher에 대안으로 r.sub == "root"(또는 자체 사용자 이름)를 추가하십시오. 이 검사는 정책 조회 전에 실행되므로, 슈퍼 관리자는 정책 행(policy rows)이 필요하지 않습니다.

슈퍼 관리자가 관리자 역할(admin role)과 같은가요? 아닙니다. 관리자 역할은 권한을 가진 일반 역할이며 다른 역할과 마찬가지로 감사(audit)되거나 제거될 수 있습니다. 반면 슈퍼 관리자는 정책을 완전히 우회하므로, 하나의 계정으로만 유지하고 MFA로 보호해야 합니다.

도메인이 포함된 RBAC(RBAC with domains)에서도 작동하나요? 예. 동일한 조건을 matcher에 추가하면 됩니다. 이는 역할 또는 도메인 검사와 독립적으로 작동합니다.

Comments are powered by giscus and GitHub Discussions. They load from giscus.app and GitHub only after you click the button below.