Platí pro:
Azure SQL Database
Poznámka:
- CmK na úrovni databáze je k dispozici pro Azure SQL Database (všechny edice SQL Database). Není k dispozici pro Azure SQL Managed Instance, místní SQL Server, Azure VMs a Azure Synapse Analytics (vyhrazené fondy SQL (dříve SQL DW)).
- Stejnou příručku můžete použít ke konfiguraci klíčů spravovaných zákazníkem na úrovni databáze ve stejném tenantovi tak, že vyloučíte parametr ID federovaného klienta. Další informace o klíčích spravovaných zákazníkem na úrovni databáze najdete v tématu Transparentní šifrování dat (TDE) s klíči spravovanými zákazníkem na úrovni databáze.
V této příručce si projdeme postup vytvoření, aktualizace a načtení služby Azure SQL Database s transparentním šifrováním dat (TDE) a klíči spravovanými zákazníkem (CMK) na úrovni databáze s využitím spravované identity přiřazené uživatelem pro přístup ke službě Azure Key Vault. Azure Key Vault je v jiném tenantu Microsoft Entra než Azure SQL Database. Další informace najdete v tématu Klíče spravované zákazníkem napříč tenanty s transparentním šifrováním dat.
Poznámka:
ID Microsoft Entra se dříve označovalo jako Azure Active Directory (Azure AD).
Požadavky
- V této příručce se předpokládá, že máte dva tenanty Microsoft Entra.
- První se skládá z prostředku služby Azure SQL Database, víceklientové aplikace Microsoft Entra a spravované identity přiřazené uživatelem.
- Druhý tenant obsahuje službu Azure Key Vault.
- Podrobné pokyny k nastavení klíče CMK mezi tenanty a oprávnění RBAC potřebných ke konfiguraci aplikací Microsoft Entra a služby Azure Key Vault najdete v jednom z následujících průvodců:
- Azure CLI verze 2.52.0 nebo vyšší.
- Modul Az PowerShell verze 10.3.0 nebo vyšší.
- Oprávnění RBAC potřebná pro cmK na úrovni databáze jsou stejná oprávnění, která jsou nutná pro cmk na úrovni serveru. Konkrétně se stejná oprávnění RBAC, která se používají při práci se službou Azure Key Vault, spravovanými identitami a klíči CMK mezi tenanty pro šifrování dat při nečinnosti na úrovni serveru, uplatňují i na úrovni databáze. Další informace o správě klíčů a zásadách přístupu najdete v tématu Správa klíčů.
Požadované prostředky u prvního nájemce
Pro účely tohoto kurzu předpokládáme, že první tenant patří nezávislému dodavateli softwaru (ISV) a druhý tenant pochází ze svého klienta. Další informace o tomto scénáři najdete v tématu Klíče spravované zákazníkem napříč tenanty s transparentním šifrováním dat.
Než budeme moct nakonfigurovat transparentní šifrování dat pro Azure SQL Database pomocí klíče CMK pro více tenantů, musíme mít víceklientskou aplikaci Microsoft Entra, která je nakonfigurovaná se spravovanou identitou přiřazenou uživatelem jako federovanou identitní přihlašovací údaj pro aplikaci. Postupujte podle jednoho z průvodců v části Požadavky.
V prvním tenantovi, ve kterém chcete vytvořit azure SQL Database, vytvořte a nakonfigurujte aplikaci Microsoft Entra s více tenanty.
Vytvořte spravovanou identitu přiřazenou uživatelem.
Nakonfigurujte spravovanou identitu přiřazenou uživatelem jako přihlašovací údaje federované identity pro víceklientskou aplikaci.
Poznamenejte si název aplikace a ID aplikace. Najdete ji na webu Azure Portal>v podnikových aplikacích Microsoft Entra ID>a vyhledejte vytvořenou aplikaci.
Požadované prostředky na druhém tenantovi
Poznámka:
Moduly Azure AD a MSOnline PowerShell jsou od 30. března 2024 zastaralé. V aktualizaci o ukončení podpory najdete více informací. Po tomto datu je podpora těchto modulů omezená na pomoc s migrací na sadu Microsoft Graph PowerShell SDK a opravy zabezpečení. Zastaralé moduly budou dál fungovat až do 30. března 2025.
Doporučujeme migrovat na Microsoft Graph PowerShell , abyste mohli pracovat s Microsoft Entra ID (dříve Azure AD). Běžné dotazy k migraci najdete v nejčastějších dotazech k migraci.
Poznámka: Verze 1.0.x MSOnline mohou být přerušeny po 30. červnu 2024.
Ve druhém tenantovi, ve kterém se nachází služba Azure Key Vault, vytvořte instanční objekt (aplikaci) pomocí ID aplikace z registrované aplikace z prvního tenanta. Tady je několik příkladů, jak zaregistrovat víceklientskou aplikaci. Nahraďte <TenantID> a <ApplicationID> ID tenanta z Microsoft Entra ID a ID aplikace z víceklientské aplikace:
Přejděte na Azure portal>Microsoft Entra ID>Podnikové aplikace a vyhledejte aplikaci, která byla vytvořena.
Pokud ho nemáte, vytvořte azure Key Vault a vytvořte klíč.
Vytvořte nebo nastavte zásady přístupu.
-
Při vytváření zásad přístupu vyberte oprávnění Získat, Zabalit klíč, Rozbalit klíč v části Oprávnění ke klíči.
- Při vytváření zásad přístupu vyberte víceklientní aplikaci vytvořenou v prvním kroku v možnosti Objekt zabezpečení .
Po vytvoření zásady přístupu a klíče nejprve načtěte klíč ze služby Azure Key Vault a poté si poznamenejte identifikátor klíče.
Vytvoření nové služby Azure SQL Database s využitím klíčů spravovaných zákazníkem na úrovni databáze
Následuje příklad vytvoření databáze ve službě Azure SQL Database se spravovanou identitou přiřazenou uživatelem a nastavení klíče spravovaného zákazníkem napříč tenanty na úrovni databáze. Spravovaná identita přiřazená uživatelem se vyžaduje k nastavení klíče spravovaného zákazníkem pro transparentní šifrování dat během fáze vytváření databáze.
Přejděte do centra Azure SQL v aka.ms/azuresqlhub.
V nabídce prostředků rozbalte Azure SQL Database a vyberte databáze SQL.
Vyberte rozevírací tlačítko + Vytvořit a vyberte databázi SQL.
Na kartě Základy formuláře Vytvořit databázi SQL v části Podrobnosti o projektu vyberte požadované předplatné Azure, skupinu prostředků a server pro vaši databázi. Pak pro název databáze použijte jedinečný název. Pokud jste pro Azure SQL Database nevytvořili logický server, přečtěte si téma Vytvoření serveru nakonfigurovaného s transparentním šifrováním dat pomocí klíče spravovaného zákazníkem napříč tenanty (CMK), kde najdete referenční informace.
Když se dostanete na kartu Zabezpečení , vyberte Konfigurovat transparentní šifrování dat pro klíč na úrovni databáze.
V nabídce Transparentní šifrování dat vyberte klíč spravovaný zákazníkem na úrovni databáze (CMK).
Pokud chcete povolit uživatelsky přiřazenou spravovanou identitu, vyberte Konfigurovat pro povolení identifikace databáze a Přidat uživatelsky přiřazenou spravovanou identitu do prostředku, pokud požadovaná identita není uvedena v nabídce Identita. Potom vyberte Použít.
V nabídce Transparentní šifrování dat vyberte Změnit klíč. Vyberte požadované předplatné, trezor klíčů, klíč a verzi pro klíč spravovaný uživatelem, který bude použit pro TDE. Zvolte tlačítko Vybrat. Po výběru klíče můžete podle potřeby přidat další databázové klíče pomocí identifikátoru URI služby Azure Key Vault (identifikátor objektu) v nabídce Transparentní šifrování dat.
Automatická obměna klíčů je také možné povolit na úrovni databáze pomocí zaškrtávacího políčka Automaticky otočit klíč v nabídce Transparentní šifrování dat.
Chcete-li pokračovat ve vytváření databáze, vyberte Použít .
Vyberte Další: Další nastavení.
Vyberte Další: Značky.
Zvažte použití značek Azure. Například značka "Owner" nebo "CreatedBy", která identifikuje, kdo prostředek vytvořil, a značku prostředí, která identifikuje, jestli se tento prostředek nachází v produkčním prostředí, vývoji atd. Další informace najdete v tématu Vývoj strategie vytváření názvů a označování prostředků Azure.
Vyberte možnost Zkontrolovat a vytvořit.
Na stránce Kontrola a vytvoření po kontrole vyberte Vytvořit.
Poznámka:
Vytvoření databáze selže, pokud spravovaná identita přiřazená uživatelem nemá pro trezor klíčů povolená správná oprávnění. Spravovaná identita přiřazená uživatelem bude potřebovat oprávnění Get, wrapKey a unwrapKey v trezoru klíčů. Další informace najdete v tématu Spravované identity pro transparentní šifrování dat pomocí klíče spravovaného zákazníkem.
Informace o instalaci aktuální verze Azure CLI najdete v článku Instalace Azure CLI .
Vytvořte databázi nakonfigurovanou pomocí uživatelsky přiřazené spravované identity a šifrování dat spravovaného zákazníkem v rámci více tenantů pomocí příkazu az sql db create. Identifikátor klíče z druhého tenanta se dá použít v encryption-protector poli. ID víceklientské aplikace lze použít v poli federated-client-id. Tento --encryption-protector-auto-rotation parametr lze použít k povolení automatické obměně klíčů na úrovni databáze.
Pokud chcete získat ID prostředku spravované identity přiřazené vámi, vyhledejte spravované identity v Azure portálu. Vyhledejte spravovanou identitu a přejděte na Vlastnosti. Příklad ID prostředku UMI vypadá takto:/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
Vytvořte databázi nakonfigurovanou pomocí uživatelem přiřazené spravované identity a zákaznicky spravovaného transparentního šifrování dat mezi tenanty na úrovni databáze pomocí PowerShell.
Pokyny k instalaci modulu Az PowerShell najdete v tématu Instalace Azure PowerShellu.
Použijte rutinu New-AzSqlDatabase .
V příkladu nahraďte následující hodnoty:
-
<ResourceGroupName>: Název skupiny prostředků pro logický server Azure SQL
-
<DatabaseName>: Použití jedinečného názvu databáze Azure SQL
-
<ServerName>: Použití jedinečného názvu logického serveru Azure SQL
-
<UserAssignedIdentityId>: Seznam spravovaných identit přiřazených uživatelem, které se mají přiřadit k serveru (může to být jedna nebo více)
-
<CustomerManagedKeyId>: Identifikátor klíče z druhého nájemce služby Azure Key Vault
-
<FederatedClientId>: ID aplikace víceklientských aplikací
-
-EncryptionProtectorAutoRotation: Lze použít k povolení automatické obměně klíčů na úrovni databáze.
Pokud chcete získat ID prostředku spravované identity přiřazené vámi, vyhledejte spravované identity v Azure portálu. Vyhledejte spravovanou identitu a přejděte na Vlastnosti. Příklad ID prostředku UMI vypadá takto:/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
Tady je příklad šablony ARM, která vytvoří Azure SQL Database s uživatelsky přiřazenou spravovanou identitou a transparentním šifrováním dat (TDE) spravovaným zákazníkem na úrovni databáze. V případě klíče CMK napříč tenanty použijte identifikátor klíče z druhého tenanta Azure Key Vault a ID aplikace z víceklientské aplikace.
Další informace a šablony ARM najdete v tématu Šablony Azure Resource Manageru pro Azure SQL Database.
Použijte vlastní nasazení v Azure portálu a vytvořte vlastní šablonu v editoru V dalším kroku uložte konfiguraci poté, co vložíte příklad.
Pokud chcete získat ID prostředku spravované identity přiřazené vámi, vyhledejte spravované identity v Azure portálu. Vyhledejte spravovanou identitu a přejděte na Vlastnosti. Příklad ID prostředku UMI Resource ID vypadá jako /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>.
{
"$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')]"
}
}
]
}
Aktualizace existující služby Azure SQL Database pomocí klíčů spravovaných zákazníkem na úrovni databáze
Tady jsou příklady aktualizace existující databáze ve službě Azure SQL Database pomocí spravované identity přiřazené uživatelem a nastavení klíče spravovaného zákazníkem napříč tenanty na úrovni databáze. Spravovaná identita přiřazená uživatelem se vyžaduje k nastavení klíče spravovaného zákazníkem pro transparentní šifrování dat během fáze vytváření databáze.
Přejděte do centra Azure SQL v aka.ms/azuresqlhub.
V nabídce prostředků rozbalte Azure SQL Database a vyberte databáze SQL.
Vyberte prostředek databáze SQL , který chcete aktualizovat pomocí klíče spravovaného zákazníkem na úrovni databáze.
V nabídce prostředků v části Zabezpečení vyberte Identita.
V části Spravovaná identita přiřazená uživatelem vyberte Přidat.
V podokně Vybrat uživatelsky přiřazenou spravovanou identitu vyberte příslušnou spravovanou identitu.
Vyberte Přidat.
Zvolte Uložit.
V nabídce prostředků v části Zabezpečení vyberte Šifrování dat.
V případě transparentního šifrování dat vyberte tlačítko klíče spravovaného zákazníkem na úrovni databáze (CMK). Identita databáze by měla být už povolená, protože jste ji nakonfigurovali v posledním kroku.
Vyberte Změnit klíč. Vyberte požadované předplatné, trezor klíčů, klíč a verzi pro klíč spravovaný uživatelem, který bude použit pro TDE. Zvolte tlačítko Vybrat. Po výběru klíče můžete podle potřeby přidat další databázové klíče pomocí identifikátoru URI služby Azure Key Vault (identifikátor objektu) v nabídce Šifrování dat.
Pokud chcete povolit automatické obměně klíčů na úrovni databáze, zaškrtněte políčko Automaticky otočit klíč.
Zvolte Uložit.
Informace o instalaci aktuální verze Azure CLI najdete v článku Instalace Azure CLI .
Aktualizujte databázi, která je nakonfigurována se spravovanou identitou přiřazenou uživatelem a zákaznicky spravovaným transparentním šifrováním dat napříč tenanty pomocí příkazu az sql db create. Identifikátor klíče z druhého tenanta se dá použít v encryption-protector poli. ID víceklientské aplikace lze použít v poli federated-client-id.
Pokud chcete získat ID prostředku spravované identity přiřazené vámi, vyhledejte spravované identity v Azure portálu. Vyhledejte spravovanou identitu a přejděte na Vlastnosti. Příklad ID prostředku UMI Resource ID vypadá jako /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>. Tento --encryption-protector-auto-rotation parametr lze použít k povolení automatické obměně klíčů na úrovni databáze.
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
Seznam $keys je seznamem klíčů oddělených mezerami, které se mají přidat do databáze, a $keysToRemove jedná se o seznam klíčů oddělených mezerami, které je potřeba z databáze odebrat.
$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"'
Aktualizujte databázi nakonfigurovanou pomocí spravované identity přiřazené uživatelem a transparentního šifrování dat spravovaného zákazníkem napříč tenanty na úrovni databáze pomocí PowerShellu.
Pokyny k instalaci modulu Az PowerShell najdete v tématu Instalace Azure PowerShellu.
Použijte rutinu Set-AzSqlDatabase .
V příkladu nahraďte následující hodnoty:
-
<ResourceGroupName>: Název skupiny prostředků pro logický server Azure SQL
-
<DatabaseName>: Použití jedinečného názvu databáze Azure SQL
-
<ServerName>: Použití jedinečného názvu logického serveru Azure SQL
-
<UserAssignedIdentityId>: Seznam spravovaných identit přiřazených uživatelem, které se mají přiřadit k serveru (může to být jedna nebo více)
-
<CustomerManagedKeyId>: Identifikátor klíče z druhého nájemce služby Azure Key Vault
-
<FederatedClientId>: ID aplikace víceklientských aplikací
-
<ListOfKeys>: Čárkami oddělený seznam klíčů spravovaných zákazníkem na úrovni databáze, které se mají přidat do databáze.
-
<ListOfKeysToRemove>: Čárkami oddělený seznam klíčů spravovaných zákazníkem na úrovni databáze, které se mají z databáze odebrat.
-
-EncryptionProtectorAutoRotation: Lze použít k povolení automatické obměně klíčů na úrovni databáze.
Pokud chcete získat ID prostředku spravované identity přiřazené vámi, vyhledejte spravované identity v Azure portálu. Vyhledejte spravovanou identitu a přejděte na Vlastnosti. Příklad ID prostředku UMI Resource ID vypadá jako /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>.
$params = @{
ResourceGroupName = "<ResourceGroupName>"
ServerName = "<ServerName>"
DatabaseName = "<DatabaseName>"
AssignIdentity = $true
UserAssignedIdentityId = "<UserAssignedIdentityId>"
EncryptionProtector = "<CustomerManagedKeyId>"
FederatedClientId = "<FederatedClientId>"
KeyList = "<ListOfKeys>"
KeysToRemove = "<ListOfKeysToRemove>"
EncryptionProtectorAutoRotation = $true
}
Set-AzSqlDatabase @params
Příkladem parametru -KeyList a -KeysToRemove je:
$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"
Tady je příklad šablony ARM, která aktualizuje službu Azure SQL Database pomocí spravované identity přiřazené uživatelem a transparentního šifrování dat spravovaného zákazníkem na úrovni databáze. V případě klíče CMK napříč tenanty použijte identifikátor klíče z druhého tenanta Azure Key Vault a ID aplikace z víceklientské aplikace.
Další informace a šablony ARM najdete v tématu Šablony Azure Resource Manageru pro Azure SQL Database.
Použijte vlastní nasazení v Azure portálu a vytvořte vlastní šablonu v editoru V dalším kroku uložte konfiguraci poté, co vložíte příklad.
Pokud chcete získat ID prostředku spravované identity přiřazené vámi, vyhledejte spravované identity v Azure portálu. Vyhledejte spravovanou identitu a přejděte na Vlastnosti. Příklad ID prostředku UMI Resource ID vypadá jako /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>.
{
"$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')]"
}
}
]
}
Příkladem parametrů encryption_protector a keys_to_add je:
"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"
}
Důležité
Chcete-li odebrat klíč z databáze, musí být hodnota slovníku klíčů určitého klíče předána jako null. Například "https://yourvault.vault.azure.net/keys/yourkey1/fd021f84a0d94d43b8ef33154bca0000": null.
Zobrazení nastavení klíče spravovaného zákazníkem na úrovni databáze ve službě Azure SQL Database
Následuje příklad načtení klíčů spravovaných zákazníkem na úrovni databáze pro databázi. Výchozí nastavení prostředku Microsoft.Sql/servers/databases ARM zobrazuje pouze ochranu TDE a spravovanou identitu nakonfigurovanou na databázi. Chcete-li rozbalit úplný seznam klíčů, použijte parametr , -ExpandKeyList. Kromě toho je možné použít filtry, jako je -KeysFilter "current" a hodnota k určitému bodu v čase (například 2023-01-01), k načtení aktuálně použitých klíčů a klíčů použitých v minulosti v konkrétním časovém okamžiku. Tyto filtry jsou podporovány pouze pro jednotlivé databázové dotazy, a ne pro dotazy na úrovni serveru.
Pokud chcete zobrazit klíče spravované zákazníkem na úrovni databáze na webu Azure Portal, přejděte do nabídky Šifrování dat prostředku databáze SQL.
Informace o instalaci aktuální verze Azure CLI najdete v článku Instalace Azure CLI .
# 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
Pokyny k instalaci modulu Az PowerShell najdete v tématu Instalace Azure PowerShellu.
Použijte rutinu 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
Použijte rozhraní REST API verze 2022-08-01-preview pro Azure SQL Database.
Načtěte základní nastavení klíče spravovaného zákazníkem na úrovni databáze z databáze.
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}?api-version=2022-08-01-preview
Načtení nastavení klíče spravovaného zákazníkem na základní úrovni databáze z konkrétní databáze a všech kdy přidaných klíčů.
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}?api-version=2022-08-01-preview&$expand=keys
Načtení základního nastavení klíče spravovaného zákazníkem na úrovni databáze z databáze a aktuálních klíčů, které se používají
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'))
Načtení základních nastavení klíčů spravovaných zákazníkem na úrovni databáze z databáze a klíčů, které se používají v daném okamžiku.
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'))
Výpis všech klíčů na logickém serveru
Pokud chcete načíst seznam všech klíčů (nejen primární ochrany) používaných jednotlivými databázemi na serveru, musí být dotazován jednotlivě pomocí filtrů klíčů. Následuje příklad dotazu PowerShellu, který vypíše každý klíč pod logickým serverem.
Použijte rutinu 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
}
Obnovení klíče spravovaného zákazníkem na úrovni databáze ve službě Azure SQL Database
V případě nepřístupné ochrany transparentním šifrováním dat, jak je popsáno v transparentním šifrování dat Azure SQL pomocí klíče spravovaného zákazníkem, je možné po opravě přístupu ke klíči použít operaci opětovného ověření klíče, aby byla databáze přístupná. Příklady najdete v následujících pokynech nebo příkazech.
Pomocí Azure portal vyhledejte prostředek databáze SQL. Jakmile vyberete prostředek databáze SQL, přejděte na kartu Transparentní šifrování dat v nabídce Šifrování dat v nastavení Zabezpečení. Pokud databáze ztratila přístup ke službě Azure Key Vault, zobrazí se tlačítko Znovu obnovit klíč a vy budete mít možnost znovu obnovit stávající klíč výběrem možnosti Opakovat existující klíč nebo jiný klíč výběrem možnosti Vybrat záložní klíč.
Informace o instalaci aktuální verze Azure CLI najdete v článku Instalace Azure CLI .
az sql db tde key revalidate --resource-group $resourceGroupName --server $serverName --database mySampleDatabase
Použijte rozhraní REST API verze 2022-08-01-preview pro 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
Vrácení klíče spravovaného zákazníkem na úrovni databáze ve službě Azure SQL Database
Databáze nakonfigurovaná pomocí klíče CMK na úrovni databáze se dá vrátit k šifrování na úrovni serveru, pokud je server nakonfigurovaný pomocí klíče spravovaného službou pomocí následujících příkazů.
Pokud chcete v portálu Azure přepnout nastavení klíče spravovaného zákazníkem na úrovni databáze zpět na úroveň šifrovacího klíče serveru, přejděte na kartu Transparentní šifrování dat v nabídce Šifrování dat prostředku SQL databáze. Vyberte šifrovací klíč na úrovni serveru a výběrem možnosti Uložit uložte nastavení.
Poznámka:
Aby bylo možné použít nastavení šifrovacího klíče na úrovni serveru pro jednotlivé databáze, musí být logický server pro Azure SQL Database nakonfigurován tak, aby používal klíč spravovaný službou pro TDE.
Informace o instalaci aktuální verze Azure CLI najdete v článku Instalace Azure CLI .
az sql db tde key revert --resource-group $resourceGroupName --server $serverName --name mySampleDatabase
Použijte rozhraní REST API verze 2022-08-01-preview pro 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
Související obsah