Skript Azure CLI pro povolení transparentního šifrování dat pomocí vlastního klíče

Platí pro:Azure SQL Managed Instance

Tento ukázkový skript Azure CLI konfiguruje transparentní šifrování dat (TDE) ve službě Azure SQL Managed Instance pomocí klíče spravovaného zákazníkem ze služby Azure Key Vault. To se často označuje jako scénář přineste si vlastní klíč (BYOK) pro transparentní šifrování dat. Další informace o transparentním šifrování dat pomocí klíče spravovaného zákazníkem najdete v tématu TDE Bring Your Own Key do Azure SQL.

Tato ukázka vyžaduje existující spravovanou instanci, viz Použití Azure CLI k vytvoření spravované instance Azure SQL.

Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet Azure před tím, než začnete.

Předpoklady

Ukázkový skript

Pro tento skript použijte Azure CLI místně, protože spuštění v Cloud Shellu trvá příliš dlouho.

Přihlášení k Azure

Pomocí následujícího skriptu se přihlaste pomocí konkrétního předplatného.

subscription="<subscriptionId>" # add subscription here

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

Další informace najdete v tématu Nastavení aktivního předplatného nebo interaktivního přihlášení.

Spuštění skriptu

# 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

Vyčištění prostředků

Pomocí následujícího příkazu odeberte skupinu prostředků a všechny prostředky přidružené k ní pomocí příkazu az group delete – pokud tyto prostředky nepotřebujete. Vytvoření některých z těchto prostředků a odstranění může chvíli trvat.

az group delete --name $resourceGroup

Ukázkový odkaz

Tento skript používá následující příkazy. Každý příkaz v tabulce odkazuje na příslušnou část dokumentace.

Command Popis
az sql db Databázové příkazy.
az sql failover-group Příkazy skupiny převzetí služeb při selhání

Další kroky

Další informace o Azure CLI najdete v dokumentaci k Azure CLI.

Další ukázkové skripty rozhraní příkazového řádku pro službu SQL Database najdete v dokumentaci ke službě Azure SQL Database.