Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:Azure SQL Managed Instance
Ez a PowerShell-példaszkript transzparens adattitkosítást (TDE) konfigurál a felügyelt Azure SQL-példányban egy ügyfél által felügyelt kulccsal az Azure Key Vaultból. Ezt gyakran a TDE "hozd a saját kulcsodat" (BYOK) forgatókönyvként említik. További információ: Azure SQL Transzparens adattitkosítás ügyfél által felügyelt kulccsal.
Előfeltételek
- Egy meglévő felügyelt példány. Lásd: Felügyelt példány létrehozása a PowerShell használatával.
Ha nem rendelkezik Azure-előfizetéssel, első lépésként hozzon létre egy ingyenes Azure-fiókot.
Megjegyzés
Ez a cikk az Azure Az PowerShell-modult használja, amely az Azure-ral való interakcióhoz ajánlott PowerShell-modul. Az Az PowerShell-modul használatának megkezdéséhez tekintse meg Az Azure PowerShell-telepítése című témakört. Az Az PowerShell-modulra történő migrálás részleteiről lásd: Az Azure PowerShell migrálása az AzureRM modulból az Az modulba.
Az Azure Cloud Shell használata
Az Azure üzemelteti az Azure Cloud Shellt, egy interaktív rendszerhéj-környezetet, amelyet a böngészőben használhat. A Bash vagy a PowerShell segítségével is használhatja a Cloud Shellt az Azure-szolgáltatásokhoz. A Cloud Shell előre telepített parancsaival futtathatja a jelen cikkben szereplő kódot anélkül, hogy bármit telepítenie kellene a helyi környezetben.
Az Azure Cloud Shell indítása:
| Lehetőség | Példa/hivatkozás |
|---|---|
| Kattintson a Kipróbálás elemre egy kódblokk jobb felső sarkában. A Kipróbálás kiválasztása nem másolja automatikusan a kódot a Cloud Shellbe. |
|
| Látogasson el a https://shell.azure.com webhelyre, vagy kattintson a Cloud Shell indítása gombra a böngészőben. |
|
| Az Azure Portal jobb felső sarkában található menüben kattintson a Cloud Shell gombra. |
|
A jelen cikkben szereplő kód futtatása az Azure Cloud Shellben:
Indítsd el a Cloud Shell-t.
A kód másolásához kattintson a kódblokk Másolás gombjára.
Illessze be a kódot a Cloud Shell -munkamenetbe a Windows és Linux rendszeren a Ctrl+Shift+V billentyűkombinációval, illetve a Cmd+Shift+V választásával macOS rendszeren.
A kód futtatásához válassza az Enter lehetőséget.
A PowerShell helyi vagy Azure Cloud Shell-alapú használatához az Azure PowerShell 2.3.2-es vagy újabb verziója szükséges. Ha frissítenie kell, tekintse meg Az Azure PowerShell-modul telepítésecímű témakört, vagy futtassa az alábbi példaszkriptet a modul aktuális felhasználóhoz való telepítéséhez:
Install-Module -Name Az -AllowClobber -Scope CurrentUser
Ha helyileg futtatja a PowerShellt, Connect-AzAccount is futtatnia kell az Azure-ral való kapcsolat létrehozásához.
Példaszkriptek
# You will need an existing Managed Instance as a prerequisite for completing this script.
# See https://docs.microsoft.com/en-us/azure/sql-database/scripts/sql-database-create-configure-managed-instance-powershell
# Log in to your Azure account:
Connect-AzAccount
# If there are multiple subscriptions, choose the one where AKV is created:
Set-AzContext -SubscriptionId "subscription ID"
# Install the Az.Sql PowerShell package if you are running this PowerShell locally (uncomment below):
# Install-Module -Name Az.Sql
# 1. Create Resource and setup Azure Key Vault (skip if already done)
# Create Resource group (name the resource and specify the location)
$location = "westus2" # specify the location
$resourcegroup = "MyRG" # specify a new RG name
New-AzResourceGroup -Name $resourcegroup -Location $location
# Create new Azure Key Vault with a globally unique VaultName and soft-delete option turned on:
$vaultname = "MyKeyVault" # specify a globally unique VaultName
New-AzKeyVault -VaultName $vaultname -ResourceGroupName $resourcegroup -Location $location
# Authorize Managed Instance to use the AKV (wrap/unwrap key and get public part of key, if public part exists):
$objectid = (Set-AzSqlInstance -ResourceGroupName $resourcegroup -Name "MyManagedInstance" -AssignIdentity).Identity.PrincipalId
Set-AzKeyVaultAccessPolicy -BypassObjectIdValidation -VaultName $vaultname -ObjectId $objectid -PermissionsToKeys get,wrapKey,unwrapKey
# Allow access from trusted Azure services:
Update-AzKeyVaultNetworkRuleSet -VaultName $vaultname -Bypass AzureServices
# Allow access from your client IP address(es) to be able to complete remaining steps:
Update-AzKeyVaultNetworkRuleSet -VaultName $vaultname -IpAddressRange "xxx.xxx.xxx.xxx/xx"
# Turn the network rules ON by setting the default action to Deny:
Update-AzKeyVaultNetworkRuleSet -VaultName $vaultname -DefaultAction Deny
# 2. Provide TDE Protector key (skip if already done)
# First, give yourself necessary permissions on the AKV, (specify your account instead of contoso.com):
Set-AzKeyVaultAccessPolicy -VaultName $vaultname -UserPrincipalName "myaccount@contoso.com" -PermissionsToKeys create,import,get,list
# The recommended way is to import an existing key from a .pfx file. Replace "<PFX private key password>" with the actual password below:
$keypath = "c:\some_path\mytdekey.pfx" # Supply your .pfx path and name
$securepfxpwd = ConvertTo-SecureString -String "<PFX private key password>" -AsPlainText -Force
$key = Add-AzKeyVaultKey -VaultName $vaultname -Name "MyTDEKey" -KeyFilePath $keypath -KeyFilePassword $securepfxpwd
# ...or get an existing key from the vault:
# $key = Get-AzKeyVaultKey -VaultName $vaultname -Name "MyTDEKey"
# Alternatively, generate a new key directly in Azure Key Vault (recommended for test purposes only - uncomment below):
# $key = Add-AzureKeyVaultKey -VaultName $vaultname -Name MyTDEKey -Destination Software -Size 2048
# 3. Set up BYOK TDE on Managed Instance:
# Assign the key to the Managed Instance:
# $key = 'https://contoso.vault.azure.net/keys/contosokey/01234567890123456789012345678901'
Add-AzSqlInstanceKeyVaultKey -KeyId $key.id -InstanceName "MyManagedInstance" -ResourceGroupName $resourcegroup
# Set TDE operation mode to BYOK:
Set-AzSqlInstanceTransparentDataEncryptionProtector -Type AzureKeyVault -InstanceName "MyManagedInstance" -ResourceGroup $resourcegroup -KeyId $key.id
Következő lépések
További információ az Azure PowerShellről: Azure PowerShell dokumentációja.
További PowerShell-példaszkripteket a Felügyelt Azure SQL-példányhoz a Felügyelt Azure SQL-példány PowerShell-szkriptjeiközött találhat.