Bagikan melalui


Skrip Azure CLI untuk mengaktifkan enkripsi data transparan menggunakan kunci Anda sendiri

Berlaku untuk: Azure SQL Managed Instance

Contoh skrip Azure CLI ini mengonfigurasi enkripsi data transparan (TDE) di Azure SQL Managed Instance, menggunakan kunci yang dikelola pelanggan dari Azure Key Vault. Hal ini sering disebut sebagai skenario bring-your-own-key (BYOK) untuk TDE. Untuk mempelajari selengkapnya tentang TDE dengan kunci yang dikelola pelanggan, lihat TDE Bring Your Own Key to Azure SQL.

Sampel ini memerlukan instans terkelola yang ada, lihat Menggunakan Azure CLI untuk membuat Azure SQL Managed Instance.

Jika Anda tidak memiliki Langganan Azure, buat Akun gratis Azure sebelum memulai.

Prasyarat

Sampel skrip

Untuk skrip ini, gunakan Azure CLI secara lokal karena memerlukan waktu terlalu lama untuk berjalan di Cloud Shell.

Masuk ke Azure

Gunakan skrip berikut untuk masuk menggunakan langganan tertentu.

subscription="<subscriptionId>" # add subscription here

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

Untuk informasi selengkapnya, lihat mengatur langganan aktif atau masuk secara interaktif

Jalankan skrip

# 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

Membersihkan sumber daya

Gunakan perintah berikut untuk menghapus grup sumber daya dan semua sumber daya yang terkait dengannya menggunakan perintah az group delete - kecuali Anda masih memiliki kebutuhan untuk sumber daya ini. Beberapa sumber daya ini mungkin membutuhkan beberapa waktu untuk dibuat dan dihapus.

az group delete --name $resourceGroup

Referensi sampel

Skrip ini menggunakan perintah berikut. Setiap perintah dalam tabel ditautkan ke dokumentasi spesifik perintah.

Perintah Deskripsi
az sql db Perintah database.
az sql failover-group Perintah grup kegagalan.

Langkah berikutnya

Untuk mengetahui informasi selengkapnya mengenai Azure CLI, lihat Dokumentasi Azure CLI.

Sampel skrip Azure CLI SQL Database tambahan dapat ditemukan dalam Dokumentasi Azure SQL Database.