Kendi anahtarınızı kullanarak saydam veri şifrelemesini etkinleştirmek için Azure CLI betiği

Şunlar için geçerlidir: Azure SQL Yönetilen Örneği

Bu Azure CLI betik örneği, Azure Key Vault müşteri tarafından yönetilen bir anahtar kullanarak Azure SQL Yönetilen Örneği saydam veri şifrelemesini (TDE) yapılandırıyor. Bu genellikle TDE için kendi anahtarını getir (BYOK) senaryosu olarak adlandırılır. Müşteri tarafından yönetilen anahtarla TDE hakkında daha fazla bilgi edinmek için bkz. Azure SQL için TDE Kendi Anahtarını Getir.

Bu örnek için mevcut bir yönetilen örnek gerekir. Bkz. Azure CLI kullanarak Azure SQL Yönetilen Örneği oluşturma.

Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir Azure hesabı oluşturun.

Önkoşullar

Örnek betik

Bu betik için Azure CLI'yı yerel olarak kullanın, Cloud Shell çalıştırılması çok uzun sürer.

Azure'da oturum açma

Belirli bir abonelik kullanarak oturum açmak için aşağıdaki betiği kullanın.

subscription="<subscriptionId>" # add subscription here

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

Daha fazla bilgi için bkz . Etkin aboneliği ayarlama veya etkileşimli olarak oturum açma

Betiği çalıştırın

# 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

Kaynakları temizleme

Bu kaynaklar için sürekli bir gereksiniminiz yoksa az group delete komutunu kullanarak kaynak grubunu ve onunla ilişkili tüm kaynakları kaldırmak için aşağıdaki komutu kullanın. Bu kaynaklardan bazılarının oluşturulması ve silinmesi biraz zaman alabilir.

az group delete --name $resourceGroup

Örnek başvuru

Bu betik aşağıdaki komutları kullanır. Tablodaki her komut, komuta özgü belgelere yönlendirir.

Komut Açıklama
az sql db Veritabanı komutları.
az sql failover-group Yük devretme grubu komutları.

Sonraki adımlar

Azure CLI hakkında daha fazla bilgi için bkz. Azure CLI belgeleri.

Ek SQL Veritabanı CLI betiği örnekleri, Azure SQL Veritabanı belgeleri içinde bulunabilir.