Megosztás a következőn keresztül:


Adattitkosítás az Azure Database for MySQL-hez az Azure CLI használatával

A következőkre vonatkozik: Azure Database for MySQL – Önálló kiszolgáló

Fontos

Az önálló Azure Database for MySQL-kiszolgáló a kivonási útvonalon van. Határozottan javasoljuk, hogy frissítsen rugalmas Azure Database for MySQL-kiszolgálóra. További információ a rugalmas Azure Database for MySQL-kiszolgálóra való migrálásról: Mi történik az önálló Azure Database for MySQL-kiszolgálóval?

Megtudhatja, hogyan állíthatja be és kezelheti az Azure Database for MySQL-hez készült adattitkosítást az Azure CLI használatával.

Az Azure CLI előfeltételei

  • Azure-előfizetéssel kell rendelkeznie, és rendszergazdai jogosultságokkal kell rendelkeznie az adott előfizetésben.

  • Hozzon létre egy kulcstartót és egy, az ügyfél által felügyelt kulcshoz használható kulcsot. Emellett engedélyezze a törlés elleni védelmet és a helyreállítható törlést a kulcstartón.

    az keyvault create -g <resource_group> -n <vault_name> --enable-soft-delete true --enable-purge-protection true
    
  • A létrehozott Azure Key Vaultban hozza létre az Azure Database for MySQL adattitkosításához használt kulcsot.

    az keyvault key create --name <key_name> -p software --vault-name <vault_name>
    
  • Meglévő kulcstartó használatához a következő tulajdonságokkal kell rendelkeznie, amelyeket ügyfél által felügyelt kulcsként kell használnia:

    • Helyreállítható törlés

      az resource update --id $(az keyvault show --name \ <key_vault_name> -o tsv | awk '{print $1}') --set \ properties.enableSoftDelete=true
      
    • Törlés védett

      az keyvault update --name <key_vault_name> --resource-group <resource_group_name>  --enable-purge-protection true
      
    • 90 napos megőrzési napok

      az keyvault update --name <key_vault_name> --resource-group <resource_group_name>  --retention-days 90
    
  • A kulcsnak az alábbi attribútumokkal kell rendelkeznie felhasználó által felügyelt kulcsként:

    • Nincs lejárati dátum
    • Nincs letiltva
    • Get, wrap, unwrap műveletek végrehajtása
    • recoverylevel attribútum a Helyreállítható értékre van állítva (ehhez engedélyezni kell a helyreállítható törlést a 90 napos megőrzési időtartammal)
    • Végleges törlés elleni védelem engedélyezése

A kulcs fenti attribútumait az alábbi paranccsal ellenőrizheti:

az keyvault key show --vault-name <key_vault_name> -n <key_name>
  • Az Önálló Azure Database for MySQL-kiszolgálónak általános célú vagy memóriaoptimalizált tarifacsomagon és általános célú 2- es tárolón kell lennie. Mielőtt továbbhalad, tekintse át az ügyfél által kezelt kulcsokkal való adattitkosításra vonatkozó korlátozásokat.

A kulcsműveletek megfelelő engedélyeinek beállítása

  1. Kétféleképpen lehet lekérte a felügyelt identitást az Azure Database for MySQL-hez.

    Hozzon létre egy új Azure Database for MySQL-kiszolgálót felügyelt identitással.

    az mysql server create --name -g <resource_group> --location <locations> --storage-size size>  -u <user>-p <pwd> --backup-retention <7> --sku-name <sku name> -geo-redundant-backup <Enabled/Disabled>  --assign-identity
    

    Egy meglévő Azure Database for MySQL-kiszolgáló frissítése felügyelt identitás lekéréséhez.

    az mysql server update --name  <server name>  -g <resource_group> --assign-identity
    
  2. Állítsa be a Főkiszolgáló kulcsengedélyeit (Get, Wrap, Unwrap) a MySQL-kiszolgáló neveként.

    az keyvault set-policy --name -g <resource_group> --key-permissions get unwrapKey wrapKey --object-id <principal id of the server>
    

Adattitkosítás beállítása az Azure Database for MySQL-hez

  1. Engedélyezze az Azure Database for MySQL adattitkosítását az Azure Key Vaultban létrehozott kulccsal.

    az mysql server key create –name  <server name>  -g <resource_group> --kid <key url>
    

    Kulcs URL-címe: https://YourVaultName.vault.azure.net/keys/YourKeyName/01234567890123456789012345678901>

Adattitkosítás használata visszaállítási vagy replikakiszolgálókhoz

Miután az Azure Database for MySQL titkosítva lett egy ügyfél Key Vaultban tárolt felügyelt kulcsával, a kiszolgáló újonnan létrehozott példánya is titkosítva lesz. Ezt az új példányt helyi vagy georedundáns visszaállítási művelettel, vagy replika (helyi/régióközi) művelettel készítheti el. Titkosított MySQL-kiszolgáló esetén tehát az alábbi lépésekkel hozhat létre titkosított visszaállított kiszolgálót.

Visszaállított/replikakiszolgáló létrehozása

A kiszolgáló visszaállítása után állítsa újra újra a visszaállított kiszolgáló adattitkosítását

  • Identitás hozzárendelése a replikakiszolgálóhoz
