Architektúra · Védett statikus kiszolgálás

Statikus WordPress védelme CloudFront aláírt sütikkel

A Cognito igazolja az identitást, egy aláíró időkorlátos CloudFront-hozzáférést ad, a CloudFront pedig kikényszeríti a védett statikus útvonalakat anélkül, hogy vissza kellene állítani a WordPress PHP-munkameneteit.

Látogató → védett CloudFront-útvonal
   ↓ nincs érvényes süti
Gatey → Amazon Cognito
   ↓ elfogadott identitás
Aláíró szolgáltatás → aláírt sütik
   ↓
CloudFront → privát S3-objektum

Bizalmi határok

Az identitás, a statikus fájlhozzáférés és az API-jogosultság különálló vezérlők

A Cognito-token identitást igazol. A CloudFront aláírt süti a kijelölt statikus objektumok lekérését szabályozza. A védett API-knak továbbra is saját JWT-, IAM- vagy szolgáltatásoldali jogosultságkezelésre van szükségük. Ezek elkülönítése megakadályozza, hogy egyetlen hitelesítő adat univerzális engedéllyé váljon.

Identitás: böngésző → Cognito → tokenek
Statikus hozzáférés: elfogadott identitás → aláíró → CloudFront-süti → védett útvonal
API-művelet: böngésző → engedélyezett API → backendvalidáció

A WordPress marad a CMS, és kérésidőben nem ő kényszeríti ki a látogatói hozzáférést.

Kiszolgálási határ A privát S3-objektumok maradjanak a CloudFront mögött. A linkek elrejtése, a JavaScriptes korlátozás vagy a sikeres bejelentkezés önmagában nem védi meg a statikus objektumot.

Mit hoz létre a biztonságos statikus stack

A védelmi réteg a tárolásra, a peremhálózati kiszolgálásra, az aláírásra, az identitásra és a visszaélés elleni védelemre is kiterjed. A táblázat bemutatja az összetevők felelősségét és biztonsági határát.

Erőforrás / képességCélBiztonsági határTervezési megjegyzés
S3-forrásAz exportált statikus WordPress-fájlokat tároljaAz objektumok ne legyenek nyilvánosak, ha a CloudFront a kiszolgálási határA Static Publisher publikálhatja a fájlokat; a védelmi stack szabályozza a hozzáférési útvonalat.
CloudFront-disztribúcióNyilvános és védett útvonalakat szolgál ki a peremhálózatonA védett viselkedések aláírt sütiket igényelnekA védett útvonalak listája architekturális paraméter, nem témabeállítás.
CloudFront kulcscsoport / nyilvános kulcsLehetővé teszi az aláírt sütik szabályzataláírásának ellenőrzésétA nyilvános kulcsot a CloudFront látja; a privát kulcs az aláírónál maradA kulcsrotációhoz üzemeltetési eljárás kell.
Aláíró szolgáltatásIdentitás-ellenőrzés után aláírt sütiket ad kiPrivát kulcs KMS/SSM-ben vagy azzal egyenértékű védett tárolóbanA sütihatókörtől függően API Gateway + Lambda vagy azonos domaines peremlogika lehet.
Cognito/Gatey-integrációA sütik kiadása előtt hitelesíti a látogatótAz identitástokenek elkülönülnek a CloudFront-sütiktőlA bejelentkezési oldal a statikus webhely része lehet.
Útvonal-, DNS- és tanúsítványopciókÖsszerendelik a nyilvános webhelyet és az opcionális API-/aláíró domaintA TLS és a hostnevek határozzák meg a sütik működésétA domainstratégia ugyanolyan fontos, mint a Lambda-kód.
WAF- / sebességkorlátokCsökkentik a nyilvános és aláíróútvonalak visszaéléseitPeremhálózati szűrés a futtatókörnyezet előttKülönösen hasznos nyilvánosan elérhető védett útvonalaknál és aláíróvégpontoknál.

Aláírt sütik és JWT-k

Ezek a hitelesítő adatok eltérő dolgokat igazolnak. Az összevetés megakadályozza, hogy az identitástokeneket, ideiglenes AWS-hitelesítő adatokat, CloudFront hozzáférési sütiket és WordPress-munkameneteket felcserélhetőnek tekintsük.

