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


Az SQL Server TDE bővíthető kulcskezelésének beállítása az Azure Key Vault használatával

A következőkre vonatkozik:SQL Server

Ebben a cikkben az Azure Key Vaulthoz készült SQL Server-összekötőt telepíti és konfigurálja.

Jegyzet

A Microsoft Entra ID-t korábban Azure Active Directorynak (Azure AD) nevezték.

Az Azure Key Vaultot (AKV) használó bővíthető kulcskezelés linuxos környezetekben elérhető az SQL Serverhez, kezdve az SQL Server 2022 (16.x) 12. kumulatív frissítésével. Kövesse ugyanazokat az utasításokat, de hagyja ki a 3. és a 4. lépést.

Előfeltételek

Mielőtt elkezdené használni az Azure Key Vaultot az SQL Server-példányával, győződjön meg arról, hogy megfelelt az alábbi előfeltételeknek:

Jegyzet

Az SQL Server 2022 (16.x) CU 14-es és újabb verzióiban a Linuxon futó SQL Server támogatja a TDE bővíthető kulcskezelést az Azure Key Vaulttal. Az útmutató 3. és 4. lépése nem szükséges a Linuxon futó SQL Serverhez.

1. lépés: Microsoft Entra szolgáltatásnév beállítása

Annak érdekében, hogy az SQL Server-példány hozzáférési engedélyeket kapjon az Azure kulcstartóhoz, szüksége van egy szolgáltatás-alapú fiókra a Microsoft Entra azonosítóban.

  1. Jelentkezzen be az Azure Portalra, és tegye az alábbiak egyikét:

    • Válassza a Microsoft Entra ID gombot .

      Képernyőkép az Azure-szolgáltatások panelről.

    • Válassza a További szolgáltatások lehetőséget, majd a Minden szolgáltatás panelen írja be a Microsoft Entra-azonosítót.

  2. Regisztráljon egy alkalmazást a Microsoft Entra-azonosítóval az alábbi lépésekkel. Részletes részletes útmutatásért tekintse meg az Azure Key Vault Azure Key Vault – Lépésről lépésre című blogbejegyzésének alkalmazásszakaszához tartozó identitás lekérését.

    1. A Microsoft Entra ID-erőforrásKezelés szakaszában válassza az Alkalmazásregisztrációk lehetőséget.

      Képernyőkép a Microsoft Entra ID áttekintési oldaláról az Azure Portalon.

    2. Az Alkalmazásregisztrációk lapon válassza az Új regisztráció lehetőséget.

      Képernyőkép az Azure Portal Alkalmazásregisztrációk paneljéről.

    3. Az Alkalmazás regisztrálása panelen adja meg az alkalmazás felhasználói nevét, majd válassza a Regisztráció lehetőséget.

      Képernyőkép az Alkalmazás regisztrálása panelről.

    4. A bal oldali panelen válassza a Tanúsítványok > titkos ügyfélkulcsok > új ügyféltitkot>.

      Képernyőkép az Azure Portalon található alkalmazás Tanúsítvány & titkos kulcsok paneljéről.

    5. Az Ügyfélkód hozzáadása csoportban adja meg a leírást és a megfelelő lejáratot, majd válassza a Hozzáadás lehetőséget. Nem választhat 24 hónapnál hosszabb lejárati időt. További információ: Ügyfélkód hozzáadása.

      Képernyőkép az Alkalmazás ügyfélkód hozzáadása szakaszáról az Azure Portalon.

    6. A Tanúsítványok > titkos kulcsok panel Érték csoportjában válassza a Másolás gombot annak az ügyfélkulcsnak az értéke mellett, amellyel aszimmetrikus kulcsot szeretne létrehozni az SQL Serverben.

      Képernyőkép az Azure Portal titkos kódértékéről.

    7. A bal oldali panelen válassza az Áttekintés lehetőséget, majd az Alkalmazás (ügyfél) azonosító mezőjében másolja ki az aszimmetrikus kulcs SQL Serverben való létrehozásához használandó értéket.

      Képernyőkép az Alkalmazás (ügyfél) azonosító értékéről az Áttekintés panelen.

2. lépés: Kulcstár létrehozása

Válassza ki a kulcstár létrehozásához használni kívánt módszert.

Jegyzet

Csak az Azure Key Vault és az Azure Key Vault által felügyelt HSM támogatott. Az Azure Cloud HSM nem támogatott.

Kulcstár létrehozása az Azure portal használatával

