Share via


Azure CLI-skript för att aktivera transparent datakryptering med din egen nyckel

Gäller för:Azure SQL Managed Instance

Det här Azure CLI-skriptexemplet konfigurerar transparent datakryptering (TDE) i Azure SQL Managed Instance med hjälp av en kundhanterad nyckel från Azure Key Vault. Detta kallas ofta ett BYOK-scenario (bring-your-own-key) för TDE. Mer information om TDE med kundhanterad nyckel finns i TDE Bring Your Own Key to Azure SQL (Ta med din egen nyckel till Azure SQL).

Det här exemplet kräver en befintlig hanterad instans. Se Använda Azure CLI för att skapa en Azure SQL Managed Instance.

Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar.

Förutsättningar

Exempelskript

För det här skriptet använder du Azure CLI lokalt eftersom det tar för lång tid att köra i Cloud Shell.

Logga in på Azure

Använd följande skript för att logga in med en specifik prenumeration.

subscription="<subscriptionId>" # add subscription here

az account set -s $subscription # ...or use 'az login'

Mer information finns i ange en aktiv prenumeration eller logga in interaktivt

Kör skriptet

# Manage Transparent Data Encryption in a Managed Instance using your own key from Azure Key Vault

# Run this script after the script in https://docs.microsoft.com/azure/azure-sql/managed-instance/scripts/create-configure-managed-instance-cli creates a managed instance.
# You can use the same variables in both scripts/
# If running this script against a different existing instance, uncomment and add appropriate values to next 3 lines of code
# let "randomIdentifier=$RANDOM*$RANDOM"
# instance="<msdocs-azuresql-instance>" # add instance here
# resourceGroup="<msdocs-azuresql-rg>" # add resource here

# Variable block
location="East US"
vault="msdocssqlvault$randomIdentifier"
key="msdocs-azuresql-key-$randomIdentifier"

# echo assigning identity to service principal in the instance
az sql mi update --name $instance --resource-group $resourceGroup --assign-identity

echo "Creating $vault..."
az keyvault create --name $vault --resource-group $resourceGroup --location "$location"

echo "Getting service principal id and setting policy on $vault..."
instanceId=$(az sql mi show --name $instance --resource-group $resourceGroup --query identity.principalId --output tsv)

echo $instanceId
az keyvault set-policy --name $vault --object-id $instanceId --key-permissions get unwrapKey wrapKey

echo "Creating $key..."
az keyvault key create --name $key --vault-name $vault --size 2048 

# keyPath="C:\yourFolder\yourCert.pfx"
# keyPassword="yourPassword" 
# az keyvault certificate import --file $keyPath --name $key --vault-name $vault --password $keyPassword

echo "Setting security on $instance with $key..."
keyId=$(az keyvault key show --name $key --vault-name $vault -o json --query key.kid | tr -d '"')

az sql mi key create --kid $keyId --managed-instance $instance --resource-group $resourceGroup
az sql mi tde-key set --server-key-type AzureKeyVault --kid $keyId --managed-instance $instance --resource-group $resourceGroup

Rensa resurser

Använd följande kommando för att ta bort resursgruppen och alla resurser som är associerade med den med kommandot az group delete – såvida du inte har ett pågående behov av dessa resurser. Vissa av dessa resurser kan ta ett tag att skapa och ta bort.

az group delete --name $resourceGroup

Exempelreferens

Det här skriptet använder följande kommandon. Varje kommando i tabellen länkar till kommandospecifik dokumentation.

Command Beskrivning
az sql db Databaskommandon.
az sql failover-group Kommandon för redundanskluster.

Nästa steg

Mer information om Azure CLI finns i Dokumentation om Azure CLI.

Ytterligare CLI-skriptexempel för SQL Database finns i Azure SQL Database-dokumentationen.