Script dell'interfaccia della riga di comando di Azure per abilitare la crittografia dei dati trasparente usando la propria chiave

Si applica a: Istanza gestita di SQL di Azure

Questo esempio di script dell'interfaccia della riga di comando di Azure configura la crittografia dei dati trasparente (TDE) in Istanza gestita di SQL di Azure, usando una chiave gestita dal cliente da Azure Key Vault. Questo è spesso definito scenario bring-your-own-key (BYOK) per TDE. Per altre informazioni su TDE con chiave gestita dal cliente, vedere TDE Bring Your Own Key to Azure SQL.

Questo esempio richiede un'istanza gestita esistente, vedere Usare l'interfaccia della riga di comando di Azure per creare un Istanza gestita di SQL di Azure.

Se non si dispone di una sottoscrizione di Azure, creare un account gratuito di Azure prima di iniziare.

Prerequisiti

Script di esempio

Per questo script, usare l'interfaccia della riga di comando di Azure in locale perché richiede troppo tempo per l'esecuzione in Cloud Shell.

Accedere ad Azure

Usare lo script seguente per accedere usando una sottoscrizione specifica.

subscription="<subscriptionId>" # add subscription here

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

Per altre informazioni, vedere impostare la sottoscrizione attiva o accedere in modo interattivo

Eseguire lo script

# 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/en-us/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

Pulire le risorse

Usare il comando seguente per rimuovere il gruppo di risorse e tutte le risorse associate con il comando az group delete , a meno che non si disponga di una necessità continua per queste risorse. Alcune di queste risorse possono richiedere un po' di tempo per creare, nonché per eliminare.

az group delete --name $resourceGroup

Informazioni di riferimento per l'esempio

Questo script usa i comandi seguenti. Ogni comando della tabella include collegamenti alla documentazione specifica del comando.

Comando Descrizione
az sql db Comandi per il database.
az sql failover-group Comandi per il gruppo di failover.

Passaggi successivi

Per altre informazioni sull'interfaccia della riga di comando di Azure, vedere documentazione dell'interfaccia della riga di comando di Azure.

Per altri esempi di script dell'interfaccia della riga di comando per database SQL, vedere la documentazione del database SQL di Azure.