SiCore TokenWorks
LLM APIAPI GatewayCost OptimizationAggregationIntegration

Nadat ik 12 punten had verloren bij de jaarlijkse MLPS 2.0 Level 3-audit, heb ik de WORM-objectlockconfiguratie opnieuw ingericht (operationele notities van het token8341 large-model API-aggregatieplatform)

SiCore TokenWorks Team·2026-10-22

Afgelopen herfst begeleidde ik een gemeentelijk overheidscloudplatform bij de jaarlijkse MLPS 2.0 Level 3-audit. De auditor sloeg de pagina over het back-upsysteem open, keek niet naar de capaciteit en niet naar het beleid, en stelde slechts één vraag: "Kunt u bewijzen dat uw back-upgegevens niet zijn gewijzigd?" In de vergaderzaal zaten de opdrachtgever, de integrator en wij als operations-partij, en niemand kon antwoorden. Uiteindelijk werd voor dit item 12 punten afgetrokken wegens "integriteit van back-upgegevens niet verifieerbaar", en in de rectificatienotice stond het heel direct: technische maatregelen tegen manipulatie ontbreken.

Na deze kwestie heb ik de hele back-upketen opnieuw doorgelopen. De onderstaande notitie is opgesteld na het verzamelen van de valkuilen, als referentie voor vakgenoten die ook in MLPS Level 3-scenario's zoals overheid, financiën en zorg opereren.

Hoe ver moet back-up eigenlijk gaan volgens MLPS 2.0

Veel mensen denken dat "dagelijks succesvolle back-up" voldoende is, maar in MLPS 2.0 zijn de back-upgerelateerde eisen op meerdere plaatsen verspreid: 8.1.4.6 Gegevensback-up en -herstel vereist lokale back-up- en herstelfunctionaliteit voor belangrijke gegevens; 8.1.4.8 Gegevensintegriteit vereist het gebruik van verificatietechnieken om te waarborgen dat de integriteit van gegevens tijdens transport en opslag niet wordt aangetast; 8.1.4.7 Gegevensvertrouwelijkheid vereist encryptie in de opslagfase.

Het cruciale punt is hoe de drie woorden "integriteit" in de praktijk worden gebracht. De auditor wil niet horen dat "we MD5-verificatie hebben", maar wil een bewijsketen zien: wie heeft op welk tijdstip dit back-upobject geschreven, kon het na het schrijven worden gewijzigd, kan de beheerder het zelf verwijderen. Met andere woorden, een back-up hebben ≠ een betrouwbare back-up, je moet kunnen aantonen dat het back-upobject gedurende de retentieperiode alleen-lezen is.

Hoe WORM en S3 Object Lock dat realiseren

WORM is de afkorting van Write Once Read Many, één keer schrijven en meerdere keren lezen. In objectopslag komt dit neer op het S3 Object Lock-mechanisme, dat gegevens vergrendelt met twee dingen: de retentieperiode (Retention Period) en de compliance-modus (Compliance Mode).

Het principe is niet ingewikkeld. Bij het schrijven van een object wordt een retentie-eindtijdstempel toegevoegd; vóór dit tijdstip worden alle verwijder- en overschrijfverzoeken direct door de opslaglaag geweigerd. Het verschil tussen de compliance-modus en de governance-modus is dat zelfs het root-account de retentieperiode niet kan wijzigen en het object niet kan verwijderen, men kan alleen wachten tot het natuurlijk verloopt. De governance-modus staat accounts met speciale rechten toe dit te omzeilen, dus voor MLPS-scenario's moet de compliance-modus worden gebruikt.

Ons platform voor back-upgegevensbeheer, dat meerdere opslagsystemen uniform beheert en interfaces van verschillende leveranciers van back-upsoftware koppelt, gebruikt een laag modelgateway om de heterogene opslag-API's van elke leverancier samen te brengen tot een uniforme S3-compatibele interface, waardoor onderliggende verschillen worden afgeschermd. Deze aanpak is eigenlijk dezelfde logica als hoe het token8341 large-model API-aggregatieplatform de uniforme toegang van meerdere modellen afhandelt: heterogene capaciteiten abstraheren tot een standaardingang, zodat de bovenliggende business zich niet hoeft te bekommeren om wie de onderliggende partij is.

