Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/arbazkhan971/godmode --skill rbac명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SOC 직업 분류 기준
SKILL.md 표시 중
| name | rbac |
| description | Permission and access control (RBAC/ABAC/ReBAC). |
/godmode:rbac, "permissions", "access control"App type: monolith|microservices|multi-tenant SaaS
Complexity:
Simple roles (admin/user/viewer) -> RBAC
Dynamic attributes (time/location) -> ABAC
Resource relationships (owner/member) -> ReBAC
Combination -> Hybrid
# Detect existing auth/authz
grep -rl "role\|permission\|authorize\|can\?" \
--include="*.ts" --include="*.rb" --include="*.py" src/
RBAC (Role-Based):
Role hierarchy:
super_admin -> org_admin -> team_admin -> member
Permissions: create|read|update|delete per resource
Role-permission mapping table
IF roles < 10 and stable: pure RBAC is sufficient.
ABAC (Attribute-Based):
Policy: (Subject, Resource, Action, Environment) -> PERMIT|DENY
Subject: user.role, user.department, user.clearance
Resource: resource.owner, resource.classification
Environment: time, IP, MFA status
IF decisions depend on context (time, location): ABAC.
ReBAC (Relationship-Based):
Tuples: user:alice has owner on document:doc1
Inheritance: owner implies editor implies viewer
Tools: OpenFGA, SpiceDB, Ory Keto
IF Google Docs-style sharing model: ReBAC.
Strict (tree): each role has one parent
Lattice (DAG): roles can have multiple parents
Scoped: roles apply within scope (org/team/project)
IF > 20 roles: audit for overlap and consolidate. IF unused permissions for 90+ days: flag as excessive.
Every resource has:
owner_id (full control)
tenant_id (isolation boundary)
visibility: private|team|organization|public
Evaluation chain:
1. Owner? -> ALLOW
2. Super admin? -> ALLOW (audit logged)
3. Explicit permission? -> Check
4. Role-based? -> Check hierarchy
5. ABAC policy? -> Evaluate
6. Default: DENY
function evaluate(subject, resource, action, context):
denials = findMatchingPolicies(DENY, ...)
IF denials.length > 0: return DENY
allows = findMatchingPolicies(ALLOW, ...)
IF allows.length > 0: return ALLOW
return DENY # default deny
LOG every decision (ALLOW and DENY) with full context.
Every authorization decision logged:
timestamp, subject, resource, action,
decision (allow/deny), policy_id, reason
Storage: append-only or write-once
Retention: minimum 1 year for compliance
IF audit log not append-only: security risk. IF no audit log: MUST implement before launch.
Append .godmode/rbac-decisions.tsv:
timestamp model roles permissions resources audit verdict
KEEP if: permission checks pass AND no escalation
AND audit captures allow/deny.
DISCARD if: unauthorized access possible OR
audit broken OR permissions regressed.
STOP when FIRST of:
- All resources have permission mappings
- Default deny enforced every endpoint
- Audit logging covers all decisions
On failure: git reset --hard HEAD~1. Never pause.
| Failure | Action |
|---|---|
| Legitimate request denied | Check audit log, verify hierarchy |
| Escalation possible | Fix policy, test both directions |
| Missing audit entries | Verify middleware, check async flush |