PowerShell és Azure CLI: Transzparens adattitkosítás engedélyezése az ügyfél által kezelt, Azure Key Vaultból származó kulccsal

A következőre vonatkozik: Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics

Ez a cikk bemutatja, hogyan használhatja az Azure Key Vault kulcsait transzparens adattitkosításhoz (TDE) az Azure SQL Database-ben vagy az Azure Synapse Analyticsben. Ha többet szeretne megtudni a TDE-ről az Azure Key Vault-integrációval – Saját kulcs (BYOK) támogatással, látogasson el a TDE-hez ügyfél által felügyelt kulcsokkal az Azure Key Vaultban. Ha az Azure Portal útmutatást keres a TDE azure Key Vaultból történő ügyfél által felügyelt kulccsal való engedélyezéséhez, olvassa el a felhasználó által hozzárendelt felügyelt identitással és ügyfél által felügyelt TDE-vel konfigurált kiszolgáló létrehozása című témakört.

Ez a cikk az Azure SQL Database-re, a felügyelt Azure SQL-példányra és az Azure Synapse Analyticsre (dedikált SQL-készletekre (korábban SQL DW)) vonatkozik. A Synapse-munkaterületeken belüli dedikált SQL-készletek transzparens adattitkosítás dokumentációját az Azure Synapse Analytics titkosításában találja.

Megjegyzés:

Az Azure SQL mostantól támogatja a felügyelt HSM-ben tárolt RSA-kulcs használatát TDE Protectorként. Az Azure Key Vault felügyelt HSM egy teljes körűen felügyelt, magas rendelkezésre állású, egybérlős, szabványoknak megfelelő felhőszolgáltatás, amely lehetővé teszi a titkosítási kulcsok védelmét a felhőalkalmazások számára a FIPS 140-2 3. szintű hitelesített HSM-ek használatával. További információ a felügyelt HSM-ekről.

Megjegyzés:

A Microsoft Entra ID az Azure Active Directory (Azure AD) új neve. Jelenleg frissítjük a dokumentációt.

A PowerShell előfeltételei

  • Azure-előfizetéssel kell rendelkeznie, és rendszergazdai jogosultságokkal kell rendelkeznie az adott előfizetésben.
  • [Ajánlott, de nem kötelező] Rendelkezik egy hardveres biztonsági modullal (HSM) vagy helyi kulcstárolóval a TDE Protector kulcsanyagának helyi másolatának létrehozásához.
  • Telepítenie és futtatnia kell az Azure PowerShellt.
  • Hozzon létre egy Azure Key Vaultot és kulcsot a TDE-hez.
  • A kulcsnak a következő attribútumokkal kell rendelkeznie a TDE-hez:
    • Az aktiválási dátumnak (ha be van állítva) a múltban dátumnak és időnek kell lennie
    • A lejárati dátumnak (ha be van állítva) jövőbeli dátumnak és időnek kell lennie
    • A kulcsnak engedélyezve kell lennie
    • Képes lekéréses, körbefuttatási és kulcstörési műveletek végrehajtására
  • Felügyelt HSM-kulcs használatához kövesse a felügyelt HSM Azure CLI-vel történő létrehozásához és aktiválásához szükséges utasításokat

Az Az modul telepítési útmutatását az Azure PowerShell telepítését ismertető cikkben találja. Adott parancsmagokért lásd: AzureRM.Sql.

A Key Vaultra vonatkozó részletekért tekintse meg a Key Vault PowerShell-utasításait, valamint a Key Vault helyreállítható törlésének használatát a PowerShell-lel.

Fontos

A PowerShell Azure Resource Manager (RM) modul továbbra is támogatott, de minden jövőbeli fejlesztés az Az.Sql modulhoz tartozik. Az AzureRM-modul legalább 2020 decemberéig továbbra is megkapja a hibajavításokat. Az Az modulban és az AzureRm-modulokban található parancsok argumentumai lényegében azonosak. A kompatibilitásukról további információt az új Azure PowerShell Az modul bemutatása című témakörben talál.