Az Azure portált használhatja a kulcstartó létrehozásához, majd hozzáadhat egy Microsoft Entra-szerepkört.

  1. Hozzon létre egy erőforráscsoportot.

    Az Azure portálon létrehozott összes Azure-erőforrásnak egy erőforráscsoportban kell lennie, amelyet azért hoz létre, hogy abban elhelyezze a kulcstartó tárolóját. Ebben a példában az erőforrás neve DocsSampleRG. Válassza ki a saját erőforráscsoportját és kulcstartónevét, mert minden kulcstartónévnek globálisan egyedinek kell lennie.

    Az Erőforráscsoport létrehozása panel Projekt részletei csoportjában adja meg az értékeket, majd válassza a Véleményezés + létrehozás lehetőséget.

    Képernyőkép az Erőforráscsoport létrehozása panelről az Azure Portalon.

  2. Az Azure Portalon keressen vagy válassza ki a Key Vaults-szolgáltatásokat egy kulcstartó létrehozásához. Válassza a Létrehozás lehetőséget.

    A Kulcstartó létrehozása panelen válassza az Alapszintű beállítások lapot. Adja meg a lap megfelelő értékeit. Azt is javasoljuk, hogy engedélyezze a törlés elleni védelmet.

    Képernyőkép a kulcstartó létrehozása panelről az Azure portálon.

  3. Az Access konfigurációs lapján kiválaszthatja az Azure szerepköralapú hozzáférés-vezérlési vagy tárolóhozzáférési szabályzatot. Mindkét lehetőséget átmegyünk, de az Azure szerepköralapú hozzáférés-vezérlési lehetősége ajánlott. További információ: Access-modell áttekintése.

    Képernyőkép a Kulcstár létrehozása panelről és a Hozzáférés konfiguráció fülről az Azure Portalon.

  4. A Hálózatkezelés lapot alapértelmezettként hagyhatja, vagy konfigurálhatja a kulcstartó hálózati beállításait. Ha tűzfalat használ a kulcstartóval, engedélyezni kell a megbízható Microsoft-szolgáltatások tűzfal megkerülését , kivéve, ha privát végpontkapcsolatokat használ. További információ: Azure Key Vault-tűzfalak és virtuális hálózatok konfigurálása.

  5. Válassza a Felülvizsgálat + létrehozás lehetőséget, és hozza létre a kulcstartót.

Azure szerepköralapú hozzáférés-vezérlés

Az ajánlott módszer az Azure szerepköralapú hozzáférés-vezérlés (RBAC) használata a kulcstartóhoz való engedélyek hozzárendeléséhez. Ezzel a módszerrel részletesebben rendelhet engedélyeket felhasználókhoz, csoportokhoz és alkalmazásokhoz. Engedélyeket rendelhet a kulcstartóhoz a felügyeleti síkon (Azure-szerepkör-hozzárendelések) és az adatsíkon (kulcstartó hozzáférési szabályzatai). Ha csak hozzáférési szabályzatot tud használni, kihagyhatja ezt a szakaszt, és továbbléphet a Tároló hozzáférési szabályzat szakaszára. Az Azure Key Vault RBAC-engedélyeivel kapcsolatos további információkért lásd az Azure beépített szerepköreit a Key Vault adatsík-műveleteihez.

  1. Lépjen a létrehozott Key Vault-erőforrásra, és válassza a Hozzáférés-vezérlés (IAM) beállítást.

  2. Válassza a >szerepkör-hozzárendelés hozzáadása lehetőséget.

    Képernyőkép a Szerepkör-hozzárendelés hozzáadása gombról az Azure Portal Hozzáférés-vezérlés (IAM) paneljén.

  3. Az EKM-alkalmazásnak szüksége van a Key Vault titkosítási szolgáltatás titkosítási felhasználói szerepkörére a körbefuttatási és a feloldási műveletek végrehajtásához. Keresse meg a Key Vault kriptószolgáltatás titkosítási felhasználót, és válassza ki a szerepkört. Válassza a Tovább gombot.

    Képernyőkép egy szerepkör-hozzárendelés kiválasztásáról az Azure Portalon.

  4. A Tagok lapon válassza a Tagok kiválasztása lehetőséget, majd keresse meg az 1. lépésben létrehozott Microsoft Entra alkalmazást. Jelölje ki az alkalmazást, majd a kijelölése gombot.

    Képernyőkép a Tagok kiválasztása panelről, amely szerepkör-hozzárendelést ad hozzá az Azure Portalon.

  5. Válassza a Véleményezés + hozzárendelés kétszer lehetőséget a szerepkör-hozzárendelés befejezéséhez.

  6. A kulcsot létrehozó felhasználónak a Key Vault rendszergazdai szerepkörére van szüksége. Keresse meg a Key Vault rendszergazdát , és válassza ki a szerepkört. Válassza a Tovább gombot.

  7. Az előző lépésekhez hasonlóan adja hozzá a kulcsot létrehozó tagot, és rendelje hozzá a szerepkört.

Tároló hozzáférési szabályzata

Jegyzet

Ha az Azure szerepköralapú hozzáférés-vezérlési lehetőséget használja, kihagyhatja ezt a szakaszt. Ha módosítja az engedélymodellt, ezt a kulcstár hozzáférési konfiguráció menü megnyitásával teheti meg. Győződjön meg arról, hogy rendelkezik a megfelelő engedélyekkel a kulcstároló kezeléséhez. További információ: Azure RBAC-engedélyek engedélyezése a Key Vaulton.

  1. Az Access konfigurációs lapján válassza a Tároló hozzáférési szabályzatát. Ha meglévő Key Vaultot használ, kiválaszthatja az Access szabályzatok menüjét a Key Vault-erőforrásból, és kiválaszthatja a Létrehozás lehetőséget.

  2. A Hozzáférési szabályzat létrehozása panelen válassza a Kulcskezelési műveletek beállításai között az Engedélyek beolvasása és listázása lehetőséget. Válassza a Kulcsbontás és Kulcsbecsomagolás engedélyeket a titkosítási műveletek lehetőségei közül. Válassza a Tovább lehetőséget

    Képernyőkép az Access-szabályzatok panel Hozzáférési szabályzat hozzáadása hivatkozásáról.

  3. Az Egyszerű lapon válassza ki az 1. lépésben létrehozott alkalmazást.

    Képernyőkép az Alkalmazás keresőmezőjéről a Fő panelen.

  4. Válassza a Tovább , majd a Létrehozás lehetőséget.

