7. 9 User Role Permission Matrix
9 role × initiate / approve / sign / MPC 키 보유 + 라벨 vocabularyFireblocks 의 9 user role 은 4 가지 권한 동사 (initiate / approve / sign / participate in admin quorum) 와 5 가지 라벨 (Q / Q+O / AG / NS / TL) 로 매트릭스 정의.
9 Role 정의
| Role | MPC 키 | initiate | approve | sign | 특기사항 |
|---|---|---|---|---|---|
| Owner | Y | Y | Y | Y | workspace 당 1명, Fireblocks Support 로만 임명, MPC key provisioning 단독 권한 |
| Admin | Y | Y | Y | Y | Signer + 네트워크/whitelist/settings 관리 |
| Non-Signing Admin | N | Y (NS) | Y | N | 승인·관리 작업, designated signer 흐름의 initiator / second authorizer |
| Signer | Y | Y | Y | Y | API Co-signer + Callback Handler 로도 동작 가능 |
| Approver | N | Y | Y | N | sign 불가, second authorizer 후보 |
| Editor | N | Y (NS) | N | N | view + wallet 추가 (ALGO 토큰 제외) + cancel |
| Viewer | N | N | N | N | read-only |
| Security Auditor | N | N | N | N | Settings / Policies / FSPM 포함 read-only |
| Security Admin | N | N | N | N | user / 2FA / IP allowlist / FSPM 관리, Admin Quorum 참여 |
5 라벨 Vocabulary
| 라벨 | 의미 | 적용 예 |
|---|---|---|
| Q | Admin Quorum 승인 필요 | Add user, Re-enroll device |
| Q+O | Admin Quorum + Owner 둘 다 필요 | Policy 변경, Admin Quorum 변경 |
| AG | Approval group 이 Owner 를 요구하지 않는 경우에만 | Delete users 위임 |
| NS | Policy 에 designated signer 가 지정된 경우 | NSA / Editor 가 internal exchange transfer 외 tx initiate |
| TL | Algorand / Ripple / Solana / Stellar 토큰 wallet 생성 불가 | NSA / Approver / Editor |
DB Schema
-- 권한 매트릭스를 정적 lookup 으로 둠
CREATE TABLE roles (
id VARCHAR(32) PRIMARY KEY, -- 'owner', 'admin', 'nsa', 'signer', ...
name VARCHAR(64) NOT NULL,
holds_mpc_key BOOLEAN NOT NULL,
can_initiate BOOLEAN NOT NULL,
can_approve BOOLEAN NOT NULL,
can_sign BOOLEAN NOT NULL,
can_participate_in_admin_quorum BOOLEAN NOT NULL
);
CREATE TABLE role_permissions (
role_id VARCHAR(32) NOT NULL,
action VARCHAR(64) NOT NULL, -- 'add_user', 'change_policy', 'delete_user', ...
label ENUM('Y', 'Q', 'Q+O', 'AG', 'NS', 'TL', 'N') NOT NULL,
PRIMARY KEY (role_id, action),
FOREIGN KEY (role_id) REFERENCES roles(id)
);
Owner 의 특수성
- 임명: Fireblocks Support 영상 통화 신원 확인만
- Provision MPC signing keys 권한 단독
- Workspace 당 1명 unique — DB UNIQUE constraint
- Transfer Owner: Console 자체로 불가, Support 경유. 부재 시 Board resolution + stakeholder quorum 으로 지명
- 2FA reset / device 재등록 / role transfer 모두 Fireblocks Support 영상 통화 필수
NSA / Editor 의 Designated Signer 패턴
MPC 키 없음에도 Policy 가 designated signer 를 지정한 트랜잭션 타입에서 initiate 가능. internal exchange transfer 제외 — 이 분기는 9. Policy / TAP 참조.