Gegevensversleuteling met één server in Azure Database for PostgreSQL met een door de klant beheerde sleutel

VAN TOEPASSING OP: Azure Database for PostgreSQL - enkele server

Belangrijk

Azure Database for PostgreSQL - Enkele server bevindt zich op het buitengebruikstellingspad. We raden u ten zeerste aan om een upgrade uit te voeren naar Azure Database for PostgreSQL - Flexible Server. Zie Wat gebeurt er met Azure Database for PostgreSQL Enkele server voor meer informatie over migreren naar Azure Database for PostgreSQL - Flexible Server.

Azure PostgreSQL maakt gebruik van Azure Storage-versleuteling om data-at-rest standaard te versleutelen met behulp van door Microsoft beheerde sleutels. Voor Azure PostgreSQL-gebruikers is het vergelijkbaar met Transparent Data Encryption (TDE) in andere databases, zoals SQL Server. Veel organisaties hebben volledig beheer nodig over de toegang tot de gegevens met behulp van een door de klant beheerde sleutel. Met gegevensversleuteling met door de klant beheerde sleutels voor Azure Database for PostgreSQL Single-server kunt u byok (Bring Your Own Key) gebruiken voor data protection-at-rest. Daarnaast kunnen organisaties hiermee een scheiding van taken implementeren bij het beheer van sleutels en gegevens. Met door de klant beheerde versleuteling bent u verantwoordelijk voor, en hebt u het volledige beheer over, de levenscyclus van een sleutel, de machtigingen voor sleutelgebruik, en het controleren van de bewerkingen van sleutels.

Gegevensversleuteling met door de klant beheerde sleutels voor Azure Database for PostgreSQL Enkele server wordt ingesteld op serverniveau. Voor een bepaalde server wordt een door de klant beheerde sleutel, de sleutelversleutelingssleutel (KEK) genoemd, gebruikt voor het versleutelen van de gegevensversleutelingssleutel (DEK) die door de service wordt gebruikt. De KEK is een asymmetrische sleutel die is opgeslagen in een door de klant beheerde Azure Key Vault-instantie . De KEK (Key Encryption Key) en Data Encryption Key (DEK) worden verderop in dit artikel nader beschreven.

Key Vault is een extern sleutelbeheersysteem in de cloud. Het is maximaal beschikbaar en biedt schaalbare, veilige opslag voor cryptografische RSA-sleutels, optioneel ondersteund door DOOR FIPS 140 gevalideerde HSM's (Hardware Security Modules). Het biedt geen directe toegang tot een opgeslagen sleutel, maar biedt wel services van versleuteling en ontsleuteling aan geautoriseerde entiteiten. Key Vault kan de sleutel genereren, importeren of overdragen vanaf een on-premises HSM-apparaat.

Notitie

Deze functie is beschikbaar in alle Azure-regio's waar Azure Database for PostgreSQL Enkele server ondersteuning biedt voor de prijscategorieën Algemeen gebruik en Geoptimaliseerd voor geheugen. Raadpleeg de sectie beperking voor andere beperkingen.

Vergoedingen

Gegevensversleuteling met door de klant beheerde sleutels voor Azure Database for PostgreSQL Enkele server biedt de volgende voordelen:

  • Gegevenstoegang wordt volledig beheerd door u door de mogelijkheid om de sleutel te verwijderen en de database ontoegankelijk te maken.
  • Volledige controle over de levenscyclus van de sleutel, inclusief rotatie van de sleutel die overeenkomt met bedrijfsbeleid.
  • Centraal beheer en organisatie van sleutels in Azure Key Vault.
  • Het inschakelen van versleuteling heeft geen extra invloed op de prestaties met of zonder CMK (Managed Key) van klanten, omdat PostgreSQL afhankelijk is van de Azure-opslaglaag voor gegevensversleuteling in beide scenario's. Het enige verschil is wanneer CMK wordt gebruikt voor het gebruik van Azure Storage Encryption Key waarmee werkelijke gegevensversleuteling wordt uitgevoerd, wordt versleuteld met BEHULP van CMK.
  • Mogelijkheid om scheiding van taken tussen beveiligingsfunctionarissen en DBA en systeembeheerders te implementeren.

Terminologie en beschrijving

Gegevensversleutelingssleutel (DEK): een symmetrische AES256-sleutel die wordt gebruikt om een partitie of blok gegevens te versleutelen. Het versleutelen van elk gegevensblok met een andere sleutel maakt cryptoanalyseaanvallen moeilijker. Toegang tot DEK's is vereist door de resourceprovider of het toepassingsexemplaren die een specifiek blok versleutelen en ontsleutelen. Wanneer u een DEK vervangt door een nieuwe sleutel, moeten alleen de gegevens in het bijbehorende blok opnieuw worden versleuteld met de nieuwe sleutel.