Kulcs létrehozása

  1. A Key Vault panelen válassza a Kulcsok lehetőséget, majd válassza a Létrehozás/Importálás lehetőséget. Ekkor megnyílik a Kulcs létrehozása panel. Adjon meg egy kulcstárnevet. Válassza a létrehozása lehetőséget, és adja meg a kulcs nevét. Az SQL Server-összekötő megköveteli, hogy a kulcsnév kizárólag az "a-z", "A-Z", "0-9" és "-" karaktereket használja, legfeljebb 26 karakter hosszúságban.

  2. Használja a RSA kulcstípust és a RSA kulcsméretet2048. Az EKM jelenleg csak RSA-kulcsot támogat. Állítsa be az aktiválási és a lejárati dátumokat a megfelelő módon, és állítsa az Engedélyezve értéket Igen értékre.

    Képernyőkép a Kulcs létrehozása panelről.

Ajánlott eljárások

A kulcsok gyors helyreállításának biztosítása és az adatok Azure-on kívüli elérése érdekében az alábbi ajánlott eljárásokat javasoljuk:

  • Hozza létre helyileg a titkosítási kulcsot egy helyi hardveres biztonsági modul (HSM) eszközén. Mindenképpen használjon aszimmetrikus RSA 2048- vagy 3072-kulcsot, hogy az SQL Server támogassa.

  • Importálja a titkosítási kulcsot az Azure Key Vaultba. Ezt a folyamatot a következő szakaszok ismertetik.

  • Mielőtt első alkalommal használja a kulcsot az Azure Key Vaultban, készítsen biztonsági másolatot az Azure Key Vault kulcsról a Backup-AzureKeyVaultKey PowerShell-parancsmaggal.

  • Amikor módosítja a kulcsot (például ACL-eket, címkéket vagy kulcsattribútumokat ad hozzá), mindenképpen készítsen egy másik Azure Key Vault-kulcs biztonsági mentést.

    Jegyzet

    A kulcsok biztonsági mentése egy Azure Key Vault-kulcsművelet, amely egy tetszőleges helyre menthető fájlt ad vissza.

    Ha tűzfal vagy proxykiszolgáló mögött használja az Azure Key Vault SQL Server-összekötőt, az hatással lehet a teljesítményre, ha a forgalom késik vagy le van tiltva. Ismerkedjen meg az Access Azure Key Vault tűzfal mögötti használatával, hogy a megfelelő szabályok érvényben legyenek.

Nem kötelező – Azure Key Vault által felügyelt HSM konfigurálása (hardveres biztonsági modul)

Az Azure Key Vault által felügyelt HSM (hardveres biztonsági modul) támogatott az SQL Server és az SQL Server Azure-beli virtuális gépeken, valamint az Azure SQL esetében, amikor az SQL Server-összekötő legújabb verzióját használják. A felügyelt HSM egy teljes körűen felügyelt, magas rendelkezésre állású, egybérlős HSM-szolgáltatás. A felügyelt HSM biztonságos alapot biztosít a titkosítási műveletekhez és a kulcstároláshoz. A felügyelt HSM úgy lett kialakítva, hogy megfeleljen a legszigorúbb biztonsági és megfelelőségi követelményeknek.

