PowerShell a Azure CLI: Povolte transparentní šifrování dat klíčem spravovaným zákazníkem z Azure Key Vault

Platí pro: Azure SQL Database Azure SQL Managed InstanceAzure Synapse Analytics

Tento článek vás provede použitím klíče ze služby Azure Key Vault k transparentnímu šifrování dat (TDE) ve službě Azure SQL Database nebo Azure Synapse Analytics. Další informace o transparentním šifrování dat s integrací služby Azure Key Vault – podpora byok (Bring Your Own Key) najdete v transparentním šifrování dat s klíči spravovanými zákazníkem ve službě Azure Key Vault. Pokud hledáte pokyny k povolení transparentního šifrování dat pomocí klíče spravovaného zákazníkem ze služby Azure Key Vault, přečtěte si téma Vytvoření serveru nakonfigurovaného pomocí spravované identity přiřazené uživatelem a transparentního šifrování dat spravovaného zákazníkem.

Tento článek se týká Azure SQL Database, Azure SQL Managed Instance a Azure Synapse Analytics (vyhrazené fondy SQL (dříve SQL DW)). Dokumentaci k transparentní šifrování dat vyhrazených fondů SQL v pracovních prostorech Synapse najdete v tématu Šifrování služby Azure Synapse Analytics.

Poznámka:

Azure SQL teď podporuje použití klíče RSA uloženého ve spravovaném HSM jako ochrana transparentním šifrováním dat. Spravovaný HSM služby Azure Key Vault je plně spravovaná, vysoce dostupná cloudová služba kompatibilní s jedním tenantem, která umožňuje chránit kryptografické klíče pro cloudové aplikace pomocí ověřených HSM úrovně 140–2 FIPS 3. Přečtěte si další informace o spravovaných HSM.

Poznámka:

ID Microsoft Entra se dříve označovalo jako Azure Active Directory (Azure AD).

Předpoklady pro PowerShell

  • Musíte mít předplatné Azure a být správcem daného předplatného.
  • [Doporučeno, ale volitelné] Máte modul hardwarového zabezpečení (HSM) nebo místní úložiště klíčů pro vytvoření místní kopie materiálu klíče pro ochranu transparentním šifrováním dat.
  • Musíte mít nainstalovaný a spuštěný Azure PowerShell.
  • Vytvořte službu Azure Key Vault a klíč, které se mají použít pro transparentní šifrování dat.
  • Klíč musí mít následující atributy, které se mají použít pro transparentní šifrování dat:
    • Datum aktivace (pokud je nastavené) musí být datum a čas v minulosti.
    • Datum vypršení platnosti (pokud je nastavené) musí být budoucí datum a čas.
    • Klíč musí být ve stavu Povoleno.
    • Schopnost provádět operace get, wrap key, unwrap key
  • Pokud chcete použít spravovaný klíč HSM, postupujte podle pokynů k vytvoření a aktivaci spravovaného HSM pomocí Azure CLI.

Pokyny k instalaci modulu Az najdete v tématu věnovaném instalaci Azure PowerShellu. Konkrétní rutiny najdete v tématu AzureRM.Sql.

Konkrétní informace o službě Key Vault najdete v pokynech k PowerShellu ze služby Key Vault a použití obnovitelného odstranění služby Key Vault v PowerShellu.

Důležité

Modul Azure Resource Manageru (RM) PowerShellu je stále podporovaný, ale veškerý budoucí vývoj je určený pro modul Az.Sql. Modul AzureRM bude dál dostávat opravy chyb až do alespoň prosince 2020. Argumenty pro příkazy v modulu Az a v modulech AzureRm jsou podstatně identické. Další informace o jejich kompatibilitě najdete v tématu Představení nového modulu Az Azure PowerShellu.

Přiřazení identity Microsoft Entra k vašemu serveru

Pokud máte existující server, přidejte do serveru identitu Microsoft Entra pomocí následujícího příkazu:

$server = Set-AzSqlServer -ResourceGroupName <SQLDatabaseResourceGroupName> -ServerName <LogicalServerName> -AssignIdentity

Pokud vytváříte server, pomocí rutiny New-AzSqlServer se značkou -Identity přidejte identitu Microsoft Entra během vytváření serveru:

