Şunlar için geçerlidir:
Azure SQL Veritabanı
Not
- Veritabanı Düzeyi TDE CMK, Azure SQL Veritabanı (tüm SQL Veritabanı sürümleri) için kullanılabilir. Bu, Azure SQL Yönetilen Örnek, şirket içi SQL Server, Azure VM, ve Azure Synapse Analytics (ayrılmış SQL havuzları (eski adıyla SQL DW)) için kullanılamaz.
- Aynı kılavuz, federasyon istemci kimliği parametresi hariç tutularak aynı kiracıda veritabanı düzeyinde müşteri tarafından yönetilen anahtarları yapılandırmak için de uygulanabilir. Veritabanı düzeyinde müşteri tarafından yönetilen anahtarlar hakkında daha fazla bilgi için bkz . Veritabanı düzeyinde müşteri tarafından yönetilen anahtarlarla saydam veri şifrelemesi (TDE).
Bu kılavuzda, Azure Key Vault'a erişmek için kullanıcı tarafından atanan yönetilen kimliği kullanarak veritabanı düzeyinde saydam veri şifrelemesi (TDE) ve müşteri tarafından yönetilen anahtarlar (CMK) içeren bir Azure SQL Veritabanı oluşturma, güncelleştirme ve alma adımlarını inceleyeceğiz. Azure Key Vault, Azure SQL Veritabanı farklı bir Microsoft Entra kiracısındadır. Daha fazla bilgi için bkz . Saydam veri şifrelemesi ile kiracılar arası müşteri tarafından yönetilen anahtarlar.
Önkoşullar
- Bu kılavuzda iki Microsoft Entra kiracınız olduğu varsayılır.
- İlki Azure SQL Veritabanı kaynağı, çok kiracılı bir Microsoft Entra uygulaması ve kullanıcı tarafından atanan yönetilen kimlikten oluşur.
- İkinci kiracı Azure Key Vault'a evser.
- Kiracılar arası CMK'yi ayarlama ve Microsoft Entra uygulamalarını ve Azure Key Vault'u yapılandırmak için gereken RBAC izinlerini ayarlama hakkında kapsamlı yönergeler için aşağıdaki kılavuzlardan birine bakın:
- Azure CLI sürüm 2.52.0 veya üzeri.
- Az PowerShell modülü sürüm 10.3.0 veya üzeri.
- Veritabanı düzeyinde CMK için gereken RBAC izinleri, sunucu düzeyinde CMK için gereken izinlerle aynıdır. Özellikle, sunucu düzeyinde TDE için Azure Key Vault, Yönetilen kimlikler ve Kiracılar Arası CMK kullanılırken geçerli olan RBAC izinleri veritabanı düzeyinde de geçerlidir. Anahtar yönetimi ve erişim ilkesi hakkında daha fazla bilgi için bkz . Anahtar yönetimi.
İlk kiracıda gerekli kaynaklar
Bu öğreticinin amacı doğrultusunda, ilk kiracının bağımsız bir yazılım satıcısına (ISV) ait olduğunu ve ikinci kiracının da istemcisinden olduğunu varsayacağız. Bu senaryo hakkında daha fazla bilgi için bkz . Saydam veri şifrelemesi ile kiracılar arası müşteri tarafından yönetilen anahtarlar.
Azure SQL Veritabanı için TDE'yi kiracılar arası cmk ile yapılandırmadan önce, kullanıcı tarafından atanan yönetilen kimlikle yapılandırılmış çok kiracılı bir Microsoft Entra uygulamasının uygulama için federasyon kimliği olarak atanmış olması gerekir. Önkoşullar'daki kılavuzlardan birini izleyin.
Azure SQL Veritabanı'nı oluşturmak istediğiniz ilk kiracıda çok kiracılı bir Microsoft Entra uygulaması oluşturun ve yapılandırın.
Kullanıcı tarafından atanan bir yönetilen kimlik oluşturun.
Kullanıcıya atanmış yönetilen kimliği, çok kiracılı uygulama için federe kimlik kimlik bilgisi olarak yapılandırın.
Uygulama adını ve uygulama kimliğini kaydedin. Bu, Azure portalında >Enterprise uygulamalarında bulunabilir ve oluşturulan uygulamayı arayabilir.
İkinci kiracıda gerekli kaynaklar
Not
Azure AD ve MSOnline PowerShell modülleri 30 Mart 2024 itibarıyla kullanım dışı bırakılmıştır. Daha fazla bilgi edinmek için kullanımdan kaldırma güncelleştirmesini okuyun. Bu tarihten sonra bu modüllere yönelik destek, Microsoft Graph PowerShell SDK'sına geçiş yardımı ve güvenlik düzeltmeleriyle sınırlıdır. Kullanım dışı bırakılan modüller Mart 30 2025'e kadar çalışmaya devam edecektir.
Microsoft Entra ID (eski adıyla Azure AD) ile etkileşime geçmek için Microsoft Graph PowerShell'e geçiş yapmanızı öneririz. Sık sorulan geçiş soruları için Bkz. Geçiş hakkında SSS.
Not: MSOnline'ın 1.0.x sürümleri 30 Haziran 2024'den sonra kesintiye neden olabilir.
Azure Key Vault'un bulunduğu ikinci kiracıda, ilk kiracıdaki kayıtlı uygulamanın uygulama kimliğini kullanarak bir hizmet sorumlusu (uygulama) oluşturun. Burada, çok kiracılı uygulamayı kaydetmeye ilişkin bazı örnekler verilmiştir. ve <TenantID> değerini, sırasıyla çok kiracılı uygulamadaki Microsoft Entra Kimliği ve <ApplicationID> istemci Kiracı Kimliği ile değiştirin:
Azure portalı> gidin ve oluşturulan uygulamayı arayın.
Anahtarınız yoksa bir Azure Key Vault oluşturun ve bir anahtar oluşturun.
Erişim ilkesini oluşturun veya ayarlayın.
-
Erişim ilkesini oluştururken Anahtar izinleri'nin altında Al, Anahtarı Sarmala, Anahtarı Kaldır izinlerini seçin.
- Erişim ilkesini oluştururken Sorumlu seçeneğinin ilk adımında oluşturulan çok kiracılı uygulamayı seçin.
Erişim ilkesi ve anahtar oluşturulduktan sonra Anahtarı Azure Key Vault'tan alın ve Anahtar Tanımlayıcısı'nı kaydedin.
Veritabanı düzeyinde müşteri tarafından yönetilen anahtarlarla yeni bir Azure SQL Veritabanı oluşturma
Aşağıda, kullanıcı tarafından atanan yönetilen kimlikle Azure SQL Veritabanı veritabanı oluşturma ve veritabanı düzeyinde kiracılar arası müşteri tarafından yönetilen anahtar ayarlama örnekleri verilmiştir. Kullanıcı tarafından atanan yönetilen kimlik, veritabanı oluşturma aşamasında saydam veri şifrelemesi için müşteri tarafından yönetilen bir anahtar ayarlamak için gereklidir.
aka.ms/azuresqlhub'da Azure SQL hub'ına gidin.
Azure SQL Veritabanı bölmesinde Seçenekleri göster'i seçin.
Azure SQL Veritabanı seçenekleri penceresinde SQL Veritabanı Oluştur'u seçin.
SQL Veritabanı oluştur formunun Temel Bilgiler sekmesinde, Proje ayrıntıları'nın altında veritabanınız için istediğiniz Azure Aboneliğini, Kaynak grubunu ve Sunucuyu seçin. Ardından Veritabanı adınız için benzersiz bir ad kullanın. Azure SQL Veritabanı için mantıksal sunucu oluşturmadıysanız, başvuru için bkz. Kiracılar arası müşteri tarafından yönetilen anahtarla (CMK) TDE ile yapılandırılmış sunucu oluşturma.
Güvenlik sekmesine ulaştığınızda Veritabanı düzeyi anahtarı için saydam veri şifrelemesini yapılandır'ı seçin.
Saydam veri şifreleme menüsünde Veritabanı düzeyinde müşteri tarafından yönetilen anahtar (CMK) öğesini seçin.
Kullanıcı Tarafından Atanan Yönetilen Kimlik için, Veritabanı kimliğini etkinleştirmek için Yapılandır'ı seçin ve kimlik menüsünde istenen kimlik listelenmemişse kaynağa kullanıcı tarafından atanan yönetilen kimlik ekle'yi seçin. Ardından Uygula'yı seçin.
Saydam veri şifreleme menüsünde Anahtarı değiştir'i seçin. TDE için kullanılacak müşteri tarafından yönetilen anahtar için istenen Abonelik, Anahtar kasası, Anahtar ve Sürüm'e tıklayın.
Seçim düğmesini seçin. Bir anahtar seçtikten sonra, Saydam veri şifreleme menüsündeki Azure Key Vault URI'sini (nesne tanımlayıcısı)kullanarak gerektiğinde başka veritabanı anahtarları da ekleyebilirsiniz.
Otomatik anahtar döndürme, Saydam veri şifreleme menüsündeki Anahtarı otomatik döndür onay kutusu kullanılarak veritabanı düzeyinde de etkinleştirilebilir.
Veritabanını oluşturmaya devam etmek için Uygula'yı seçin.
İleri: Ek ayarlar'ı seçin.
İleri: Etiketler'i seçin.
Azure etiketlerini kullanmayı göz önünde bulundurun. Örneğin, kaynağı kimin oluşturduğunu belirlemek için "Sahip" veya "CreatedBy" etiketi ve bu kaynağın Üretim, Geliştirme vb. içinde olup olmadığını belirlemek için Ortam etiketi. Daha fazla bilgi için bkz . Azure kaynakları için adlandırma ve etiketleme stratejinizi geliştirme.
Seçin, gözden geçir ve oluştur.
Gözden Geçir + oluştur sayfasında, gözden geçirdikten sonra Oluştur'u seçin.
Not
Kullanıcı tarafından atanan yönetilen kimlik anahtar kasasında doğru izinlere sahip değilse veritabanı oluşturma işlemi başarısız olur. Kullanıcı tarafından atanan yönetilen kimliğin anahtar kasasında Get, wrapKey ve unwrapKey izinlerine sahip olması gerekir. Daha fazla bilgi için bkz . Müşteri tarafından yönetilen anahtarla saydam veri şifrelemesi için yönetilen kimlikler.
Azure CLI'nın geçerli sürümünü yükleme hakkında bilgi için Bkz . Azure CLI'yi yükleme makalesi.
az sql db create komutunu kullanarak kullanıcı tarafından atanan yönetilen kimlik ve kiracılar arası müşteri tarafından yönetilen TDE ile yapılandırılmış bir veritabanı oluşturun . İkinci kiracıdaki Anahtar Tanımlayıcısı alanda encryption-protector kullanılabilir. Çok kiracılı uygulamanın Uygulama Kimliğifederated-client-id alanında kullanılabilir. parametresi, --encryption-protector-auto-rotation veritabanı düzeyinde otomatik anahtar döndürmeyi etkinleştirmek için kullanılabilir.
Kullanıcı tarafından atanan yönetilen kimliğinizi almak için Azure portalında Yönetilen Kimlikler'i arayın. Yönetilen kimliğinizi bulun ve Özellikler'e gidin. UMI Kaynak Kimliğinizin bir örneği şöyle görünür /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>
az sql db create --resource-group $resourceGroupName --server $serverName --name mySampleDatabase --sample-name AdventureWorksLT --edition GeneralPurpose --compute-model Serverless --family Gen5 --capacity 2 --assign-identity --user-assigned-identity-id $identityid --encryption-protector $keyid --federated-client-id $federatedclientid --encryption-protector-auto-rotation True
PowerShell kullanarak veritabanı düzeyinde kullanıcı tarafından atanan yönetilen kimlik ve kiracılar arası müşteri tarafından yönetilen TDE ile yapılandırılmış bir veritabanı oluşturun.
Az PowerShell modülü yükleme yönergeleri için bkz . Azure PowerShell'i yükleme.
New-AzSqlDatabase cmdlet'ini kullanın.
Örnekteki aşağıdaki değerleri değiştirin:
-
<ResourceGroupName>: Azure SQL mantıksal sunucunuz için kaynak grubunun adı
-
<DatabaseName>: Benzersiz bir Azure SQL veritabanı adı kullanın
-
<ServerName>: Benzersiz bir Azure SQL mantıksal sunucu adı kullanın
-
<UserAssignedIdentityId>: Sunucuya atanacak kullanıcı tarafından atanan yönetilen kimliklerin listesi (bir veya birden çok olabilir)
-
<CustomerManagedKeyId>: İkinci kiracı Azure Key Vault'tan Anahtar Tanımlayıcısı
-
<FederatedClientId>: Çok kiracılı uygulamanın Uygulama Kimliği
-
-EncryptionProtectorAutoRotation: Veritabanı düzeyinde otomatik anahtar döndürmeyi etkinleştirmek için kullanılabilir
Kullanıcı tarafından atanan yönetilen kimliğinizi almak için Azure portalında Yönetilen Kimlikler'i arayın. Yönetilen kimliğinizi bulun ve Özellikler'e gidin. UMI Kaynak Kimliğinizin bir örneği şöyle görünür /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>
# create a server with user-assigned managed identity and cross-tenant customer-managed TDE with automatic key rotation enabled
$params = @{
ResourceGroupName = '<ResourceGroupName>'
ServerName = '<ServerName>'
DatabaseName = '<DatabaseName>'
AssignIdentity = $true
UserAssignedIdentityId = '<UserAssignedIdentityId>'
EncryptionProtector = '<CustomerManagedKeyId>'
FederatedClientId = '<FederatedClientId>'
EncryptionProtectorAutoRotation = $true
}
New-AzSqlDatabase @params
Aşağıda, kullanıcı tarafından atanan yönetilen kimliğe ve veritabanı düzeyinde müşteri tarafından yönetilen TDE'ye sahip bir Azure SQL Veritabanı oluşturan ARM şablonu örneği verilmiştır. Kiracılar arası bir CMK için, ikinci kiracıdaki Azure Key Vault’tan Anahtar Tanımlama ve çok kiracılı bir uygulamadan Uygulama Kimliği kullanın.
Daha fazla bilgi ve ARM şablonları için bkz. Azure SQL Veritabanı için Azure Resource Manager şablonları.
Azure portalında özel dağıtım kullanın ve düzenleyicide kendi şablonunuzu oluşturun. Ardından, örnekte yapıştırdıktan sonra yapılandırmayı kaydedin .
Kullanıcı tarafından atanan yönetilen kimliğinizi almak için Azure portalında Yönetilen Kimlikler'i arayın. Yönetilen kimliğinizi bulun ve Özellikler'e gidin. UMI Kaynak Kimliğinizin bir örneği gibi /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>görünür.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"server_name": {
"type": "String"
},
"database_name": {
"type": "String"
},
"user_assigned_identity": {
"type": "String"
},
"encryption_protector": {
"type": "String"
},
"federated_client_id": {
"type": "String"
},
"location": {
"type": "String"
},
"encryption_protector_auto_rotation": {
"type": "bool"
}
},
"variables": {},
"resources": [
{
"type": "Microsoft.Sql/servers/databases",
"apiVersion": "2023-02-01-preview",
"name": "[concat(parameters('server_name'), concat('/',parameters('database_name')))]",
"location": "[parameters('location')]",
"sku": {
"name": "Basic",
"tier": "Basic",
"capacity": 5
},
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"[parameters('user_assigned_identity')]": {}
}
},
"properties": {
"collation": "SQL_Latin1_General_CP1_CI_AS",
"maxSizeBytes": 104857600,
"catalogCollation": "SQL_Latin1_General_CP1_CI_AS",
"zoneRedundant": false,
"readScale": "Disabled",
"requestedBackupStorageRedundancy": "Geo",
"maintenanceConfigurationId": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Maintenance/publicMaintenanceConfigurations/SQL_Default",
"isLedgerOn": false,
"encryptionProtector": "[parameters('encryption_protector')]",
"federatedClientId": "[parameters('federated_client_id')]",
"encryptionProtectorAutoRotation": "[parameters('encryption_protector_auto_rotation')]"
}
}
]
}
Mevcut Azure SQL Veritabanı veritabanı düzeyinde müşteri tarafından yönetilen anahtarlarla güncelleştirme
Aşağıda, Azure SQL Veritabanı'daki mevcut veritabanını kullanıcı tarafından atanan yönetilen kimlikle güncelleştirme ve veritabanı düzeyinde kiracılar arası müşteri tarafından yönetilen anahtar ayarlama örnekleri verilmiştir. Kullanıcı tarafından atanan yönetilen kimlik, veritabanı oluşturma aşamasında saydam veri şifrelemesi için müşteri tarafından yönetilen bir anahtar ayarlamak için gereklidir.
Azure portalında, veritabanı düzeyinde müşteri tarafından yönetilen anahtarla güncelleştirmek istediğiniz SQL veritabanı kaynağına gidin.
Güvenlik'in altında Kimlik'i seçin. Bu veritabanı için Kullanıcı tarafından atanan yönetilen kimliği ekleyin ve kaydet'i seçin
Şimdi veritabanınız için Güvenlik'in altındaki Veri Şifreleme menüsüne gidin. Veritabanı düzeyinde müşteri tarafından yönetilen anahtar (CMK) seçeneğini belirleyin. Son adımda kimliği yapılandırdığınız için veritabanının Veritabanı Kimliği zaten Etkin olmalıdır.
Anahtarı değiştir'i seçin. TDE için kullanılacak müşteri tarafından yönetilen anahtar için istenen Abonelik, Anahtar kasası, Anahtar ve Sürüm'e tıklayın.
Seçim düğmesini seçin. Bir anahtar seçtikten sonra, Veri Şifrelemesi menüsündeki Azure Key Vault URI'sini (nesne tanımlayıcısı)kullanarak gerektiğinde başka veritabanı anahtarları da ekleyebilirsiniz.
Veritabanı düzeyinde otomatik anahtar döndürmeyi etkinleştirmek istiyorsanız, Anahtarı otomatik olarak döndür onay kutusunu seçin.
Kaydet'i seçin.
Azure CLI'nın geçerli sürümünü yükleme hakkında bilgi için Bkz . Azure CLI'yi yükleme makalesi.
az sql db create komutunu kullanarak kullanıcı tarafından atanan yönetilen kimlik ve kiracılar arası müşteri tarafından yönetilen TDE ile yapılandırılmış bir veritabanını güncelleştirin. İkinci kiracıdaki Anahtar Tanımlayıcısı alanda encryption-protector kullanılabilir. Çok kiracılı uygulamanın Uygulama Kimliğifederated-client-id alanında kullanılabilir.
Kullanıcı tarafından atanan yönetilen kimliğinizi almak için Azure portalında Yönetilen Kimlikler'i arayın. Yönetilen kimliğinizi bulun ve Özellikler'e gidin. UMI Kaynak Kimliğinizin bir örneği gibi /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>görünür. parametresi, --encryption-protector-auto-rotation veritabanı düzeyinde otomatik anahtar döndürmeyi etkinleştirmek için kullanılabilir.
az sql db update --resource-group $resourceGroupName --server $serverName --name mySampleDatabase --sample-name AdventureWorksLT --edition GeneralPurpose --compute-model Serverless --family Gen5 --capacity 2 --assign-identity --user-assigned-identity-id $identityid --encryption-protector $keyid --federated-client-id $federatedclientid --keys $keys --keys-to-remove $keysToRemove --encryption-protector-auto-rotation True
Liste $keys , veritabanına eklenecek anahtarların boşlukla ayrılmış listesidir ve $keysToRemove veritabanından kaldırılması gereken anahtarların boşlukla ayrılmış listesidir
$keys = '"https://yourvault.vault.azure.net/keys/yourkey1/6638b3667e384aefa31364f94d230000" "https://yourvault.vault.azure.net/keys/yourkey2/ fd021f84a0d94d43b8ef33154bca0000"'
$keysToRemove = '"https://yourvault.vault.azure.net/keys/yourkey3/6638b3667e384aefa31364f94d230000" "https://yourvault.vault.azure.net/keys/yourkey4/fd021f84a0d94d43b8ef33154bca0000"'
PowerShell kullanarak kullanıcı tarafından atanan yönetilen kimlik ve kiracılar arası müşteri tarafından yönetilen TDE ile yapılandırılmış bir veritabanını veritabanı düzeyinde güncelleştirin.
Az PowerShell modülü yükleme yönergeleri için bkz . Azure PowerShell'i yükleme.
Set-AzSqlDatabase cmdlet'ini kullanın.
Örnekteki aşağıdaki değerleri değiştirin:
-
<ResourceGroupName>: Azure SQL mantıksal sunucunuz için kaynak grubunun adı
-
<DatabaseName>: Benzersiz bir Azure SQL veritabanı adı kullanın
-
<ServerName>: Benzersiz bir Azure SQL mantıksal sunucu adı kullanın
-
<UserAssignedIdentityId>: Sunucuya atanacak kullanıcı tarafından atanan yönetilen kimliklerin listesi (bir veya birden çok olabilir)
-
<CustomerManagedKeyId>: İkinci kiracı Azure Key Vault'tan Anahtar Tanımlayıcısı
-
<FederatedClientId>: Çok kiracılı uygulamanın Uygulama Kimliği
-
<ListOfKeys>: Veritabanına eklenecek veritabanı düzeyi müşteri tarafından yönetilen anahtarların virgülle ayrılmış listesi
-
<ListOfKeysToRemove>: Veritabanından kaldırılacak müşteri tarafından yönetilen veritabanı düzeyinde anahtarların virgülle ayrılmış listesi
-
-EncryptionProtectorAutoRotation: Veritabanı düzeyinde otomatik anahtar döndürmeyi etkinleştirmek için kullanılabilir
Kullanıcı tarafından atanan yönetilen kimliğinizi almak için Azure portalında Yönetilen Kimlikler'i arayın. Yönetilen kimliğinizi bulun ve Özellikler'e gidin. UMI Kaynak Kimliğinizin bir örneği gibi /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>görünür.
$params = @{
ResourceGroupName = "<ResourceGroupName>"
ServerName = "<ServerName>"
DatabaseName = "<DatabaseName>"
AssignIdentity = $true
UserAssignedIdentityId = "<UserAssignedIdentityId>"
EncryptionProtector = "<CustomerManagedKeyId>"
FederatedClientId = "<FederatedClientId>"
KeyList = "<ListOfKeys>"
KeysToRemove = "<ListOfKeysToRemove>"
EncryptionProtectorAutoRotation = $true
}
Set-AzSqlDatabase @params
-KeyList ve -KeysToRemove örnekleri:
$keysToAdd = "https://yourvault.vault.azure.net/keys/yourkey1/fd021f84a0d94d43b8ef33154bca0000","https://yourvault.vault.azure.net/keys/yourkey2/fd021f84a0d94d43b8ef33154bca0000"
$keysToRemove = "https://yourvault.vault.azure.net/keys/yourkey3/fd021f84a0d94d43b8ef33154bca0000"
Veritabanı düzeyinde kullanıcı tarafından atanan yönetilen kimlik ve müşteri tarafından yönetilen TDE ile bir Azure SQL Veritabanı güncelleştiren ARM şablonu örneği aşağıda verilmiştır. Kiracılar arası bir CMK için, ikinci kiracıdaki Azure Key Vault’tan Anahtar Tanımlama ve çok kiracılı bir uygulamadan Uygulama Kimliği kullanın.
Daha fazla bilgi ve ARM şablonları için bkz. Azure SQL Veritabanı için Azure Resource Manager şablonları.
Azure portalında özel dağıtım kullanın ve düzenleyicide kendi şablonunuzu oluşturun. Ardından, örnekte yapıştırdıktan sonra yapılandırmayı kaydedin .
Kullanıcı tarafından atanan yönetilen kimliğinizi almak için Azure portalında Yönetilen Kimlikler'i arayın. Yönetilen kimliğinizi bulun ve Özellikler'e gidin. UMI Kaynak Kimliğinizin bir örneği gibi /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>görünür.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"server_name": {
"type": "String"
},
"database_name": {
"type": "String"
},
"user_assigned_identity": {
"type": "String"
},
"encryption_protector": {
"type": "String"
},
"location": {
"type": "String"
},
"federated_client_id": {
"type": "String"
},
"keys_to_add": {
"type": "Object"
},
"encryption_protector_auto_rotation": {
"type": "bool"
}
},
"variables": {},
"resources": [
{
"type": "Microsoft.Sql/servers/databases",
"apiVersion": "2023-02-01-preview",
"name": "[concat(parameters('server_name'), concat('/',parameters('database_name')))]",
"location": "[parameters('location')]",
"sku": {
"name": "Basic",
"tier": "Basic",
"capacity": 5
},
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"[parameters('user_assigned_identity')]": {}
}
},
"properties": {
"collation": "SQL_Latin1_General_CP1_CI_AS",
"maxSizeBytes": 104857600,
"catalogCollation": "SQL_Latin1_General_CP1_CI_AS",
"zoneRedundant": false,
"readScale": "Disabled",
"requestedBackupStorageRedundancy": "Geo",
"maintenanceConfigurationId": "/subscriptions/e1775f9f-a286-474d-b6f0-29c42ac74554/providers/Microsoft.Maintenance/publicMaintenanceConfigurations/SQL_Default",
"isLedgerOn": false,
"encryptionProtector": "[parameters('encryption_protector')]",
"keys": "[parameters('keys_to_add')]",
"federatedClientId": "[parameters('federated_client_id')]",
"encryptionProtectorAutoRotation": "[parameters('encryption_protector_auto_rotation')]"
}
}
]
}
ve encryption_protector parametresine keys_to_add örnek olarak:
"keys_to_add": {
"value": {
"https://yourvault.vault.azure.net/keys/yourkey1/fd021f84a0d94d43b8ef33154bca0000": {},
"https://yourvault.vault.azure.net/keys/yourkey2/fd021f84a0d94d43b8ef33154bca0000": {}
}
},
"encryption_protector": {
"value": "https://yourvault.vault.azure.net/keys/yourkey2/fd021f84a0d94d43b8ef33154bca0000"
}
Önemli
Bir anahtarı veritabanından kaldırmak için, belirli bir anahtarın anahtar sözlüğü değeri null olarak geçirilmelidir. Örneğin, "https://yourvault.vault.azure.net/keys/yourkey1/fd021f84a0d94d43b8ef33154bca0000": null.
Azure SQL Veritabanı veritabanı düzeyinde müşteri tarafından yönetilen anahtar ayarlarını görüntüleme
Aşağıda, bir veritabanı için veritabanı düzeyinde müşteri tarafından yönetilen anahtarları alma örnekleri verilmiştir. ARM kaynağı Microsoft.Sql/servers/databases varsayılan olarak yalnızca veritabanında yapılandırılan TDE koruyucusu ve yönetilen kimliği gösterir. Anahtarların tam listesini genişletmek için parametresini -ExpandKeyListkullanın. Ayrıca, ve zaman değeri içindeki bir nokta (örneğin, -KeysFilter "current") gibi 2023-01-01 filtreler, kullanılan geçerli anahtarları ve geçmişte kullanılan anahtarları belirli bir zamanda almak için kullanılabilir. Bu filtreler yalnızca tek tek veritabanı sorguları için desteklenir, sunucu düzeyinde sorgular için desteklenmez.
Azure portalında veritabanı düzeyinde müşteri tarafından yönetilen anahtarları görüntülemek için SQL veritabanı kaynağının Veri Şifreleme menüsüne gidin.
Azure CLI'nın geçerli sürümünü yükleme hakkında bilgi için Bkz . Azure CLI'yi yükleme makalesi.
# Retrieve the basic database level customer-managed key settings from a database
az sql db show --resource-group $resourceGroupName --server $serverName --name mySampleDatabase
# Retrieve the basic database level customer-managed key settings from a database and all the keys ever added
az sql db show --resource-group $resourceGroupName --server $serverName --name mySampleDatabase --expand-keys
# Retrieve the basic database level customer-managed key settings from a database and the current keys in use
az sql db show --resource-group $resourceGroupName --server $serverName --name mySampleDatabase --expand-keys --keys-filter current
# Retrieve the basic database level customer-managed key settings from a database and the keys in use at a particular point in time
az sql db show --resource-group $resourceGroupName --server $serverName --name mySampleDatabase --expand-keys --keys-filter 01-01-2015
# Retrieve all the databases in a server to check which ones are configured with database level customer-managed keys
az sql db list --resource-group $resourceGroupName --server $serverName
Az PowerShell modülü yükleme yönergeleri için bkz . Azure PowerShell'i yükleme.
Get-AzSqlDatabase cmdlet'ini kullanın.
# Retrieve the basic database level customer-managed key settings from a database
Get-AzSqlDatabase -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <DatabaseName>
# Retrieve the basic database level customer-managed key settings from a database and all the keys ever added
Get-AzSqlDatabase -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <DatabaseName> -ExpandKeyList
# Retrieve the basic database level customer-managed key settings from a database and the current keys in use
Get-AzSqlDatabase -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <DatabaseName> -ExpandKeyList -KeysFilter "current"
# Retrieve the basic database level customer-managed key settings from a database and the keys in use at a particular point in time
Get-AzSqlDatabase -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <DatabaseName> -ExpandKeyList -KeysFilter '2023-02-03 00:00:00'
# Retrieve all the databases in a server to check which ones are configured with database level customer-managed keys
Get-AzSqlDatabase -resourceGroupName <ResourceGroupName> -ServerName <ServerName> | Select DatabaseName, EncryptionProtector
Azure SQL Veritabanı için 2022-08-01-preview REST API'sini kullanın.
Bir veritabanından müşteri tarafından yönetilen temel veritabanı düzeyindeki anahtar ayarlarını alın.
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}?api-version=2022-08-01-preview
Bir veritabanından temel veritabanı düzeyi müşteri tarafından yönetilen anahtar ayarlarını ve eklenen tüm anahtarları alma
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}?api-version=2022-08-01-preview&$expand=keys
Veritabanından temel veritabanı düzeyi müşteri tarafından yönetilen anahtar ayarlarını ve kullanımdaki geçerli anahtarları alma
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}?api-version=2022-08-01-preview&$expand=keys($filter=pointInTime('current'))
Bir veritabanından temel veritabanı düzeyi müşteri tarafından yönetilen anahtar ayarlarını ve belirli bir noktada kullanımda olan anahtarları alma
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}?api-version=2022-08-01-preview&$expand=keys($filter=pointInTime('2023-02-04T01:57:42.49Z'))
Mantıksal sunucudaki tüm anahtarları listeleme
Sunucu altındaki her veritabanı tarafından kullanılan tüm anahtarların (yalnızca birincil koruyucunun değil) listesini getirmek için anahtar filtreleri ile ayrı ayrı sorgulanmalıdır. Aşağıda, mantıksal sunucunun altındaki her anahtarı listelemek için bir PowerShell sorgusu örneği verilmiştir.
Get-AzSqlDatabase cmdlet'ini kullanın.
$dbs = Get-AzSqlDatabase -resourceGroupName <ResourceGroupName> -ServerName <ServerName>
foreach ($db in $dbs)
{
Get-AzSqlDatabase -DatabaseName $db.DatabaseName -ServerName $db.ServerName -ResourceGroupName $db.ResourceGroupName -ExpandKeyList
}
Bir Azure SQL Veritabanı veritabanı düzeyinde müşteri tarafından yönetilen anahtarı yeniden doğrulama
Müşteri tarafından yönetilen anahtarla Azure SQL saydam veri şifrelemesinde açıklandığı gibi erişilemez bir TDE koruyucusu söz konusu olduğunda, anahtar erişimi düzeltildikten sonra veritabanını erişilebilir hale getirmek için yeniden doğrulama anahtarı işlemi kullanılabilir. Örnekler için aşağıdaki yönergelere veya komutlara bakın.
Azure portalını kullanarak SQL veritabanı kaynağınızı bulun. SQL veritabanı kaynağınızı seçtikten sonra Güvenlik ayarları altındaki Veri Şifrelemesi menüsünün Saydam Veri Şifrelemesi sekmesine gidin. Veritabanı Azure Key Vault'a erişimi kaybettiyse, bir Yeniden Doğrulama tuşu düğmesi görüntülenir ve Var olan anahtarı yeniden dene'yi veya Yedek anahtarı seç'i seçerek başka bir anahtarı seçerek mevcut anahtarı yeniden doğrulama seçeneğiniz olur.
Azure CLI'nın geçerli sürümünü yükleme hakkında bilgi için Bkz . Azure CLI'yi yükleme makalesi.
az sql db tde key revalidate --resource-group $resourceGroupName --server $serverName --database mySampleDatabase
Azure SQL Veritabanı için 2022-08-01-preview REST API'sini kullanın.
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/encryptionProtector/current/revalidate?api-version=2022-08-01-preview
bir Azure SQL Veritabanı veritabanı düzeyinde müşteri tarafından yönetilen anahtarı geri döndürme
Veritabanı düzeyinde CMK ile yapılandırılmış bir veritabanı, sunucu aşağıdaki komutlar kullanılarak hizmet tarafından yönetilen bir anahtarla yapılandırılırsa sunucu düzeyinde şifrelemeye geri döndürülebilir.
Veritabanı düzeyinde müşteri tarafından yönetilen anahtar ayarını Azure portalında sunucu düzeyinde şifreleme anahtarına döndürmek için SQL veritabanı kaynağının Veri Şifreleme menüsünün Saydam Veri Şifrelemesi sekmesine gidin.
Ayarları kaydetmek için Sunucu düzeyinde şifreleme anahtarı'nı ve ardından Kaydet'i seçin.
Not
Tek tek veritabanları için Sunucu düzeyinde şifreleme anahtarı ayarını kullanmak için, Azure SQL Veritabanı mantıksal sunucusunun TDE için Hizmet tarafından yönetilen anahtarı kullanacak şekilde yapılandırılması gerekir.
Azure CLI'nın geçerli sürümünü yükleme hakkında bilgi için Bkz . Azure CLI'yi yükleme makalesi.
az sql db tde key revert --resource-group $resourceGroupName --server $serverName --name mySampleDatabase
Azure SQL Veritabanı için 2022-08-01-preview REST API'sini kullanın.
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/encryptionProtector/current/revert?api-version=2022-08-01-preview
İlgili içerik