Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Tutorial ini menunjukkan kepada Anda cara menyiapkan dan mengelola enkripsi data untuk Azure Database for MySQL Flexible Server menggunakan Azure CLI.
Dalam tutorial ini, Anda akan belajar cara:
- Membuat instans server fleksibel Azure Database for MySQL dengan enkripsi data
- Memperbarui instans server fleksibel Azure Database for MySQL yang ada dengan enkripsi data
- Menggunakan templat Azure Resource Manager untuk mengaktifkan enkripsi data
Prasyarat
Sebuah akun Azure dengan langganan aktif.
Jika Anda tidak memiliki langganan Azure, buat akun gratis Azure sebelum memulai.
Note
Dengan akun gratis Azure, Anda sekarang dapat mencoba Azure Database for MySQL Flexible Server secara gratis selama 12 bulan. Untuk informasi selengkapnya, lihat Menggunakan akun gratis Azure untuk mencoba Azure Database for MySQL - Server Fleksibel secara gratis.
Pasang atau tingkatkan Azure CLI ke versi terbaru. Lihat Memasang Azure CLI.
Masuk ke akun Azure menggunakan perintah az login . Perhatikan properti ID, yang mengacu pada ID Langganan untuk akun Azure Anda:
az login
- Jika Anda memiliki beberapa langganan, pilih langganan yang sesuai tempat Anda ingin membuat server menggunakan perintah az account set:
az account set --subscription \<subscription id\>
- Di Azure Key Vault, buat sebuah brankas kunci atau HSM terkelola (Hardware Security Module) dan sebuah kunci. Brankas kunci atau HSM terkelola harus memiliki properti berikut untuk digunakan sebagai kunci yang dikelola oleh pelanggan.
az resource update --id $(az keyvault show --name \ \<key\_vault\_name\> -o tsv | awk '{print $1}') --set \ properties.enableSoftDelete=true
az keyvault update --name \<key\_vault\_name\> --resource-group \<resource\_group\_name\> --enable-purge-protection true
Hari retensi diatur ke 90 hari:
az keyvault update --name \<key\_vault\_name\> --resource-group \<resource\_group\_name\> --retention-days 90
Kunci harus memiliki atribut berikut untuk digunakan sebagai kunci yang dikelola pelanggan:
- Tidak ada tanggal kedaluwarsa
- Tidak dinonaktifkan
- Melakukan operasi
List,Get,Wrap,Unwrap - Fitur penghapusan sementara diaktifkan
- Proteksi penghapusan diaktifkan dengan periode retensi yang diatur ke 90 hari
-
recoverylevelatribut diatur keRecoverable
Anda dapat memverifikasi atribut kunci di atas dengan menggunakan perintah berikut:
- Untuk Azure Key Vault:
az keyvault key show --vault-name \<key\_vault\_name\> -n \<key\_name\>
- Untuk HSM Terkelola Azure Key Vault
az keyvault key show --hsm-name \<key\_vault\_name\> -n \<key\_name\>
Memperbarui instans Server Fleksibel Azure Database for MySQL yang sudah ada dengan enkripsi data
Atur atau ubah kunci dan identitas untuk enkripsi data:
az mysql flexible-server update --resource-group testGroup --name testserver \\ --key \<key identifier of newKey\> --identity newIdentity
Nonaktifkan enkripsi data untuk Server Fleksibel Azure Database for MySQL:
az mysql flexible-server update --resource-group testGroup --name testserver --disable-data-encryption
Buat Azure Database untuk instans Server Fleksibel MySQL dengan pencadangan redundan geografis dan enkripsi data diaktifkan.
az mysql flexible-server create -g testGroup -n testServer --location testLocation \\
--geo-redundant-backup Enabled \\
--key <key identifier of testKey> --identity testIdentity \\
--backup-key <key identifier of testBackupKey> --backup-identity testBackupIdentity
Atur atau ubah kunci, identitas, kunci cadangan, dan identitas cadangan untuk enkripsi data dengan cadangan redundan geografis:
az mysql flexible-server update --resource-group testGroup --name testserver \\ --key \<key identifier of newKey\> --identity newIdentity \\ --backup-key \<key identifier of newBackupKey\> --backup-identity newBackupIdentity
Menggunakan templat Azure Resource Manager untuk mengaktifkan enkripsi data
Param identityUri dan primaryKeyUri masing-masing adalah ID sumber daya dari identitas terkelola pengguna dan kunci yang dikelola pengguna.
"$schema": "http://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"administratorLogin": {
"type": "string"
},
"administratorLoginPassword": {
"type": "securestring"
},
"location": {
"type": "string"
},
"serverName": {
"type": "string"
},
"serverEdition": {
"type": "string"
},
"vCores": {
"type": "int",
"defaultValue": 4
},
"storageSizeGB": {
"type": "int"
},
"haEnabled": {
"type": "string",
"defaultValue": "Disabled"
},
"availabilityZone": {
"type": "string"
},
"standbyAvailabilityZone": {
"type": "string"
},
"version": {
"type": "string"
},
"tags": {
"type": "object",
"defaultValue": {}
},
"backupRetentionDays": {
"type": "int"
},
"geoRedundantBackup": {
"type": "string"
},
"vmName": {
"type": "string",
"defaultValue": "Standard_B1ms"
},
"storageIops": {
"type": "int"
},
"storageAutogrow": {
"type": "string",
"defaultValue": "Enabled"
},
"autoIoScaling": {
"type": "string",
"defaultValue": "Disabled"
},
"vnetData": {
"type": "object",
"metadata": {
"description": "Vnet data is an object which contains all parameters pertaining to vnet and subnet"
},
"defaultValue": {
"virtualNetworkName": "testVnet",
"subnetName": "testSubnet",
"virtualNetworkAddressPrefix": "10.0.0.0/16",
"virtualNetworkResourceGroupName": "[resourceGroup().name]",
"location": "eastus2",
"subscriptionId": "[subscription().subscriptionId]",
"subnetProperties": {},
"isNewVnet": false,
"subnetNeedsUpdate": false,
"Network": {}
}
},
"identityUri": {
"type": "string",
"metadata": {
"description": "The resource ID of the identity used for data encryption"
}
},
"primaryKeyUri": {
"type": "string",
"metadata": {
"description": "The resource ID of the key used for data encryption"
}
}
},
"variables": {
"api": "2021-05-01",
"identityData": "[if(empty(parameters('identityUri')), json('null'), createObject('type', 'UserAssigned', 'UserAssignedIdentities', createObject(parameters('identityUri'), createObject())))]",
"dataEncryptionData": "[if(or(empty(parameters('identityUri')), empty(parameters('primaryKeyUri'))), json('null'), createObject('type', 'AzureKeyVault', 'primaryUserAssignedIdentityId', parameters('identityUri'), 'primaryKeyUri', parameters('primaryKeyUri')))]"
},
"resources": [
{
"apiVersion": "[variables('api')]",
"location": "[parameters('location')]",
"name": "[parameters('serverName')]",
"identity": "[variables('identityData')]",
"properties": {
"version": "[parameters('version')]",
"administratorLogin": "[parameters('administratorLogin')]",
"administratorLoginPassword": "[parameters('administratorLoginPassword')]",
"Network": "[if(empty(parameters('vnetData').Network), json('null'), parameters('vnetData').Network)]",
"Storage": {
"StorageSizeGB": "[parameters('storageSizeGB')]",
"Iops": "[parameters('storageIops')]",
"Autogrow": "[parameters('storageAutogrow')]",
"AutoIoScaling": "[parameters('autoIoScaling')]"
},
"Backup": {
"backupRetentionDays": "[parameters('backupRetentionDays')]",
"geoRedundantBackup": "[parameters('geoRedundantBackup')]"
},
"availabilityZone": "[parameters('availabilityZone')]",
"highAvailability": {
"mode": "[parameters('haEnabled')]",
"standbyAvailabilityZone": "[parameters('standbyAvailabilityZone')]"
},
"dataEncryption": "[variables('dataEncryptionData')]"
},
"sku": {
"name": "[parameters('vmName')]",
"tier": "[parameters('serverEdition')]",
"capacity": "[parameters('vCores')]"
},
"tags": "[parameters('tags')]",
"type": "Microsoft.DBforMySQL/flexibleServers"
}
]
}