ArtefaktumKibocsátóEllenőrzőLegjobb felhasználás
Cognito ID-/hozzáférési tokenAmazon Cognito a hitelesítés utánFrontendkód, API Gateway authorizer, backend LambdaA felhasználó identitásának és az identitáshoz tartozó scope-ok vagy claim-ek igazolása.
IAM-hitelesítő adatokCognito Identity Pool / STSAWS-szolgáltatásjogosultságIAM által engedélyezett API-k vagy szolgáltatások hívása böngészőből ideiglenes, korlátozott jogosultsággal.
CloudFront aláírt sütiA privát kulcsot birtokló megbízható aláíróCloudFront a peremhálózatonStatikus objektumok lekérésének engedélyezése vagy tiltása kijelölt útvonalminták alatt.
WordPress bejelentkezési sütiWordPress/PHP futtatókörnyezetWordPressAdmin- vagy hagyományos dinamikus WordPress-munkamenetek, nem statikus peremhálózati jogosultság.

Útvonalvédelmi modell

Az útvonalkategóriákat telepítés előtt egyértelművé kell tenni. A táblázat különválasztja a nyilvános oldalakat, védett statikus objektumokat, fiókoldalakat, API-kat és nagyobb kockázatú végpontokat.

ÚtvonalkategóriaPéldaKikényszerítésGyakori hiba
Nyilvános tartalom/, /about/, /blog/, assetekCloudFront-gyorsítótár és S3 Origin Access ControlPrivát JSON, feltöltések vagy generált fájlok véletlenül nyilvános előtag alá kerülnek.
Védett statikus tartalom/members/*, /training/*, /client/*CloudFront aláírt sütik az illeszkedő viselkedésekhez/útvonalmintákhozCsak a linkek elrejtése, miközben az objektumok közvetlenül lekérhetők.
Bejelentkezési és fiókoldalak/signin/, /profile/Gatey + Cognito böngészős folyamatA bejelentkezési oldal szerveroldali WordPress-állapotként kezelése.
Védett API-k/api/* vagy konfigurált API Gateway domainCognito authorizer, JWT scope-ok vagy IAMFeltételezni, hogy a CloudFront-süti API-módosításokra is jogosít.
AI- vagy workflow-végpontok/frontend/prompt, /forms/submitVégpontspecifikus hitelesítés, WAF, reCAPTCHA és sebességkorlátAz oldal-hozzáférési logika újrahasználata nagyobb kockázatú futásidejű műveleteknél.

Fontos hibamódok

A védelmi modell könnyebben üzemeltethető, ha a gyakori hibák egyértelműek. A táblázat a látható tünetekhez valószínű okot és elsőként ellenőrizendő határt rendel.

HibamódTünetValószínű okJavítás iránya
A védett útvonal bejelentkezési hurokba kerülA felhasználó bejelentkezik, de ismét a belépési oldalra jutEltérő süti-domain/útvonal, hiányzó CloudFront-sütik vagy a böngésző elutasítja az attribútumokatEllenőrizze a Set-Cookie fejléceket, host-/domainbeállításokat, valamint a SameSite és Secure attribútumokat.
A védett fájl nyilvánosA privát URL inkognitóban bejelentkezés nélkül megnyílikNyilvános S3-objektum, nem védett CloudFront-viselkedés vagy közvetlen forrás-URLTiltsa az S3 nyilvános hozzáférést, kényszerítse ki a CloudFront forráshozzáférését, és ellenőrizze az útvonalmintákat.
403 érvényes bejelentkezés utánA CloudFront AccessDenied választ adLejárt süti, hibás kulcspárazonosító, érvénytelen aláírás vagy eltérő szabályzatútvonalEllenőrizze a süti élettartamát, a kulcscsoportot, az aláíró privát kulcsát és a CloudFront erőforrásmintáját.
Egyik aldomainen működik, másikon nemA sütik nem vagy hibásan kerülnek elküldésreDomain- és hosthoz kötött sütik eltérése vagy webhelyek közötti ütközésTörekedjen az azonos domaines kiadásra, vagy külön hostokkal és kulcsokkal válassza szét a környezeteket.
Az API működik oldal-hozzáférés nélkül, vagy fordítvaAPI-hívás sikerül, de a statikus oldal nem nyílik meg, vagy fordítvaA külön hitelesítési rétegek eltérően vannak konfigurálvaA statikus hozzáférést és az API-jogosultságot külön szabályzatként kezelje és dokumentálja.

Megvalósítási útvonal

A védett útvonalakat még publikálás előtt tervezze meg

A védett tartalom modelljét még azelőtt egyértelműen rögzíteni kell, hogy a statikus csomag éles környezetbe kerül.

  1. Nyilvános és védett útvonalkategóriák meghatározása — Azonosítsa, mely URL-ek és assetek maradnak nyilvánosak, és mely útvonalminták igényelnek hitelesített, aláírt sütis hozzáférést.
  2. Cognito-alapú identitás konfigurálása — Használja a Gateyt és a konfigurált Cognito User Poolt a böngészős bejelentkezéshez, MFA-hoz, profilhoz vagy SSO-hoz anélkül, hogy a WordPress lenne a frontend munkamenet-authoritása.
  3. Az aláíró és a CloudFront-szabályzat telepítése — Az aláírókulcs maradjon a megbízható aláíróoldalon, a sütiszabályzat csak a szükséges útvonalakra terjedjen ki, a süti élettartama pedig igazodjon a védett tartalomhoz.
  4. A hozzáférés tesztelése kiszolgálási problémaként — Külön ellenőrizze a névtelen tiltást, a bejelentkezés utáni hozzáférést, a lejáratot, a közvetlen S3-hozzáférést, a sütidomaint és az API-jogosultságot.

Mikor megfelelő az aláírt sütis védelem

Jó választás

Megosztott statikus tartalom hitelesített hozzáféréssel

  • A statikus WordPress-webhely tagsági, ügyfél-, dokumentációs, oktatási vagy portálútvonalai megosztott statikus objektumokként megvalósíthatók.
  • A nyilvános és védett oldalakat is CloudFronton keresztül szeretné kiszolgálni a PHP-munkamenetek visszaállítása nélkül.
  • A látogatói identitást már a Cognito kezeli, vagy ezt szánja az alkalmazás identitáshatárának.

Válasszon másik mintát

Más jogosultsági modell kell, ha

  • Magát az oldalt a szerveren felhasználónként eltérően kell renderelni.
  • A hozzáférést minden kérésnél azonnal vissza kell tudni vonni, ezért nem támaszkodhat megfelelően rövid aláírt süti-élettartamra.
  • A webhely teljesen dinamikus marad, és a szokásos WordPress szerepkör- és munkamenetvédelem már megfelel a követelménynek.

Problémaútmutatók

Az architektúra által támogatott vásárlói problémák

Hogyan adhatok bejelentkezést statikus WordPresshez PHP-munkamenetek nélkül?

Kezdje a Bejelentkezés hozzáadása statikus WordPresshez a PHP-munkamenetek visszaállítása nélkül című útmutatóval. Ez az identitás szétválasztását magyarázza el; az architektúra pedig a külön CloudFront-kiszolgálási vezérlést.

A Cognito váltsa le a WordPresst az alkalmazás identitásrétegeként?

Lásd az Amazon Cognito használata WordPress helyett az alkalmazás identitásrétegeként című útmutatót, ha a bejelentkezésnek a WordPressen túl API-kra, statikus frontendekre vagy más alkalmazásfelületekre is ki kell terjednie.

A meglévő SAML- vagy OIDC-identitásszolgáltatók továbbra is használhatók?

A föderációs esetre lásd a WordPress összekapcsolása meglévő SAML- és OIDC-identitásszolgáltatókkal külön bejelentkezési folyamatok építése nélkül című útmutatót. A Cognito maradhat az identitásközpont, a védett statikus réteg pedig felhasználhatja a kapott hitelesített állapotot.

A statikus bejelentkezés automatikusan jogosultságot ad az API-khoz?

Nem. Az aláírt statikus hozzáférés és a védett API-műveletek külön határok. A backendnek önállóan kell ellenőriznie a JWT-, IAM- vagy más támogatott jogosultsági mechanizmust.

Induljon a hozzáférési problémából

Adjon bejelentkezést a WordPress-munkamenetréteg visszaállítása nélkül

A vásárlói problémához használja a biztonságos statikus megoldást, ezt az architektúrát pedig akkor, ha kijelölt fájlok vagy útvonalak CloudFront által kikényszerített védelmet is igényelnek.