Ռոլի շարժիչ
1) Հեղինակային իրավունքի մոդելներ
RBAC (Role-Based Systel), սուբյեկտը ստանում է դերեր, դերեր կապված են իրավունքների հետ (permissions)։ Պարզապես կառավարել, լավ է տիպիկ պարտականությունների համար։
ABAC (Attribast-Based Systel Systrol) ՝ լուծումը կախված է սուբյեկտի, ռեսուրսների, գործողությունների և շրջակա միջավայրի հատկանիշներից (ժամանակ, IP, տարածք, ռիսկ)։ Ճկուն և մեծանում է բարդ կանոնների վրա։
RBAC + ABAC-ի հիբրիդը 'դերերը տալիս են «հիմնական» ունակություն, ատրիբուտները նեղացնում են այն (conditions)։
(Oporational) ReBAC/Relensship-based: Հարաբերությունների հաշվարկը (սեփականատերը, թիմի անդամը, պատվիրակը), օգտակար է փաստագրական և տեղեկատվական կառուցվածքների համար։
2) Ճարտարապետություն ՝ PDP/PEP և հոսքեր
PEP (Policy Enforcium Point) 'լուծման օգտագործման տեղը (API-դարպաս, backend մեթոդ, SQL շերտ, UI)։
PDP (Policy Decision Point) 'ծառայություն/գրադարան, որը հաշվարկում է «ALOW/DENY» քաղաքական և բյուջեներով։
PIP (Policy Information Point) ՝ ատրիբուտների աղբյուրներ (IDP/պրոֆիլ, մետատվական ռեսուրս, ռիսկի սկոր, գեո)։
PAP (Policy Administration Point) 'վարչական ինտերֆեյս/ռեպոզիտորիա քաղաքական (վարկածներ, չեռնիվներ, հրատարակություն)։
Հոսքը 'PEP-ի պահանջը ձևավորում է PDP կոդավորման ենթատեքստը քաշում է բացակայող ատրիբուտները (PIP-ի միջոցով) հաշվարկում է PEP կոդավորման լուծումը (թույլ տալ/արգելել դաշտերը) ռուսական աուդիտ։
3) Տվյալների մոդել
Էության (նվազագույն)
`subject` (user/service) с атрибутами: `tenant_id`, `roles`, `departments`, `risk_level`, `mfa_verified`, `scopes`, `claims`.
"resurce 'c տիպով և կոդերով ՝" type "," owner _ id "," tenium _ id "," classifox "(public/didential)," region "," tags "։
`action`: `read`, `write`, `delete`, `export`, `approve`, `impersonate` и т. п.
`environment`: `time`, `ip`, `device`, `geo`, `auth_strength`, `business_context` (канал, тариф).
RBAC մասը
«roles (id, tenium _ id, name, inherits [])» - աջակցեք հիերարխիան և ձևանմուշները։
`permissions(id, resource_type, action, constraint?)`.
`role_permissions(role_id, permission_id)`.
«assignments (wwww.ject _ id, role _ id, scope)» - sco.ru: գլոբալ/ըստ նախագծի/օբյեկտի։
ABAC-մասը (քաղաքականություն)
`policy(id, effect=allow|deny, target: {subject, resource, action}, condition: expr, priority, version, status)`.
4) Որոշումներ կայացնելու սկզբունքները
Deny-overrides: ակնհայտ արգելքները ավելի գերակա են, քան ռուսական։
Least Privilege (PoLP) 'թողեք նվազագույն անհրաժեշտ հասանելիությունը, ընդլայնեք պայմանների միջոցով։
Separation of Duties-ը (SoD) 'դերերի/գործողությունների համադրությունների արգելքը (օրինակ, «ստեղծել է»)։
Exprest-a.ru-ը 'ավելացրեք պահանջները բարձր ռիսկի դեպքում (ոչ MFA, կասկածելի IP)։
Determinism: Նույն ենթատեքստը նույն պատասխանն է։ գրանցեք քաղաքականության տարբերակը ամսագրում։
5) Իրականացման արտոնագրեր
5. 1 Հիբրիդ RBAC no ABAC (օդորակումը)
Դերերը տալիս են «լռելյայն իրավունք», ABAC պայմանները սահմանափակում են
yaml
Declarative Policy Example
- id: doc_read_own effect: allow target: { action: read, resource. type: document, subject. roles: ["editor","owner"] }
condition: resource. owner_id == subject. id
- id: doc_read_team effect: allow target: { action: read, resource. type: document, subject. roles: ["editor","viewer"] }
condition: subject. team_id in resource. shared_team_ids
- id: doc_read_confidential_external effect: deny target: { action: read, resource. type: document }
condition: resource. classification == "confidential" and subject. tenant_id!= resource. tenant_id priority: 100 # deny high priority
5. 2 Row/Field-Level Security
BD-ի մակարդակում 'RFC քաղաքականությունները («tenium _ id», «owner _ id»)։
API մակարդակում 'ֆիլտրեք հավաքածուները և դիմեք դաշտերը, եթե ոչ' allow: read _ sultitive _ fields "։
5. 3 «Step-up» լուծումները
Կախվածությունը ուժի հետ կապված է
allow if action == "export" and subject. mfa_verified == true else deny
5. 4 Ժամանակավոր ընդունիր
Դրամաշնորհներ TTL-ից '«assignae»։ expires _ at "," պատուհաններ "հասանելիության համար (ռեսուրսի տարածաշրջանի աշխատանքային պահին)։
6) Արտադրողականություն և կանխիկացում
Լուծումների կեսը (decision cache) բանալին «(www.ject _ hash, resource _ key, action, policy _ version)» կարճ TTL-ով։
Edge-cash ատրիբուտները (claims) + lazy-fetch ռեսուրսի ատրիբուտներ։
Incremental entalidation: հաշմանդամություն ունեցող անձանց (դերերի փոփոխություն, քաղաքականության փոփոխություն, ռեսուրսի փոխանցումը «didential»)։
Batch-ստուգումներ. Ցուցակների համար գնահատեք «ֆիլտրը» (policy-www.dicate pushdown), որպեսզի չվնասեք PDP-ը։
7) Բազմաբնույթ (Multi-tenae)
Յուրաքանչյուր աղյուսակում '«tenium _ id»; լռելյայն քաղաքականությունը սահմանափակում է մուտքը ինտեգրման ներսում։
Ձեռնարկության ադմինիստրատորները կառավարում են միայն դերերը/իրենց գործընկերության իրավունքները։
Cross-վարձակալական հասանելիությունը միայն ակնհայտ հրավերի/shering-ի միջոցով ակնհայտ deny-override-ով։
8) Վասիլեվիչը և կյանքի ցիկլը քաղաքական
Տարբերակումը '"policy. version 'ի պատասխան PDP-ի, պահեք աուդիտի մեջ։
Չորեքշաբթի 'wwww.aft wwincanary (wwww.ru/ստվերային ռեժիմ) 2019։
Test matics: ճշմարտության աղյուսակները առանցքային դերերի/մրցույթների վրա (պայմանագրային թեստեր)։
Change 2019: Mox-rex-ները քաղաքականության վրա անվտանգության/կոմպլանսի վրա։
9) Աուդիտ և դիտողություն
Журнал решений: `decision_id`, `subject`, `action`, `resource_ref`, `result`, `matched_policies`, `policy_version`, `attributes_digest`.
Մետրիկները ՝ QPS PDP, p95, hit-rate, deny, step-up հաճախականությունը, SoD-ի միջադեպերը։
Հետքեր ՝ PDP-ի մարտահրավերին։ հարաբերակցություն API-ի խնդրանքով։
Repley: հնարավորություն «խաղալ» պատմական լուծումները քաղաքականության նոր տարբերակի վրա (safety nok)։
10) Ինտենսիվացման և հոսանքների հետ ինտեգրումը
Ինքնությունը IDP (OIDC/SAML) է։ Թոկենները կրում են նվազագույն ատրիբուտներ ՝ «sub», «tenae», «roles», «auth _ time», «amr», «scopes»։
ABAC-ի համար քաշեք «ծանր» նշաններ սերվերային կողմից (PIP), որպեսզի չփորձեք։
Ստորագրված resource tokens (capability/հրավերներ) - խիստ սահմանափակ կիսագունդների համար։
11) PDP (պարզեցված)
python def decide(subject, resource, action, env, policies):
matched = []
effect = "deny"
Explicit DENYs with priority for p in sorted (policies, key = lambda x: x.priority, reverse = True):
if target_matches(p. target, subject, resource, action):
if eval_condition(p. condition, subject, resource, env):
matched. append(p. id)
if p. effect == "deny":
return Decision("deny", matched, p. version)
Looking for ALLOW for p in policies:
if target_matches(p. target, subject, resource, action):
if eval_condition(p. condition, subject, resource, env):
matched. append(p. id)
effect = "allow"
break return Decision(effect, matched, max_version(matched, policies))
12) Anti-patterna
«Դեր = էջ» (հարյուրավոր փոքր դերեր առանց առարկայական ոլորտի մոդելի)։
Քաղաքական գործչի պահպանումը միայն կոդում առանց տարբերակների/տարբերակների։
Deny-override-ի և SoD-ի բացակայությունը նպաստեց խարդախության ռիսկի բարձրացմանը։
Կոշտ ցուցակները «user _ id» կանոններում (ատրիբուտների/հարաբերությունների փոխարեն)։
Ֆիլտրման բացակայությունը տվյալների մակարդակում (RFC), եթե գոյություն ունի միայն UI-ում։
Դերերի համաժամացումը ձեռքի ջութակների միջոցով առանց իրադարձությունների և քեշի հաշմանդամության։
13) Քեյսներ և բաղադրատոմսեր
13. 1 Դաշտային դիմակավորում
allow read invoice when subject. roles includes "support"
mask fields ["card_last4", "billing_email"] unless subject. role == "finance"
13. 2 Տվյալների էքսպորտը միայն MFA-ից
allow export if subject. mfa_verified and env. ip in cidr("203. 0. 113. 0/24")
13. 3 SoD:
deny approve_payment if subject. performed_actions includes ("create_payment" within last 24h)
13. 4 Ինտեգրումը (սահմանափակ հոսանք)
Capability-tocen-ը պարունակում է «resource _ id», «acions = [» read «]», «expires _ at», «aud»։ PEP-ը ստուգում է ստորագրությունը և ժամանակը։
14) Թեստավորում
Քաղաքական գործչի յունիտ թեստերը 'ճշմարտության աղյուսակները հիմնական համադրություններով։
Property-based: պատահական ատրիբուտների արտադրություն «ծխելու» համար։
Golden-tes.ru 'կրիտիկական էնդպոինտների համար լուծումների հավաքածուի ամրագրում։
Canary/Shadow: Հին և նոր տարբերակների զուգահեռ գնահատումը քաղաքական գործիչը լոգիստիկ տարբերություններով։
15) Կապված «Ճարտարապետություն և արձանագրություն» մրցույթի կարողությունները
Վավերացում և հեղինակացում (OIDC/OAuth2)
Համաձայնությունների կառավարում
Տոկենիզացիա և բաների կառավարում
Դիտարկումը 'լոգներ, մետրեր, հետքեր
Գեո-միկրոօրգանիզացիա և տեղայնացում
At Rest/In Transit
16) Ճարտարապետի չեկի թերթիկը
1. Որոշե՞ լ են առարկայական դերերը և նրանց հիերարխիան։
2. Արդյո՞ ք գոյություն ունի հիբրիդային մոդել 'դերեր + պայմանները ֆորումների վրա։
3. Իրականացվել է PDP-ից deny-overrides, SoD և step-up։
4. Որտե՞ ղ է PEP-ը։ (դարպասը, backend, BD, UI) - արդյո՞ ք ամենուր միատեսակ է։
5. Որոշումների քեշները և հաշմանդամությունը։
6. Քաղաքական գործիչները տարբերակվում են, փորձարկվում, պառակտվում գործընթացով։
7. Ներառված են լուծումների, չափումների և ուղիների աուդիտ։
8. Աջակցվում է բազմաբնույթ և RFC/field-king։
9. Կա՞ ն runbook միջադեպի և քաղաքական գործչի ռեգրեսիայի վրա։
Եզրակացություն
RBAC-ը ապահովում է կառավարելիությունը, ABAC-ը 'ենթատեքստը և ճշգրտությունը։ Հաշվի առնելով դեորւթյունները հիբրիդային պայմաններով, բաժանելով PDP/PEP-ը, ներկայացնելով կանխագուշակումը, աուդիտը և փորձարկումը քաղաքական գործչի կողմից, դուք կառուցում եք որպես պլատֆորմային ունակություն 'կանխատեսելի, ստուգված և մեծացված ապրանքային և կարգավորող պահանջների համար։