Role a oprávnění (RBAC)¶
MazeVault řízení přístupu na základě rolí — Role, oprávnění a doménová separace
Verze dokumentu: 2.1.0
Poslední aktualizace: 2026-04-19
1. Přehled¶
MazeVault používá systém řízení přístupu na základě rolí (RBAC) pro správu uživatelských oprávnění. Každému uživateli je přiřazena jedna nebo více rolí, které určují, co může v systému vidět a dělat.
Klíčové principy:
- Princip nejmenších oprávnění — Uživatelé dostávají pouze oprávnění, která potřebují
- Doménová separace — Certificate Manager nemá přístup k secrets; Secret Manager nemá přístup k certifikátům
- Prostředí (Environment Scoping) — Roli lze přiřadit pro jedno prostředí (dev, staging, prod), jeden projekt nebo jednu organizaci. Takové přiřazení platí jen tam, ať se uživatel přihlásí jakkoli (webové rozhraní, API token, JWT). Projekt požadavku je ten, který jmenuje jeho cesta (
/projects/{id}), nebo ten, kterému patří zdroj, který jmenuje (secret, i archivovaný, certifikát, žádost o schválení nebo politika schvalování, integrace projektu, synchronizační pravidlo nebo konflikt, skupina nebo varování konzistence).project_idv dotazu nebo v JSON těle je projektem požadavku jen na cestách, které s tímto projektem pracují: čtení secretu podle projektu a klíče (GET /api/v1/secrets/,GET /api/v2/secrets), vytvoření secretu (POST /api/v1/secrets/,POST /api/v2/secrets), porovnání prostředí (POST /api/v2/secrets/compare), detekce driftu (POST /api/v1/secrets/drift/detect) a skupiny konzistence projektu (GET /api/v1/consistency-groups). Na všech ostatních cestách rozsahem není a hodnota odlišná od projektu cesty se odmítne, ať má tělo jakýkoli Content-Type: kontrola čte tělo stejně jako cesta (první JSON hodnotu, klíče v libovolné velikosti písmen),project_idneboorganization_id, které nejsou řetězcem, bere jako projekt či organizaci, kde nikdo nemá omezenou roli, a zapisující tělo nad 16 MiB odmítne kódem 413 (až po ověření, že volající oprávnění vůbec má). UPUT /api/v1/certificates/{id}aPUT /api/v1/rotation/templates/{id}poleproject_idv těle zdroj přesouvá: oprávnění musí platit v jeho projektu i v cílovém projektu. Úprava synchronizačního pravidla, politiky schvalování nebo konfigurační šablony nikdy nemění jejich projekt ani organizaci a synchronizační pravidlo přijme jen integraci vlastního projektu. Přiřazení omezené na projekt se nepočítá pro požadavek bez projektu, takže správa uživatelů, rolí, organizace a jejích nastavení nebo vytváření projektů vyžaduje roli přiřazenou bez projektu. Relace webového rozhraní i požadavek s API tokenem patří do výchozí organizace. Požadavek, který jmenuje jinou organizaci (cestou/organizations/{id}, parametrem dotazu nebo polem tělaorganization_id), potřebuje oprávnění i v ní, takže přiřazení omezené na jednu organizaci platí jen pro tuto organizaci. Cesty, které pracují s více projekty (seznam projektů, detekce driftu přes všechny projekty, migrace více secretů na zero-knowledge, kontrola pojmenování secretů organizace), přijmou roli na libovolném projektu a pak pracují po projektech: seznam projektů ukáže jen projekty, které uživatel smí číst, a ostatní vyžadují oprávnění na každém projektu, kterého se týkají. Na stránce projektu webové rozhraní ukazuje akce, které uživatel smí v tomto projektu provést. Role zobrazená u uživatele je nejvyšší role přiřazená bez omezení; je to jen označení a sama nic neuděluje. Uživatel vytvořený při prvním přihlášení (SSO, LDAP, SAML, SPNEGO) nebo přes SCIM má všude přiřazenou výchozí roli: Viewer, nebo výchozí roli nastavenou pro SPNEGO. - Dvouúrovňová kontrola cloudových zdrojů — Přístup k Azure zdrojům vyžaduje SOUČASNĚ MazeVault roli A Azure RBAC oprávnění
2. Systémové role¶
MazeVault poskytuje následující vestavěné role:
| Role | Popis | Doména |
|---|---|---|
| Viewer | Pouze dashboard a systémové výstupy — žádný přístup k secrets, certifikátům nebo projektům | Pouze čtení |
| User | Standardní uživatel — může vytvářet/upravovat secrets, žádat o certifikáty, prohlížet projekty | Obecné |
| Certificate Manager | Kompletní správa životního cyklu certifikátů — BEZ přístupu k secrets | Certifikáty |
| Secret Manager | Kompletní správa životního cyklu secrets — BEZ přístupu k certifikátům | Secrets |
| Project Admin | Kompletní správa projektů včetně vytváření/mazání projektů, správa nastavení | Administrace |
| Admin | Plný přístup k systému — všechna oprávnění | Systém |
| Auditor | Přístup pouze pro čtení k audit logům, seznamům uživatelů a stavu deploymentů | Compliance |
| Finance | Přístup pouze pro čtení k fakturaci a údajům o využití | Fakturace |
Doménová separace
Certificate Manager a Secret Manager jsou vzájemně oddělené domény. Certificate Manager nemůže zobrazit ani spravovat secrets a Secret Manager nemůže zobrazit ani spravovat certifikáty. To zajišťuje oddělení povinností v enterprise prostředích.
3. Matice oprávnění — Navigace¶
Co každá role vidí v MazeVault UI:
| Sekce | Viewer | User | Cert Mgr | Secret Mgr | Project Admin | Admin | Auditor | Finance |
|---|---|---|---|---|---|---|---|---|
| Dashboard Přehled | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | 📖 | ❌ |
| Dashboard Certifikáty | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ |
| Dashboard Entra | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ |
| Projekty | ❌ | 📖 | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ |
| Objevené certifikáty | ❌ | 📖 | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ |
| Deployment | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ |
| Řízení přístupu | ❌ | 📖 | 📖 | 📖 | ✅ | ✅ | 📖 | ❌ |
| Nastavení organizace | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ |
| Prostředí | ❌ | 📖 | 📖 | 📖 | ✅ | ✅ | ❌ | ❌ |
| Využití a fakturace | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | 📖 |
| Archivované položky | ❌ | ❌ | 📖 | 📖 | ✅ | ✅ | ❌ | ❌ |
| Audit logy | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | 📖 | ❌ |
| Správa KeyTab | ❌ | 📖 | ❌ | ✅ | ✅ | ✅ | 📖 | ❌ |
| Reporty / Systémové výstupy | ❌ | 📖 | 📖 | 📖 | ✅ | ✅ | 📖 | ❌ |
📖 = Přístup pouze pro čtení
4. Matice oprávnění — Secrets¶
| Akce | Viewer | User | Cert Mgr | Secret Mgr | Project Admin | Admin |
|---|---|---|---|---|---|---|
| Číst hodnotu secret | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ |
| Vytvořit secret | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ |
| Upravit secret | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ |
| Rotovat secret | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ |
| Archivovat secret | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ |
| Smazat secret | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ |
| Trvale smazat | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ |
| Import/Export | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ |
5. Matice oprávnění — Certifikáty¶
| Akce | Viewer | User | Cert Mgr | Secret Mgr | Project Admin | Admin |
|---|---|---|---|---|---|---|
| Číst certifikát | ❌ | ✅ | ✅ | ❌ | ✅ | ✅ |
| Požádat o certifikát | ❌ | ✅ | ✅ | ❌ | ✅ | ✅ |
| Importovat certifikát | ❌ | ✅ | ✅ | ❌ | ✅ | ✅ |
| Schválit CSR | ❌ | ❌ | ✅ | ❌ | ✅ | ✅ |
| Enrollovat certifikát | ❌ | ❌ | ✅ | ❌ | ✅ | ✅ |
| Archivovat certifikát | ❌ | ❌ | ✅ | ❌ | ✅ | ✅ |
| Revokovat certifikát | ❌ | ❌ | ✅ | ❌ | ✅ | ✅ |
| Trvale smazat | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ |
6. Matice oprávnění — Projekty a organizace¶
| Akce | Viewer | User | Cert Mgr | Secret Mgr | Project Admin | Admin |
|---|---|---|---|---|---|---|
| Zobrazit projekty | ❌ | 📖 | ✅ | ✅ | ✅ | ✅ |
| Vytvořit projekt | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ |
| Upravit projekt | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ |
| Archivovat projekt | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ |
| Smazat projekt | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ |
| Trvale smazat | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ |
| Zobrazit nastavení org. | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ |
| Upravit nastavení org. | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ |
| Spravovat uživatele/role | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ |
7. Neslučitelnost rolí¶
Některé role mají pravidla doménové separace a redundance:
| Kombinace rolí | Povoleno? | Důvod |
|---|---|---|
| Certificate Manager + Secret Manager | ⚠️ Nedoporučeno | Porušuje účel doménové separace |
| Certificate Manager + User | ✅ Povoleno | User přidává obecný přístup pro čtení |
| Secret Manager + User | ✅ Povoleno | User přidává obecný přístup pro čtení |
| Jakákoliv role + Admin | ⚠️ Nedoporučeno | Admin již má všechna oprávnění — další role jsou zbytečné, nepotřebné a vytvářejí složitost v audit trailech |
| Auditor + jakákoliv operační role | ⚠️ Nedoporučeno | Auditor by měl být nezávislý |
Doporučení pro roli Admin
Role Admin zahrnuje všechna oprávnění v systému. Přiřazení dalších rolí vedle Admin neposkytuje žádný dodatečný přístup a není doporučeno. Komplikuje to auditování rolí a může vytvářet nejasnosti ohledně skutečného zdroje oprávnění. Pokud uživatel potřebuje Admin přístup, přiřaďte pouze roli Admin.
8. Přístup ke cloudovým zdrojům Azure — Dvouúrovňová kontrola¶
Když je MazeVault integrován s Azure Key Vault, přístup ke cloudovým zdrojům vyžaduje dvě současné podmínky:
- MazeVault RBAC — Uživatel musí mít příslušnou MazeVault roli a oprávnění
- Azure RBAC — Uživatel musí mít odpovídající přiřazení Azure role na Key Vaultu
Managed Identity vs přístup uživatele
Managed Identity se používá VÝHRADNĚ pro automatické operace (plánované rotace, synchronizace na pozadí). Pro VŠECHNY operace iniciované uživatelem (čtení secrets, ruční rotace, editace) se používá vlastní Azure identita uživatele prostřednictvím On-Behalf-Of (OBO) token flow. MazeVault nikdy nepoužívá Managed Identity k obcházení Azure RBAC pro uživatelské operace.
| Operace | Typ tokenu | Vyžadované Azure RBAC |
|---|---|---|
| Plánovaná rotace secrets | Managed Identity | MI musí mít přístup ke Key Vaultu |
| Uživatel čte secret z KV | OBO (uživatelský token) | Uživatel musí mít Key Vault Secrets User |
| Uživatel edituje secret v KV | OBO (uživatelský token) | Uživatel musí mít Key Vault Secrets Officer |
| Agent discovery certifikátů | Managed Identity | MI musí mít přístup pro čtení |
| Admin importuje secrets z KV | OBO (uživatelský token) | Uživatel musí mít Key Vault Secrets Officer |
9. Mapování skupin¶
MazeVault podporuje mapování skupin externích identity providerů na systémové role:
- Entra ID (Azure AD) — Mapování Entra bezpečnostních skupin na MazeVault role
- LDAP / Active Directory — Mapování LDAP skupin na MazeVault role
- SPNEGO / Kerberos — Mapování Kerberos skupin přes LDAP fallback
Mapování skupin se spravuje v záložce Řízení přístupu → Skupiny. Každé mapování specifikuje:
- Identifikátor externí skupiny
- Cílovou MazeVault roli
- Volitelný scope (organizace, projekt, prostředí): omezené mapování uděluje roli jen v tomto rozsahu
10. Vlastní role¶
Administrátoři mohou vytvářet vlastní role s konkrétními sadami oprávnění. Vlastní role mohou kombinovat jakákoliv dostupná oprávnění podle potřeb vaší organizace.
Dostupné kategorie oprávnění:
secret:read,secret:write,secret:delete,secret:archive,secret:rotatecertificate:read,certificate:write,certificate:revoke,certificate:approve,certificate:archiveproject:read,project:write,project:delete,project:archiverotation:read,rotation:write,rotation:executeaudit:read,role:read,role:write,billing:readkeytab:read,keytab:write,keytab:delete,keytab:admintoken:read,token:write,token:delete,token:admin— Správa tokenů (Enterprise funkce)config:read,config:write— Správa konfigurací (Enterprise funkce)report:read,report:writesync:read,consistency:read,consistency:writeintegration:read,integration:write- A mnoho dalších...
Kontaktujte svého MazeVault administrátora pro vytvoření vlastní role.
11. Matice oprávnění — Správa KeyTab¶
Od verze v1.0.38
| Akce | Viewer | User | Cert Mgr | Secret Mgr | Project Admin | Admin | Auditor |
|---|---|---|---|---|---|---|---|
| Zobrazit keytaby | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ |
| Importovat keytab | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ❌ |
| Aktualizovat keytab | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ❌ |
| Smazat keytab | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ❌ |
| Spravovat šifrovací politiku | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ |
| Zobrazit objevené keytaby | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ |
| Importovat objevený keytab | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ❌ |
| Zobrazit dashboard | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ |
12. Matice oprávnění — Reporty¶
Od verze v1.0.38
| Akce | Viewer | User | Cert Mgr | Secret Mgr | Project Admin | Admin | Auditor |
|---|---|---|---|---|---|---|---|
| Zobrazit nastavení reportů | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Náhled reportu | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Spustit report | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ |
| Aktualizovat nastavení reportů | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ |