Infrastructură GCP sigură

Listă de verificare pentru consolidarea securității GCP pentru echipe mici și mijlocii

O bază de referință practică pentru echipele care rulează sarcini de lucru de producție pe Google Cloud fără un departament de securitate dedicat. Începe acolo unde căile cele mai probabile către un incident grav sunt cel mai ușor de redus.

Căi de amenințare frecvente în GCP

Majoritatea incidentelor din cloud încep cu o mică lacună de responsabilitate sau de configurare. Caută aceste căi înaintea unui atacator.

  • Un utilizator, un cont de serviciu sau o identitate de sarcină de lucru cu permisiuni excesive poate transforma o singură credențială furată într-un acces larg la mai multe proiecte.
  • Un endpoint de administrare expus, un port de depanare sau o regulă de firewall permisivă pot ocoli orice control conceput pentru traficul normal al aplicației.
  • Un bucket de stocare public sau o adresă URL semnată prea permisivă pot expune datele clienților fără o compromitere vizibilă a aplicației.
  • Sarcinile de lucru învechite creează un risc persistent atunci când imaginile vechi, spațiile de nume uitate, conturile de serviciu neutilizate și resursele fără responsabil pot fi încă implementate.
  • Lipsa dovezilor de audit sau păstrarea lor pentru scurt timp face dificilă identificarea celui care a modificat o politică, a momentului în care a început accesul și a datelor accesate.
  • Un backup netestat este doar o speranță. Restaurările eșuate, retenția incompletă și cheile de criptare inaccesibile pot transforma un incident de securitate într-o pierdere permanentă.

Identitate și acces

Tratează identitatea ca planul de control principal. Fiecare persoană, proces de automatizare și sarcină de lucru trebuie să aibă o identitate distinctă, cu un scop bine delimitat.

Fă explicite limitele resurselor

Folosește organizația și folderele pentru mecanisme de protecție și separă dezvoltarea, preproducția și producția în proiecte distincte sau în spatele unor limite de încredere mai stricte. Aplică politicile organizației la cel mai înalt nivel practic, restricționează utilizarea serviciilor și evită partajarea proiectelor de producție între produse fără legătură.

Acordă rolul minim, la cel mai restrâns nivel

Preferă rolurile predefinite sau personalizate în locul rolurilor primitive largi, acordă-le grupurilor și identităților sarcinilor de lucru și folosește condiții IAM acolo unde un nume de resursă sau o etichetă poate restrânge accesul. Analizează permisiunile neutilizate și elimină accesul permanent la producție care ar trebui să existe doar printr-o procedură de acces de urgență (break-glass).

Elimină credențialele cu durată lungă de viață

Folosește Workload Identity Federation for GKE pentru ca pod-urile să primească credențiale de scurtă durată, fără chei de cont de serviciu exportate. Blochează crearea și încărcarea cheilor prin politica organizației acolo unde este posibil, inventariază cheile rămase și configurează alerte pentru modificările IAM cu risc ridicat în Cloud Audit Logs.

Rețea și perimetru

Pornește de la premisa că, la un moment dat, un defect al aplicației va fi accesibil din rețea. Limitează ce poate accesa acel defect.

Pornește de la refuz implicit și adaugă căi denumite

Folosește reguli de firewall VPC cu privilegii minime și NetworkPolicies Kubernetes pentru traficul pod-urilor. Separă mediile în rețele distincte, documentează fiecare cale de intrare și elimină regulile de depanare largi care permit porturi de administrare sau toate protocoalele din intervale mari de adrese.

Păstrează private nodurile și planurile de control

Dezactivează adresele IP externe pe nodurile GKE. Preferă endpointul privat al planului de control bazat pe DNS și, când un endpoint IP este inevitabil, restricționează-l cu rețele autorizate. Oferă sarcinilor de lucru o cale de ieșire deliberată în locul unui acces larg la internet.

Publică doar serviciile publice intenționate

Expune aplicațiile printr-un gateway sau un echilibrator de încărcare verificat, nu prin adrese de pod-uri sau noduri expuse întâmplător. Realizează terminarea TLS cu certificate administrate, restricționează gazdele și căile de intrare, aplică limite de solicitări și de rată și păstrează interfețele de administrare în spatele unui acces bazat pe identitate.

Date și secrete

Protejează datele în repaus, în tranzit și în utilizare, apoi demonstrează că le poți recupera. Descoperirea datelor face parte din control.

Previne accesul public accidental

Aplică prevenirea accesului public și accesul uniform la nivel de bucket în Cloud Storage. Clasifică bucketurile după sensibilitate, restricționează accesul la obiecte și chei, activează jurnalizarea pentru datele de mare valoare și folosește chei de criptare gestionate de client acolo unde modelul tău de risc sau de conformitate le impune.

Ține secretele departe de imagini și de codul sursă

Stochează credențialele în Secret Manager și acordă acces unei anumite identități de sarcină de lucru și unei anumite versiuni a secretului. Rotește secretele în mod deliberat, evită copierea lor în Git sau în imaginile de container și nu considera Kubernetes Secrets obișnuite o limită de protecție completă.

Testează recuperarea, nu doar crearea backupurilor

