Šifrování dat Azure Database for MySQL pomocí klíče spravovaného zákazníkem

PLATÍ PRO: Jednoúčelový server Azure Database for MySQL

Důležité

Jednoúčelový server Azure Database for MySQL je na cestě vyřazení. Důrazně doporučujeme upgradovat na flexibilní server Azure Database for MySQL. Další informace o migraci na flexibilní server Azure Database for MySQL najdete v tématu Co se děje s jednoúčelovým serverem Azure Database for MySQL?

Šifrování dat pomocí klíčů spravovaných zákazníkem pro službu Azure Database for MySQL umožňuje šifrovat neaktivní uložená data s použitím vlastního klíče. Umožňuje také organizacím implementovat oddělení povinností při správě klíčů a dat. S šifrováním spravovaným zákazníkem zodpovídáte a máte plnou kontrolu nad životním cyklem klíče, oprávněními k používání klíčů a auditem operací s klíči.

Šifrování dat s využitím klíčů spravovaných zákazníkem pro Službu Azure Database for MySQL je nastavené na úrovni serveru. Pro daný server se klíč spravovaný zákazníkem, který se označuje jako šifrovací klíč klíče (KEK), slouží k šifrování šifrovacího klíče dat (DEK) používaného službou. Klíč KEK je asymetrický klíč uložený v instanci azure Key Vault spravované zákazníkem a spravovaný zákazníkem. Šifrovací klíč klíče (KEK) a šifrovací klíč dat (DEK) jsou podrobněji popsány dále v tomto článku.

Key Vault je cloudový externí systém pro správu klíčů. Je vysoce dostupná a poskytuje škálovatelné zabezpečené úložiště pro kryptografické klíče RSA, volitelně zálohované moduly hardwarového zabezpečení (HSM) ověřeným standardem FIPS 140. Nepovoluje přímý přístup k uloženému klíči, ale poskytuje služby šifrování a dešifrování autorizovaným entitům. Key Vault může klíč vygenerovat, importovat ho nebo ho přenést z místního zařízení HSM.

Poznámka:

Tato funkce je podporovaná jenom v cenových úrovních Pro obecné účely a Optimalizováno pro paměť v2 (podpora až 16 TB). Další podrobnosti najdete v konceptech úložiště. Další omezení najdete v části omezení .

Zaměstnanecké výhody

Šifrování dat s využitím klíčů spravovaných zákazníkem pro Azure Database for MySQL přináší následující výhody:

  • Přístup k datům je plně řízený schopností odebrat klíč a znepřístupnění databáze.
  • Úplná kontrola životního cyklu klíče, včetně obměně klíče tak, aby odpovídal firemním zásadám
  • Centrální správa a organizace klíčů ve službě Azure Key Vault
  • Schopnost implementovat oddělení povinností mezi bezpečnostními důstojníky a dba a správci systémů

Terminologie a popis

Šifrovací klíč dat (DEK):: Symetrický klíč AES256 používaný k šifrování oddílu nebo bloku dat. Šifrování každého bloku dat pomocí jiného klíče ztěžuje útoky kryptografických analýz. Přístup k dekům vyžaduje poskytovatel prostředků nebo instance aplikace, která šifruje a dešifruje konkrétní blok. Když nahradíte klíč DEK novým klíčem, musí se znovu zašifrovat pouze data v přidruženém bloku.

Šifrovací klíč klíče (KEK):: Šifrovací klíč používaný k šifrování deků. Klíč KEK, který nikdy neopustí službu Key Vault, umožňuje šifrování a řízení samotných deků. Entita, která má přístup k klíči KEK, se může lišit od entity, která vyžaduje klíč DEK. Vzhledem k tomu, že KEK je potřeba k dešifrování sad DEK, je KEK v podstatě jediným bodem, díky kterému lze dešifrování sad DEK efektivně odstranit odstraněním klíče KEK.

Sady DEK, zašifrované pomocí kek, se ukládají samostatně. Tyto sady DEK může dešifrovat pouze entita s přístupem k klíči KEK. Další informace najdete v tématu Zabezpečení neaktivních uložených uložených dat v šifrování.

