Datenverschlüsselung für Azure Database for MySQL – Flexibler Server mit Azure CLI
GILT FÜR: Azure Database for MySQL – Flexible Server
In diesem Tutorial erfahren Sie, wie Sie über die Azure CLI die Datenverschlüsselung für Azure Database for MySQL – Flexible Server einrichten und verwalten.
In diesem Tutorial lernen Sie Folgendes:
- Erstellen einer Azure Database for MySQL – Flexible Serverinstanz mit Datenverschlüsselung
- Aktualisieren einer vorhandenen Azure Database for MySQL – Flexible Serverinstanz mit Datenverschlüsselung
- Verwenden einer Azure Resource Manager-Vorlage zum Aktivieren von 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 Azure Database for MySQL – Flexible Server jetzt 12 Monate lang kostenlos testen. Weitere Informationen finden Sie unter Kostenlose Testversion von Azure Database for MySQL – Flexibler Server.
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 beim Azure-Konto an. Beachten Sie die Eigenschaft „ID“, die auf die Abonnement-ID Ihres Azure-Kontos verweist:
az login
- Wenn Sie über mehrere Abonnements verfügen, wählen Sie mithilfe des Befehls „az account set“ das entsprechende Abonnement aus, in dem Sie den Server erstellen möchten.
az account set --subscription \<subscription id\>
- Erstellen Sie in Azure Key Vault einen Schlüsseltresor und einen Schlüssel. Der Schlüsseltresor muss die folgenden Eigenschaften aufweisen, damit er für vom Kunden verwaltete Schlüssel verwendet werden kann:
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
Auf 90 Tage festgelegte Datenaufbewahrung:
az keyvault update --name \<key\_vault\_name\> --resource-group \<resource\_group\_name\> --retention-days 90
Der Schlüssel muss die folgenden Attribute aufweisen, damit er als vom Kunden verwalteter Schlüssel verwendet werden kann:
- Keine Ablaufdaten
- Nicht deaktiviert
- Ausführen der Vorgänge List, Get, Wrap, Unwrap
- recoverylevel-Attribut festgelegt auf „Recoverable“ (Dafür muss vorläufiges Löschen mit einer Aufbewahrungsdauer von 90 Tagen aktiviert sein.)
- Bereinigungsschutz aktiviert
Sie können die oben genannten Attribute des Schlüssels mit dem folgenden Befehl überprüfen:
az keyvault key show --vault-name \<key\_vault\_name\> -n \<key\_name\>
Aktualisieren einer vorhandenen Azure Database for MySQL – Flexible Serverinstanz 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
Deaktivieren der Datenverschlüsselung für Azure Database for MySQL – Flexible Server:
az mysql flexible-server update --resource-group testGroup --name testserver --disable-data-encryption
Erstellen einer Azure Database for MySQL – Flexible Serverinstanz mit aktivierter georedundanter 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üssel 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
Die Parameter 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"
}
]
}
Nächste Schritte
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für