Sleutelversleutelingssleutel (KEK):een versleutelingssleutel die wordt gebruikt om de DEK's te versleutelen. Met een KEK die Key Vault nooit verlaat, kunnen de DEK's zelf worden versleuteld en beheerd. De entiteit die toegang heeft tot de KEK kan afwijken van de entiteit waarvoor de DEK is vereist. Omdat de KEK is vereist om de DEK's te ontsleutelen, is de KEK effectief een enkel punt waarmee DEK's effectief kunnen worden verwijderd door het verwijderen van de KEK.

De DEK's, versleuteld met de KKS, worden afzonderlijk opgeslagen. Alleen een entiteit met toegang tot de KEK kan deze DEK's ontsleutelen. Zie Beveiliging in versleuteling-at-rest voor meer informatie.

Hoe gegevensversleuteling met een door de klant beheerde sleutel werkt

Diagram met een overzicht van Bring Your Own Key

Voor een PostgreSQL-server om door de klant beheerde sleutels te gebruiken die zijn opgeslagen in Key Vault voor versleuteling van de DEK, geeft een Key Vault-beheerder de volgende toegangsrechten voor de server:

  • get: Voor het ophalen van het openbare deel en de eigenschappen van de sleutel in de sleutelkluis.
  • wrapKey: om de DEK te kunnen versleutelen. De versleutelde DEK wordt opgeslagen in Azure Database for PostgreSQL.
  • unwrapKey: om de DEK te ontsleutelen. Azure Database for PostgreSQL heeft de ontsleutelde DEK nodig om de gegevens te versleutelen/ontsleutelen

De key vault-beheerder kan ook logboekregistratie van Key Vault-controlegebeurtenissen inschakelen, zodat deze later kunnen worden gecontroleerd.

Wanneer de server is geconfigureerd voor het gebruik van de door de klant beheerde sleutel die is opgeslagen in de sleutelkluis, stuurt de server de DEK naar de sleutelkluis voor versleuteling. Key Vault retourneert de versleutelde DEK, die is opgeslagen in de gebruikersdatabase. Op dezelfde manier verzendt de server, indien nodig, de beveiligde DEK naar de sleutelkluis voor ontsleuteling. Auditors kunnen Azure Monitor gebruiken om key Vault-auditgebeurtenislogboeken te controleren als logboekregistratie is ingeschakeld.

Vereisten voor het configureren van gegevensversleuteling voor Azure Database for PostgreSQL Enkele server

Hier volgen de vereisten voor het configureren van Key Vault:

  • Key Vault en Azure Database for PostgreSQL Enkele server moeten behoren tot dezelfde Microsoft Entra-tenant. Interactie tussen tenantsleutels en servers wordt niet ondersteund. Als u de Key Vault-resource later verplaatst, moet u de gegevensversleuteling opnieuw configureren.
  • De sleutelkluis moet worden ingesteld met 90 dagen voor 'Dagen om verwijderde kluizen te behouden'. Als de bestaande sleutelkluis is geconfigureerd met een lager nummer, moet u een nieuwe sleutelkluis maken omdat deze niet kan worden gewijzigd nadat deze is gemaakt.
  • Schakel de functie voor voorlopig verwijderen in de sleutelkluis in om te beveiligen tegen gegevensverlies als een onbedoelde verwijdering van een sleutel (of sleutelkluis) plaatsvindt. Voorlopig verwijderde resources worden gedurende 90 dagen bewaard, tenzij de gebruiker deze in de tussentijd herstelt of opschoont. De herstel- en opschoningsacties hebben hun eigen machtigingen gekoppeld aan een Key Vault-toegangsbeleid. De functie voor voorlopig verwijderen is standaard uitgeschakeld, maar u kunt deze inschakelen via PowerShell of de Azure CLI (u kunt deze functie niet inschakelen via Azure Portal).
  • Beveiliging tegen opschonen inschakelen om een verplichte bewaarperiode af te dwingen voor verwijderde kluizen en kluisobjecten
  • Verdeel de Azure Database for PostgreSQL Single-server toegang tot de sleutelkluis met de machtigingen get, wrapKey en unwrapKey met behulp van de unieke beheerde identiteit. In Azure Portal wordt de unieke service-identiteit automatisch gemaakt wanneer gegevensversleuteling is ingeschakeld op de PostgreSQL Single-server. Zie Gegevensversleuteling voor Azure Database for PostgreSQL Enkele server met behulp van Azure Portal voor gedetailleerde, stapsgewijze instructies wanneer u Azure Portal gebruikt.