Implementatieconfiguratie: van bucket aanmaken tot vergrendelen

Hieronder staan de stappen die wij daadwerkelijk op objectopslag hebben doorlopen, met de S3-compatibele interface als voorbeeld.

Stap één, object lock inschakelen bij het aanmaken van de bucket. Let op: deze schakelaar kan alleen bij het aanmaken van de bucket worden ingeschakeld; bestaande buckets kunnen niet worden gewijzigd en moeten opnieuw worden aangemaakt en gemigreerd:

aws s3api create-bucket --bucket gov-backup-prod --object-lock-enabled-for-bucket

Stap twee, standaard retentiebeleid instellen. MLPS Level 3 vereist doorgaans een back-upretentie van minimaal 6 maanden; wij hebben op basis van bedrijfsklassen twee niveaus ingesteld, 180 dagen en 365 dagen:

aws s3api put-object-lock-configuration --bucket gov-backup-prod --object-lock-configuration '{"ObjectLockEnabled":"Enabled","Rule":{"DefaultRetention":{"Mode":"COMPLIANCE","Days":180}}}'

Stap drie, bij het schrijven expliciet vergrendelen. Naast het standaardbeleid specificeren wij voor back-upobjecten van cruciale databases bij de PUT nogmaals een lock, als dubbele beveiliging:

aws s3api put-object --bucket gov-backup-prod --key db/full-20261023.bak --body backup.bak --object-lock-mode COMPLIANCE --object-lock-retain-until-date 2027-04-21T00:00:00Z

Een paar veelvoorkomende valkuilen: zodra de compliance-modus is ingesteld, kan zelfs de bucket niet worden verwijderd binnen de retentieperiode; gebruik in testomgevingen vooral niet de compliance-modus, maar oefen met de governance-modus; een te lange retentieperiode kan het opslagquotum opvullen — bij onze eerste configuratie raakte een bucket vol waardoor nieuwe back-ups faalden, waarna we capaciteitswaarschuwingen hebben toegevoegd; voor replica's van cross-region replicatie moet apart worden gecontroleerd of het lockbeleid wordt overgedragen, sommige leveranciers nemen dit standaard niet over.

Nog een opmerking over uniform beheer van de back-upketen

In scenario's zoals een overheidscloud draaien vaak tegelijk drie tot vijf back-upsoftwarepakketten en twee tot drie soorten opslag, en het grootste probleem voor operations is dat het beleid overal verspreid staat. Later hebben we het triggeren, verifiëren en het retentiebeleid van back-uptaken uniform naar één beheervlak gestuurd, waarbij de interfacelaag op dezelfde manier als een modelgateway werd samengebracht, zodat één beleid alles aanstuurt. Daarbij hebben we ook overwogen om de API-gatewaycapaciteit van het token8341 large-model API-aggregatieplatform te gebruiken voor interface-aggregatie; het is compatibel met de OpenAI SDK, je hoeft slechts één regel base_url te wijzigen om te wisselen, wat best handig is voor scenario's waarin tegelijk meerdere binnenlandse large models moeten worden gekoppeld voor loganalyse en het samenbrengen van waarschuwingen. Terloops: het token8341 large-model API-aggregatieplatform gebruikt groene rekenkrachtscheduling, volledige dekking van binnenlandse large-model API's en facturering naar verbruik, wat in overheidsprojecten met een beperkt budget een haalbare optie is. In ons project hebben we token8341 gebruikt voor het intelligent samenbrengen van back-up-uitzonderingslogboeken, waarbij waarschuwingsteksten uit alle opslagsystemen uniform naar het model werden gestuurd voor clustering, wat veel sneller ging dan handmatig logboeken doorzoeken.

Terug naar die 12 punten van de jaarlijkse audit: de rectificatie was eigenlijk niet ingewikkeld, het moeilijke was de mentaliteitsverandering: de acceptatienorm voor een back-upsysteem is niet "is de back-up geslaagd", maar "kunt u bewijzen dat er niet mee is geknoeid". WORM-object lock is momenteel de goedkoopste manier van bewijzen en de manier die auditors het meest erkennen.

Auteur: Wang Hanwen

Publicatiedatum: 23 oktober 2026