A 2. lépésben megtanultuk, hogyan hozhat létre kulcstartót és kulcsot az Azure Key Vaultban. Igény szerint az Azure Key Vault felügyelt HSM-ével is tárolhat vagy létrehozhat egy, az SQL Server-összekötővel használandó kulcsot. A lépések a következők:

  1. Azure Key Vault által felügyelt HSM létrehozása. Ezt az Azure Portalon teheti meg az Azure Key Vault felügyelt HSM szolgáltatásának keresésével és az új erőforrás létrehozásával, vagy az Azure CLI, a PowerShell vagy egy ARM-sablon használatával.

  2. Aktiválja a felügyelt HSM-et. A HSM-et csak a felügyelt HSM létrehozása során hozzárendelt kijelölt rendszergazdák aktiválhatják. Ezt úgy teheti meg, hogy kiválasztja a felügyelt HSM-erőforrást az Azure Portalon, ha az erőforrás Áttekintés menüjében a Biztonsági tartomány letöltése lehetőséget választja. Ezután kövesse az egyik rövid útmutatót a felügyelt HSM aktiválásához.

  3. Adja meg a jogosultságokat a Microsoft Entra szolgáltatás főszereplőjének a Felügyelt HSM eléréséhez. A felügyelt HSM-rendszergazdai szerepkör nem ad engedélyt kulcs létrehozására. A 2. lépéshez hasonlóan az EKM-alkalmazásnak is szüksége van a felügyelt HSM titkosítási felhasználóra vagy a felügyelt HSM titkosítási szolgáltatás titkosítási felhasználói szerepkörére a körbefuttatási és a feloldási műveletek végrehajtásához. Válassza ki a Vállalati alkalmazástípust , amikor hozzáadja a szerepkör-hozzárendeléshez tartozó tagot. További információ: Helyi RBAC beépített szerepkörök a felügyelt HSM-hez.

  4. Az Azure Key Vault felügyelt HSM szolgáltatás menüjében, a Beállítás csoportban válassza a Kulcsok lehetőséget. A Kulcsok ablakban válassza a Biztonsági másolat létrehozása/importálása/visszaállítása lehetőséget kulcs létrehozásához vagy meglévő kulcs importálásához.

    Jegyzet

    A felügyelt HSM eléréséhez szükséges hitelesítő adatok létrehozásakor az identitás az<name of Managed HSM>.managedhsm.azure.net, amely az Azure Key Vault felügyelt HSM Áttekintés részében, az Azure portál HSM URI-jaként található.

    Az algoritmusok RSA-HSM_2048 és RSA-HSM_3072 az SQL Server 2022 (16.x) 13. kumulatív frissítésétől kezdve támogatottak.

    Az Azure Key Vault által felügyelt HSM támogatja az automatikus kulcsforgatást. További információ: Kulcsok automatikus elforgatásának konfigurálása az Azure Managed HSM-ben.

    Az SQL Server Connector 15.0.2000.440-es vagy újabb verziója szükséges az Azure Key Vault által felügyelt HSM támogatásához.

    A felügyelt HSM támogatja a privát végpontkapcsolatokat. További információ: Felügyelt HSM integrálása az Azure Private Linkkel. Ebben a konfigurációban a Microsoft megbízható szolgáltatás áthidalás lehetőséget engedélyezni kell az Azure Key Vault Felügyelt HSM hálózati beállításához.

3. lépés: Az SQL Server-összekötő telepítése

Töltse le az SQL Server-összekötőt a Microsoft letöltőközpontból. A letöltést az SQL Server-számítógép rendszergazdájának kell elvégeznie.

Jegyzet

  • Az SQL Server Connector 1.0.0.440-s és újabb verzióit lecseréltük, és már nem támogatottak éles környezetekben, és az SQL Server-összekötő frissítésének karbantartási és hibaelhárítási oldalán található utasításokat követve.
  • Az SQL Server Connector az 1.0.3.0-s verziótól kezdődően a windowsos eseménynaplókra vonatkozó hibaüzeneteket jelent a hibaelhárításhoz.
  • Az 1.0.4.0-s verziótól kezdve a magán Azure-felhők is támogatottak, beleértve a 21Vianet, az Azure Germany és az Azure Government által üzemeltetett Azure-t is.
  • Az ujjlenyomat-algoritmus tekintetében az 1.0.5.0-s verzióban kompatibilitástörő változás történt. Az adatbázis-visszaállítási hibák az 1.0.5.0-s verzióra való frissítés után jelentkezhetnek. További információ: 33111-s hiba a Microsoft Azure Key Vaulthoz készült SQL Server Connector régebbi verzióiból származó biztonsági másolatok visszaállításakor.
  • Az 1.0.5.0-s verziótól (TimeStamp: 2020. szeptember) kezdődően az SQL Server Connector támogatja az üzenetek szűrését és a hálózati kérések újrapróbálkozási logikáját.
  • A frissített 1.0.5.0-s verziótól kezdve (TimeStamp: 2020. november) az SQL Server Connector támogatja az RSA 2048, az RSA 3072, a RSA-HSM 2048 és RSA-HSM 3072-es kulcsokat.
  • A frissített 1.0.5.0-s verziótól kezdve (TimeStamp: 2020. november) az Azure Key Vault egy adott kulcsverziójára hivatkozhat.

Képernyőkép az SQL Server Connector telepítővarázslóról.

Alapértelmezés szerint a Csatlakozó telepítve van a C:\Program Files\SQL Server Connector for Microsoft Azure Key Vault. Ez a hely a beállítás során módosítható. Ha megváltoztatja, módosítsa a szkripteket a következő szakaszban.

Nincs interfész az összekötőhöz, de ha sikeresen telepítve van, a Microsoft.AzureKeyVaultService.EKM.dll telepítve van a gépen. Ez a szerelvény a titkosítási EKM-szolgáltató DLL-je, amelyet a CREATE CRYPTOGRAPHIC PROVIDER utasítással kell regisztrálni az SQL Serveren.

Az SQL Server-összekötő telepítése lehetővé teszi az SQL Server titkosításához szükséges mintaszkriptek letöltését is.

Az SQL Server-összekötő hibakódjainak magyarázatát, konfigurációs beállításait vagy karbantartási feladatait a következő témakörben tekintheti meg:

4. lépés: Beállításkulcs hozzáadása az EKM-szolgáltató támogatásához

Figyelmeztetés

