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ı (eski adı SQL DW) 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 artık Yönetilen HSM'de TDE Koruyucusu olarak depolanan bir RSA anahtarının kullanılmasını destekliyor. Azure Key Vault 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.
- Donanım güvenlik modülü (HSM) ve Key Vault kullanma yönergeleri
- Anahtar kasasının TDE için kullanılabilmesi için aşağıdaki özelliğe sahip olması gerekir:
- geçici silme ve temizleme koruması
- Donanım güvenlik modülü (HSM) ve Key Vault kullanma yönergeleri
- 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 modülü yükleme yönergeleri için bkz. Azure PowerShell'i yükleme. Belirli cmdlet'ler için bkz . AzureRM.Sql.
Key Vault ile ilgili ayrıntılar için bkz . Key Vault'tan PowerShell yönergeleri ve PowerShell ile Key Vault geçici silmeyi kullanma.
Önemli
PowerShell Azure Resource Manager (RM) modülü hala desteklenmektedir ancak gelecekteki tüm geliştirmeler Az.Sql modülüne yöneliktir. AzureRM modülü en az Aralık 2020'ye kadar hata düzeltmeleri almaya devam edecektir. Az modülündeki ve AzureRm modüllerindeki komutların bağımsız değişkenleri önemli ölçüde aynıdır. Uyumlulukları hakkında daha fazla bilgi için bkz . Yeni Azure PowerShell Az modülüne giriş.
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 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 anahtarlarda alma, sarmalama, anahtar kaldırma işlemlerini gerçekleştirmesini sağlar. Yönetilen HSM'de sunucu erişimi sağlama yönergeleri
Key Vault anahtarını sunucuya ekleyin ve TDE Koruyucusu'nu ayarlayın
- Anahtar kasasından anahtar kimliğini almak için Get-AzKeyVaultKey cmdlet'ini kullanın
- Anahtarı Key Vault'tan sunucuya eklemek için Add-AzSqlServerKeyVaultKey cmdlet'ini kullanın.
- Anahtarı tüm sunucu kaynakları için TDE koruyucusu olarak ayarlamak için Set-AzSqlServerTransparentDataEncryptionProtector cmdlet'ini kullanın.
- TDE koruyucusunun amaçlandığı gibi yapılandırıldığını onaylamak için Get-AzSqlServerTransparentDataEncryptionProtector cmdlet'ini kullanın.
Not
Yönetilen HSM anahtarları için PowerShell'in Az.Sql 2.11.1 sürümünü kullanın.
Not
Anahtar kasası adı ve anahtar adı için birleşik uzunluk 94 karakteri aşamaz.
İpucu
Key Vault'tan örnek bir KeyId: https://contosokeyvault.vault.azure.net/keys/Key1/1a1a2b2b3c3c4d4d5e5e6f6f7g7g8h8h
Yönetilen HSM'den örnek bir KeyId:
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>
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ı, 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 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 Key Vault anahtarı kaldırmak için Remove-AzSqlServerKeyVaultKey komutunu kullanın.
# the key set as the TDE Protector cannot be removed Remove-AzSqlServerKeyVaultKey -KeyId <KeyVaultKeyId> -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName>
Sorun giderme
Bir sorun oluştuğunda aşağıdakileri denetleyin:
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.
Sonraki adımlar
- Güvenlik gereksinimlerine uymak için sunucunun TDE Koruyucusu'nu döndürmeyi öğrenin: PowerShell kullanarak Saydam Veri Şifrelemesi koruyucuyu döndürme.
- Güvenlik riski söz konusu olduğunda, güvenliği aşılmış olabilecek bir TDE Koruyucusu'nun nasıl kaldırılacağını öğrenin: Güvenliği aşılmış olabilecek bir anahtarı kaldırma.