Megosztás a következőn keresztül:


Always Encrypted kulcsok elforgatása az SQL Server Management Studióval

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példány

Ez a cikk az Always Encrypted oszlop főkulcsainak és az oszloptitkosítási kulcsoknak az SQL Server Management Studióval (SSMS) való elforgatásával kapcsolatos feladatokat ismerteti.

Az Always Encrypted kulcskezelésének áttekintéséért, beleértve az ajánlott eljárásokat és a fontos biztonsági szempontokat, tekintse meg az Always Encrypted kulcskezelésének áttekintését.

Jegyzet

Az Azure Key Vaultban felügyelt HSM-ben tárolt oszlop-főkulcsok használatához az SSMS 18.9-es vagy újabb verziója szükséges.

Forgassa el az oszlopfő kulcsokat

Az oszlop főkulcsának elforgatása egy meglévő oszlop főkulcsának új oszlop főkulcsra való lecserélésének folyamata. Előfordulhat, hogy el kell forgatnia egy kulcsot, ha az sérült, vagy ahhoz, hogy megfeleljen a szervezet szabályzatainak vagy megfelelőségi előírásainak, amelyeket a titkosítási kulcsokat rendszeresen el kell forgatni. Az oszlop főkulcsának elforgatása magában foglalja az aktuális oszlop főkulcsával védett oszloptitkosítási kulcsok visszafejtését, az új oszlop főkulcs használatával történő újratitkosítását és a kulcs metaadatainak frissítését.

1. lépés: Új oszlop főkulcsának kiépítése

Kövesse az Oszlop főkulcsainak kiépítése az Új oszlop főkulcs párbeszédpaneljével című témakörben leírt lépéseket.

Jegyzet

Ha az Azure Key Vaultot használja kulcstárolóként, a több-bérlős ügyfél által felügyelt kulcsváltás nem támogatott. Győződjön meg arról, hogy az új ügyfél által kezelt kulcs ugyanabban a bérlőben van, mint a meglévő.

2. lépés: Oszloptitkosítási kulcsok titkosítása az új oszlop főkulcsával

Az oszlop főkulcsa általában egy vagy több oszloptitkosítási kulcsot véd. Minden oszloptitkosítási kulcs egy olyan titkosított értékkel rendelkezik az adatbázisban, amely az oszloptitkosítási kulcs és az oszlop főkulcsának titkosításának terméke. Ebben a lépésben titkosítja az összes olyan oszloptitkosítási kulcsot, amely a forgatott oszlop főkulcsával van védve, az új oszlop főkulcsával, és tárolja az új titkosított értéket az adatbázisban. Ennek eredményeképpen a rotáció által érintett oszloptitkosítási kulcsok két titkosított értékkel rendelkeznek: egy érték a meglévő oszlop főkulcsával van titkosítva, és egy új érték lesz titkosítva az új oszlop főkulcsával.

  1. Az Object Explorerrel keresse meg a Security>Always Encrypted Keys>Oszlop Mesterkulcsok mappát, és keresse meg azt az oszlop mesterkulcsot, amelyet forgatni készül.
  2. Kattintson a jobb gombbal az oszlop főkulcsára, és válassza az Elforgatás lehetőséget.
  3. Az Oszlop főkulcs elforgatása párbeszédpanelen válassza ki az 1. lépésben létrehozott új oszlop főkulcsának nevét a Cél mezőben.
  4. Tekintse át az oszlop titkosítási kulcsainak listáját, amelyeket a meglévő oszlop mesterkulcsok védenek. Ezekre a kulcsokra hatással lesz a forgatás.
  5. Kattintson az OK gombra.

