Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu öğreticide, Azure CLI kullanarak MySQL için Azure Veritabanı Esnek Sunucusu için veri şifrelemeyi ayarlama ve yönetme adımları gösterilmektedir.
Bu eğitimde şunları öğreniyorsunuz:
- Veri şifrelemesi ile MySQL için Azure Veritabanı esnek sunucu örneği oluşturma
- Mevcut MySQL için Azure Veritabanı esnek sunucu örneğini veri şifreleme ile güncelleştirme
- Veri şifrelemeyi etkinleştirmek için Azure Resource Manager şablonu kullanma
Prerequisites
Aktif bir aboneliğe sahip bir Azure hesabı.
Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir Azure hesabı oluşturun.
Note
Ücretsiz Azure hesabıyla artık MySQL için Azure Veritabanı Esnek Sunucusu'nu 12 ay boyunca ücretsiz deneyebilirsiniz. Daha fazla bilgi için bkz. Ücretsiz Azure hesabı kullanarak MySQL için Azure Veritabanı - Esnek Sunucuyu ücretsiz deneme.
Azure CLI'yi en son sürüme yükleyin veya yükseltin. Bkz. Azure CLI'yı yükleme.
az login komutunu kullanarak Azure hesabında oturum açın . Azure hesabınızın Abonelik Kimliği'ne atıfta bulunan ID özelliğine dikkat edin:
az login
- Birden çok aboneliğiniz varsa az account set komutunu kullanarak sunucuyu oluşturmak istediğiniz uygun aboneliği seçin:
az account set --subscription \<subscription id\>
- Azure Key Vault'ta bir anahtar kasası veya yönetilen HSM ve anahtar oluşturun. Yönetilen bir müşteri anahtarı olarak kullanılabilmesi için anahtar kasası veya yönetilen HSM, aşağıdaki özellikleri bulundurmalıdır.
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
Bekletme günleri 90 gün olarak ayarlandı:
az keyvault update --name \<key\_vault\_name\> --resource-group \<resource\_group\_name\> --retention-days 90
Müşteri tarafından yönetilen anahtar olarak kullanılabilmesi için anahtarın aşağıdaki özniteliklere sahip olması gerekir:
- Son kullanma tarihi yok
- Devre dışı değil
-
List,Get,WrapveUnwrapişlemlerini gerçekleştirin. - Geçici silme etkin
- Saklama süresi 90 güne ayarlanmış olarak etkin temizleme koruması
-
recoverylevelözniteliğiRecoverableolarak ayarlandı
Aşağıdaki komutu kullanarak anahtarın yukarıdaki özniteliklerini doğrulayabilirsiniz:
- Azure Key Vault için:
az keyvault key show --vault-name \<key\_vault\_name\> -n \<key\_name\>
- Azure Key Vault Yönetilen HSM için
az keyvault key show --hsm-name \<key\_vault\_name\> -n \<key\_name\>
Mevcut MySQL için Azure Veritabanı Esnek Sunucu örneğini veri şifrelemesi ile güncelleştirme
Veri şifrelemesi için anahtarı ve kimliği ayarlayın veya değiştirin:
az mysql flexible-server update --resource-group testGroup --name testserver \\ --key \<key identifier of newKey\> --identity newIdentity
MySQL için Azure Veritabanı Esnek Sunucusu için veri şifrelemeyi devre dışı bırakın:
az mysql flexible-server update --resource-group testGroup --name testserver --disable-data-encryption
Coğrafi olarak yedekli yedekleme ve veri şifreleme etkinleştirilmiş mySQL için Azure Veritabanı Esnek Sunucu örneği oluşturma
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
Coğrafi yedekli yedekleme ile veri şifrelemesi için anahtarı, kimliği, yedekleme anahtarını ve yedekleme kimliğini ayarlayın veya değiştirin.
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
Veri şifrelemeyi etkinleştirmek için Azure Resource Manager şablonu kullanma
params identityUri ve primaryKeyUri , sırasıyla kullanıcı tarafından yönetilen kimliğin ve kullanıcı tarafından yönetilen anahtarın kaynak kimliğidir.
"$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"
}
]
}