Microsoft Entra-identitás hozzárendelése a kiszolgálóhoz

Ha már rendelkezik kiszolgálóval, az alábbiak segítségével adhat hozzá Microsoft Entra-identitást a kiszolgálóhoz:

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

Kiszolgáló létrehozásakor használja a New-AzSqlServer parancsmagot az -Identity címkével a Microsoft Entra-identitás hozzáadásához a kiszolgáló létrehozása során:

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

Key Vault-engedélyek megadása a kiszolgálónak

A Set-AzKeyVaultAccessPolicy parancsmaggal hozzáférést biztosíthat a kiszolgálónak a kulcstartóhoz, mielőtt a TDE-hez használná a kulcsát.

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

Ha engedélyeket szeretne hozzáadni a kiszolgálóhoz egy felügyelt HSM-en, adja hozzá a "Managed HSM Crypto Service Encryption User" helyi RBAC-szerepkört a kiszolgálóhoz. Ez lehetővé teszi a kiszolgáló számára a felügyelt HSM kulcsainak lekérési, tördelési és kulcstörési műveleteit. Utasítások a kiszolgálóhozzáférés felügyelt HSM-en való kiépítéséhez

Adja hozzá a Key Vault-kulcsot a kiszolgálóhoz, és állítsa be a TDE-védőt

Megjegyzés:

Felügyelt HSM-kulcsok esetén használja a PowerShell Az.Sql 2.11.1-es verzióját.

Megjegyzés:

A kulcstartó nevének és kulcsnevének együttes hossza nem haladhatja meg a 94 karaktert.

Tipp.

Példa KeyId a Key Vaultból: https://contosokeyvault.vault.azure.net/keys/Key1/1a1a2b2b3c3c4d4d5e5e6f6f7g7g8h8h

Példa KeyId a felügyelt HSM-ből:
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>

A TDE bekapcsolása

A TDE bekapcsolásához használja a Set-AzSqlDatabaseTransparentDataEncryption parancsmagot.

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

Most az adatbázis vagy az adattárház TDE-t engedélyezve van egy titkosítási kulccsal a Key Vaultban.

A titkosítási állapot és a titkosítási tevékenység ellenőrzése

A Get-AzSqlDatabaseTransparentDataEncryption használatával kérje le egy adatbázis vagy adattárház titkosítási állapotát.

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

Hasznos PowerShell-parancsmagok

  • A TDE kikapcsolásához használja a Set-AzSqlDatabaseTransparentDataEncryption parancsmagot.

    Set-AzSqlDatabaseTransparentDataEncryption -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName> `
        -DatabaseName <DatabaseName> -State "Disabled"
    
  • A Get-AzSqlServerKeyVaultKey parancsmaggal adja vissza a kiszolgálóhoz hozzáadott Key Vault-kulcsok listáját.

    # KeyId is an optional parameter, to return a specific key version
    Get-AzSqlServerKeyVaultKey -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName>
    
  • A Remove-AzSqlServerKeyVaultKey billentyűvel távolítsa el a Key Vault-kulcsot a kiszolgálóról.

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

Hibaelhárítás

Ellenőrizze az alábbiakat, ha probléma merül fel:

  • Ha a kulcstartó nem található, győződjön meg arról, hogy a megfelelő előfizetésben van.

    Get-AzSubscription -SubscriptionId <SubscriptionId>
    

  • Ha az új kulcs nem adható hozzá a kiszolgálóhoz, vagy az új kulcs nem frissíthető TDE-védőként, ellenőrizze az alábbiakat:
    • A kulcs nem rendelkezhet lejárati dátummal
    • A kulcsnak engedélyezve kell lennie a lekérési, a burkolókulcs- és a feloldási kulcsműveletnek.

További lépések