Script Azure CLI permettant d’activer Transparent Data Encryption à l’aide de votre propre clé
S’applique à : Azure SQL Managed Instance
Cet exemple de script Azure CLI configure Transparent Data Encryption (TDE) dans Azure SQL Managed Instance, en utilisant une clé provenant d’Azure Key Vault et gérée par le client. Ceci est souvent désigné sous le nom de scénario Bring Your Own Key (BYOK) pour Transparent Data Encryption. Pour plus d’informations sur l’activation de TDE à l’aide d’une clé gérée par le client, consultez TDE avec BYOK pour Azure SQL.
Cet exemple nécessite une instance gérée existante ; consultez Utiliser Azure CLI pour créer une instance d’Azure SQL Managed Instance.
Si vous n’avez pas d’abonnement Azure, créez un compte Azure gratuit avant de commencer.
Prérequis
Utilisez l’environnement Bash dans Azure Cloud Shell. Pour plus d’informations, consultez Démarrage rapide pour Bash dans Azure Cloud Shell.
Si vous préférez exécuter les commandes de référence de l’interface de ligne de commande localement, installez l’interface Azure CLI. Si vous exécutez sur Windows ou macOS, envisagez d’exécuter Azure CLI dans un conteneur Docker. Pour plus d’informations, consultez Guide pratique pour exécuter Azure CLI dans un conteneur Docker.
Si vous utilisez une installation locale, connectez-vous à Azure CLI à l’aide de la commande az login. Pour finir le processus d’authentification, suivez les étapes affichées dans votre terminal. Pour connaître les autres options de connexion, consultez Se connecter avec Azure CLI.
Lorsque vous y êtes invité, installez l’extension Azure CLI lors de la première utilisation. Pour plus d’informations sur les extensions, consultez Utiliser des extensions avec Azure CLI.
Exécutez az version pour rechercher la version et les bibliothèques dépendantes installées. Pour effectuer une mise à niveau vers la dernière version, exécutez az upgrade.
Exemple de script
Pour ce script, utilisez Azure CLI localement, car il lui faut beaucoup de temps pour s’exécuter dans Cloud Shell.
Connexion à Azure
Utilisez le script suivant pour vous connecter à l’aide d’un abonnement spécifique.
subscription="<subscriptionId>" # add subscription here
az account set -s $subscription # ...or use 'az login'
Pour plus d’informations, consultez Définir l’abonnement actif ou Se connecter de manière interactive
Exécuter le 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/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
Nettoyer les ressources
Utilisez la commande suivante pour supprimer le groupe de ressources et toutes les ressources associées à celui-ci à l’aide de la commande az group delete, sauf si vous avez toujours besoin de ces ressources. La création, ainsi que la suppression, de certaines de ces ressources peut prendre du temps.
az group delete --name $resourceGroup
Informations de référence sur l’exemple
Ce script utilise les commandes suivantes. Chaque commande du tableau renvoie à une documentation spécifique.
Commande | Description |
---|---|
az sql db | Commandes de base de données. |
az sql failover-group | Commandes de groupe de basculement. |
Étapes suivantes
Pour plus d’informations sur Azure CLI, consultez la documentation relative à l’interface Azure CLI.
Vous trouverez des exemples supplémentaires de scripts CLI SQL Database dans Documentation Azure SQL Database.