$server = New-AzSqlServer -ResourceGroupName <SQLDatabaseResourceGroupName> -Location <RegionName> `
    -ServerName <LogicalServerName> -ServerVersion "12.0" -SqlAdministratorCredentials <PSCredential> -AssignIdentity

Udělení oprávnění služby Key Vault serveru

Pomocí rutiny Set-AzKeyVaultAccessPolicy udělte serveru přístup k trezoru klíčů před použitím klíče pro transparentní šifrování dat.

Set-AzKeyVaultAccessPolicy -VaultName <KeyVaultName> `
    -ObjectId $server.Identity.PrincipalId -PermissionsToKeys get, wrapKey, unwrapKey

Pokud chcete přidat oprávnění k vašemu serveru na spravovaném HSM, přidejte na server místní roli RBAC spravovaného uživatele šifrování kryptografických služeb HSM. Tím umožníte serveru provádět operace získání, zabalení klíče, rozbalení klíče na klíčích ve spravovaném HSM. Pokyny pro zřízení přístupu k serveru ve spravovaném HSM

Přidání klíče služby Key Vault na server a nastavení ochrany transparentním šifrováním dat

Poznámka:

Pro spravované klíče HSM použijte Az.Sql 2.11.1 verzi PowerShellu.

Poznámka:

Celková délka názvu trezoru klíčů a názvu klíče nesmí překročit 94 znaků.

Tip

Příklad KeyId ze služby Key Vault: https://contosokeyvault.vault.azure.net/keys/Key1/1a1a2b2b3c3c4d4d5e5e6f6f7g7g8h8h

Příklad Id klíče ze spravovaného HSM:
https://contosoMHSM.managedhsm.azure.net/keys/myrsakey

# add the key from Key Vault to the server
Add-AzSqlServerKeyVaultKey -ResourceGroupName <SQLDatabaseResourceGroupName> -ServerName <LogicalServerName> -KeyId <KeyVaultKeyId>

# set the key as the TDE protector for all resources under the server
Set-AzSqlServerTransparentDataEncryptionProtector -ResourceGroupName <SQLDatabaseResourceGroupName> -ServerName <LogicalServerName> `
   -Type AzureKeyVault -KeyId <KeyVaultKeyId>

# confirm the TDE protector was configured as intended
Get-AzSqlServerTransparentDataEncryptionProtector -ResourceGroupName <SQLDatabaseResourceGroupName> -ServerName <LogicalServerName>

Zapnutí transparentního šifrování dat

K zapnutí transparentního šifrování dat použijte rutinu Set-AzSqlDatabaseTransparentDataEncryption .

Set-AzSqlDatabaseTransparentDataEncryption -ResourceGroupName <SQLDatabaseResourceGroupName> `
   -ServerName <LogicalServerName> -DatabaseName <DatabaseName> -State "Enabled"

Teď má databáze nebo datový sklad povolené transparentní šifrování dat s šifrovacím klíčem ve službě Key Vault.

Kontrola stavu šifrování a aktivity šifrování

K získání stavu šifrování databáze nebo datového skladu použijte Get-AzSqlDatabaseTransparentDataEncryption.

# get the encryption state of the database
Get-AzSqlDatabaseTransparentDataEncryption -ResourceGroupName <SQLDatabaseResourceGroupName> `
   -ServerName <LogicalServerName> -DatabaseName <DatabaseName> `

Užitečné rutiny PowerShellu

  • K vypnutí transparentního šifrování dat použijte rutinu Set-AzSqlDatabaseTransparentDataEncryption .

    Set-AzSqlDatabaseTransparentDataEncryption -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName> `
        -DatabaseName <DatabaseName> -State "Disabled"
    
  • Pomocí rutiny Get-AzSqlServerKeyVaultKey vrátíte seznam klíčů služby Key Vault přidaných na server.

    # KeyId is an optional parameter, to return a specific key version
    Get-AzSqlServerKeyVaultKey -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName>
    
  • K odebrání klíče služby Key Vault ze serveru použijte Remove-AzSqlServerKeyVaultKey.

    # the key set as the TDE Protector cannot be removed
    Remove-AzSqlServerKeyVaultKey -KeyId <KeyVaultKeyId> -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName>
    

Řešení problému

Pokud dojde k problému, zkontrolujte následující:

  • Pokud trezor klíčů nenajdete, ujistěte se, že jste ve správném předplatném.

    Get-AzSubscription -SubscriptionId <SubscriptionId>
    

  • Pokud nový klíč nelze přidat na server nebo nový klíč nelze aktualizovat jako ochranu transparentním šifrováním dat, zkontrolujte následující:
    • Klíč by neměl mít datum vypršení platnosti.
    • Klíč musí mít povolené operace get, wrap key a unwrap key .

Další kroky