Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
In dit artikel worden taken beschreven voor het draaien van always encrypted-kolomhoofdsleutels en kolomversleutelingssleutels met SSMS -(SQL Server Management Studio).
Zie Overzicht van sleutelbeheer voor Always Encrypted-voor een overzicht van Always Encrypted-sleutelbeheer, inclusief aanbevelingen voor aanbevolen procedures en belangrijke beveiligingsoverwegingen.
Notitie
Voor het gebruik van kolomhoofdsleutels die zijn opgeslagen in een beheerde HSM- in Azure Key Vault is SSMS 18.9 of een latere versie vereist.
Kolommodelsleutels draaien
De rotatie van een kolomhoofdsleutel is het proces voor het vervangen van een bestaande kolomhoofdsleutel door een nieuwe kolomhoofdsleutel. Mogelijk moet u een sleutel roteren als deze is gecompromitteerd of om te voldoen aan de beleidsregels of nalevingsregels van uw organisatie die cryptografische sleutels verplicht stellen, regelmatig moeten worden geroteerd. Een kolomhoofdsleutelrotatie omvat het ontsleutelen van kolomversleutelingssleutels die zijn beveiligd met de huidige hoofdsleutel van de kolom, opnieuw versleutelen met behulp van de nieuwe kolomhoofdsleutel en het bijwerken van de sleutelmetagegevens.
Stap 1: Een nieuwe kolomhoofdsleutel inrichten
Volg de stappen in Kolomhoofdsleutels inrichten met het dialoogvenster Nieuwe kolomhoofdsleutel.
Stap 2: Versleutelingssleutels voor kolommen versleutelen met de nieuwe kolomhoofdsleutel
Een kolomhoofdsleutel beveiligt doorgaans een of meer kolomversleutelingssleutels. Elke kolomversleutelingssleutel heeft een versleutelde waarde die is opgeslagen in de database. Dit is het product van het versleutelen van de kolomversleutelingssleutel met de kolomhoofdsleutel. In deze stap versleutelt u elk van de kolomversleutelingssleutels die zijn beveiligd met de kolomhoofdsleutel die u roteert, met de nieuwe kolomhoofdsleutel en slaat u de nieuwe versleutelde waarde op in de database. Als gevolg hiervan heeft elke kolomversleutelingssleutel die wordt beïnvloed door de rotatie twee versleutelde waarden: één waarde die is versleuteld met de bestaande hoofdsleutel van de kolom en een nieuwe waarde die is versleuteld met de nieuwe kolomhoofdsleutel.
- Ga met Objectverkennernaar Security>Always Encrypted-sleutels>kolomhoofdsleutels en zoek de kolomhoofdsleutel die u aan het draaien bent.
- Klik met de rechtermuisknop op de kolomhoofdsleutel en selecteer draaien.
- Selecteer in het dialoogvenster kolomhoofdsleutelrotatie de naam van uw nieuwe kolomhoofdsleutel, die u in stap 1 hebt gemaakt, in het veld Doel.
- Bekijk de lijst met kolomversleutelingssleutels, beveiligd door de bestaande kolomhoofdsleutels. Deze sleutels worden beïnvloed door de rotatie.
- Klik op OK-.
SQL Server Management Studio verkrijgt de metagegevens van de kolomversleutelingssleutels die zijn beveiligd met de oude kolomhoofdsleutel en de metagegevens van de oude en de nieuwe kolomhoofdsleutels. Vervolgens gebruikt SSMS de metagegevens van de kolomhoofdsleutel om toegang te krijgen tot het sleutelarchief met de oude kolomhoofdsleutel en de kolomversleutelingssleutel(s) te ontsleutelen. Vervolgens krijgt SSMS toegang tot het sleutelarchief met de nieuwe kolomhoofdsleutel om een nieuwe set versleutelde waarden van de kolomversleutelingssleutels te produceren. Vervolgens worden de nieuwe waarden toegevoegd aan de metagegevens (genereren en uitgeven ALTER COLUMN ENCRYPTION KEY (Transact-SQL) instructies).
Notitie
Zorg ervoor dat elk van de kolomversleutelingssleutels, versleuteld met de oude sleutel van de kolomhoofdsleutel, niet is versleuteld met een andere kolomhoofdsleutel. Met andere woorden, elke kolomversleutelingssleutel, die wordt beïnvloed door de rotatie, moet precies één versleutelde waarde in de database hebben. Als een betrokken kolomversleutelingssleutel meer dan één versleutelde waarde heeft, moet u de waarde verwijderen voordat u verder kunt gaan met de rotatie (zie stap 4 over het verwijderen van een versleutelde waarde van een kolomversleutelingssleutel).
Stap 3: Uw toepassingen configureren met de nieuwe kolomhoofdsleutel
In deze stap moet u ervoor zorgen dat alle clienttoepassingen die query's uitvoeren op databasekolommen die zijn beveiligd met de kolomhoofdsleutel die u roteert, toegang hebben tot de nieuwe hoofdsleutel van de kolom (dat wil gezegd, databasekolommen die zijn versleuteld met een kolomversleutelingssleutel die is versleuteld met de kolomhoofdsleutel die wordt geroteerd). Deze stap is afhankelijk van het type sleutelarchief waarin de nieuwe kolomhoofdsleutel zich bevindt. Bijvoorbeeld:
- Als de nieuwe kolomhoofdsleutel een certificaat is dat is opgeslagen in het Windows-certificaatarchief, moet u het certificaat implementeren op dezelfde locatie van het certificaatarchief (huidige gebruiker of lokale computer) als de locatie die is opgegeven in het sleutelpad van de kolomhoofdsleutel in de database. De toepassing moet toegang hebben tot het certificaat:
- Als het certificaat is opgeslagen in de locatie van het Huidige gebruiker certificaatarchief, moet het certificaat worden geïmporteerd in het huidige gebruikersarchief van de Windows-identiteit (gebruiker) van de toepassing.
- Als het certificaat is opgeslagen op de locatie van het lokale computer certificaatarchief, moet de Windows-identiteit van de toepassing gemachtigd zijn voor toegang tot het certificaat.
- Als de nieuwe kolomhoofdsleutel is opgeslagen in Microsoft Azure Key Vault, moet de toepassing worden geïmplementeerd, zodat deze kan worden geverifieerd bij Azure en gemachtigd is voor toegang tot de sleutel.
Zie Kolomhoofdsleutels maken en opslaan voor Always Encrypted-voor meer informatie.
Notitie
Op dit punt in de rotatie zijn zowel de oude kolomhoofdsleutel als de nieuwe kolomhoofdsleutel geldig en kunnen ze worden gebruikt voor toegang tot de gegevens.
Stap 4: Versleutelingssleutelwaarden voor kolommen opschonen die zijn versleuteld met de oude kolomhoofdsleutel
Nadat u al uw toepassingen hebt geconfigureerd voor het gebruik van de nieuwe kolomhoofdsleutel, verwijdert u de waarden van kolomversleutelingssleutels die zijn versleuteld met de oude kolomhoofdsleutel uit de database. Als u oude waarden verwijdert, zorgt u ervoor dat u klaar bent voor de volgende rotatie (onthoud dat elke kolomversleutelingssleutel, beveiligd met een kolomhoofdsleutel die moet worden geroteerd, exact één versleutelde waarde moet hebben).
Een andere reden om de oude waarde op te schonen voordat u de oude kolomhoofdsleutel archiveert of verwijdert, is prestatiegerelateerd: bij het uitvoeren van query's op een versleutelde kolom moet een clientstuurprogramma met Always Encrypted mogelijk twee waarden ontsleutelen: de oude waarde en de nieuwe. Het stuurprogramma weet niet welke van de twee kolomhoofdsleutels geldig is in de omgeving van de toepassing, zodat het stuurprogramma beide versleutelde waarden van de server ophaalt. Als het ontsleutelen van een van de waarden mislukt omdat de kolomhoofdsleutel waarmee het is beveiligd niet beschikbaar is (bijvoorbeeld de oude kolomhoofdsleutel die uit de opslag is verwijderd), zal het stuurprogramma proberen een andere waarde te ontsleutelen met behulp van de nieuwe kolomhoofdsleutel.
Waarschuwing
Als u de waarde van een kolomversleutelingssleutel verwijdert voordat de bijbehorende kolomhoofdsleutel beschikbaar is gemaakt voor een toepassing, kan de toepassing de databasekolom niet meer ontsleutelen.
- Navigeer met Objectverkennernaar de map Security>Always Encrypted Keys en zoek de bestaande kolomhoofdsleutel die u wilt vervangen.
- Klik met de rechtermuisknop op de bestaande kolomhoofdsleutel en selecteer Opschonen.
- Controleer de lijst met waarden voor kolomversleutelingssleutels die moeten worden verwijderd.
- Klik op OK-.
SQL Server Management Studio geeft ALTER COLUMN ENCRYPTION KEY (Transact-SQL) instructies uit om versleutelde waarden van kolomversleutelingssleutels te verwijderen die zijn versleuteld met de oude kolomhoofdsleutel.
Stap 5: Metagegevens voor uw oude kolomhoofdsleutel verwijderen
Als u ervoor kiest om de definitie van de oude kolomhoofdsleutel uit de database te verwijderen, gebruikt u de onderstaande stappen.
- Navigeer met Objectverkennernaar de map Security>Always Encrypted Keys>Kolomhoofdsleutels map en zoek de oude kolomhoofdsleutel die uit de database moet worden verwijderd.
- Klik met de rechtermuisknop op de oude kolomhoofdsleutel en selecteer verwijderen. (Hiermee genereert en geeft u een DROP COLUMN MASTER KEY (Transact-SQL) instructie om de metagegevens van de kolomhoofdsleutel te verwijderen.)
- Klik op OK-.
Notitie
Het wordt ten zeerste aanbevolen om de oude kolomhoofdsleutel niet definitief te verwijderen na de rotatie. In plaats daarvan moet u de oude kolomhoofdsleutel in het huidige sleutelarchief bewaren of archiveren op een andere veilige plaats. Als u de database herstelt van een back-upbestand naar een bepaald tijdstip voordat de nieuwe kolomhoofdsleutel is geconfigureerd, hebt u de oude sleutel nodig om toegang te krijgen tot de gegevens.
Machtigingen voor het roteren van de kolomhoofdsleutel
Voor het roteren van een kolomhoofdsleutel zijn de volgende databasemachtigingen vereist:
- ALTER ANY COLUMN MASTER KEY - vereist voor het maken van metagegevens voor de nieuwe kolomhoofdsleutel en het verwijderen van de metagegevens voor de oude kolomhoofdsleutel.
- ALTER ANY COLUMN ENCRYPTION KEY - vereist voor het wijzigen van metagegevens van kolomversleutelingssleutels (nieuwe versleutelde waarden toevoegen).
U hebt ook sleutelarchiefmachtigingen nodig om toegang te krijgen tot zowel de oude kolomhoofdsleutel als de nieuwe kolomhoofdsleutel in de sleutelarchieven. Voor gedetailleerde informatie over sleutelarchiefmachtigingen die vereist zijn voor sleutelbeheerbewerkingen, gaat u naar kolomhoofdsleutels maken en opslaan voor Always Encrypted- en zoekt u een sectie die relevant is voor uw sleutelarchief.
Kolomversleutelingssleutels roteren
Het roteren van een kolomversleutelingssleutel omvat het ontsleutelen van de gegevens in alle kolommen die zijn versleuteld met de sleutel die moet worden gedraaid en het opnieuw versleutelen van de gegevens met behulp van de nieuwe kolomversleutelingssleutel.
Notitie
Het roteren van een kolomversleutelingssleutel kan erg lang duren als de tabellen met kolommen die zijn versleuteld met de sleutel die wordt geroteerd, groot zijn. Hoewel de gegevens opnieuw worden versleuteld, kunnen uw toepassingen niet naar de betrokken tabellen schrijven. Daarom moet uw organisatie een rotatie van kolomversleutelingssleutels zorgvuldig plannen. Gebruik de wizard Always Encrypted om een kolomversleutelingssleutel te draaien.
- Open de wizard voor uw database: klik met de rechtermuisknop op de database, wijs takenaan en klik vervolgens op Kolommen versleutelen.
- Controleer de pagina Inleiding en klik vervolgens op Volgende.
- Vouw op de pagina Kolomselectie de tabellen uit en zoek alle kolommen die u wilt vervangen die momenteel zijn versleuteld met de oude kolomversleutelingssleutel.
- Stel voor elke kolom die is versleuteld met de oude sleutel voor kolomversleuteling, , de encryptiesleutel in op een nieuwe automatisch gegenereerde sleutel. Opmerking: U kunt ook een nieuwe kolomversleutelingssleutel maken voordat u de wizard uitvoert. Zie Kolomversleutelingssleutels inrichten met het dialoogvenster Nieuwe kolomversleutelingssleutel.
- Selecteer op de pagina hoofdsleutelconfiguratie een locatie om de nieuwe sleutel op te slaan en selecteer een hoofdsleutelbron en klik vervolgens op Volgende. Opmerking: Als u een bestaande versleutelingssleutel voor kolommen gebruikt (niet een automatisch gegenereerde sleutel), hoeft u deze pagina niet uit te voeren.
- Kies op de validatiepaginaof u het script onmiddellijk wilt uitvoeren of een PowerShell-script wilt maken en klik vervolgens op Volgende.
- Controleer op de pagina Samenvatting de opties die u hebt geselecteerd en klik vervolgens op voltooien en sluit de wizard wanneer u klaar bent.
- Navigeer met Objectverkennernaar de map Security/Always Encrypted Keys/Column Encryption Keys en zoek uw oude kolomversleutelingssleutel die uit de database moet worden verwijderd. Klik met de rechtermuisknop op de toets en selecteer Verwijderen.
Machtigingen voor het roteren van kolomversleutelingssleutels
Voor het roteren van een kolomversleutelingssleutel zijn de volgende databasemachtigingen vereist: ALTER ANY COLUMN MASTER KEY - vereist als u een nieuwe automatisch gegenereerde kolomversleutelingssleutel gebruikt (er wordt ook een nieuwe kolomhoofdsleutel en de nieuwe metagegevens gegenereerd). WIJZIG EEN KOLOMVERSLEUTELINGSSLEUTEL -required om metagegevens toe te voegen voor de nieuwe kolomversleutelingssleutel.
U hebt ook sleutelarchiefmachtigingen nodig om toegang te krijgen tot kolomhoofdsleutels voor zowel de nieuwe als de oude kolomversleutelingssleutel. Voor gedetailleerde informatie over sleutelarchiefmachtigingen die vereist zijn voor sleutelbeheerbewerkingen, gaat u naar kolomhoofdsleutels maken en opslaan voor Always Encrypted- en zoekt u een sectie die relevant is voor uw sleutelarchief.
Volgende stappen
- Kolommen opvragen met Always Encrypted in SQL Server Management Studio
- Toepassingen ontwikkelen met Always Encrypted
Zie ook
- Always Encrypted
- Overzicht van sleutelbeheer voor Always Encrypted-
- Always Encrypted configureren met SQL Server Management Studio
- Always Encrypted configureren met behulp van PowerShell
- KOLOM MODELSLEUTEL AANMAKEN (Transact-SQL)
- KOLOMHOOFDSLEUTEL (Transact-SQL)
- CREATE COLUMN ENCRYPTION KEY (Transact-SQL)
- ALTER COLUMN ENCRYPTION KEY (Transact-SQL)
- DROP COLUMN ENCRYPTION KEY (Transact-SQL)
- sys.column_master_keys (Transact-SQL)
- sys.column_encryption_keys (Transact-SQL)