Dotyczy:
Azure SQL Database
Uwaga
- Klucz cmK TDE na poziomie bazy danych jest dostępny dla usługi Azure SQL Database (wszystkie wersje usługi SQL Database). Nie jest dostępna dla usługi Azure SQL Managed Instance, SQL Server na serwerach lokalnych, maszyn wirtualnych Azure i usługi Azure Synapse Analytics (dedykowane pule SQL (wcześniej SQL DW)).
- Ten sam przewodnik można zastosować do konfigurowania kluczy zarządzanych przez klienta na poziomie bazy danych w tej samej dzierżawie, wykluczając parametr identyfikatora klienta federacyjnego. Aby uzyskać więcej informacji na temat kluczy zarządzanych przez klienta na poziomie bazy danych, zobacz Transparent Data Encryption (TDE) z kluczami zarządzanymi przez klienta na poziomie bazy danych.
W tym przewodniku przedstawiono kroki tworzenia, aktualizowania i pobierania bazy danych Azure SQL Database z użyciem przezroczystego szyfrowania danych (TDE) i kluczy zarządzanych przez klienta (CMK) na poziomie bazy danych przy użyciu tożsamości zarządzanej przypisanej przez użytkownika w celu uzyskania dostępu do usługi Azure Key Vault. Usługa Azure Key Vault znajduje się w innej dzierżawie firmy Microsoft niż usługa Azure SQL Database. Aby uzyskać więcej informacji, zobacz Cross-tenant-customer-managed keys with transparent data encryption (Klucze zarządzane przez klienta między dzierżawami z przezroczystym szyfrowaniem danych).
Wymagania wstępne
- W tym przewodniku założono, że masz dwie dzierżawy firmy Microsoft Entra.
- Pierwszy składa się z zasobu usługi Azure SQL Database, wielodostępnej aplikacji Firmy Microsoft Entra i tożsamości zarządzanej przypisanej przez użytkownika.
- Druga dzierżawa zawiera usługę Azure Key Vault.
- Aby uzyskać kompleksowe instrukcje dotyczące konfigurowania klucza zarządzanego przez wielu dzierżawców i uprawnień RBAC niezbędnych do konfigurowania aplikacji firmy Microsoft Entra i usługi Azure Key Vault, zapoznaj się z jednym z następujących przewodników:
- Interfejs wiersza polecenia platformy Azure w wersji 2.52.0 lub nowszej.
- Moduł Az programu PowerShell w wersji 10.3.0 lub nowszej.
- Uprawnienia kontroli dostępu opartej na rolach niezbędne dla klucza cmK na poziomie bazy danych są tymi samymi uprawnieniami, które są wymagane dla klucza zarządzanego na poziomie serwera. W szczególności te same uprawnienia RBAC, które mają zastosowanie w przypadku korzystania z usługi Azure Key Vault, tożsamości zarządzanych oraz Cross-tenant CMK dla TDE na poziomie serwera, mają zastosowanie na poziomie bazy danych. Aby uzyskać więcej informacji na temat zarządzania kluczami i zasad dostępu, zobacz Zarządzanie kluczami.
Wymagane zasoby w pierwszej dzierżawie
Na potrzeby tego samouczka zakładamy, że pierwsza dzierżawa należy do niezależnego dostawcy oprogramowania (ISV), a druga dzierżawa pochodzi z klienta. Aby uzyskać więcej informacji na temat tego scenariusza, zobacz Cross-tenant-customer-managed keys with transparent data encryption (Klucze zarządzane przez klienta między dzierżawami z przezroczystym szyfrowaniem danych).
Aby można było skonfigurować funkcję TDE dla usługi Azure SQL Database przy użyciu wielodostępnego klucza zarządzanego, musimy mieć wielodostępną aplikację Microsoft Entra skonfigurowaną przy użyciu tożsamości zarządzanej przypisanej przez użytkownika jako poświadczenia tożsamości federacyjnej dla aplikacji. Postępuj zgodnie z jednym z przewodników w sekcji Wymagania wstępne.
W pierwszej dzierżawie, w której chcesz utworzyć Azure SQL Database, utwórz i skonfiguruj wielodostępną aplikację Microsoft Entra.
Utwórz tożsamość zarządzaną przypisaną przez użytkownika.
Skonfiguruj tożsamość zarządzaną przypisaną przez użytkownika jako poświadczenia tożsamości federacyjnej dla aplikacji wielodzietnikowej.
Zarejestruj nazwę aplikacji i identyfikator aplikacji. Można to znaleźć w witrynie Azure Portal>Microsoft Entra ID>Dla przedsiębiorstw aplikacji i wyszukać utworzoną aplikację.
Wymagane zasoby w drugiej dzierżawie
Uwaga
Moduły usług Azure AD i MSOnline programu PowerShell są przestarzałe od 30 marca 2024 r. Aby dowiedzieć się więcej, przeczytaj aktualizację o wycofaniu. Po tej dacie obsługa tych modułów jest ograniczona do pomocy dotyczącej migracji do zestawu MICROSOFT Graph PowerShell SDK i poprawek zabezpieczeń. Przestarzałe moduły będą nadal działać do 30 marca 2025 r.
Zalecamy migrację do programu Microsoft Graph PowerShell w celu interakcji z identyfikatorem Entra firmy Microsoft (dawniej Azure AD). W przypadku typowych pytań dotyczących migracji zapoznaj się z często zadawanymi pytaniami dotyczącymi migracji.
Uwaga: wersje 1.0.x usługi MSOnline mogą wystąpić zakłócenia po 30 czerwca 2024 r.
W drugiej dzierżawie, w której znajduje się usługa Azure Key Vault, utwórz jednostkę usługi (aplikację) przy użyciu identyfikatora aplikacji z zarejestrowanej aplikacji z pierwszej dzierżawy. Są oto kilka przykładów rejestrowania aplikacji wielodostępnej. Zastąp <TenantID> oraz <ApplicationID> identyfikatorem dzierżawy klienta Tenant ID z Microsoft Entra ID i identyfikatorem aplikacji z aplikacji wielodostępnej.
PowerShell:
Connect-Entra -TenantID <TenantID>
New-EntraServicePrincipal -AppId <ApplicationID>
Interfejs wiersza polecenia platformy Azure:
az login --tenant <TenantID>
az ad sp create --id <ApplicationID>
Przejdź do witryny Azure Portal>Microsoft Entra ID>Dla przedsiębiorstw aplikacji i wyszukaj utworzoną aplikację.
Utwórz usługę Azure Key Vault , jeśli jej nie masz, i utwórz klucz.
Utwórz lub ustaw zasady dostępu.
-
Wybierz uprawnienia Pobierz, Zawijaj klucz, Odpakuj klucz w obszarze Uprawnienia klucza podczas tworzenia zasad dostępu.
- Wybierz aplikację wielodostępną utworzoną w pierwszym kroku w opcji Podmiot główny podczas tworzenia zasad dostępu.
Po utworzeniu zasad dostępu i klucza pobierz klucz z usługi Azure Key Vault i zapisz identyfikator klucza.
Tworzenie nowej bazy danych Azure SQL Database z kluczami zarządzanymi przez klienta na poziomie bazy danych
Poniżej przedstawiono przykłady tworzenia bazy danych w usłudze Azure SQL Database przy użyciu tożsamości zarządzanej przypisanej przez użytkownika oraz sposobu ustawiania klucza zarządzanego przez klienta między dzierżawami na poziomie bazy danych. Tożsamość zarządzana przypisana przez użytkownika jest wymagana do konfigurowania klucza zarządzanego przez klienta na potrzeby przezroczystego szyfrowania danych w fazie tworzenia bazy danych.
Przejdź do centrum Azure SQL Hub pod adresem aka.ms/azuresqlhub.
W okienku usługi Azure SQL Database wybierz pozycję Pokaż opcje.
W oknie Opcje usługi Azure SQL Database wybierz pozycję Utwórz bazę danych SQL Database.
Na karcie Podstawy formularza Tworzenie bazy danych SQL Database w obszarze Szczegóły projektu wybierz odpowiednią subskrypcję platformy Azure, grupę zasobów i serwer dla bazy danych. Następnie użyj unikatowej nazwy bazy danych. Jeśli nie utworzono serwera logicznego dla usługi Azure SQL Database, zobacz Tworzenie serwera skonfigurowanego przy użyciu funkcji TDE z kluczem zarządzanym przez klienta (CMK) między dzierżawami, aby uzyskać informacje.
Po wyświetleniu karty Zabezpieczenia wybierz pozycję Konfiguruj przezroczyste szyfrowanie danych dla klucza poziomu bazy danych.
W menu Transparent Data Encryption wybierz pozycję Klucz zarządzany przez klienta (CMK) na poziomie bazy danych.
W obszarze Tożsamość zarządzana przypisana przez użytkownika wybierz pozycję Konfiguruj , aby włączyć tożsamość bazy danych i dodaj tożsamość zarządzaną przypisaną przez użytkownika do zasobu, jeśli żądana tożsamość nie jest wyświetlana w menu Tożsamość . Następnie wybierz pozycję Zastosuj.
W menu Transparent Data Encryption wybierz pozycję Zmień klucz. Wybierz odpowiednią subskrypcję, magazyn kluczy, klucz i wersję klucza zarządzanego przez klienta, która ma być używana na potrzeby funkcji TDE. Wybierz przycisk Wybierz. Po wybraniu klucza możesz również dodać dodatkowe klucze bazy danych zgodnie z potrzebami przy użyciu identyfikatora URI usługi Azure Key Vault (identyfikatora obiektu) w menu Transparent Data Encryption .
Automatyczne obracanie kluczy można również włączyć na poziomie bazy danych przy użyciu pola wyboru Automatycznie obracanie klucza w menu Transparent Data Encryption .
Wybierz pozycję Zastosuj , aby kontynuować tworzenie bazy danych.
Wybierz pozycję Dalej: Dodatkowe ustawienia.
Wybierz pozycję Dalej: Tagi.
Rozważ użycie tagów platformy Azure. Na przykład tag "Właściciel" lub "CreatedBy", aby zidentyfikować, kto utworzył zasób, oraz tag Środowisko w celu określenia, czy ten zasób znajduje się w środowisku produkcyjnym, programistycznym itp. Aby uzyskać więcej informacji, zobacz Develop your naming and tagging strategy for Azure resources (Opracowywanie strategii nazewnictwa i tagowania zasobów platformy Azure).
Wybierz opcję Recenzja i utwórz.
Na stronie Przeglądanie i tworzenie po przejrzeniu wybierz pozycję Utwórz.
Uwaga
Tworzenie bazy danych zakończy się niepowodzeniem, jeśli tożsamość zarządzana przypisana przez użytkownika nie ma odpowiednich uprawnień w magazynie kluczy. Tożsamość zarządzana przypisana przez użytkownika będzie potrzebować uprawnień Get, wrapKey i unwrapKey w magazynie kluczy. Aby uzyskać więcej informacji, zobacz Tożsamości zarządzane na potrzeby przezroczystego szyfrowania danych przy użyciu klucza zarządzanego przez klienta.
Aby uzyskać informacje na temat instalowania bieżącej wersji interfejsu wiersza polecenia platformy Azure, zobacz Artykuł Instalowanie interfejsu wiersza polecenia platformy Azure.
Utwórz bazę danych skonfigurowaną przy użyciu tożsamości zarządzanej przypisanej przez użytkownika i funkcji TDE zarządzanej przez klienta między dzierżawami przy użyciu polecenia az sql db create . Identyfikator klucza z drugiej dzierżawy może być używany w encryption-protector polu . W polu można użyć identyfikatora aplikacji wielodostępnej federated-client-id . Parametr --encryption-protector-auto-rotation może służyć do włączania automatycznej rotacji kluczy na poziomie bazy danych.
Aby uzyskać identyfikator zasobu tożsamości zarządzanej przypisanej przez użytkownika, wyszukaj pozycję Tożsamości zarządzane w witrynie Azure Portal. Znajdź tożsamość zarządzaną i przejdź do pozycji Właściwości. Przykład identyfikatora zasobu UMI wygląda następująco:/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
Utwórz bazę danych skonfigurowaną przy użyciu tożsamości zarządzanej przypisanej przez użytkownika i wielodostępnej funkcji TDE zarządzanej przez klienta na poziomie bazy danych przy użyciu programu PowerShell.
Aby uzyskać instrukcje instalacji modułu Az programu PowerShell, zobacz Instalowanie programu Azure PowerShell.
Użyj polecenia cmdlet New-AzSqlDatabase.
Zastąp następujące wartości w przykładzie:
-
<ResourceGroupName>: nazwa grupy zasobów dla serwera logicznego usługi Azure SQL
-
<DatabaseName>: Użyj unikatowej nazwy bazy danych Azure SQL Database
-
<ServerName>: Użyj unikatowej nazwy serwera logicznego usługi Azure SQL
-
<UserAssignedIdentityId>: lista tożsamości zarządzanych przypisanych przez użytkownika do przypisania do serwera (może to być jedna lub wiele)
-
<CustomerManagedKeyId>: identyfikator klucza z drugiej dzierżawy usługi Azure Key Vault
-
<FederatedClientId>: identyfikator aplikacji wielodostępnej aplikacji
-
-EncryptionProtectorAutoRotation: Może służyć do włączania automatycznego obracania kluczy na poziomie bazy danych
Aby uzyskać identyfikator zasobu tożsamości zarządzanej przypisanej przez użytkownika, wyszukaj pozycję Tożsamości zarządzane w witrynie Azure Portal. Znajdź tożsamość zarządzaną i przejdź do pozycji Właściwości. Przykład identyfikatora zasobu UMI wygląda następująco:/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
Oto przykład szablonu usługi ARM, który tworzy usługę Azure SQL Database z tożsamością zarządzaną przypisaną przez użytkownika i funkcją TDE zarządzaną przez klienta na poziomie bazy danych. W przypadku klucza CMK między dzierżawami użyj identyfikatora klucza z drugiej dzierżawy usługi Azure Key Vault i identyfikatora aplikacji z aplikacji wielodostępnej.
Aby uzyskać więcej informacji i szablonów usługi ARM, zobacz Szablony usługi Azure Resource Manager dla usługi Azure SQL Database.
Użyj wdrożenia niestandardowego w witrynie Azure Portal i utwórz własny szablon w edytorze.
Następnie zapisz konfigurację po wklejeniu w przykładzie.
Aby uzyskać identyfikator zasobu tożsamości zarządzanej przypisanej przez użytkownika, wyszukaj pozycję Tożsamości zarządzane w witrynie Azure Portal. Znajdź tożsamość zarządzaną i przejdź do pozycji Właściwości. Przykład identyfikatora zasobu interfejsu użytkownika
{
"$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')]"
}
}
]
}
Aktualizowanie istniejącej bazy danych Azure SQL Database przy użyciu kluczy zarządzanych przez klienta na poziomie bazy danych
Poniżej przedstawiono przykłady aktualizowania istniejącej bazy danych w usłudze Azure SQL Database przy użyciu tożsamości zarządzanej przypisanej przez użytkownika oraz sposobu ustawiania klucza zarządzanego przez klienta między dzierżawami na poziomie bazy danych. Tożsamość zarządzana przypisana przez użytkownika jest wymagana do konfigurowania klucza zarządzanego przez klienta na potrzeby przezroczystego szyfrowania danych w fazie tworzenia bazy danych.
W witrynie Azure Portal przejdź do zasobu bazy danych SQL, który chcesz zaktualizować przy użyciu klucza zarządzanego przez klienta na poziomie bazy danych.
W obszarze Zabezpieczenia wybierz pozycję Tożsamość. Dodaj tożsamość zarządzaną przypisaną przez użytkownika dla tej bazy danych, a następnie wybierz pozycję Zapisz
Teraz przejdź do menu Szyfrowanie danych w obszarze Zabezpieczenia dla bazy danych. Wybierz pozycję Klucz zarządzany przez klienta (CMK) na poziomie bazy danych. Tożsamość bazy danych dla bazy danych powinna być już włączona, ponieważ tożsamość została skonfigurowana w ostatnim kroku.
Wybierz pozycję Zmień klucz. Wybierz odpowiednią subskrypcję, magazyn kluczy, klucz i wersję klucza zarządzanego przez klienta, która ma być używana na potrzeby funkcji TDE. Wybierz przycisk Wybierz. Po wybraniu klucza możesz również dodać dodatkowe klucze bazy danych w razie potrzeby przy użyciu identyfikatora URI usługi Azure Key Vault (identyfikatora obiektu) w menu Szyfrowanie danych .
Zaznacz pole wyboru Automatyczne obracanie klucza, jeśli chcesz włączyć automatyczną rotację kluczy na poziomie bazy danych.
Wybierz pozycję Zapisz.
Aby uzyskać informacje na temat instalowania bieżącej wersji interfejsu wiersza polecenia platformy Azure, zobacz Artykuł Instalowanie interfejsu wiersza polecenia platformy Azure.
Zaktualizuj bazę danych skonfigurowaną przy użyciu tożsamości zarządzanej przypisanej przez użytkownika i funkcji TDE zarządzanej przez klienta między dzierżawami przy użyciu polecenia az sql db create . Identyfikator klucza z drugiej dzierżawy może być używany w encryption-protector polu . W polu można użyć identyfikatora aplikacji wielodostępnej federated-client-id .
Aby uzyskać identyfikator zasobu tożsamości zarządzanej przypisanej przez użytkownika, wyszukaj pozycję Tożsamości zarządzane w witrynie Azure Portal. Znajdź tożsamość zarządzaną i przejdź do pozycji Właściwości. Przykład identyfikatora zasobu interfejsu użytkownika Parametr --encryption-protector-auto-rotation może służyć do włączania automatycznej rotacji kluczy na poziomie bazy danych.
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
Lista $keys to oddzielona spacją lista kluczy, które mają zostać dodane do bazy danych i $keysToRemove jest oddzieloną spacją listy kluczy, które muszą zostać usunięte z bazy danych
$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"'
Zaktualizuj bazę danych skonfigurowaną przy użyciu tożsamości zarządzanej przypisanej przez użytkownika i funkcji TDE zarządzanej przez klienta między dzierżawami na poziomie bazy danych przy użyciu programu PowerShell.
Aby uzyskać instrukcje instalacji modułu Az programu PowerShell, zobacz Instalowanie programu Azure PowerShell.
Użyj polecenia cmdlet Set-AzSqlDatabase.
Zastąp następujące wartości w przykładzie:
-
<ResourceGroupName>: nazwa grupy zasobów dla serwera logicznego usługi Azure SQL
-
<DatabaseName>: Użyj unikatowej nazwy bazy danych Azure SQL Database
-
<ServerName>: Użyj unikatowej nazwy serwera logicznego usługi Azure SQL
-
<UserAssignedIdentityId>: lista tożsamości zarządzanych przypisanych przez użytkownika do przypisania do serwera (może to być jedna lub wiele)
-
<CustomerManagedKeyId>: identyfikator klucza z drugiej dzierżawy usługi Azure Key Vault
-
<FederatedClientId>: identyfikator aplikacji wielodostępnej aplikacji
-
<ListOfKeys>: rozdzielona przecinkami lista kluczy zarządzanych przez klienta na poziomie bazy danych, które mają zostać dodane do bazy danych
-
<ListOfKeysToRemove>: rozdzielona przecinkami lista kluczy zarządzanych przez klienta na poziomie bazy danych do usunięcia z bazy danych
-
-EncryptionProtectorAutoRotation: Może służyć do włączania automatycznego obracania kluczy na poziomie bazy danych
Aby uzyskać identyfikator zasobu tożsamości zarządzanej przypisanej przez użytkownika, wyszukaj pozycję Tożsamości zarządzane w witrynie Azure Portal. Znajdź tożsamość zarządzaną i przejdź do pozycji Właściwości. Przykład identyfikatora zasobu interfejsu użytkownika
$params = @{
ResourceGroupName = "<ResourceGroupName>"
ServerName = "<ServerName>"
DatabaseName = "<DatabaseName>"
AssignIdentity = $true
UserAssignedIdentityId = "<UserAssignedIdentityId>"
EncryptionProtector = "<CustomerManagedKeyId>"
FederatedClientId = "<FederatedClientId>"
KeyList = "<ListOfKeys>"
KeysToRemove = "<ListOfKeysToRemove>"
EncryptionProtectorAutoRotation = $true
}
Set-AzSqlDatabase @params
Przykład -KeyList i -KeysToRemove to:
$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"
Oto przykład szablonu usługi ARM, który aktualizuje usługę Azure SQL Database przy użyciu tożsamości zarządzanej przypisanej przez użytkownika i zarządzanej przez klienta funkcji TDE na poziomie bazy danych. W przypadku klucza CMK między dzierżawami użyj identyfikatora klucza z drugiej dzierżawy usługi Azure Key Vault i identyfikatora aplikacji z aplikacji wielodostępnej.
Aby uzyskać więcej informacji i szablonów usługi ARM, zobacz Szablony usługi Azure Resource Manager dla usługi Azure SQL Database.
Użyj wdrożenia niestandardowego w witrynie Azure Portal i utwórz własny szablon w edytorze.
Następnie zapisz konfigurację po wklejeniu w przykładzie.
Aby uzyskać identyfikator zasobu tożsamości zarządzanej przypisanej przez użytkownika, wyszukaj pozycję Tożsamości zarządzane w witrynie Azure Portal. Znajdź tożsamość zarządzaną i przejdź do pozycji Właściwości. Przykład identyfikatora zasobu interfejsu użytkownika
{
"$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')]"
}
}
]
}
Przykład parametru encryption_protector i keys_to_add to:
"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"
}
Ważne
Aby usunąć klucz z bazy danych, wartość słownika kluczy określonego klucza musi być przekazywana jako null. Na przykład "https://yourvault.vault.azure.net/keys/yourkey1/fd021f84a0d94d43b8ef33154bca0000": null.
Wyświetlanie ustawień klucza zarządzanego przez klienta na poziomie bazy danych w usłudze Azure SQL Database
Poniżej przedstawiono przykłady pobierania kluczy zarządzanych przez klienta na poziomie bazy danych dla bazy danych. Zasób usługi Microsoft.Sql/servers/databases ARM domyślnie pokazuje tylko funkcję ochrony TDE i tożsamość zarządzaną skonfigurowaną w bazie danych. Aby rozwinąć pełną listę kluczy, użyj parametru . -ExpandKeyList Ponadto filtry, takie jak -KeysFilter "current" i wartość punktu w czasie (na przykład 2023-01-01), mogą służyć do pobierania bieżących kluczy używanych i kluczy używanych w przeszłości w określonym punkcie w czasie. Te filtry są obsługiwane tylko dla poszczególnych zapytań bazy danych, a nie dla zapytań na poziomie serwera.
Aby wyświetlić klucze zarządzane przez klienta na poziomie bazy danych w witrynie Azure Portal, przejdź do menu Szyfrowanie danych zasobu bazy danych SQL.
Aby uzyskać informacje na temat instalowania bieżącej wersji interfejsu wiersza polecenia platformy Azure, zobacz Artykuł Instalowanie interfejsu wiersza polecenia platformy Azure.
# 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
Aby uzyskać instrukcje instalacji modułu Az programu PowerShell, zobacz Instalowanie programu Azure PowerShell.
Użyj polecenia cmdlet Get-AzSqlDatabase.
# 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
Użyj interfejsu API REST 2022-08-01-preview dla usługi Azure SQL Database.
Pobierz podstawowe ustawienia klucza zarządzanego przez klienta z bazy danych.
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}?api-version=2022-08-01-preview
Pobieranie podstawowych ustawień klucza zarządzanego przez klienta z bazy danych i wszystkich kluczy, które kiedykolwiek zostały dodane
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}?api-version=2022-08-01-preview&$expand=keys
Pobieranie podstawowych ustawień klucza zarządzanego przez klienta z bazy danych i bieżących kluczy używanych
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'))
Pobieranie podstawowych ustawień klucza zarządzanego przez klienta z bazy danych i kluczy używanych w określonym punkcie w czasie
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'))
Wyświetlanie listy wszystkich kluczy na serwerze logicznym
Aby pobrać listę wszystkich kluczy (a nie tylko podstawowej funkcji ochrony) używanej przez każdą bazę danych na serwerze, musi być indywidualnie odpytywane za pomocą filtrów kluczy. Poniżej przedstawiono przykład zapytania programu PowerShell, aby wyświetlić listę poszczególnych kluczy na serwerze logicznym.
Użyj polecenia cmdlet Get-AzSqlDatabase.
$dbs = Get-AzSqlDatabase -resourceGroupName <ResourceGroupName> -ServerName <ServerName>
foreach ($db in $dbs)
{
Get-AzSqlDatabase -DatabaseName $db.DatabaseName -ServerName $db.ServerName -ResourceGroupName $db.ResourceGroupName -ExpandKeyList
}
Zmiana klucza zarządzanego przez klienta na poziomie bazy danych w usłudze Azure SQL Database
W przypadku niedostępnej funkcji ochrony TDE zgodnie z opisem w temacie Transparent Data Encryption usługi Azure SQL z kluczem zarządzanym przez klienta, po skorygowaniu dostępu do klucza można użyć operacji ponownego zatwierdzenia klucza, aby baza danych była ponownie dostępna. Zapoznaj się z poniższymi instrukcjami lub poleceniami, aby zapoznać się z przykładami.
Korzystając z witryny Azure Portal, znajdź zasób bazy danych SQL. Po wybraniu zasobu bazy danych SQL przejdź do karty Transparent Data Encryption w menu Szyfrowanie danych w obszarze Ustawienia zabezpieczeń. Jeśli baza danych utraciła dostęp do usługi Azure Key Vault, zostanie wyświetlony przycisk Odwołuj klucz i będzie dostępna opcja ponownego dopasowania istniejącego klucza, wybierając pozycję Ponów próbę istniejącego klucza lub innego klucza, wybierając pozycję Wybierz klucz kopii zapasowej.
Aby uzyskać informacje na temat instalowania bieżącej wersji interfejsu wiersza polecenia platformy Azure, zobacz Artykuł Instalowanie interfejsu wiersza polecenia platformy Azure.
az sql db tde key revalidate --resource-group $resourceGroupName --server $serverName --database mySampleDatabase
Użyj interfejsu API REST 2022-08-01-preview dla usługi Azure SQL Database.
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
Przywracanie klucza zarządzanego przez klienta na poziomie bazy danych w usłudze Azure SQL Database
Bazę danych skonfigurowaną z kluczem cmK na poziomie bazy danych można przywrócić do szyfrowania na poziomie serwera, jeśli serwer jest skonfigurowany przy użyciu klucza zarządzanego przez usługę przy użyciu następujących poleceń.
Aby przywrócić ustawienie klucza zarządzanego przez klienta na poziomie bazy danych na klucz szyfrowania na poziomie serwera w witrynie Azure Portal, przejdź do karty Transparent Data Encryption w menu Szyfrowanie danych zasobu bazy danych SQL. Wybierz pozycję Klucz szyfrowania na poziomie serwera i wybierz pozycję Zapisz , aby zapisać ustawienia.
Uwaga
Aby można było użyć ustawienia Klucz szyfrowania na poziomie serwera dla poszczególnych baz danych, należy skonfigurować serwer logiczny usługi Azure SQL Database do używania klucza zarządzanego przez usługę dla funkcji TDE.
Aby uzyskać informacje na temat instalowania bieżącej wersji interfejsu wiersza polecenia platformy Azure, zobacz Artykuł Instalowanie interfejsu wiersza polecenia platformy Azure.
az sql db tde key revert --resource-group $resourceGroupName --server $serverName --name mySampleDatabase
Użyj interfejsu API REST 2022-08-01-preview dla usługi Azure SQL Database.
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
Treści powiązane