Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este tutorial mostra-lhe como configurar e gerir a encriptação de dados para o Azure Database for MySQL Flexible Server usando o Azure CLI.
Neste tutorial, aprenderás como:
- Crie uma Base de Dados Azure para uma instância MySQL Flexible Server com encriptação de dados
- Atualize uma instância existente do Azure Database for MySQL Flexible Server com encriptação de dados
- Usar um modelo Azure Resource Manager para permitir a encriptação de dados
Pré-requisitos
Uma conta do Azure com uma assinatura ativa.
Se você não tiver uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar.
Observação
Com uma conta gratuita no Azure, pode agora experimentar o Azure Database for MySQL Flexible Server gratuitamente durante 12 meses. Para obter mais informações, consulte Usar uma conta gratuita do Azure para experimentar o Banco de Dados do Azure para MySQL - Servidor Flexível gratuitamente.
Instale ou atualize a CLI do Azure para a versão mais recente. Consulte Instalar a CLI do Azure.
Inicia sessão na conta da Azure usando o comando az login. Note a propriedade ID, que se refere ao ID de Subscrição da sua conta Azure:
az login
- Se tiver várias subscrições, escolha a subscrição apropriada para criar o servidor usando o comando az account set:
az account set --subscription \<subscription id\>
- No Azure Key Vault, cria um cofre de chaves ou HSM gerido e uma chave. O cofre de chaves ou HSM gerido deve ter as seguintes propriedades para usar como chave gerida pelo cliente:
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
Dias de retenção definidos para 90 dias:
az keyvault update --name \<key\_vault\_name\> --resource-group \<resource\_group\_name\> --retention-days 90
A chave deve ter os seguintes atributos para ser usada como chave gerida pelo cliente:
- Sem datas de validade
- Não desativado
- Executar
List,Get,Wrap,Unwrapoperações - Eliminação suave ativada
- Proteção contra purgas ativada com o período de retenção definido para 90 dias
-
recoverylevelatributo definido emRecoverable
Pode verificar os atributos acima da chave usando o seguinte comando:
az keyvault key show --vault-name \<key\_vault\_name\> -n \<key\_name\>
Atualize uma instância existente do Azure Database for MySQL Flexible Server com encriptação de dados
Definir ou alterar chave e identidade para encriptação de dados:
az mysql flexible-server update --resource-group testGroup --name testserver \\ --key \<key identifier of newKey\> --identity newIdentity
Desabilite a encriptação de dados para Azure Database for MySQL Flexible Server:
az mysql flexible-server update --resource-group testGroup --name testserver --disable-data-encryption
Crie uma instância Azure Database for MySQL Flexible Server com backup geo redundante e encriptação de dados ativada
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
Defina ou altere a chave, identidade, chave de backup e identidade de backup para encriptação de dados com backup geo redundante:
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
Use um modelo Azure Resource Manager para permitir a encriptação de dados
Os parâmetros identityUri e primaryKeyUri são, respetivamente, o ID de recurso da identidade gerida pelo utilizador e a chave gerida pelo utilizador.
"$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"
}
]
}