A beállításjegyzék módosítását olyan felhasználóknak kell elvégezniük, amelyek pontosan tudják, hogy mit csinálnak. Súlyos problémák léphetnek fel, ha helytelenül módosítja a beállításjegyzéket. A hozzáadott védelem érdekében a módosítás előtt biztonsági másolatot készít a beállításjegyzékről. Probléma esetén visszaállíthatja a beállításjegyzéket.

A beállításjegyzék módosítását az SQL Server-számítógép rendszergazdájának kell elvégeznie.

  1. Győződjön meg arról, hogy az SQL Server telepítve van és fut.

  2. Futtassa a regedit parancsot a Beállításszerkesztő megnyitásához.

  3. Hozzon létre egy SQL Server Cryptographic Provider beállításkulcsot a HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft-en. A teljes elérési út HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SQL Server Cryptographic Provider.

  4. Kattintson a jobb gombbal a SQL Server Cryptographic Provider beállításkulcsra, majd válassza az Engedélyek lehetőséget.

  5. Adjon teljes körű vezérlési engedélyeket a SQL Server Cryptographic Provider beállításkulcshoz az SQL Server szolgáltatást futtató felhasználói fióknak.

    Képernyőkép az EKM beállításkulcsáról a Beállításszerkesztőben.

  6. Válassza az Alkalmaz , majd az OK gombot.

  7. Zárja be a Beállításszerkesztőt, és indítsa újra az SQL Server szolgáltatást.

    Jegyzet

    Ha a TDE-t az EKM-mel vagy az Azure Key Vault-tal használja egy feladatátvevő fürtpéldányon, egy további lépést kell végrehajtania: hozzá kell adnia a HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SQL Server Cryptographic Provider az Fürtregisztrációs Ellenőrzőponthoz, hogy a beállításjegyzék szinkronizálódhasson a csomópontok között. A szinkronizálás megkönnyíti az adatbázis helyreállítását a feladatátvétel és a kulcsváltás után.

    A regisztrációs kulcsot a Cluster Registry Checkpoint rutinjához való hozzáadáshoz futtassa a következő parancsot PowerShellben:

    Add-ClusterCheckpoint -RegistryCheckpoint "SOFTWARE\Microsoft\SQL Server Cryptographic Provider" -Resourcename "SQL Server"

5. lépés: Az SQL Server konfigurálása

Az ebben a szakaszban található egyes műveletekhez szükséges minimális jogosultsági szintekről a B. Gyakori kérdések című témakörben olvashat.

