Aracılığıyla paylaş


PowerShell ve Azure CLI: Azure Key Vault'tan müşteri tarafından yönetilen anahtarla Saydam Veri Şifrelemesini etkinleştirme

Şunlar için geçerlidir: Azure SQL Veritabanı Azure SQL Yönetilen Örneği Azure Synapse Analytics

Bu makalede, Azure SQL Veritabanı veya Azure Synapse Analytics'te saydam veri şifrelemesi (TDE) için Azure Key Vault'tan bir anahtarın nasıl kullanılacağı açıklanmaktadır. Azure Key Vault tümleştirmesi - Kendi Anahtarını Getir (BYOK) Desteği ile TDE hakkında daha fazla bilgi edinmek için Azure Key Vault'ta müşteri tarafından yönetilen anahtarlarla TDE'yi ziyaret edin. Azure Key Vault'tan müşteri tarafından yönetilen anahtarla TDE'yi etkinleştirme hakkında Azure portalı yönergelerini arıyorsanız bkz . Kullanıcı tarafından atanan yönetilen kimlik ve müşteri tarafından yönetilen TDE ile yapılandırılmış sunucu oluşturma.

Bu makale Azure SQL Veritabanı, Azure SQL Yönetilen Örneği ve Azure Synapse Analytics ayrılmış SQL havuzları için geçerlidir. Synapse çalışma alanlarındaki ayrılmış SQL havuzları için Saydam Veri Şifrelemesi belgeleri için bkz. Azure Synapse Analytics şifrelemesi.

Not

Azure SQL, Yönetilen HSM'de TDE Koruyucusu olarak depolanan RSA anahtarının kullanılmasını da destekler. Azure Yönetilen HSM, FIPS 140-2 Düzey 3 doğrulanmış HSM'leri kullanarak bulut uygulamalarınız için şifreleme anahtarlarını korumanızı sağlayan, tam olarak yönetilen, yüksek oranda kullanılabilir, tek kiracılı, standartlara uyumlu bir bulut hizmetidir. Yönetilen HSM'ler hakkında daha fazla bilgi edinin.

Not

Microsoft Entra Id daha önce Azure Active Directory (Azure AD) olarak biliniyordu.

PowerShell için ön koşullar

  • Bir Azure aboneliğinizin olması ve bu abonelikte yönetici olmanız gerekir.
  • [Önerilen ama İsteğe Bağlı] TDE Koruyucusu anahtar malzemesinin yerel kopyasını oluşturmak için bir donanım güvenlik modülüne (HSM) veya yerel anahtar deposuna sahip olun.
  • Azure PowerShell'in yüklü ve çalışır durumda olması gerekir.
  • TDE için kullanılacak bir Azure Key Vault ve Anahtar oluşturun.
  • Anahtar, TDE için kullanılacak aşağıdaki özniteliklere sahip olmalıdır:
    • Etkinleştirme tarihi (ayarlandıysa) geçmişteki bir tarih ve saat olmalıdır
    • Son kullanma tarihi (ayarlandıysa) gelecekteki bir tarih ve saat olmalıdır
    • Anahtar Etkin durumda olmalıdır
    • Alma, sarmalama anahtarı, anahtar kaldırma işlemleri gerçekleştirebilir
  • Yönetilen HSM anahtarı kullanmak için , Azure CLI kullanarak Yönetilen HSM oluşturma ve etkinleştirme yönergelerini izleyin

Az PowerShell modülü yükleme yönergeleri için bkz . Azure PowerShell'i yükleme.

Azure Key Vault ile ilgili ayrıntılar için bkz. Azure Key Vault'tan PowerShell yönergeleri ve PowerShell ile Azure Key Vault geçici silmeyi kullanma.

Sunucunuza Microsoft Entra kimliği atama

Mevcut bir sunucunuz varsa, sunucunuza bir Microsoft Entra kimliği eklemek için aşağıdakileri kullanın:

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

