Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här självstudien visar hur du konfigurerar och hanterar datakryptering för Azure Database for MySQL – flexibel server med Azure CLI.
I den här självstudien lär du dig att:
- Skapa en Azure Database for MySQL – flexibel serverinstans med datakryptering
- Uppdatera en befintlig Azure Database for MySQL– flexibel serverinstans med datakryptering
- Använda en Azure Resource Manager-mall för att aktivera datakryptering
Förutsättningar
Ett Azure-konto med en aktiv prenumeration.
Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar.
Kommentar
Med ett kostnadsfritt Azure-konto kan du nu prova Azure Database for MySQL – flexibel server kostnadsfritt i 12 månader. Mer information finns i Använda ett kostnadsfritt Azure-konto för att prova Azure Database for MySQL – flexibel server kostnadsfritt.
Installera eller uppgradera Azure CLI till den senaste versionen. Se Installera Azure CLI.
Logga in på Azure-kontot med kommandot az login . Observera ID-egenskapen, som refererar till prenumerations-ID:t för ditt Azure-konto:
az login
- Om du har flera prenumerationer väljer du den prenumeration där du vill skapa servern med kommandot az account set:
az account set --subscription \<subscription id\>
- I Azure Key Vault skapar du ett nyckelvalv eller hanterad HSM och en nyckel. Nyckelvalvet eller hanterad HSM måste ha följande egenskaper att använda som en kundhanterad nyckel:
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
Kvarhållningsdagar inställda på 90 dagar:
az keyvault update --name \<key\_vault\_name\> --resource-group \<resource\_group\_name\> --retention-days 90
Nyckeln måste ha följande attribut för att användas som en kundhanterad nyckel:
- Inga förfallodatum
- Inte aktiverat
- Utföra list-, get-, wrap- och unwrap-åtgärder
- recoverylevel-attribut inställt på Återställningsbar (detta kräver mjuk borttagning aktiverat med kvarhållningsperioden inställd på 90 dagar)
- Rensningsskydd aktiverat
Du kan verifiera ovanstående attribut för nyckeln med hjälp av följande kommando:
az keyvault key show --vault-name \<key\_vault\_name\> -n \<key\_name\>
Uppdatera en befintlig Azure Database for MySQL– flexibel serverinstans med datakryptering
Ange eller ändra nyckel och identitet för datakryptering:
az mysql flexible-server update --resource-group testGroup --name testserver \\ --key \<key identifier of newKey\> --identity newIdentity
Inaktivera datakryptering för Azure Database for MySQL – flexibel server:
az mysql flexible-server update --resource-group testGroup --name testserver --disable-data-encryption
Skapa en Azure Database for MySQL – flexibel serverinstans med geo-redundant säkerhetskopiering och datakryptering aktiverat
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
Ange eller ändra nyckel, identitet, säkerhetskopieringsnyckel och säkerhetskopieringsidentitet för datakryptering med geo-redundant säkerhetskopiering:
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
Använda en Azure Resource Manager-mall för att aktivera datakryptering
Params identityUri och primaryKeyUri är resurs-ID för den användarhanterade identiteten respektive den användarhanterade nyckeln.
"$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"
}
]
}