A master adatbázis konfigurálása

  1. Futtassa az sqlcmd parancsot , vagy nyissa meg az SQL Server Management Studiót.

  2. Konfigurálja az SQL Servert az EKM használatára a következő Transact-SQL szkript futtatásával:

    -- Enable advanced options.
    USE master;
    GO
    
    EXEC sp_configure 'show advanced options', 1;
    GO
    RECONFIGURE;
    GO
    
    -- Enable EKM provider
    EXEC sp_configure 'EKM provider enabled', 1;
    GO
    RECONFIGURE;
    
  3. Regisztrálja az SQL Server-összekötőt EKM-szolgáltatóként az SQL Serverrel.

    Hozzon létre egy titkosítási szolgáltatót az SQL Server Connector használatával, amely az Azure Key Vault EKM-szolgáltatója. Ebben a példában a szolgáltató neve AzureKeyVault_EKM.

    CREATE CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM
    FROM FILE = 'C:\Program Files\SQL Server Connector for Microsoft Azure Key Vault\Microsoft.AzureKeyVaultService.EKM.dll';
    GO
    

    Jegyzet

    A fájl elérési útja nem haladhatja meg a 256 karaktert.

  4. Állítson be egy SQL Server-hitelesítő adatot egy SQL Server-bejelentkezéshez a kulcstartó használatához.

    Minden olyan bejelentkezéshez hozzá kell adni egy hitelesítő adatot, amely a kulcstartóból származó kulccsal végzi a titkosítást. Ilyenek lehetnek a következők:

    • Sql Server-rendszergazdai bejelentkezés, amely a key vault használatával állít be és kezel SQL Server-titkosítási forgatókönyveket.

    • Egyéb SQL Server-bejelentkezések, amelyek engedélyezhetik a TDE-t vagy más SQL Server-titkosítási funkciókat.

    A hitelesítő adatok és a bejelentkezések között egy-az-egyhez megfeleltetés van. Vagyis minden bejelentkezésnek egyedi hitelesítő adatokkal kell rendelkeznie.

    Módosítsa ezt a Transact-SQL szkriptet a következő módokon:

    • Szerkessze a IDENTITY argumentumot (DocsSampleEKMKeyVault), hogy az Azure Key Vault-ra mutasson.

    • Cserélje le az SECRET argumentum első részét a Microsoft Entra ügyfélazonosítójára a következőből: 1. lépés: Microsoft Entra szolgáltatásfőnök beállítása. Ebben a példában az ügyfélazonosító a következő d956f6b9xxxxxxx: .

      Fontos

      Mindenképpen távolítsa el a kötőjeleket az alkalmazás (ügyfél) azonosítójából.

    • Az SECRET argumentum második részét töltse ki az Ügyféltitokkal a 1. lépés: Microsoft Entra szolgáltatásnév beállítása alapján. Ebben a példában az ügyfélkód yrA8X~PldtMCvUZPxxxxxxxx. Az SECRET argumentum utolsó sztringje betűk és számok hosszú sorozata lesz, kötőjelek nélkül (kivéve az Ügyféltitkos szakaszt, ha az Ügyfélkulcs tartalmaz kötőjeleket).

      USE master;
      CREATE CREDENTIAL sysadmin_ekm_cred
          WITH IDENTITY = 'DocsSampleEKMKeyVault',                            -- for public Azure
          -- WITH IDENTITY = 'DocsSampleEKMKeyVault.vault.usgovcloudapi.net', -- for Azure Government
          -- WITH IDENTITY = 'DocsSampleEKMKeyVault.vault.azure.cn',          -- for Microsoft Azure operated by 21Vianet
          -- WITH IDENTITY = 'DocsSampleEKMKeyVault.vault.microsoftazure.de', -- for Azure Germany
          -- WITH IDENTITY = '<name of Managed HSM>.managedhsm.azure.net',    -- for Managed HSM (HSM URI in the Azure portal resource)
                 --<----Application (Client) ID ---><--Microsoft Entra app (Client) ID secret-->
          SECRET = 'd956f6b9xxxxxxxyrA8X~PldtMCvUZPxxxxxxxx'
      FOR CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM;
      
      -- Add the credential to the SQL Server administrator's domain login
      ALTER LOGIN [<domain>\<login>]
          ADD CREDENTIAL sysadmin_ekm_cred;
      

    Ha például változókat használ az CREATE CREDENTIAL argumentumhoz, és programozott módon eltávolítja a kötőjeleket az ügyfélazonosítóból, tekintse meg a CREATE CREDENTIAL című témakört.

  5. Nyissa meg az Azure Key Vault-kulcsot az SQL Server-példányban.

    Akár új kulcsot hozott létre, akár aszimmetrikus kulcsot importált a 2. lépésben leírtak szerint: Kulcstartó létrehozása, meg kell nyitnia a kulcsot. A következő Transact-SQL szkriptben a kulcs nevének megadásával nyissa meg.

    Fontos

    Győződjön meg arról, hogy először teljesíti a beállításjegyzék előfeltételeit ehhez a lépéshez.

    • Cserélje le a EKMSampleASYKey arra a névre, amelynek a kulcsát az SQL Serverben meg szeretné adni.
    • Cserélje le ContosoRSAKey0 az Azure Key Vaultban vagy a felügyelt HSM-ben lévő kulcs nevére. Az alábbi példa egy verzió nélküli kulcsra mutat.
    CREATE ASYMMETRIC KEY EKMSampleASYKey
         FROM PROVIDER [AzureKeyVault_EKM]
         WITH PROVIDER_KEY_NAME = 'ContosoRSAKey0',
             CREATION_DISPOSITION = OPEN_EXISTING;
    

    Az SQL Server-összekötő frissített 1.0.5.0-s verziójától kezdve az Azure Key Vault egy adott kulcsverziójára hivatkozhat:

    CREATE ASYMMETRIC KEY EKMSampleASYKey
         FROM PROVIDER [AzureKeyVault_EKM]
         WITH PROVIDER_KEY_NAME = 'ContosoRSAKey0/1a4d3b9b393c4678831ccc60def75379',
             CREATION_DISPOSITION = OPEN_EXISTING;
    

    Az előző példaszkriptben 1a4d3b9b393c4678831ccc60def75379 a használni kívánt kulcs adott verzióját jelöli. Ha ezt a szkriptet használja, nem számít, hogy frissíti-e a kulcsot egy új verzióval. A kulcsverzió (például) 1a4d3b9b393c4678831ccc60def75379 mindig adatbázis-műveletekhez lesz használva.

  6. Hozzon létre egy új bejelentkezést az előző lépésben létrehozott SQL Server aszimmetrikus kulcsával.

    --Create a Login that will associate the asymmetric key to this login
    CREATE LOGIN TDE_Login
        FROM ASYMMETRIC KEY EKMSampleASYKey;
    
  7. Hozzon létre egy új bejelentkezést az SQL Server aszimmetrikus kulcsából. A hitelesítő adatok leképezésének elvetése az 5. lépésből: Konfigurálja az SQL Servert , hogy a hitelesítő adatok leképezhetők legyenek az új bejelentkezésre.

    --Now drop the credential mapping from the original association
    ALTER LOGIN [<domain>\<login>]
        DROP CREDENTIAL sysadmin_ekm_cred;
    
  8. Módosítsa az új bejelentkezést, és rendelje hozzá az EKM hitelesítő adatokat az új bejelentkezéshez.

    --Now add the credential mapping to the new Login
    ALTER LOGIN TDE_Login
        ADD CREDENTIAL sysadmin_ekm_cred;
    

