S2S аутентификация
S2S-аутентификация кайсы кызмат/workload суроо-талап кылып жатканын далилдеп, ага чектелген убакытка минималдуу зарыл укуктарды берет. Колдонуучунун агымдарынан айырмаланып, бул жерде адам жок - ошондуктан эсеп маалыматтарынын кыска өмүрү, ворклоад/каналга крипто байланышы жана так байкоо жүргүзүү маанилүү.
1) Максаттары жана принциптери
Zero Trust демейки: тармак ишенбегиле, жөн гана workload жана крипто күбөлөндүрүү.
Кыска жашоо credenshly: мүнөт эмес, күн/ай.
Контекстке шилтеме: tenant/region/licence/audience/scopes.
Борборлоштурулган чыгаруу, борборлоштурулган текшерүү: STS/IdP + жергиликтүү текшерүү.
Минималдуу артыкчылыктар жана ачык делегациялоо: керектүү сатып алуулар жана аудит гана.
Rotation "оору жок": эки-негизги/эки-cert терезелер жана автоматташтыруу.
2) коркунуч модели (минималдуу)
Узак мөөнөттүү сырларды уурдоо (API-keys, узакка созулган RT).
VPC/кластердин ичинде кызмат алмаштыруу.
сынган сегментация менен аймактар аралык кол салуулар.
Replay/прокси трафикти алмаштыруу.
Supply-chain/контейнер түрүн алмаштыруу.
Конфигурациянын каталары (кеңири firewall/mesh эрежелери, бардыгы үчүн жалпы JWKS).
3) Негизги үлгүлөр S2S
3. 1 mTLS (өз ара күбөлүк)
Сиз ким: канал далилдейт.
ички PKI кыска өмүр (саат-күнү) күбөлүктөрү; чыгарууну/айланууну mesh/sidecar же SPIRE агенти башкарат.
Бир trust-домендеги "кошуналар" жана токендер үчүн жакшы.
3. 2 Тейлөө JWT (STS)
Сиз кимсиз: билдирүү менен далилдейт.
Кыска Access JWT (2-5 мин) менен 'aud', 'scp', 'tenant', 'region'.
KMS/HSM кол коёт, коомдук ачкычтар - JWKS аркылуу 'kid' жана айлануу менен.
Жергиликтүү текшерүү (IdP тармак чалуусуз).
3. 3 SPIFFE/SPIRE (SVID)
Ворклоадалардын жалпы өзгөчөлүгү: 'spiffe ://trust-domain/ns/< ns >/sa/< sa>'.
Automatic issuance/rotation X.509/JWT-SVID, Istio/Linkerd менен бириктирүү.
3. 4 OAuth 2. 1 Client Credentials / Token Exchange (RFC 8693)
Machine кардарлар STS тартып токенди алуу; колдонуучунун атынан иш-аракеттер үчүн - OBO (token exchange).
Айкалыштыруу: канал үчүн mTLS, билдирүү үчүн 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): тармак термини, mTLS/JWT тастыктайт, контекстин байытат, PDP сурайт.
Services (PEP): кайра текшерүү (defense in depth), PDP чечимдерди кэш.
SPIRE/mesh: mTLS үчүн auto күбөлүк жана SVID.
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' активдүү ачкычты көрсөтөт.
Кошумча канал binding: желек, hash cert, SVID.
6) Берүү саясаты (STS) жана текшерүү
Чыгаруу:- Subject SVID/кардар күбөлүк/кардардын реестри алынган.
- Жашоо мөөнөтү 2-5 мин, refresh жок - ордуна кайрадан STS сурап.
- Сатып алуулар/аудитория кардардын суроо-талабы эмес, Policy Store (GitOps) тартып алынат.
1. Текшерүү mTLS (кошумча) жана чынжыр ырааттуулугу.
2. JWKS боюнча JWT колтамгасын текшерүү ('kid' боюнча).
3. Салыштыруу 'exp/nbf/iss/aud', tenant/region/licence.
4. контекстин байытуу жана PDP сурап (RBAC/ABAC/ReBAC).
5. PDP чечим кэш (TTL 30-120 с), иш-чаралар боюнча майып.
7) Мультитенант жана региондор (trust domains)
trust-domain's бөлүшүү: 'spiffe ://eu. core`, `spiffe://latam. core`.
Региондор боюнча өзүнчө JWKS/PKI; аймактар аралык - ишенимдүү шлюздар аркылуу гана.
'tenant/region/licence' маркаларын киргизип, ресурстун шайкештигин текшериңиз.
Логи/аудит Тенанттар жана региондор боюнча сегменттерди.
8) Mesh/sidecar жана без-mesh режими
Istio/Linkerd: mTLS "кутучадан", L4/L7 денгээлде policy-enforcement, SPIRE менен бириктирүү.
Mesh жок: китепкана-кардар + колдонмодо mutual TLS; башкарууга кыйын - агент аркылуу автоматташтырыңыз.
9) ачкычтар, JWKS жана айлануу
Жеке ачкычтар гана KMS/HSM; кол тамга - алыскы чакыруу/аппарат.
Ар бир N күн айлануу; dual-key: эски + жаңы кабыл алынган, issuer жаңы кол кийин жылытуу кэш.
Мониторинг: 'kid' боюнча керектөөнүн үлүшү, эски ачкычта "илинген" кардарлар.
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/mTLS-bound)
mTLS-bound tokens: JWT кардарлардын күбөлүк hash кошуу; кабыл алууда.
DPoP: mTLS жок HTTP кардарлар үчүн - ар бир өтүнүч DPoP ачкычы менен кол коюу, AT thumbprint 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', mTLS-bound суроо үлүшү.
- `subject`, `aud`, `tenant`, `region`, `scp`, `kid`, `sid/svid`, `decision`, `policy_version`, `trace_id`.
- Токендерди берүү, ачкычтарды айлантуу, саясатты өзгөртүү, четке кагылган суроолор.
13) аткаруу
JWT текшерүү - жергиликтүү, JWKS кэш (TTL 30-60 с) арткы жаңыртуу менен.
X.509 чынжыр - CA пиннинг жана OCSP/CRL кэш.
gateway/sidecar боюнча кымбат валидация I/O алып.
Префетч токендерди/сертификаттарды колдонуңуз (мөөнөтү бүтөөрүнө 10-20 секунд калганда).
14) Сыноо
Contract/interop: ар кандай ЯП/китепканалар, саат skew ± 300 б.
Терс: мөөнөтү өтүп кеткен/жасалма токен, туура эмес 'aud', туура эмес аймак/тенант, сынган cert-chain.
Chaos: күтүлбөгөн жерден айлануу 'kid', JWKS жеткиликсиздиги, массалык экспирация, mTLS үзүлүшү.
Load: STS боюнча чыгаруу чокусу, gateway боюнча verify өсүшү.
E2E: mTLS-only, JWT-only, айкалыштырылган режими, Token Exchange (OBO).
15) Playbooks (runbooks)
1. Кол тамга ачкычын компромисске келтирүү
Дароо revoke 'kid', жаңы бошотуу, кыскартылган TTL токендер, аудит, "илинип" кардарларды издөө, эски 'kid' үчүн аргасыз deny.
2. Массалык 'INVALID _ ТОКЕН'
Текшерүү JWKS-кэш, саат, Токендердин келип чыгышы (TTL өтө кыска), убактылуу Skew кабыл кеңейтүү, JWKS жылытуу.
3. mTLS мүчүлүштүктөр
CA чынжырын, SVID мөөнөттөрүн, хост убактысын текшерүү; SPIRE/Istio аркылуу emergency-кайра чыгаруу, региондун ичинде гана fallback жолдорун камтыйт.
4. өсүү 'AUD _ MISMATCH'
Drift саясатчы audience: иш жүзүндөгү чалуулар менен STS-policy салыштырып, убактылуу зарыл 'aud' кошуу, чакыруу архитектурасын өзгөртүүнү пландаштыруу.
5. STS жеткиликтүү эмес/жай
Буга чейин берилген токендердин TTL жогорулатуу (grace), prefetch/refresh-мурда, scale-out STS камтыйт.
16) типтүү каталар
env/коддогу узак мөөнөттүү API ачкычтары/сырлары.
Жалпы JWKS/PKI "бардык региондордо жана бардык убакта".
Жок binding (mTLS/DPoP) → токен алуу үчүн жеңил.
кенен 'aud =' жана "админ" scopes демейки.
Dual-key мөөнөтү жок айлануу → массалык 401.
Токендерди gateway боюнча гана текшерүү (defense in depth жок).
"Тилсиз" баш тартуу (жок 'error _ code' жана 'reason') - командаларды талашып-тартышуу жана окутуу кыйын.
17) Mini конфигурация үлгүлөрү
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 саясаты (үзүндү):
yaml subjects:
- id: "svc. catalog"
spiffe: "spiffe://core/ns/prod/sa/catalog"
audiences: ["svc. search","svc. wallet"]
scopes: ["catalog:read:"]
ttl: "5m"
18) Азык-түлүктүн алдындагы чек-тизме
- Кыска кызмат JWT (≤ 5 мин), жергиликтүү текшерүү, JWKS кэш.
- mTLS (же DPoP) кирет; артыкчылыктуу - mTLS-bound tokens.
- SPIFFE/SPIRE же auto чыгаруу/rotation күбөлүктөр үчүн барабар.
- STS audience/scope саясаты менен; ишенимдүү иденттүүлүк боюнча гана берүү.
- Региондор боюнча trust-domains жана JWKS бөлүштүрүү; tenant/region/licence маркалары текшерилет.
- PDP/PEP комплекстүү, кэш чечимдер + иш-чаралар боюнча майып.
- Dual-key терезелер, керектөө мониторинг 'kid', invalid/aud mismatch боюнча алерт.
- Толук Логи/аудит S2S, аткаруу/ката метрика кирет.
- Ачкыч компромисске Playbook, STS кулап, mTLS ката.
- contract/negative/chaos/load/E2E тесттер топтому өттү.
Корутунду
S2S-аутентификация - бул ишеним каналынын (mTLS), ишеним кабарынын (кыска JWT) жана туруктуу Workload id (SPIFFE) айкалышы, борборлоштурулган STS тарабынан башкарылат жана жергиликтүү текшерилет. trust-домендерди бөлүү кошуу, катуу audience/scopes, автоматтык айлануу жана байкоо - жана ишенимдүү, түшүндүрүп жана платформа жана анын географиясы менен бирге масштабдуу контур алуу.