Sunucu oluşturuyorsanız, sunucu oluşturma sırasında bir Microsoft Entra kimliği eklemek için -Identity etiketiyle New-AzSqlServer cmdlet'ini kullanın:

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

Sunucunuza Azure Key Vault izinleri verme

Set-AzKeyVaultAccessPolicy cmdlet'ini kullanarak sunucunuza TDE için anahtar kullanmadan önce anahtar kasasına erişim izni verin.

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

Yönetilen HSM'de sunucunuza izin eklemek için sunucuya 'Yönetilen HSM Şifreleme Hizmeti Şifreleme Kullanıcısı' yerel RBAC rolünü ekleyin. Bu, sunucunun Yönetilen HSM'deki anahtarlar üzerinde getirme, anahtarı sarma ve anahtarı çözme işlemlerini gerçekleştirmesini sağlar. Daha fazla bilgi için Yönetilen HSM rol yönetimine bakın

Azure Key Vault anahtarını sunucuya ekleyin ve TDE Koruyucusu'nu ayarlayın

Not

Yönetilen HSM anahtarları için PowerShell'in Az.Sql 2.11.1 veya sonraki bir sürümünü kullanın.

Not

Anahtar kasası adı ve anahtar adı için birleşik uzunluk 94 karakteri aşamaz.

İpucu

Azure Key Vault'tan örnek bir KeyId: https://contosokeyvault.vault.azure.net/keys/Key1/<key-id>

Yönetilen HSM'den örnek bir KeyId:
https://contosoMHSM.managedhsm.azure.net/keys/myrsakey

# add the key from Azure 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>

TDE'i açma

TDE'yi açmak için Set-AzSqlDatabaseTransparentDataEncryption cmdlet'ini kullanın.

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

Artık veritabanı veya veri ambarı, Azure Key Vault'ta bir şifreleme anahtarı ile TDE'yi etkinleştirmiştir.

Şifreleme durumunu ve şifreleme etkinliğini denetleme

Veritabanı veya veri ambarı için şifreleme durumunu almak için Get-AzSqlDatabaseTransparentDataEncryption komutunu kullanın.

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

Yararlı PowerShell cmdlet'leri

  • TDE'yi kapatmak için Set-AzSqlDatabaseTransparentDataEncryption cmdlet'ini kullanın.

    Set-AzSqlDatabaseTransparentDataEncryption -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName> `
        -DatabaseName <DatabaseName> -State "Disabled"
    
  • Sunucuya eklenen Azure Key Vault anahtarlarının listesini döndürmek için Get-AzSqlServerKeyVaultKey cmdlet'ini kullanın.

    # KeyId is an optional parameter, to return a specific key version
    Get-AzSqlServerKeyVaultKey -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName>
    
  • Sunucudan bir Azure Key Vault anahtarını kaldırmak için Remove-AzSqlServerKeyVaultKey kullanın.

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

Sorun giderme

  • Anahtar kasası bulunamazsa doğru abonelikte olduğunuzdan emin olun.

    Get-AzSubscription -SubscriptionId <SubscriptionId>
    

  • Yeni anahtar sunucuya eklenemiyorsa veya yeni anahtar TDE Koruyucusu olarak güncelleştirilemiyorsa aşağıdakileri denetleyin:

    • Anahtarın son kullanma tarihi olmamalıdır.
    • Anahtarın alma, sarmalama anahtarı ve anahtar açma işlemlerinin etkinleştirilmesi gerekir.
  • Güvenlik gereksinimlerine uymak için sunucunun TDE Koruyucusu'nu döndürmeyi öğrenin: PowerShell kullanarak Saydam Veri Şifrelemesi koruyucuyu döndürme.
  • Tehlikeye girmiş olabilecek bir TDE Koruyucusunu nasıl kaldıracağınızı öğrenin: Tehlikeye girmiş olabilecek bir anahtarıkaldırmayı öğrenin.