Jak funguje šifrování dat pomocí klíče spravovaného zákazníkem

Diagram that shows an overview of Bring Your Own Key

Aby server MySQL používal klíče spravované zákazníkem uloženými ve službě Key Vault k šifrování klíče DEK, poskytne správce služby Key Vault k serveru následující přístupová práva:

  • get: Pro načtení veřejné části a vlastností klíče v trezoru klíčů.
  • wrapKey: Chcete-li být schopni zašifrovat klíč DEK. Šifrovaný klíč DEK je uložený ve službě Azure Database for MySQL.
  • unwrapKey: Aby bylo možné dešifrovat klíč DEK. Azure Database for MySQL potřebuje dešifrovaný klíč DEK k šifrování a dešifrování dat.

Správce trezoru klíčů může také povolit protokolování událostí auditu služby Key Vault, aby je bylo možné auditovat později.

Pokud je server nakonfigurovaný tak, aby používal klíč spravovaný zákazníkem uložený v trezoru klíčů, server odešle klíč DEK do trezoru klíčů pro šifrování. Key Vault vrátí šifrovaný klíč DEK, který je uložený v uživatelské databázi. Podobně v případě potřeby server odešle chráněný klíč DEK do trezoru klíčů k dešifrování. Auditoři můžou pomocí služby Azure Monitor kontrolovat protokoly událostí auditu služby Key Vault, pokud je protokolování povolené.

Požadavky na konfiguraci šifrování dat pro Službu Azure Database for MySQL

Pro konfiguraci služby Key Vault platí následující požadavky:

  • Key Vault a Azure Database for MySQL musí patřit do stejného tenanta Microsoft Entra. Interakce se službou Key Vault a serverem mezi tenanty se nepodporují. K pozdějšímu přesunu prostředku služby Key Vault je potřeba překonfigurovat šifrování dat.
  • Povolte funkci obnovitelného odstranění v trezoru klíčů s dobou uchování nastavenou na 90 dnů, která chrání před ztrátou dat, pokud dojde k náhodnému odstranění klíče (nebo služby Key Vault). Obnovitelné odstraněné prostředky se ve výchozím nastavení uchovávají po dobu 90 dnů, pokud není doba uchovávání explicitně nastavená na <=90 dnů. Akce obnovení a vymazání mají svá vlastní oprávnění přidružená k zásadám přístupu ke službě Key Vault. Funkce obnovitelného odstranění je ve výchozím nastavení vypnutá, ale můžete ji povolit prostřednictvím PowerShellu nebo Azure CLI (všimněte si, že ji nemůžete povolit prostřednictvím webu Azure Portal).
  • Povolte funkci Vyprázdnit ochranu v trezoru klíčů s dobou uchování nastavenou na 90 dnů. Ochranu před vymazáním je možné povolit pouze po povolení obnovitelného odstranění. Můžete ho zapnout přes Azure CLI nebo PowerShell. Pokud je ochrana před vymazáním zapnutá, trezor nebo objekt v odstraněném stavu nelze vyprázdnit, dokud nepřejde doba uchovávání. Obnovitelně odstraněné trezory a objekty je možné obnovit a zajistit, aby zásady uchovávání informací byly dodrženy.
  • Udělte službě Azure Database for MySQL přístup k trezoru klíčů pomocí oprávnění get, wrapKey a unwrapKey pomocí své jedinečné spravované identity. Na webu Azure Portal se jedinečná identita Service vytvoří automaticky, když je v MySQL povolené šifrování dat. Podrobné pokyny k konfiguraci šifrování dat pro MySQL najdete na webu Azure Portal.

Níže jsou uvedené požadavky na konfiguraci klíče spravovaného zákazníkem:

  • Klíč spravovaný zákazníkem, který se má použít k šifrování DEK, může být pouze asymetrický, RSA 2048.
  • Jako datum aktivace klíče (pokud ho nastavíte) je potřeba nastavit minulé datum a čas. Datum vypršení platnosti není nastavené.
  • Klíč musí být ve stavu Povoleno .
  • Klíč musí mít obnovitelné odstranění s dobou uchovávání nastavenou na 90 dnů. To implicitně nastaví požadovaný atribut klíče recoveryLevel: "Obnovitelné". Pokud je doba uchovávání nastavená na < 90 dnů, úroveň obnovení: "CustomizedRecoverable", což nevyžaduje požadavek, takže nastavení doby uchovávání je nastaveno na 90 dnů.
  • Klíč musí mít povolenou ochranu před vymazáním.
  • Pokud importujete existující klíč do trezoru klíčů, nezapomeňte ho zadat v podporovaných formátech souborů (.pfx, .byok, .backup).