Az SQL Server Management Studio lekérte a régi oszlop főkulcsával védett oszloptitkosítási kulcsok metaadatait, valamint a régi és az új oszlop főkulcsainak metaadatait. Ezután az SSMS az oszlop főkulcsának metaadataival fogja elérni a régi oszlop főkulcsát tartalmazó kulcstárolót, és visszafejti az oszloptitkosítási kulcs(ok)t. Ezt követően az SSMS hozzáfér az új oszlop főkulcsát tartalmazó kulcstárolóhoz, hogy létrehozhassa az oszloptitkosítási kulcsok új titkosított értékeit, majd hozzáadja az új értékeket a metaadatokhoz ( alter COLUMN ENCRYPTION KEY utasításokat hoz létre és bocsát ki).

Jegyzet

Győződjön meg arról, hogy a régi oszloptitkosítási kulccsal titkosított egyes oszloptitkosítási kulcsok nincsenek más oszloptitkosítási kulccsal titkosítva. Más szóval a rotáció által érintett oszloptitkosítási kulcsoknak pontosan egy titkosított értékkel kell rendelkezniük az adatbázisban. Ha bármely érintett oszloptitkosítási kulcs több titkosított értékkel rendelkezik, el kell távolítania az értéket, mielőtt folytatná a forgatást (lásd az oszloptitkosítási kulcs titkosított értékének eltávolításáról szóló 4. lépést ).

3. lépés: Alkalmazások konfigurálása az új oszlop főkulcsával

Ebben a lépésben győződjön meg arról, hogy az összes olyan ügyfélalkalmazás, amely a forgatott oszlop főkulcsával védett adatbázisoszlopokat kérdez le, hozzáfér az új oszlop főkulcsához (vagyis az oszloptitkosítási kulccsal titkosított adatbázisoszlopokhoz, amelyek az oszlop főkulcsával vannak titkosítva, elforgatva). Ez a lépés attól függ, hogy milyen típusú kulcstárolóban van az új oszlop főkulcsa. Például:

  • Ha az új oszlop főkulcsa a Windows Tanúsítványtárolóban tárolt tanúsítvány, a tanúsítványt ugyanarra a tanúsítványtároló helyre (jelenlegi felhasználó vagy helyi számítógép) kell telepítenie, mint az oszlop főkulcsának kulcsútvonalában megadott helyet az adatbázisban. Az alkalmazásnak hozzá kell tudnia férni a tanúsítványhoz:
    • Ha a tanúsítvány az aktuális felhasználói tanúsítványtárolóban van tárolva, a tanúsítványt importálni kell az alkalmazás Windows-identitásának (felhasználójának) aktuális felhasználói tárolójába.
    • Ha a tanúsítvány a helyi számítógép tanúsítványtárolójában van tárolva, az alkalmazás Windows-identitásának engedéllyel kell rendelkeznie a tanúsítvány eléréséhez.
  • Ha az új oszlop főkulcsa a Microsoft Azure Key Vaultban van tárolva, az alkalmazást végre kell hajtani, hogy hitelesíthesse magát az Azure-ban, és hozzáféréssel rendelkezzen a kulcshoz.

További információ: Az Always Encrypted oszlop főkulcsainak létrehozása és tárolása.

Jegyzet

A forgatás ezen pontján a régi oszlop főkulcsa és az új oszlop főkulcsa is érvényes, és az adatok eléréséhez használható.

4. lépés: A régi oszlop főkulcsával titkosított oszloptitkosítási kulcs értékeinek törlése

Miután konfigurálta az összes alkalmazást az új oszlop főkulcsának használatára, távolítsa el a régi oszloptitkosítási kulccsal titkosított oszloptitkosítási kulcsok értékeit az adatbázisból. A régi értékek eltávolítása biztosítja, hogy készen álljon a következő forgatásra (ne feledje, hogy minden egyes oszloptitkosítási kulcsnak, amely egy oszlop főkulcsával van védve, pontosan egy titkosított értékkel kell rendelkeznie).

