Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Lernprogramm erfahren Sie, wie Sie die Datenverschlüsselung für Azure-Datenbank für MySQL Flexible Server mit Azure CLI einrichten und verwalten.
In diesem Tutorial erfahren Sie, wie:
- Erstellen einer Azure-Datenbank für mySQL Flexible Server-Instanz mit Datenverschlüsselung
- Aktualisieren einer vorhandenen Azure-Datenbank für mySQL Flexible Server-Instanz mit Datenverschlüsselung
- Verwenden einer Azure Resource Manager-Vorlage zum Aktivieren der Datenverschlüsselung
Voraussetzungen
Ein Azure-Konto mit einem aktiven Abonnement.
Wenn Sie kein Azure-Abonnement haben, erstellen Sie ein kostenloses Azure-Konto, bevor Sie beginnen.
Hinweis
Mit einem kostenlosen Azure-Konto können Sie jetzt Azure Database für MySQL Flexible Server kostenlos für 12 Monate testen. Weitere Informationen finden Sie unter Verwenden eines kostenlosen Azure-Kontos, um Azure Database for MySQL – Flexible Server kostenlos zu testen.
Installieren Sie die Azure CLI, oder upgraden Sie sie auf die neueste Version. Weitere Informationen finden Sie unter Installieren der Azure-Befehlszeilenschnittstelle.
Melden Sie sich mit dem Befehl "az login " bei Azure-Konto an. Beachten Sie die ID-Eigenschaft, die sich auf die Abonnement-ID für Ihr Azure-Konto bezieht:
az login
- Wenn Sie über mehrere Abonnements verfügen, wählen Sie das entsprechende Abonnement aus, in dem Sie den Server mit dem Befehl "az account set" erstellen möchten:
az account set --subscription \<subscription id\>
- Erstellen Sie in Azure Key Vault einen Schlüsseltresor oder ein verwaltetes HSM und einen Schlüssel. Der Schlüsseltresor oder das verwaltete HSM muss die folgenden Eigenschaften aufweisen, um als kundenseitig verwalteter Schlüssel verwendet werden zu können:
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
Aufbewahrungstage, die auf 90 Tage festgelegt sind:
az keyvault update --name \<key\_vault\_name\> --resource-group \<resource\_group\_name\> --retention-days 90
Der Schlüssel muss über die folgenden Attribute verfügen, um als vom Kunden verwalteter Schlüssel zu verwenden:
- Keine Ablaufdaten
- Nicht deaktiviert
- Ausführen von
List,Get,WrapundUnwrapVorgänge - Soft Delete aktiviert
- Löschschutz ist aktiviert, wobei der Aufbewahrungszeitraum auf 90 Tage festgelegt ist.
-
recoverylevel-Attributsatz aufRecoverablefestgelegt
Sie können die oben genannten Attribute des Schlüssels mithilfe des folgenden Befehls überprüfen:
az keyvault key show --vault-name \<key\_vault\_name\> -n \<key\_name\>
Aktualisieren einer vorhandenen Azure-Datenbank für mySQL Flexible Server-Instanz mit Datenverschlüsselung
Festlegen oder Ändern des Schlüssels und der Identität für die Datenverschlüsselung:
az mysql flexible-server update --resource-group testGroup --name testserver \\ --key \<key identifier of newKey\> --identity newIdentity
Datenverschlüsselung für Azure-Datenbank für MySQL Flexible Server deaktivieren:
az mysql flexible-server update --resource-group testGroup --name testserver --disable-data-encryption
Erstellen einer Azure-Datenbank für mySQL Flexible Server-Instanz mit aktivierter geo redundanter Sicherung und Datenverschlüsselung
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
Festlegen oder Ändern des Schlüssels, der Identität, des Sicherungsschlüssels und der Sicherungsidentität für die Datenverschlüsselung mit georedundanter Sicherung:
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
Verwenden einer Azure Resource Manager-Vorlage zum Aktivieren der Datenverschlüsselung
Der params identityUri und primaryKeyUri sind die Ressourcen-ID der vom Benutzer verwalteten Identität bzw. des vom Benutzer verwalteten Schlüssels.
"$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"
}
]
}