Doporučení

Pokud používáte šifrování dat pomocí klíče spravovaného zákazníkem, tady jsou doporučení pro konfiguraci služby Key Vault:

  • Nastavte zámek prostředku ve službě Key Vault, abyste mohli určit, kdo může tento kritický prostředek odstranit, a zabránit náhodnému nebo neoprávněnému odstranění.

  • Povolte auditování a vytváření sestav u všech šifrovacích klíčů. Key Vault poskytuje protokoly, které se dají snadno vložit do jiných nástrojů pro správu informací o zabezpečení a událostí. Azure Monitor Log Analytics je jedním z příkladů služby, která je už integrovaná.

  • Ujistěte se, že se služba Key Vault a Azure Database for MySQL nacházejí ve stejné oblasti, abyste zajistili rychlejší přístup pro zabalení DEK a rozbalení operací.

  • Uzamkněte Azure KeyVault jenom na privátní koncový bod a vybrané sítě a povolte zabezpečení prostředků pouze důvěryhodnými službami Microsoftu .

    trusted-service-with-AKV

Tady jsou doporučení pro konfiguraci klíče spravovaného zákazníkem:

  • Uchovávejte kopii klíče spravovaného zákazníkem na bezpečném místě nebo ji uložte do služby escrow.

  • Pokud Key Vault klíč vygeneruje, vytvořte zálohu klíče před prvním použitím klíče. Zálohu můžete obnovit jenom do služby Key Vault. Další informace o příkazu zálohování naleznete v tématu Backup-AzKeyVaultKey.

Nepřístupná podmínka klíče spravovaného zákazníkem

Když nakonfigurujete šifrování dat pomocí klíče spravovaného zákazníkem ve službě Key Vault, vyžaduje se nepřetržitý přístup k tomuto klíči, aby server zůstal online. Pokud server ztratí přístup ke klíči spravovanému zákazníkem ve službě Key Vault, začne server během 10 minut odepřít všechna připojení. Server vydá odpovídající chybovou zprávu a změní stav serveru na Nepřístupný. Mezi důvody, proč může server dosáhnout tohoto stavu, patří:

  • Pokud pro službu Azure Database for MySQL vytvoříme server pro obnovení k určitému bodu v čase, který má povolené šifrování dat, bude nově vytvořený server nepřístupný. Tento problém můžete vyřešit pomocí webu Azure Portal nebo rozhraní příkazového řádku.
  • Pokud pro službu Azure Database for MySQL vytvoříme repliku pro čtení, která má povolené šifrování dat, server repliky bude nepřístupný. Tento problém můžete vyřešit pomocí webu Azure Portal nebo rozhraní příkazového řádku.
  • Pokud odstraníte keyVault, Azure Database for MySQL nebude mít přístup ke klíči a přejde do nepřístupného stavu. Obnovte službu Key Vault a obnovte šifrování dat, aby byl server dostupný.
  • Pokud klíč odstraníme z keyVaultu, Azure Database for MySQL nebude mít přístup ke klíči a přesune se do nedostupného stavu. Obnovte klíč a obnovte šifrování dat, aby byl server dostupný.
  • Pokud vyprší platnost klíče uloženého v Azure KeyVault, klíč se stane neplatným a Azure Database for MySQL přejde do nepřístupného stavu. Rozšiřte datum vypršení platnosti klíče pomocí rozhraní příkazového řádku a pak obnovte šifrování dat, aby byl server dostupný.

Náhodné odvolání přístupu ke klíči ze služby Key Vault