A felhasználói adatbázis konfigurálása titkosításra

  1. Hozzon létre egy tesztadatbázist, amely az Azure Key Vault kulccsal lesz titkosítva.

    --Create a test database that will be encrypted with the Azure Key Vault key
    CREATE DATABASE TestTDE;
    
  2. Adatbázis-titkosítási kulcs létrehozása a ASYMMETRIC KEY (EKMSampleASYKey) használatával.

    USE <DB Name>;
    --Create an ENCRYPTION KEY using the ASYMMETRIC KEY (EKMSampleASYKey)
    CREATE DATABASE ENCRYPTION KEY
    WITH ALGORITHM = AES_256
    ENCRYPTION BY SERVER ASYMMETRIC KEY EKMSampleASYKey;
    
  3. Titkosítsa a tesztadatbázist. Engedélyezze a TDE-t a ENCRYPTION ONbeállításával.

    --Enable TDE by setting ENCRYPTION ON
    ALTER DATABASE TestTDE
        SET ENCRYPTION ON;
    

Regisztráció részletei

  1. Hajtsa végre a következő Transact-SQL lekérdezést a master adatbázisban a használt aszimmetrikus kulcs megjelenítéséhez.

    SELECT name,
           algorithm_desc,
           thumbprint
    FROM sys.asymmetric_keys;
    

    Az utasítás a következőt adja vissza:

    name            algorithm_desc    thumbprint
    EKMSampleASYKey RSA_2048          <key thumbprint>
    
  2. A felhasználói adatbázisban (TestTDE) hajtsa végre a következő Transact-SQL lekérdezést a használt titkosítási kulcs megjelenítéséhez.

    SELECT encryptor_type,
           encryption_state_desc,
           encryptor_thumbprint
    FROM sys.dm_database_encryption_keys
    WHERE database_id = DB_ID('TestTDE');
    

    Az utasítás a következőt adja vissza:

    encryptor_type encryption_state_desc encryptor_thumbprint
    ASYMMETRIC KEY ENCRYPTED             <key thumbprint>
    

Kitakarít

  1. Törölje a tesztobjektumokat. Törölje a tesztszkriptben létrehozott összes objektumot.

    -- CLEAN UP
    USE master;
    GO
    ALTER DATABASE [TestTDE] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
    DROP DATABASE [TestTDE];
    GO
    
    ALTER LOGIN [TDE_Login] DROP CREDENTIAL [sysadmin_ekm_cred];
    DROP LOGIN [TDE_Login];
    GO
    
    DROP CREDENTIAL [sysadmin_ekm_cred];
    GO
    
    USE master;
    GO
    DROP ASYMMETRIC KEY [EKMSampleASYKey];
    DROP CRYPTOGRAPHIC PROVIDER [AzureKeyVault_EKM];
    GO
    

    Példaszkripteket az SQL Server Transzparens adattitkosítás és bővíthető kulcskezelés az Azure Key Vaulttal című blogjában talál.

  2. A rendszer nem törli automatikusan a SQL Server Cryptographic Provider beállításkulcsot egy kulcs vagy az összes EKM-kulcs törlése után. Manuálisan kell megtisztítani. A beállításkulcsot rendkívül óvatosan kell megtisztítani, mivel a beállításjegyzék idő előtti tisztítása megszakíthatja az EKM működését. A beállításkulcs törléséhez törölje a SQL Server Cryptographic Provider beállításkulcsot a HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft.

Troubleshoot

Ha a beállításkulcs HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SQL Server Cryptographic Provider nincs létrehozva, vagy a szükséges engedélyek nincsenek megadva, a következő DDL-utasítás meghiúsul:

CREATE ASYMMETRIC KEY EKMSampleASYKey
FROM PROVIDER [AzureKeyVault_EKM]
    WITH PROVIDER_KEY_NAME = 'ContosoRSAKey0',
    CREATION_DISPOSITION = OPEN_EXISTING;
Msg 33049, Level 16, State 2, Line 65
Key with name 'ContosoRSAKey0' does not exist in the provider or access is denied. Provider error code: 2058.  (Provider Error - No explanation is available, consult EKM Provider for details)

Hamarosan lejárni készülő ügyféltitkok

Ha a hitelesítő adat rendelkezik egy hamarosan lejáró ügyfélkóddal, új titkos kód rendelhető hozzá a hitelesítő adatokhoz.

  1. Frissítse az eredetileg az 1. lépésben létrehozott titkos kulcsot: A Microsoft Entra szolgáltatásnév beállítása.

  2. Módosítsa a hitelesítő adatokat ugyanazzal az identitással és új titkos kóddal az alábbi kód használatával. Cserélje le <New Secret> az új titkos kódra:

    ALTER CREDENTIAL sysadmin_ekm_cred
    WITH IDENTITY = 'DocsSampleEKMKeyVault',
        SECRET = '<New Secret>';
    
  3. Indítsa újra az SQL Server szolgáltatást.

Jegyzet

Ha egy rendelkezésre állási csoportban (AG) használja az EKM-et, módosítania kell a hitelesítő adatokat, és újra kell indítania az SQL Server szolgáltatást az AG összes csomópontján.

Aszimmetrikus kulcs elforgatása új AKV-kulccsal vagy új AKV kulcsverzióval

