Implementați criptarea transparentă a datelor
Criptarea transparentă a datelor (TDE) ajută la protejarea Azure SQL Database, Azure SQL Managed Instance și Synapse SQL în Azure Synapse Analytics împotriva amenințării activității offline rău intenționate prin criptarea datelor în repaus. Efectuează criptarea și decriptarea în timp real a bazei de date, a copiilor de rezervă asociate și a fișierelor jurnal de tranzacții în repaus, fără a necesita modificări ale aplicației. În mod implicit, TDE este activat pentru toate bazele de date Azure SQL nou implementate și trebuie activat manual pentru bazele de date mai vechi ale bazei de date Azure SQL, Azure SQL Managed Instance sau Azure Synapse.
TDE efectuează criptarea I/O în timp real și decriptarea datelor la nivel de pagină. Fiecare pagină este decriptată atunci când este citită în memorie și apoi criptată înainte de a fi scrisă pe disc. TDE criptează stocarea unei întregi baze de date utilizând o cheie simetrică numită cheie de criptare a bazei de date (DEK). La pornirea bazei de date, DEK criptat este decriptat și apoi utilizat pentru decriptarea și recriptarea fișierelor bazei de date în procesul SQL Server Database Engine. DEK este protejat de protectorul TDE. Protectorul TDE este fie un certificat gestionat de serviciu (criptare transparentă a datelor gestionată de serviciu), fie o cheie asimetrică stocată în Azure Key Vault (criptare transparentă a datelor gestionată de client).
Pentru Azure SQL Database și Azure Synapse, protectorul TDE este setat la nivel de server SQL logic și este moștenit de toate bazele de date asociate cu acel server. Pentru Azure SQL Managed Instance (caracteristică BYOK în previzualizare), protectorul TDE este setat la nivel de instanță și este moștenit de toate bazele de date criptate din acea instanță. Termenul server se referă atât la server, cât și la instanță în acest document, cu excepția cazului în care se specifică altfel.
Toate bazele de date SQL nou create sunt criptate în mod implicit utilizând criptarea transparentă a datelor gestionată de serviciu. Când sursa bazei de date este criptată, bazele de date țintă create prin restaurare, replicare geografică și copiere a bazei de date sunt criptate în mod implicit. Cu toate acestea, atunci când sursa bazei de date nu este criptată, bazele de date țintă create prin restaurare, replicare geografică și copiere a bazei de date nu sunt criptate în mod implicit. Bazele de date SQL existente create înainte de mai 2017 și bazele de date existente SQL Managed Instance create înainte de februarie 2019 nu sunt criptate în mod implicit. Bazele de date SQL Managed Instance create prin restaurare moștenesc starea de criptare de la sursă. Pentru a restaura o bază de date criptată cu TDE existentă, certificatul TDE necesar trebuie mai întâi să fie importat în SQL Managed Instance. Pentru a afla starea de criptare pentru o bază de date, executați o interogare de selectare din DMV sys.dm_database_encryption_keys și verificați starea coloanei encryption_state_desc .
TDE nu poate fi utilizat pentru a cripta bazele de date de sistem, cum ar fi master baza de date, în SQL Database și SQL Managed Instance. Baza de date principală conține obiecte care sunt necesare pentru a efectua operațiuni TDE pe bazele de date ale utilizatorilor. Se recomandă să nu stocați date sensibile în bazele de date ale sistemului. Excepție este tempdb, care este întotdeauna criptat cu TDE pentru a proteja datele stocate acolo.
Criptarea transparentă a datelor gestionată de servicii
În Azure, setarea implicită pentru TDE este că DEK este protejat de un certificat de server încorporat. Certificatul de server încorporat este unic pentru fiecare server, iar algoritmul de criptare utilizat este AES 256. Dacă o bază de date se află într-o relație de replicare geografică, atât baza de date primară, cât și cea geo-secundară sunt protejate de cheia serverului părinte a bazei de date primare. Dacă două baze de date sunt conectate la același server, acestea partajează același certificat încorporat. Microsoft rotește automat aceste certificate în conformitate cu politica de securitate internă, iar cheia rădăcină este protejată de un depozit secret intern Microsoft. Clienții pot verifica conformitatea bazei de date SQL cu politicile de securitate interne în rapoartele de audit terțe independente disponibile în Centrul de autorizare Microsoft.
De asemenea, Microsoft mută și gestionează fără probleme cheile după cum este necesar pentru replicarea geografică și restaurările.
Criptare transparentă a datelor gestionată de client - Bring Your Own Key
TDE gestionat de client este denumit și suport BYOK (Bring Your Own Key) pentru TDE. În acest scenariu, TDE Protector care criptează DEK este o cheie asimetrică gestionată de client, care este stocată într-un Azure Key Vault deținut și gestionat de client (sistemul extern de gestionare a cheilor bazat pe cloud al Azure) și nu părăsește niciodată seiful de chei. TDE Protector poate fi generat de seiful de chei sau transferat în seiful de chei de pe un dispozitiv HSM (Hardware Security Module) local. SQL Database trebuie să primească permisiuni pentru seiful de chei deținut de client pentru a decripta și cripta DEK. Dacă permisiunile serverului SQL logic pentru seiful de chei sunt revocate, o bază de date va fi inaccesibilă și toate datele sunt criptate
Cu integrarea TDE cu Azure Key Vault, utilizatorii pot controla sarcinile de gestionare a cheilor, inclusiv rotațiile cheilor, permisiunile seifului de chei, backup-urile cheilor și pot activa auditarea/raportarea tuturor protectorilor TDE utilizând funcționalitatea Azure Key Vault. Key Vault oferă gestionarea centrală a cheilor, utilizează HSM-uri strict monitorizate și permite separarea sarcinilor între gestionarea cheilor și a datelor pentru a ajuta la respectarea politicilor de securitate.
Mutarea unei baze de date transparente protejate prin criptarea datelor
Nu trebuie să decriptați bazele de date pentru operațiuni în Azure. Setările TDE din baza de date sursă sau baza de date primară sunt moștenite în mod transparent pe țintă. Operațiunile incluse implică:
- Geo-restaurare
- Restaurare punctuală cu autoservire
- Restaurarea unei baze de date șterse
- Geo-replicare activă
- Crearea unei copii a bazei de date
- Restaurarea fișierului de rezervă în Azure SQL Managed Instance
Efectuarea de backup manual COPY-ONLY a unei baze de date criptate prin TDE gestionat de serviciu nu este acceptată în Azure SQL Managed Instance, deoarece certificatul utilizat pentru criptare nu este accesibil. Utilizați caracteristica de restaurare punctuală pentru a muta acest tip de bază de date într-o altă instanță gestionată SQL sau pentru a trece la cheia gestionată de client.
Când exportați o bază de date protejată TDE, conținutul exportat al bazei de date nu este criptat. Acest conținut exportat este stocat în fișiere BACPAC necriptate. Asigurați-vă că protejați fișierele BACPAC în mod corespunzător și activați TDE după terminarea importului noii baze de date.
De exemplu, dacă fișierul BACPAC este exportat dintr-o instanță SQL Server, conținutul importat al noii baze de date nu este criptat automat. De asemenea, dacă fișierul BACPAC este importat într-o instanță SQL Server, noua bază de date nu este criptată automat.
Singura excepție este atunci când exportați o bază de date în și din baza de date SQL. TDE este activat pe noua bază de date, dar fișierul BACPAC în sine încă nu este criptat.
Gestionați criptarea transparentă a datelor
Gestionați TDE în portalul Azure.
Pentru a configura TDE prin portalul Azure, trebuie să fiți conectat ca proprietar, contribuitor sau manager de securitate SQL.
Activați și dezactivați TDE la nivel de bază de date. Pentru Azure SQL Managed Instance, utilizați Transact-SQL (T-SQL) pentru a activa și dezactiva TDE pe o bază de date. Pentru baza de date SQL Azure și Azure Synapse, puteți gestiona TDE pentru baza de date în portalul Azure după ce v-ați conectat cu contul de administrator sau colaborator Azure. Găsiți setările TDE în baza de date a utilizatorilor. În mod implicit, se utilizează cheia de criptare la nivel de server. Un certificat TDE este generat automat pentru serverul care conține baza de date.
Setați cheia master TDE, cunoscută sub numele de protector TDE, la nivel de server sau instanță. Pentru a utiliza TDE cu suport BYOK și pentru a vă proteja bazele de date cu o cheie din Azure Key Vault, deschideți setările TDE sub server sau instanță gestionată.
De asemenea, puteți utiliza o cheie gestionată de client pentru TDE la nivel de bază de date pentru baza de date SQL Azure.