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

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

Este exemplo de script da CLI do Azure configura a criptografia de dados transparente (TDE) na Instância Gerenciada SQL do Azure, usando uma chave gerenciada pelo cliente do Cofre de Chaves do Azure. Isso é muitas vezes referido como um cenário traga sua própria chave (BYOK) para TDE. Para saber mais sobre TDE com chave gerenciada pelo cliente, consulte TDE Bring Your Own Key to Azure SQL.

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

Se não tiver uma subscrição do Azure, crie uma conta gratuita do Azure antes de começar.

Pré-requisitos

  • Use o ambiente Bash no Azure Cloud Shell. Para obter mais informações, consulte Guia de início rápido para Bash no Azure Cloud Shell.

  • Se preferir executar comandos de referência da CLI localmente, instale a CLI do Azure. Se estiver a utilizar o Windows ou macOS, considere executar a CLI do Azure num contentor Docker. Para obter mais informações, consulte Como executar a CLI do Azure em um contêiner do Docker.

    • Se estiver a utilizar uma instalação local, inicie sessão no CLI do Azure ao utilizar o comando az login. Para concluir o processo de autenticação, siga os passos apresentados no seu terminal. Para outras opções de entrada, consulte Entrar com a CLI do Azure.

    • Quando solicitado, instale a extensão da CLI do Azure na primeira utilização. Para obter mais informações sobre as extensões, veja Utilizar extensões com o CLI do Azure.

    • Execute o comando az version para localizar a versão e as bibliotecas dependentes instaladas. Para atualizar para a versão mais recente, execute o comando az upgrade.

Script de exemplo

Para esse script, use a CLI do Azure localmente, pois leva muito tempo para ser executado no Cloud Shell.

Iniciar sessão 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 obter mais informações, consulte definir assinatura ativa ou fazer login interativamente

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/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

Clean up resources (Limpar 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ê tenha uma necessidade contínua desses recursos. Alguns desses recursos podem demorar um pouco para criar, bem como para excluir.

az group delete --name $resourceGroup

Referência de amostra

Este script utiliza os seguintes comandos. Cada comando na tabela liga à documentação específica do comando.

Command Description
az banco de dados sql Comandos de banco de dados.
Grupo de failover do AZ SQL Comandos de grupo de failover.

Próximos passos

Para obter mais informações sobre a CLI do Azure, consulte a documentação da CLI do Azure.

Pode ver exemplos do script da CLI da Base de Dados SQL adicionais na Documentação da Base de Dados SQL do Azure.