Jegyzet

  • Az AKV-kulcs manuális elforgatásakor az SQL Server támogatja az AKV-verzió nélküli vagy a verziószámozott kulcsot is, és nincs szükség másik AKV-kulcs használatára.
  • Az eredeti AKV-kulcs elforgatható, és új verziót hozhat létre, amely lecserélheti az SQL Serverben létrehozott előző kulcsot.
  • Manuális kulcsváltáshoz létre kell hozni egy új SQL Server aszimmetrikus kulcsot, amely az AKV-ban elforgatott verzió nélküli vagy verziószámozott kulcsra hivatkozik. Az új SQL Server aszimmetrikus kulcs esetén a verzió nélküli AKV-kulcs automatikusan az AKV legmagasabb kulcsverziójának használatával lesz kiválasztva. A verziószámozott kulcs esetében az AKV legmagasabb verzióját kell megadnia a WITH PROVIDER_KEY_NAME = <key_name>/<version>szintaxis használatával. Módosíthatja az adatbázis titkosítási kulcsát az új aszimmetrikus kulccsal való újratitkosításhoz. Ugyanaz a kulcsnév (verziószámozott vagy verzió nélküli) használható az AKV rotációs beállításaival. Verziószámozott kulcs esetén az aktuális verziót kell hozzáadni. Verzió nélküli kulcs esetén használja ugyanazt a kulcsnevet.

Az SQL Server nem rendelkezik mechanizmussal a TDE-hez használt aszimmetrikus kulcs automatikus elforgatásához. Az aszimmetrikus kulcs manuális forgatásának lépései a következők.

  1. A kezdeti beállításban (sysadmin_ekm_cred) használt hitelesítő adatok újra felhasználhatók a kulcsforgatáshoz is. Ha szükséges, hozzon létre egy új hitelesítő adatot az új aszimmetrikus kulcshoz.

    CREATE CREDENTIAL <new_credential_name>
        WITH IDENTITY = <key vault>,
        SECRET = 'existing/new secret'
        FOR CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM;
    
  2. Hozzáadni a hitelesítő adatokat a főszereplőhöz:

    ALTER LOGIN [domain\userName];
    ADD CREDENTIAL <new_credential_name>;
    
  3. Hozza létre az új aszimmetrikus kulcsot az új kulcs alapján (a kulcs elforgatása után). Az új kulcs lehet egy verzió nélküli kulcs (ContosoRSAKey0 a példában) vagy egy verziószámozott kulcs (ContosoRSAKey0/1a4d3b9b393c4678831ccc60def75379, ahol 1a4d3b9b393c4678831ccc60def75379 az AKV frissített kulcsának verziója):

    CREATE ASYMMETRIC KEY <new_ekm_key_name>
     FROM PROVIDER [AzureKeyVault_EKM]
     WITH PROVIDER_KEY_NAME = <new_key_from_key_vault>,
     CREATION_DISPOSITION = OPEN_EXISTING;
    
  4. Hozzon létre egy új bejelentkezést az új aszimmetrikus kulcsból:

    CREATE LOGIN <new_login_name>
    FROM ASYMMETRIC KEY <new_ekm_key_name>;
    
  5. Hitelesítés eltávolítása az azonosítóból:

    ALTER LOGIN [domain\username]
    DROP CREDENTIAL <new_credential_name>;
    
  6. Az AKV-hitelesítő adatok hozzárendelése az új bejelentkezési adatokhoz

    ALTER LOGIN <new_login_name>;
    ADD CREDENTIAL <new_credential_name>;
    
  7. Módosítsa az adatbázis-titkosítási kulcsot (DEK) az új aszimmetrikus kulccsal való újratitkosításhoz:

    USE [databaseName];
    GO
    ALTER DATABASE ENCRYPTION KEY ENCRYPTION BY SERVER ASYMMETRIC KEY <new_ekm_key_name>;
    
  8. Ellenőrizheti az új aszimmetrikus kulcsot és az adatbázisban használt titkosítási kulcsot:

    SELECT encryptor_type,
           encryption_state_desc,
           encryptor_thumbprint
    FROM sys.dm_database_encryption_keys
    WHERE database_id = DB_ID('databaseName');
    

    Ennek az ujjlenyomatnak egyeznie kell a beállításjegyzék kulccsal az elérési út HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SQL Server Cryptographic Provider\Azure Key Vault\<key_vault_url>\<thumbprint> alatt, és adja meg az elforgatott kulcsot KeyUri.

Fontos

A kiszolgáló logikai TDE-védőjének elforgatása azt jelenti, hogy új aszimmetrikus kulcsra vagy tanúsítványra vált, amely védi az adatbázis titkosítási kulcsát (DEK). A kulcsváltás egy online művelet, és csak néhány másodpercet kell igénybe vennie, mivel ez csak a DEK visszafejtése és újratitkosítása, nem pedig a teljes adatbázis.

Forgatás után ne törölje a kulcs korábbi verzióit. A kulcsok elforgatásakor egyes adatok továbbra is titkosítva lesznek az előző kulcsokkal, például a régebbi adatbázis-biztonsági másolatokkal, a biztonsági másolatokkal, a virtuális naplófájlokkal (VLF) és a tranzakciós naplófájlokkal. Előfordulhat, hogy az adatbázis-helyreállításhoz vagy az adatbázis-visszaállításhoz korábbi kulcsokra is szükség lehet.