A régi érték törlésének másik oka a régi oszlop főkulcsának archiválása vagy eltávolítása előtt a teljesítményfüggő: titkosított oszlop lekérdezésekor előfordulhat, hogy egy Always Encrypted-kompatibilis ügyfélillesztőnek meg kell kísérelnie két érték visszafejtését: a régi értéket és az újat. Az illesztőprogram nem tudja, hogy a két oszlop főkulcsa közül melyik érvényes az alkalmazás környezetében, ezért az illesztőprogram mindkét titkosított értéket lekéri a kiszolgálóról. Ha az egyik érték visszafejtése sikertelen, mert az oszlop főkulcsa nem elérhető (például a régi oszlop főkulcs, amelyet eltávolítottak a tárolóból), az illesztőprogram megpróbál egy másik értéket visszafejteni az új oszlop főkulcs használatával.

Figyelmeztetés

Ha eltávolítja az oszloptitkosítási kulcs értékét, mielőtt a megfelelő oszlop főkulcsát elérhetővé tette volna egy alkalmazás számára, az alkalmazás többé nem tudja visszafejteni az adatbázis oszlopát.

  1. Az Object Explorerrel lépjen a Security>Always Encrypted Keys mappába, és keresse meg a lecserélni kívánt meglévő oszlop főkulcsát.
  2. Kattintson a jobb gombbal a meglévő oszlop főkulcsára, és válassza a Törlés parancsot.
  3. Tekintse át az eltávolítandó oszloptitkosítási kulcsértékek listáját.
  4. Kattintson az OK gombra.

Az SQL Server Management Studio ALTER COLUMN ENCRYPTION KEY utasítást ad ki a régi oszlop főkulcsával titkosított oszloptitkosítási kulcsok titkosított értékeinek elvetéséhez.

5. lépés: A régi oszlop főkulcsának metaadatainak törlése

Ha úgy dönt, hogy eltávolítja a régi oszlop főkulcsának definícióját az adatbázisból, kövesse az alábbi lépéseket.

  1. Az Object Explorerrel lépjen a Security>Always Encrypted Keys>oszlop főkulcsai mappába, és keresse meg az adatbázisból eltávolítandó régi oszlop főkulcsát.
  2. Kattintson a jobb gombbal a régi oszlop főkulcsára, és válassza a Törlés lehetőséget. (Ez létrehoz és kiad egy DROP COLUMN MASTER KEY utasítást az oszlop főkulcsának metaadatainak eltávolításához.)
  3. Kattintson az OK gombra.

Jegyzet

Erősen ajánlott, hogy a forgatás után ne törölje véglegesen a régi oszlop főkulcsát. Ehelyett a régi oszlop főkulcsát a jelenlegi kulcstárolójában kell tartania, vagy egy másik biztonságos helyen kell archiválnia. Ha egy biztonságimásolat-fájlból visszaállítja az adatbázist az új oszlop főkulcsának konfigurálása előtti időpontra, az adatok eléréséhez szüksége lesz a régi kulcsra.

Az oszlop főkulcsának elforgatására vonatkozó engedélyek

Az oszlop főkulcsának elforgatásához az alábbi adatbázis-engedélyek szükségesek:

  • BÁRMELY OSZLOP FŐKULCSÁNAK MÓDOSÍTÁSA – az új oszlop főkulcs metaadatainak létrehozásához és a régi oszlop főkulcsának metaadatainak törléséhez szükséges.
  • BÁRMELY OSZLOPTITKOSÍTÁSI KULCS MÓDOSÍTÁSA – az oszloptitkosítási kulcs metaadatainak módosításához szükséges (új titkosított értékek hozzáadása).

Kulcstár-engedélyekre is szüksége van ahhoz, hogy a régi oszlop főkulcsa és az új oszlop főkulcsa is elérhető legyen a kulcstárolókban. A kulcskezelési műveletekhez szükséges kulcstároló-engedélyekkel kapcsolatos részletes információkért lépjen az Always Encrypted oszlop-főkulcsainak létrehozásához és tárolásához , és keresse meg a kulcstárolóhoz kapcsolódó szakaszt.