Může se stát, že někdo s dostatečnými přístupovými právy ke službě Key Vault omylem zakáže přístup k tomuto klíči tímto způsobem:

  • Odvolání klíče trezoru getwrapKeyklíčů a unwrapKey oprávnění ze serveru.
  • Odstranění klíče
  • Odstranění trezoru klíčů.
  • Změna pravidel brány firewall trezoru klíčů
  • Odstranění spravované identity serveru v Microsoft Entra ID

Monitorování klíče spravovaného zákazníkem ve službě Key Vault

Pokud chcete monitorovat stav databáze a povolit upozorňování na ztrátu přístupu k ochraně transparentního šifrování dat, nakonfigurujte následující funkce Azure:

  • Azure Resource Health: Nepřístupná databáze, která ztratila přístup ke klíči zákazníka, se po odepření prvního připojení k databázi zobrazuje jako nepřístupná.

  • Protokol aktivit: Pokud přístup k klíči zákazníka ve službě Key Vault spravované zákazníkem selže, položky se přidají do protokolu aktivit. Pokud pro tyto události vytvoříte výstrahy, můžete co nejdříve obnovit přístup.

  • Skupiny akcí: Definujte tyto skupiny, které vám budou posílat oznámení a výstrahy na základě vašich preferencí.

Obnovení a replikace s využitím spravovaného klíče zákazníka ve službě Key Vault

Po zašifrování Azure Database for MySQL pomocí spravovaného klíče zákazníka uloženého ve službě Key Vault se zašifrují také všechny nově vytvořené kopie serveru. Tuto novou kopii můžete vytvořit buď prostřednictvím místní nebo geografické operace obnovení, nebo prostřednictvím replik pro čtení. Kopii ale můžete změnit tak, aby odrážela spravovaný klíč nového zákazníka pro šifrování. Po změně klíče spravovaného zákazníkem začnou staré zálohy serveru používat nejnovější klíč.

Abyste se vyhnuli problémům při nastavování šifrování dat spravovaných zákazníkem během vytváření obnovení nebo repliky pro čtení, je důležité postupovat podle těchto kroků na zdrojových a obnovených serverech nebo serverech replik:

  • Zahájení procesu obnovení nebo vytvoření repliky pro čtení ze zdrojové služby Azure Database for MySQL
  • Ponechte nově vytvořený server (obnovený nebo replika) nepřístupný, protože jeho jedinečná identita ještě nemá udělená oprávnění ke službě Key Vault.
  • Na obnoveného serveru nebo serveru repliky znovu obnovte klíč spravovaný zákazníkem v nastavení šifrování dat, abyste zajistili, že nově vytvořený server bude udělen oprávnění k zabalení a rozbalení klíče uloženého ve službě Key Vault.

Omezení

Pro Službu Azure Database for MySQL má podpora šifrování neaktivních uložených dat pomocí spravovaného klíče zákazníka (CMK) málo omezení –

  • Podpora této funkce je omezená na cenové úrovně Pro obecné účely a Optimalizováno pro paměť.

  • Tato funkce se podporuje jenom v oblastech a serverech, které podporují úložiště pro obecné účely verze 2 (až 16 TB). Seznam oblastí Azure podporujících úložiště až 16 TB najdete v této dokumentaci v části Úložiště.

    Poznámka:

    • Všechny nové servery MySQL vytvořené v oblastech Azure, které podporují úložiště pro obecné účely verze 2, je k dispozici podpora šifrování pomocí klíčů zákaznického manažera. Server obnovení k určitému bodu v čase nebo replika pro čtení se kvalifikovat nebude, i když jsou teoreticky "nové".
    • Pokud chcete ověřit, jestli máte zřízené úložiště pro obecné účely v2, přejděte na portálu do okna cenová úroveň a podívejte se na maximální velikost úložiště podporovanou vaším zřízeným serverem. Pokud můžete posuvník přesunout až do 4 TB, váš server je v úložišti pro obecné účely verze 1 a nebude podporovat šifrování pomocí klíčů spravovaných zákazníkem. Data se ale šifrují pomocí klíčů spravovaných službou. Pokud máte nějaké dotazy, kontaktujte AskAzureDBforMySQL@service.microsoft.com nás.
  • Šifrování se podporuje jenom s kryptografickým klíčem RSA 2048.

Další kroky