Definește obiective pentru punctul de recuperare (RPO) și timpul de recuperare (RTO), păstrează copii în afara domeniului de defectare al producției și protejează accesul la backupuri și la cheile de criptare față de identitatea sarcinii de lucru. Restaurează periodic într-un mediu izolat, verifică datele și consemnează timpul scurs și orice pași manuali.

Consolidarea securității GKE

GKE securizează planul de control administrat, dar configurația clusterului, spațiile de nume, politicile de admitere și sarcinile de lucru rămân în responsabilitatea ta.

Fă din spațiile de nume contractul de izolare

Separă echipele și mediile în spații de nume sau clustere, asociază acolo roluri Kubernetes RBAC restrânse și aplică cote de resurse și NetworkPolicies. Evită accesul de scriere la nivelul întregului cluster pentru livrarea aplicațiilor și oferă fiecărei sarcini de lucru propriul cont de serviciu atunci când are nevoie de o identitate distinctă.

Admite doar imagini și configurații de încredere

Aplică standardul Pod Security restrictiv sau reguli Policy Controller echivalente. Implementează imaginile prin digest imuabil, scanează-le pentru vulnerabilități, folosește Binary Authorization acolo unde proveniența contează și respinge accesul neașteptat la gazdă, escaladarea privilegiilor și asocierile cluster-admin.

Elimină privilegiile inutile ale containerelor

Rulează ca utilizator non-root, renunță la capabilitățile Linux, folosește un sistem de fișiere rădăcină doar în citire acolo unde este posibil și aplică profilul seccomp RuntimeDefault. Nu monta tokenul contului de serviciu fără să fie nevoie, evită containerele privilegiate și spațiile de nume ale gazdei, păstrează la minimum permisiunile contului de serviciu al nodurilor și folosește Shielded Nodes împreună cu Container-Optimized OS.

Detectare și recuperare

Controalele eșuează. Bazează-te pe dovezi și pe acțiuni exersate, nu pe încrederea că nimeni nu a greșit.

Colectează dovezile de care vei avea nevoie

Păstrează Cloud Audit Logs și jurnalele de sistem și ale sarcinilor de lucru GKE într-o destinație centralizată, cu o perioadă de retenție potrivită nevoilor tale de investigare. Activează selectiv jurnalele de audit pentru accesul la date în cazul datelor sensibile, restricționează accesul la jurnale și înregistrează modificările administrative aduse IAM, firewallului, stocării și configurației clusterului.

Configurează alerte pentru modificările relevante pentru securitate

Configurează alerte pentru expunerea publică a stocării, modificările ample ale firewallului sau IAM, cheile de cont de serviciu neașteptate, refuzurile de admitere, expunerea planului de control, eșecurile repetate de autentificare, jurnalizarea dezactivată, backupurile eșuate și certificatele care urmează să expire. Direcționează fiecare alertă către un responsabil, împreună cu pașii pentru a o confirma sau a o respinge.

Exersează răspunsul

Scrie runbookuri scurte pentru credențiale scurse, date expuse public, sarcini de lucru compromise și regiuni sau proiecte pierdute. Include cine poate autoriza limitarea incidentului, cum se revocă accesul, cum se păstrează dovezile și cum se restabilește serviciul. Testează runbookurile cu persoanele care le vor folosi.

O listă de verificare prioritizată pentru 30, 60 și 90 de zile

Dacă pornești de la o bază de referință incompletă, ordonează munca astfel încât să reduci mai întâi expunerea și să faci repetabile analizele ulterioare.

Zilele 1–30: închide căile evidente

Inventariază proiectele și responsabilii, elimină credențialele neutilizate și cu durată lungă de viață, confirmă jurnalizarea de audit, blochează bucketurile publice, analizează regulile de firewall și atribuirile IAM cele mai permisive, identifică lacunele din backupurile de producție și remediază orice endpoint public fără responsabil. Atribuie un responsabil și un termen fiecărei constatări.

Zilele 31–60: fă baza de referință repetabilă

Mută configurația rețelei, a identităților și a sarcinilor de lucru în infrastructură ca cod verificată și în livrare GitOps. Adoptă Workload Identity, noduri private, Pod Security restrictiv, verificări ale imaginilor de încredere, jurnale centralizate și alerte pentru modificările care contează cel mai mult.

Zilele 61–90: demonstrează și menține

Rulează teste de restaurare și un exercițiu de simulare a unui incident (tabletop), analizează accesul privilegiat și expirarea excepțiilor, scanează din nou imaginile și dependențele, verifică faptul că responsabilii primesc alertele și măsoară lacunele rămase. Include verificările într-un ciclu de revizuire recurent înainte ca dovezile să devină învechite.

Folosește această listă de verificare ca punct de plecare. Snow Tree poate aplica baza de referință prin operarea platformei administrate sau printr-un proiect de consultanță punctual.

Referințe oficiale

Folosește îndrumările actuale ale Google ca sursă tehnică de referință atunci când se schimbă valorile implicite ale platformei sau capabilitățile produselor.

Platformă administrată

Lasă Snow Tree să dezvolte, să găzduiască și să opereze software-ul.

Începe un proiect