Oszloptitkosítási kulcsok elforgatása

Az oszloptitkosítási kulcs elforgatásával az összes olyan oszlopban visszafejthetők az adatok, amelyek a kifordítandó kulccsal vannak titkosítva, és az új oszloptitkosítási kulccsal újra titkosítják az adatokat.

Jegyzet

Az oszloptitkosítási kulcsok elforgatása nagyon hosszú időt vehet igénybe, ha a elforgatott kulccsal titkosított oszlopokat tartalmazó táblák nagyok. Amíg az adatok újra vannak titkosítva, az alkalmazások nem tudnak írni az érintett táblákba. Ezért a szervezetnek nagyon körültekintően kell megterveznie az oszloptitkosítási kulcsok rotálását. Oszloptitkosítási kulcs elforgatásához használja az Always Encrypted varázslót.

  1. Nyissa meg az adatbázis varázslóját: kattintson a jobb gombbal az adatbázisra, mutasson a Feladatok pontra, majd válassza az Oszlopok titkosítása lehetőséget.
  2. Tekintse át a Bevezetés lapot, majd kattintson a Tovább gombra.
  3. Az Oszlopkijelölés lapon bontsa ki a táblákat, és keresse meg az összes lecserélni kívánt oszlopot, amelyek jelenleg a régi oszloptitkosítási kulccsal vannak titkosítva.
  4. A régi oszloptitkosítási kulccsal titkosított minden egyes oszlopnál állítsa a titkosítási kulcsot egy új automatikus kulcsra. Jegyzet: Másik lehetőségként létrehozhat egy új oszloptitkosítási kulcsot a varázsló futtatása előtt – lásd: Oszloptitkosítási kulcsok kiépítése az Új oszloptitkosítási kulcs párbeszédpanelen.
  5. A Főkulcs konfigurációja lapon válassza ki az új kulcs tárolásának helyét, majd válasszon egy főkulcsforrást, majd válassza a Tovább gombot. Jegyzet: Ha meglévő oszloptitkosítási kulcsot használ (nem automatikusan létrehozott kulcsot), ezen a lapon nincs végrehajtandó művelet.
  6. Az Ellenőrzés lapon válassza ki, hogy azonnal futtatni szeretné-e a szkriptet, vagy hozzon létre egy PowerShell-szkriptet, majd válassza a Tovább gombot.
  7. Az Összegzés lapon tekintse át a kiválasztott beállításokat, majd válassza a Befejezés lehetőséget, majd zárja be a varázslót, ha elkészült.
  8. Az Object Explorerrel keresse meg a Security/Always Encrypted Keys/Column Encryption Keys mappát, és keresse meg a régi oszloptitkosítási kulcsot, amely eltávolítható az adatbázisból. Kattintson a jobb gombbal a kulcsra, és válassza a Törlés parancsot.

Az oszloptitkosítási kulcsok elforgatásának engedélyei

Az oszloptitkosítási kulcs elforgatásához a következő adatbázis-engedélyek szükségesek: ALTER ANY COLUMN MASTER KEY – új automatikusan előállított oszloptitkosítási kulcs használata esetén szükséges (új oszloptitkosítási kulcs és annak új metaadatai is létrejönnek). MÓDOSÍTSA AZ OSZLOPTITKOSÍTÁSI KULCSOT -required az új oszloptitkosítási kulcs metaadatainak hozzáadásához.

Kulcstároló-engedélyekre is szüksége van ahhoz, hogy hozzáférhessen az oszlop főkulcsokhoz mind az új, mind a régi oszloptitkosítási kulcs esetében. A kulcskezelési műveletekhez szükséges kulcstároló-engedélyekkel kapcsolatos részletes információkért lépjen az Always Encrypted oszlop-főkulcsainak létrehozásához és tárolásához , és keresse meg a kulcstárolóhoz kapcsolódó szakaszt.