Hier volgen de vereisten voor het configureren van de door de klant beheerde sleutel:

  • De door de klant beheerde sleutel die moet worden gebruikt voor het versleutelen van de DEK kan alleen asymmetrisch zijn, RSA 2048.
  • De activeringsdatum van de sleutel (indien ingesteld) moet een datum en tijdstip in het verleden zijn. De vervaldatum (indien ingesteld) moet een toekomstige datum en tijd zijn.
  • De sleutel moet de status Ingeschakeld hebben.
  • Als u een bestaande sleutel in de sleutelkluis importeert, moet u deze opgeven in de ondersteunde bestandsindelingen (.pfx, .byok, ). .backup

Aanbevelingen

Wanneer u gegevensversleuteling gebruikt met behulp van een door de klant beheerde sleutel, volgen hier aanbevelingen voor het configureren van Key Vault:

  • Stel een resourcevergrendeling in voor Key Vault om te bepalen wie deze kritieke resource kan verwijderen en onbedoeld of niet-geautoriseerd verwijderen kan voorkomen.

  • Schakel controle en rapportage in voor alle versleutelingssleutels. Key Vault biedt logboeken die eenvoudig kunnen worden ingevoerd in andere hulpprogramma's voor beveiligingsinformatie en gebeurtenisbeheer. Azure Monitor Log Analytics is een voorbeeld van een service die al is geïntegreerd.

  • Zorg ervoor dat Key Vault en Azure Database for PostgreSQL Enkele server zich in dezelfde regio bevinden, zodat u sneller toegang hebt tot DEK-wrap- en uitpakbewerkingen.

  • Vergrendel azure KeyVault tot alleen privé-eindpunten en geselecteerde netwerken en sta alleen vertrouwde Microsoft-services toe om de resources te beveiligen.

    trusted-service-with-AKV

Hier volgen aanbevelingen voor het configureren van een door de klant beheerde sleutel:

  • Bewaar een kopie van de door de klant beheerde sleutel op een veilige plaats of borg deze naar de borgservice.

  • Als Key Vault de sleutel genereert, maakt u een sleutelback-up voordat u de sleutel voor de eerste keer gebruikt. U kunt de back-up alleen herstellen naar Key Vault. Zie Backup-AzKeyVaultKey voor meer informatie over de back-upopdracht.

Ontoegankelijke door de klant beheerde sleutelvoorwaarde

Wanneer u gegevensversleuteling configureert met een door de klant beheerde sleutel in Key Vault, is continue toegang tot deze sleutel vereist om de server online te houden. Als de server geen toegang meer heeft tot de door de klant beheerde sleutel in Key Vault, begint de server alle verbindingen binnen tien minuten te weigeren. De server geeft een bijbehorend foutbericht en wijzigt de serverstatus in Ontoegankelijk. Enkele van de redenen waarom de server deze status kan bereiken, zijn:

  • Als we een herstelserver voor een bepaald tijdstip maken voor uw Azure Database for PostgreSQL Enkele server waarvoor gegevensversleuteling is ingeschakeld, heeft de zojuist gemaakte server de status Niet toegankelijk . U kunt de serverstatus herstellen via Azure Portal of CLI.
  • Als we een leesreplica maken voor uw Azure Database for PostgreSQL Enkele server waarvoor gegevensversleuteling is ingeschakeld, heeft de replicaserver de status Niet toegankelijk . U kunt de serverstatus herstellen via Azure Portal of CLI.
  • Als u KeyVault verwijdert, heeft de Azure Database for PostgreSQL Single-server geen toegang tot de sleutel en wordt deze verplaatst naar de status Niet toegankelijk . Herstel de sleutelkluis en hervalideer de gegevensversleuteling om de server beschikbaar te maken.
  • Als we de sleutel uit KeyVault verwijderen, heeft de Azure Database for PostgreSQL Single-server geen toegang tot de sleutel en wordt deze verplaatst naar de status Niet toegankelijk . Herstel de sleutel en hervalideer de gegevensversleuteling om de server beschikbaar te maken.
  • Als de sleutel die in Azure KeyVault is opgeslagen, verloopt, wordt de sleutel ongeldig en wordt de Azure Database for PostgreSQL Single-server overgestapt naar de status Niet toegankelijk . Breid de vervaldatum van de sleutel uit met behulp van CLI envalideer de gegevensversleuteling om de server beschikbaar te maken.

Onopzettelijke toegang tot sleutel intrekken vanuit Key Vault

