Kommentar
Å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 tutorialen lär du dig följande:
- 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 kostnadsfritt Azure-konto innan du börjar.
Anmärkning
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 en hanterad HSM måste ha följande egenskaper för att kunna användas 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 satta till 90 dagar:
az keyvault update --name \<key\_vault\_name\> --resource-group \<resource\_group\_name\> --retention-days 90
Nyckeln måste ha följande attribut att använda som en kundhanterad nyckel:
- Inga förfallodatum
- Inte inaktiverad
- Utföra
List,Get,Wrap,Unwrapåtgärder - Mjuk borttagning är aktiverat
- Rensningsskydd aktiverat med kvarhållningsperioden inställd på 90 dagar
-
recoverylevelattributet inställt påRecoverable
Du kan verifiera ovanstående attribut för nyckeln med hjälp av följande kommando:
- För Azure Key Vault:
az keyvault key show --vault-name \<key\_vault\_name\> -n \<key\_name\>
- För Azure Key Vault Managed HSM
az keyvault key show --hsm-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"
}
]
}