Script da CLI do Azure para habilitar a criptografia de dados transparente usando sua própria chave

Aplica-se a: Instância Gerenciada de SQL do Azure

Este exemplo de script da CLI do Azure configura a TDE (criptografia de dados transparente) na Instância Gerenciada de SQL do Azure usando uma chave gerenciada pelo cliente do Azure Key Vault. Normalmente, este cenário é conhecido como BYOK (use sua própria chave) para TDE. Para saber mais sobre a TDE com uma chave gerenciada pelo cliente, confira BYOK (Bring Your Own Key) da TDE para o SQL do Azure.

Este exemplo requer uma instância gerenciada existente. Confira Usar a CLI do Azure para criar uma Instância Gerenciada de SQL do Azure.

Caso você não tenha uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar.

Pré-requisitos

Exemplo de script

Para esse script, use a CLI do Azure localmente, pois a execução dele leva muito tempo no Cloud Shell.

Entrar no Azure

Use o script a seguir para entrar usando uma assinatura específica.

subscription="<subscriptionId>" # add subscription here

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

Para saber mais, confira definir assinatura ativa ou fazer logon de forma interativa

Executar o 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

Limpar os recursos

Use o comando a seguir para remover o grupo de recursos e todos os recursos associados a ele usando o comando az group delete, a menos que você necessite desses recursos com frequência. A criação e a exclusão de alguns desses recursos podem demorar um pouco.

az group delete --name $resourceGroup

Exemplo de referência

Este script usa os comandos a seguir. Cada comando da tabela é vinculado à documentação específica do comando.

Comando Descrição
az sql db Comandos de banco de dados.
az sql failover-group Comandos do grupo de failover.

Próximas etapas

Para saber mais sobre a CLI do Azure, consulte a Documentação da CLI do Azure.

Os exemplos de script da CLI do Banco de Dados SQL adicionais podem ser encontrados na documentação do Banco de Dados SQL do Azure.