ssm.ro Docs
Securitate, Infrastructură & OperațiuniInfrastructurăAWS (Model Enterprise)

Stocare S3

Bucket primar + CRR replica; versioning, SSE, Block-public-access, lifecycle 100 zile

Arhitectura S3

Platforma SSM.ro utilizează două bucket-uri AWS S3 în regiuni distincte:

BucketRolAcces aplicație
S3 PrimaryStocare principală conținut documenteDa — citire și scriere prin API autentificat
S3 CRR ReplicaBackup/DR pasiv în regiune separatăNu — nicio aplicație nu citește/scrie direct din replică

Configurare Bucket Primar

ParametruConfigurare
Block Public AccessActivat pe întreg bucket-ul — nicio expunere publică posibilă
VersioningActivat — protecție împotriva ștergerii sau suprascrierii accidentale
Server-Side Encryption (SSE)Activat — toate obiectele criptate la repaus
Lifecycle ruleexpire-deleted-objects — versiunile non-curente reținute maxim 100 de zile, apoi șterse permanent
AccesExclusiv prin API autentificat (credențiale IAM cu least-privilege)

Replicare Cross-Region (CRR)

Toate obiectele din bucket-ul primar sunt replicate automat într-un bucket S3 din o altă regiune AWS:

  • Replicarea este managed de AWS — nu necesită intervenție manuală
  • Replica are aceleași setări de securitate (SSE, versioning)
  • Replica este folosită exclusiv ca backup pasiv pentru DR (Disaster Recovery)
  • La outage regional sau pierdere masivă de date în regiunea primară, documentele pot fi recuperate din replică

Lifecycle Rules

expire-deleted-objects

Status: Enabled
Scope: Entire bucket

Current version actions:
  Day 0 — No actions defined

Noncurrent version actions:
  Day 0 — Objects become noncurrent
  Day 100 — 0 noncurrent versions retained
            All other noncurrent versions permanently deleted

Această regulă asigură că fișierele șterse (marcate ca delete markers) nu ocupă spațiu indefinit.

RPO S3

Replicarea cross-region asigură un RPO ≤ 15 minute pentru documente.

Acces și Autentificare

  • Accesul la S3 se face exclusiv prin API autentificat — niciun obiect nu este accesibil public
  • Credențialele AWS au permisiuni minime (least-privilege IAM) — acces restricționat la bucket-urile aplicației
  • Credențialele sunt stocate în Heroku config vars, nu în codul sursă