S2S վավերացում
S2S-վավերացումը ապացուցում է, թե որն է ծառայությունը/vorcload-ը, և տալիս է նրան նվազագույն անհրաժեշտ իրավունքներ սահմանափակ ժամանակի համար։ Ի տարբերություն օգտագործողի հոսքերի ՝ այստեղ մարդ չկա, ուստի նրանք քննադատում են նշված տվյալների կարճ տևողությունը, կրիպտոգրաֆիկ կապվածությունը դեպի vorcloade/2019 և հստակ դիտարկումը։
1) Նպատակներն ու սկզբունքները
Zero Trust-ը լռելյայն է 'չվստահել ցանցերը, միայն վորկլոադի և կրիպտոգրաֆիայի հավաստագրումը։
Կարճ գոյատևող քրեդենշլները 'րոպե, ոչ թե օրեր/ամիսներ։
Կոնտեքստին կապելը 'tenault/region/licence/audience/scopes։
Կենտրոնացված ֆորումը, ապակենտրոնացված ստուգումը 'STS/IDP + տեղական հավատացում։
Նվազագույն արտոնությունները և ակնհայտ անջատումը 'միայն անհրաժեշտ սկաուտներ և աուդիտ։
Ռոտացիան «առանց ցավի» ՝ dox-key/dox-cript պատուհանները և ավտոմատիզացիան։
2) Սպառնալիքների մոդել (նվազագույն)
Երկարատև գաղտնիքների գողություն (API-keys, long-lived RT)։
Փոխարինումը կատարվում է SDC/2019 ներսում։
Միջերկրական հարձակումները կոտրված հատվածում։
Replay/փոխարինումը կատարվում է։
Supply-chain/փոխելով բեռնման պատկերը։
Կազմաձևման սխալները (firewall/mesh լայն կանոնները, ընդհանուր JWKS բոլորի համար)։
3) S2S հիմնական արտոնագրերը
3. 1 mTSA (փոխադարձ հավաստագրեր)
Ո՞ վ եք դուք 'ապացուցում է ալիքը։
Հավաստագրերը կարճ (ժամ-օր) ներքին PKI-ից։ / ռոտացիան կառավարում է mesh/sidecar կամ SPIRE գործակալը։
Լավ է «հարևանների» համար մեկ trust-2019-ում և binding հոսանքների համար։
3. 2 Ծառայողական JWT (STS)
Ո՞ վ եք դուք 'ապացուցում է հաղորդագրությունը։
Կարճ Windows JWT (2-5 րոպե) 'aud', 'scp', «tenault», «region»։
Ստորագրում է KFC/HSM, հանրային բանալիները JWKS-ի միջոցով '«kid» և ռոտացիայի միջոցով։
Ստուգումը տեղական է (առանց IdP ցանցային զանգահարման)։
3. 3 SPIFFE/SPIRE (SVID)
Վորկլոադի համընդհանուր ինքնությունը '"spiffe : //trust-domain/ns/< ns >/sa/< sa>։
Ավտոմատ issu.ru/rotation X.59/JWT-SVID, ինտեգրումը Istio/Linkerd-ի հետ։
3. 4 OAuth 2. 1 Client Credentials / Token Exchange (RFC 8693)
Մեքենայական հաճախորդները ստանում են հոսանք STS-ից։ օգտագործողի անունից 'OBO (token) գործողությունների համար։
Ֆեդնիրու 'mTIM ջրանցքի համար, JWT հաղորդագրության համար, SPIFFE-ը կայուն ինքնության համար։
4) Հանրաքվե-ճարտարապետություն
[KMS/HSM] [Policy Store / PDP]
[STS/IdP (issuer)] ── JWKS ──[Gateway/PEP] ─────[Services/PEP]
│
SVID/JWT │ │ │ │
(SPIRE/Istio)│ mTLS/DPoP │ mTLS/DPoP
│ │ │ │
[Workload/Sidecar]─────────┴───────┴────────────┘
Issuer (STS/IDP): արտադրում է կարճ JWT/CVID ծառայություններ, հրապարակում է JWKS-ը։
Gateway (PEP): Ցանցի տերմինը, որը առաջնորդում է mTSA/JWT, հարստացնում է համատեքստը, պահանջում է PDP։
Շվեյցարիան (PEP) 'կրկնվող ստուգում (depth), PDP լուծումների կեսը։
SPIRE/mesh: Avto-հավաստագրեր և SVID-ի համար mTLS-ի համար։
5) Ծառայողական JWT ձևաչափը (օրինակ)
json
{
"iss": "https://sts. core",
"sub": "svc. catalog, "//service identity
"aud": ["svc. search"] ,//target service/domain
"exp": 1730390100, "iat": 1730389800,
"tenant": "brand_eu",
"region": "EE",
"scp": ["catalog:read:public","catalog:read:tenant"],
"mtls": { "bound": true, "spiffe": "spiffe://core/ns/prod/sa/catalog" }
}
ES256/EdDSA-ի ստորագրված, «kid» -ը ցույց է տալիս ակտիվ բանալին։
Oporational binding-ին 'դրոշը, hash case, SVID-ը։
6) Միգրացիայի քաղաքականությունները (STS) և հավատալիքները
Ռուանդա
Ռուսական դիզայնը վերցվում է SVID/հաճախորդի կոդից/ռուսական հաճախորդից։
Կյանքի տևողությունը 2-5 րոպե, refresh-ը չկա, փոխարենը նորից խնդրել STS-ը։
Սկոպները/լսարանները վերցվում են Policy Store-ից (GitOps), ոչ թե հաճախորդի խնդրանքից։
Ստուգում (PEP)
1. Ստուգել mTSA (oporational) և շղթայի վալիդիությունը։
2. Ստուգել JWT ստորագրությունը JWKS-ով («kid»)։
3. Նվազեցնել 'exp/nbf/is/aud', tenault/region/licence։
4. Հարստացնել համատեքստը և հարցնել PDP (RBAC/ABAC/ReBAC)։
5. PDP լուծումը (TTL 30-120 c), հաշմանդամություն։
7) Multi tenant և տարածաշրջանները (trust domains)
Բաժանեք trust-domain 'a: <spiffe ://eu։ core`, `spiffe://latam. core`.
Առանձին JWKS/PKI տարածաշրջաններում; միջմայրցամաքը միայն վստահելի դարպասների միջոցով է։
Միացրեք «tenault/region/licence» և ստուգեք ռեսուրսի համապատասխանությունը։
Լոգա/աուդիտ սեգմենտացրեք տենանտների և տարածաշրջանների վրա։
8) Mesh/sidecar և առանց-mesh ռեժիմի ռեժիմը
Istio/Linkerd: mTSA «տուփից», policy-enforcae L4/L7 մակարդակում, SPIRE-ի հետ ինտեգրումը։
Առանց mesh 'գրադարան-հաճախորդ + mutium TSA-ում 2019-ին; ավելի դժվար է կառավարել նավարկությունը, ավտոմատիզացնել գործակալի միջոցով։
9) Բանալիներ, JWKS և նավարկություն
Մասնավոր բանալիները միայն KFC/HSM-ում; ստորագրությունը հեռավոր մարտահրավեր/սարք է։
Rotation յուրաքանչյուր N օր; dj-key: Հին + նոր են ընդունվում, issuer ստորագրում է նոր կեշի տաքացումից հետո։
Իսպանիան '«kid» սպառման մասնաբաժինը, «կախված» հաճախորդները հին բանալիով։
Կազմաձևի օրինակ (YAML)
yaml issuer:
jwks:
alg: ES256 rotation_days: 30 publish_cache_ttl: 60s sts:
access_ttl: 5m audience_policies:
- subject: "svc. catalog"
allow: ["svc. search","svc. wallet"]
scopes: ["catalog:read:"]
tenancy:
claims: ["tenant","region","licence"]
jwks_per_region: true
10) Կապում է կոմպոզիցիայի հետ (DPoP/mTSA-bound)
MTIM-bound tokens: JWT-ում ավելացրեք հաճախորդի հաճախորդի գնորդի hash; ընդունելու համար։
DPoP 'HTTP հաճախորդների համար առանց mTLS-ի համար, ստորագրեք DPoP-ի յուրաքանչյուր հարցումը, AT-ում տեղադրեք thumprint DPoP-ը։
11) Սխալներ և քաղաքական գործիչներ
Ստանդարտացրեք ստանդարտները
`401 INVALID_TOKEN`/`EXPIRED_TOKEN`/`AUD_MISMATCH`.
`401 MTLS_REQUIRED`/`MTLS_CERT_INVALID`.
`403 INSUFFICIENT_SCOPE`/`POLICY_DENY`.
`429 RATE_LIMITED`.
Պատասխանը պարունակում է machine-readable 'error _ code "և" as _ of "(ստեղնաշարի/քաղաքականության տարբերակը)։
12) Դիտողությունն ու աուդիտը
Մետրիկները
`s2s_auth_p95_ms`, `verify_jwt_p95_ms`, `jwks_skew_ms`,
`invalid_token_rate`, `aud_mismatch_rate`, `insufficient_scope_rate`,
սպառումը 'kid', mTSA-bound հարցումների մասը։
Լոգա/թրեյզներ
`subject`, `aud`, `tenant`, `region`, `scp`, `kid`, `sid/svid`, `decision`, `policy_version`, `trace_id`.
Աուդիտ (անփոփոխ)
Թոքենների օրինակը, պարտատոմսերը, քաղաքական գործչի փոփոխությունները, մերժված հարցումները։
13) Արտադրողականությունը
JWT-ի վերիֆիկացումը տեղական է, JWKS-ը (TTL 30-60 s) ֆոնային նորարարությամբ։
X.507 շղթաները CA-ի և OCSA/CRL-ի քեշը։
Վերցրեք թանկ validation I/O-ը gateway/sidecar-ում։
Օգտագործեք wwww.fetch towens/հավաստագրեր (10-20-ից մինչև նոյեմբերի)։
14) Թեստավորում
Medract/interop: տարբեր YP/գրադարաններ, clock skew No. 300
Negative: ժամկետանց/կեղծ հոսանք, սխալ «aud», ոչ թե այն տարածքը/տենանտը, որը կոտրվել է cast-chain-ի կողմից։
Chaos: Հանկարծակի վերացումը 'kid', JWKS-ի անհասանելիությունը, զանգվածային էքսպորտը, mTSA-ի փլուզումը։
Load: Pik STS-ում, verify-ի աճը gateway-ում։
E2E: mTMS-only, JWT-only, համակցված ռեժիմը, Token Express (OBO)։
15) Պլեյբուկի (runbooks)
1. Ստորագրության բանալին փոխզիջում
Վերը նշված revoke 'kid ", նոր արտադրություն, կրճատված TTL տոկեններ, աուդիտ," կախված "հաճախորդների որոնում, հարկադիր deny հին" kid "-ի համար։
2. Զանգվածային 'MSALID _ TOKEN "
Ստուգել JWKS-kes-ը, ժամացույցի ռասինխրոնը, հոսանքների ծագումը (TTL շատ կարճ), ժամանակավորապես ընդլայնել ռուսական skew-ը, տաքացնել JWKS-ը։
3. MTIM մերժումներ
CA շղթայի ստուգումը, SVID-ը, հոստի ժամանակը։ emergency-վերափոխումը SPIRE/Istio-ի միջոցով, միացնել fallback երթուղիները միայն տարածաշրջանի ներսում։
4. Աճը 'AUD _ MISMATCH'
Դրեյֆը audience-ի քաղաքական գործիչը 'համեմատել STS-policy-ը իրական մարտահրավերների հետ, ժամանակավորապես ավելացնել անհրաժեշտ «aud» -ը, պլանավորել զանգերի ճարտարապետությունը։
5. STS անհասանելի/դանդաղ
Ավելացնել TTL-ն արդեն տրված հոսանքներով (grace), ներառել wwww.fetch/refresh-նախկինում, scale-out STS-ը։
16) Տիպիկ սխալներ
Երկար գոյատևող API բանալիներ/գաղտնիքներ env/կոդում։
Ընդհանուր JWKS/PKI «բոլոր տարածաշրջանների և բոլոր ժամանակների վրա»։
Binding (mTSA/DPoP) բացակայությունը հեշտ է հեռացնել։
Լայն «aud =» և «adman» scopes լռելյայն։
Առանց dom-key ժամանակահատվածի ռոտացիան կատարվում է զանգվածային 401։
Հոսանքների ստուգումը միայն gateway-ում (ոչ www.ense in depth)։
«Լուռ» մերժումը (ոչ «error _ code» և «reason») դժվար է հավաքագրել և ուսուցանել թիմերը։
17) Միգրացիայի մինի ձևանմուշները
PEP (gateway) կանոնները
yaml auth:
require_mtls: true jwks:
url: https://sts. core/.well-known/jwks. json cache_ttl: 60s claims:
required: ["iss","sub","aud","exp","tenant","region"]
tenant_in_header: "x-tenant"
pdp:
endpoint: "opa:8181/v1/data/policy/allow"
decision_cache_ttl: 60s
STS Policy (հատված)
yaml subjects:
- id: "svc. catalog"
spiffe: "spiffe://core/ns/prod/sa/catalog"
audiences: ["svc. search","svc. wallet"]
scopes: ["catalog:read:"]
ttl: "5m"
18) Չեկ թուղթ մինչև վաճառելը
- Կարճ ծառայողական JWT (355 րոպե), տեղական հավատալիքները, JWKS-ի քեշը։
- mTSA (կամ DPoP) ներառված է; գերակայություն - mTSA-bound tokens։
- SPIFFE/SPIRE-ը կամ համարժեք է սերտիֆիկատների մեքենայական-հետախուզման/ռոտացիայի համար։
- STS քաղաքական գործիչների հետ audience/scope; Բայց միայն վստահելի ինքնությունը։
- Trust-domains և JWKS տարանջատումը տարածաշրջաններում; tenault/region/licence ստուգվում են։
- PDP/PEP ինտեգրված, լուծումներ + հաշմանդամություն ունեցող անձանց համար։
- Dox-key պատուհանը, սպառման արագությունը 'kid', ալտերտերը www.alid/aud mismatch-ի վրա։
- Ամբողջական լոգներ/S2S աուդիտ, ներառում են արտադրողականության/սխալների չափումներ։
- Պլեյբուկները բանալին փոխզիջելու, STS-ի անկման, mTLS-ի ձախողման վրա։
- Www.ract/negative/chaos/load/E2E թեստերը անցան։
Եզրակացություն
S2S-վավերացումը վստահության ալիքի համադրություն է (mTRC), վստահության հաղորդագրությունը (կարճ JWT) և վորկլոադի կայուն ինքնությունը (SPIFFE), որը ղեկավարվում է կենտրոնացված STS-ի և ստուգված տեղական։ Ավելացրեք trust-scopes-ի բաժանումը, խիստ audience/scopes-ը, ավտոմատ նավարկումը և դիտարկումը, և կստանաք մի ստանդարտ, որը վստահելի է, բացատրենք և մեծանում է պլատֆորմի և նրա աշխարհագրության հետ։