az mysql server update --name  <server name>  -g <resoure_group> --assign-identity
  • A visszaállított/replikakiszolgálóhoz használandó meglévő kulcs lekérése
az mysql server key list --name  '<server_name>'  -g '<resource_group_name>'
  • A visszaállított/replikakiszolgáló új identitásának házirendjének beállítása
az keyvault set-policy --name <keyvault> -g <resoure_group> --key-permissions get unwrapKey wrapKey --object-id <principl id of the server returned by the step 1>
  • A visszaállított/replikakiszolgáló ismételt ellenőrzése a titkosítási kulccsal
az mysql server key create –name  <server name> -g <resource_group> --kid <key url>

Az Azure Database for MySQL-hez használt kulcs további képessége

A használt kulcs lekérése

az mysql server key show --name  <server name>  -g <resource_group> --kid <key url>

Kulcs URL-címe: https://YourVaultName.vault.azure.net/keys/YourKeyName/01234567890123456789012345678901>

A használt kulcs listázása

az mysql server key list --name  <server name>  -g <resource_group>

A használt kulcs elvetése

az mysql server key delete -g <resource_group> --kid <key url>

Azure Resource Manager-sablon használata adattitkosítás engedélyezéséhez

Az Azure Portalon kívül az Azure Database for MySQL-kiszolgálón is engedélyezheti az adattitkosítást azure Resource Manager-sablonokkal az új és a meglévő kiszolgálókhoz.

Új kiszolgáló esetén

Használja az egyik előre létrehozott Azure Resource Manager-sablont a kiszolgáló adattitkosítással való kiépítéséhez: Példa adattitkosításra

Ez az Azure Resource Manager-sablon létrehoz egy Azure Database for MySQL-kiszolgálót, és az átadott KeyVault és Key paraméterekkel engedélyezi az adattitkosítást a kiszolgálón.

Meglévő kiszolgáló esetén

Emellett Azure Resource Manager-sablonokkal engedélyezheti az adattitkosítást a meglévő Azure Database for MySQL-kiszolgálókon.

  • Adja meg a tulajdonságobjektum tulajdonsága alatt Uri korábban másolt Azure Key Vault-kulcs erőforrás-azonosítóját.

  • Api-verzióként használja a 2020-01-01-preview verziót.

{
  "$schema": "http://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "location": {
      "type": "string"
    },
    "serverName": {
      "type": "string"
    },
    "keyVaultName": {
      "type": "string",
      "metadata": {
        "description": "Key vault name where the key to use is stored"
      }
    },
    "keyVaultResourceGroupName": {
      "type": "string",
      "metadata": {
        "description": "Key vault resource group name where it is stored"
      }
    },
    "keyName": {
      "type": "string",
      "metadata": {
        "description": "Key name in the key vault to use as encryption protector"
      }
    },
    "keyVersion": {
      "type": "string",
      "metadata": {
        "description": "Version of the key in the key vault to use as encryption protector"
      }
    }
  },
  "variables": {
    "serverKeyName": "[concat(parameters('keyVaultName'), '_', parameters('keyName'), '_', parameters('keyVersion'))]"
  },
  "resources": [
    {
      "type": "Microsoft.DBforMySQL/servers",
      "apiVersion": "2017-12-01",
      "kind": "",
      "location": "[parameters('location')]",
      "identity": {
        "type": "SystemAssigned"
      },
      "name": "[parameters('serverName')]",
      "properties": {
      }
    },
    {
      "type": "Microsoft.Resources/deployments",
      "apiVersion": "2019-05-01",
      "name": "addAccessPolicy",
      "resourceGroup": "[parameters('keyVaultResourceGroupName')]",
      "dependsOn": [
        "[resourceId('Microsoft.DBforMySQL/servers', parameters('serverName'))]"
      ],
      "properties": {
        "mode": "Incremental",
        "template": {
          "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
          "contentVersion": "1.0.0.0",
          "resources": [
            {
              "type": "Microsoft.KeyVault/vaults/accessPolicies",
              "name": "[concat(parameters('keyVaultName'), '/add')]",
              "apiVersion": "2018-02-14-preview",
              "properties": {
                "accessPolicies": [
                  {
                    "tenantId": "[subscription().tenantId]",
                    "objectId": "[reference(resourceId('Microsoft.DBforMySQL/servers/', parameters('serverName')), '2017-12-01', 'Full').identity.principalId]",
                    "permissions": {
                      "keys": [
                        "get",
                        "wrapKey",
                        "unwrapKey"
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    },
    {
      "name": "[concat(parameters('serverName'), '/', variables('serverKeyName'))]",
      "type": "Microsoft.DBforMySQL/servers/keys",
      "apiVersion": "2020-01-01-preview",
      "dependsOn": [
        "addAccessPolicy",
        "[resourceId('Microsoft.DBforMySQL/servers', parameters('serverName'))]"
      ],
      "properties": {
        "serverKeyType": "AzureKeyVault",
        "uri": "[concat(reference(resourceId(parameters('keyVaultResourceGroupName'), 'Microsoft.KeyVault/vaults/', parameters('keyVaultName')), '2018-02-14-preview', 'Full').properties.vaultUri, 'keys/', parameters('keyName'), '/', parameters('keyVersion'))]"
      }
    }
  ]
}

Következő lépések