Het kan gebeuren dat iemand met voldoende toegangsrechten voor Key Vault per ongeluk servertoegang tot de sleutel uitschakelt door:

  • Het intrekken van de machtigingen voor ophalen, wrapKey en uitpakken van de sleutelkluis van de server.

  • De sleutel verwijderen.

  • De sleutelkluis verwijderen.

  • De firewallregels van de sleutelkluis wijzigen.

  • De beheerde identiteit van de server in Microsoft Entra-id verwijderen.

De door de klant beheerde sleutel bewaken in Key Vault

Als u de databasestatus wilt bewaken en waarschuwingen wilt inschakelen voor het verlies van transparante toegang tot gegevensversleutelingsbeveiliging, configureert u de volgende Azure-functies:

  • Azure Resource Health: Een niet-toegankelijke database die de toegang tot de klantsleutel heeft verbroken, wordt weergegeven als 'Niet toegankelijk' nadat de eerste verbinding met de database is geweigerd.

  • Activiteitenlogboek: wanneer toegang tot de klantsleutel in de door de klant beheerde sleutelkluis mislukt, worden vermeldingen toegevoegd aan het activiteitenlogboek. U kunt de toegang zo snel mogelijk opnieuw instellen als u waarschuwingen voor deze gebeurtenissen maakt.

  • Actiegroepen: definieer deze groepen om u meldingen en waarschuwingen te sturen op basis van uw voorkeuren.

Herstellen en repliceren met de beheerde sleutel van een klant in Key Vault

Nadat Azure Database for PostgreSQL Enkele server is versleuteld met de beheerde sleutel van een klant die is opgeslagen in Key Vault, wordt elke nieuw gemaakte kopie van de server ook versleuteld. U kunt deze nieuwe kopie maken via een lokale of geo-herstelbewerking of via leesreplica's. De kopie kan echter worden gewijzigd zodat deze overeenkomt met de beheerde sleutel van een nieuwe klant voor versleuteling. Wanneer de door de klant beheerde sleutel wordt gewijzigd, worden oude back-ups van de server gestart met de meest recente sleutel.

Als u problemen wilt voorkomen bij het instellen van door de klant beheerde gegevensversleuteling tijdens het herstellen of lezen van replica's, is het belangrijk om deze stappen uit te voeren op de primaire en herstelde/replicaservers:

  • Start het herstel- of leesproces voor het maken van replica's vanaf de primaire Azure Database for PostgreSQL Enkele server.
  • Behoud de zojuist gemaakte server (hersteld/replica) in een niet-toegankelijke status, omdat de unieke identiteit nog geen machtigingen heeft gekregen voor Key Vault.
  • Op de herstelde/replicaserver moet u de door de klant beheerde sleutel opnieuwvalideren in de instellingen voor gegevensversleuteling. Dit zorgt ervoor dat de zojuist gemaakte server machtigingen voor verpakken en uitpakken krijgt voor de sleutel die is opgeslagen in Key Vault.

Beperkingen

Voor Azure Database for PostgreSQL heeft de ondersteuning voor versleuteling van data-at-rest met behulp van door klanten beheerde sleutel (CMK) enkele beperkingen:

  • Ondersteuning voor deze functionaliteit is beperkt tot prijscategorieën Algemeen gebruik en Geoptimaliseerd voor geheugen.

  • Deze functie wordt alleen ondersteund in regio's en servers die opslag ondersteunen tot 16 TB. Voor de lijst met Azure-regio's die opslag ondersteunen tot 16 TB, raadpleegt u de sectie opslag in de documentatie hier

    Notitie

    • Alle nieuwe PostgreSQL-servers die zijn gemaakt in de bovenstaande regio's, is ondersteuning voor versleuteling met customer manager-sleutels beschikbaar. Point In Time Restored (PITR)-server of leesreplica komt niet in aanmerking, maar in theorie zijn ze 'nieuw'.
    • Als u wilt controleren of uw ingerichte server maximaal 16 TB ondersteunt, gaat u naar de blade prijscategorie in de portal en ziet u de maximale opslaggrootte die wordt ondersteund door uw ingerichte server. Als u de schuifregelaar tot 4 TB kunt verplaatsen, biedt uw server mogelijk geen ondersteuning voor versleuteling met door de klant beheerde sleutels. De gegevens worden echter altijd versleuteld met behulp van door de service beheerde sleutels. Neem contact AskAzureDBforPostgreSQL@service.microsoft.com op met als u vragen hebt.
  • Versleuteling wordt alleen ondersteund met een cryptografische RSA 2048-sleutel.

Volgende stappen

Meer informatie over het instellen van gegevensversleuteling met een door de klant beheerde sleutel voor uw Azure Database for PostgreSQL Single-server met behulp van Azure Portal.