Tous les produits
Search
Centre de documentation

PolarDB:Use PolarDB Always-confidential

Dernière mise à jour :Aug 27, 2026

Les rôles disposant de privilèges élevés, tels que les administrateurs de base de données (DBA) et les développeurs, peuvent accéder à des données sensibles comme les informations d'identité des utilisateurs et les enregistrements de transactions lors de la maintenance des bases de données. Cela crée un risque de fuite de données. La fonctionnalité PolarDB Always-confidential pour PolarDB for MySQL chiffre les résultats des requêtes à la volée au niveau du proxy de base de données. Ainsi, seules les applications autorisées utilisant un pilote spécifique peuvent déchiffrer et accéder aux données sensibles. Utilisez cette fonctionnalité pour sécuriser les données sensibles et répondre aux exigences de conformité avec des modifications minimales du code de votre application.

Fonctionnement

La fonctionnalité PolarDB Always-confidential opère au niveau du proxy de base de données. Lorsqu'une requête SQL correspond à une politique de chiffrement configurée, le proxy chiffre les données dans les champs spécifiés avant de renvoyer les résultats de la requête au client.

  • Stockage des données : Cette fonctionnalité ne modifie pas l'état de stockage physique des données dans la base de données. Les données restent en clair dans les fichiers du système d'exploitation (OS) et sur les disques.

  • Perspectives utilisateur :

    • Super Admin : Les résultats des requêtes sont toujours renvoyés en clair et ne sont pas affectés par les politiques de chiffrement. Cela facilite la gestion de la base de données.

    • Compte standard : Les résultats des requêtes sont renvoyés sous forme de texte chiffré. Un pilote de chiffrement spécifique, tel que le pilote EncJDBC ou le pilote GoLang, ainsi que la clé correcte, sont requis pour déchiffrer les données sur le client.

    • Autres utilisateurs : Les résultats des requêtes sont renvoyés sous forme de texte chiffré et ne peuvent pas être déchiffrés, même avec la clé.

Prérequis

Le proxy de base de données de votre cluster PolarDB for MySQL doit être en version 2.9.12 ou ultérieure.

Remarque
  • Afficher le numéro de version : Consultez la version actuelle du proxy de base de données de votre cluster sur la page Settings and Management > Version Control.

  • Compatibilité des versions : Si la version du proxy de base de données est antérieure à la 2.9.12 mais postérieure à la 2.8.18, l'interface de configuration des règles de chiffrement est fusionnée avec la fonctionnalité de masquage dynamique des données. Pour une expérience optimale et une indépendance des fonctionnalités, nous vous recommandons de mettre à niveau vers la version 2.9.12 ou ultérieure.

Configurer le chiffrement à la volée

La configuration du chiffrement à la volée comprend trois étapes principales : configurer une clé, définir les autorisations de rôle et créer une politique de chiffrement.

Procédure

  1. Accédez à la console PolarDB. Dans le volet de navigation de gauche, cliquez sur Clusters, sélectionnez la région où se trouve votre cluster, puis cliquez sur l'ID du cluster pour accéder à la page des détails du cluster.

  2. Dans le volet de navigation de gauche, choisissez Settings and Management > Security, puis cliquez sur l'onglet Encrypt.

Étape 1 : Configurer les clés

Sur la page Encrypt, activez l'interrupteur Key Management pour configurer la clé utilisée pour le chiffrement et le déchiffrement côté application.

Clé KMS (recommandée)

Vous pouvez utiliser le service Alibaba Cloud Key Management Service (KMS) pour héberger vos clés. KMS prend en charge la rotation des clés et offre un niveau élevé de sécurité et de maintenabilité. Même si l'AccessKey (AK) utilisé pour accéder à KMS est compromis, vous pouvez atténuer le risque en désactivant l'AK ou en renforçant la politique. La clé elle-même n'est pas compromise.

Remarque

Seul le type Customer Master Key (CMK) dans KMS est pris en charge. Le type Default Key n'est pas pris en charge. Pour plus d'informations, consultez la rubrique Présentation du service de clés.

Configurer une Customer Master Key (CMK)

  1. Achetez et activez une instance KMS.

  2. Créez une Customer Master Key (CMK).

  3. Revenez à la console PolarDB, sélectionnez la CMK correspondante et cliquez sur OK.

Clé gérée par l'utilisateur

Si vous ne configurez pas KMS, le système utilise par défaut une clé gérée par l'utilisateur. Vous êtes responsable de la génération, de la distribution et du stockage de la clé.

Important

Les clés gérées par l'utilisateur présentent un risque de perte ou de fuite, et les mises à jour de clés ne sont actuellement pas prises en charge. Si une clé est perdue, vous ne pouvez pas déchiffrer les données chiffrées correspondantes. Vous devez établir des procédures de sécurité strictes pour gérer vos clés.

Étape 2 : Définir les autorisations de rôle

Sur la page Encrypt, accédez à l'onglet Role Policy Settings pour configurer les rôles pour différents comptes de base de données. Cela détermine s'ils voient les données en clair ou chiffrées lorsqu'ils interrogent les données.

  1. Cliquez sur Create Role Permission Policy.

  2. Dans la boîte de dialogue Role Permission Settings, définissez un nom de politique et attribuez des comptes de base de données aux rôles.

    1. Policy Name : Spécifiez un nom pour la politique. Le nom peut comporter jusqu'à 64 caractères.

    2. Super Account : Cochez les cases des comptes de base de données. Vous pouvez sélectionner plusieurs comptes. Les comptes de base de données figurant dans cette liste reçoivent toujours les résultats des requêtes en clair.

      Remarque

      Le rôle Super Account dispose des autorisations les plus élevées. Ajoutez uniquement les comptes de gestion ou d'audit nécessaires à cette liste et contrôlez strictement leur utilisation.

    3. Standard Account : Cochez les cases des comptes de base de données. Vous pouvez sélectionner plusieurs comptes. Les comptes de base de données figurant dans cette liste reçoivent les résultats des requêtes sous forme de texte chiffré, mais peuvent déchiffrer les données à l'aide d'un pilote de chiffrement spécifique et d'une clé.

    Remarque

    Autres utilisateurs : Tout compte de base de données non configuré dans les deux rôles précédents. Ces utilisateurs reçoivent les résultats des requêtes sous forme de texte chiffré et ne peuvent pas déchiffrer les données.

Étape 3 : Créer une politique de chiffrement

Sur la page Encrypt, accédez à l'onglet Encryption Policy Settings pour configurer une politique de chiffrement.

  1. Cliquez sur Create Encryption Policy.

  2. Dans la boîte de dialogue qui s'affiche, configurez les paramètres de la politique comme décrit dans le tableau suivant.

    Remarque

    Spécifiez une étendue de chiffrement précise : Lors de la création d'une politique, spécifiez toujours explicitement les noms de la base de données, de la table et du champ. Évitez d'utiliser des configurations qui s'appliquent à toutes les bases de données ou à toutes les tables afin d'éviter d'affecter des services non concernés.

    Paramètre

    Description

    Rule Name

    Obligatoire. L'identifiant unique de la politique, par exemple encrypt-user-email. La longueur ne peut pas dépasser 64 caractères.

    Description

    Facultatif. Une description détaillée de la politique, telle que Chiffrer le champ e-mail dans la table utilisateur de la base de données client. La longueur ne peut pas dépasser 64 caractères.

    Enable/Disable Rule

    Un interrupteur pour activer ou désactiver la politique. La politique est activée par défaut et ne peut pas être modifiée lors de la création. Vous pouvez modifier ce paramètre après avoir créé la politique.

    Associate Permission Policy

    Obligatoire. Sélectionnez les autorisations de rôle définies à l'étape 2.

    Database

    Facultatif. La base de données à laquelle la politique s'applique. Vous pouvez sélectionner l'une des options suivantes :

    • (Par défaut) Toutes les bases de données : La politique s'applique à toutes les bases de données du cluster.

    • Spécifier les bases de données : Ce paramètre s'applique uniquement aux bases de données spécifiées. Utilisez une virgule , pour séparer plusieurs noms de bases de données.

    Table Name

    Facultatif. La table à laquelle la politique s'applique. Vous pouvez sélectionner l'une des options suivantes :

    • (Par défaut) Toutes les tables : La politique s'applique à toutes les tables de la base de données spécifiée.

    • Spécifier les tables : S'applique uniquement aux tables spécifiées. Séparez plusieurs noms de tables par une virgule ,.

    Column Name

    Obligatoire. Les noms des champs à chiffrer, séparés par une virgule ,.

    Encryption Algorithm

    Obligatoire. L'algorithme à utiliser pour le chiffrement. Cette fonctionnalité prend en charge les algorithmes suivants :

    • Série SM4 : SM4-128-CBC, SM4-128-ECB, SM4-128-GCM et SM4-128-GTR.

    • Série AES-128 : AES-128-CBC, AES-128-ECB, AES-128-GCM et AES-128-GTR.

    • Série AES-256 : AES-256-CBC, AES-256-ECB, AES-256-GCM et AES-256-GTR.

  3. Cliquez sur OK pour créer la politique.

Étape 4 : Gérer les politiques de chiffrement

Sur la page Encrypt, accédez à l'onglet Encryption Policy Settings pour gérer les politiques existantes.

  • Modifier une politique : Recherchez la règle cible et cliquez sur Modify dans la colonne Actions.

  • Supprimer une politique : Recherchez la règle cible, cliquez sur Delete dans la colonne Actions, puis cliquez sur OK dans la boîte de dialogue qui s'affiche.

  • Activer ou désactiver une politique : Recherchez la règle cible et cliquez sur l'interrupteur dans la colonne Enable/Disable Rule.

Renforcement de la sécurité

Pour empêcher les DBA ou les développeurs disposant d'autorisations de console de falsifier ou de supprimer malicieusement les politiques de chiffrement, vous pouvez utiliser Resource Access Management (RAM) pour renforcer la sécurité.

Principe fondamental

Créez des utilisateurs RAM distincts pour le personnel concerné, accordez-leur des autorisations pour gérer PolarDB, mais refusez-leur explicitement les autorisations de modifier ou de supprimer les politiques de chiffrement.

Instructions

  1. Créer une politique de refus

    1. Connectez-vous à la console RAM. Dans le volet de navigation de gauche, choisissez Permissions > Policies. Cliquez sur Create Policy pour créer une politique personnalisée.

    2. Dans l'onglet de l'éditeur visuel, configurez les paramètres suivants :

      • Effect : Deny.

      • Service : PolarDB.

      • Actions : Sélectionnez Specify Actions. Sous Write operations, sélectionnez polardb:ModifyMaskingRules et polardb:DeleteMaskingRules.

      • Resource et Condition : Spécifiez les ressources auxquelles la politique s'applique et les conditions dans lesquelles elle prend effet. Pour plus d'informations, consultez la rubrique Éléments de base d'une politique.

      • Une fois la configuration terminée, cliquez sur OK. Dans la boîte de dialogue Create Policy, définissez le Policy Name et les Remarks.

  2. Configurer les autorisations de l'utilisateur RAM

    1. Connectez-vous à la console RAM. Dans le volet de navigation de gauche, choisissez Identities > Users. Recherchez l'utilisateur RAM cible et cliquez sur Add Permissions dans la colonne Actions.

    2. Dans la section Policies, sélectionnez la politique de refus que vous avez créée, puis cliquez sur OK.

Résultat

Si un utilisateur RAM restreint tente de modifier ou de supprimer une politique de chiffrement, la console affiche une erreur No Permission. L'erreur indique que l'opération actuelle est explicitement refusée, avec le code d'erreur Forbidden.RAM et l'action d'autorisation polardb:ModifyMaskingRules. Le type de politique est une politique basée sur l'identité (niveau du compte) et la décision d'autorisation est un refus explicite. L'utilisateur doit contacter l'administrateur du compte pour obtenir une autorisation.

Étapes suivantes

Après avoir configuré les règles de chiffrement, votre application doit utiliser un pilote capable de gérer le chiffrement, tel que le pilote EncJDBC ou le pilote GoLang, pour lire et écrire correctement les données chiffrées.

FAQ

J'ai configuré une politique de chiffrement. Pourquoi vois-je toujours du texte en clair lorsque j'interroge les données depuis un client de base de données ?

Vérifiez le compte utilisé pour vous connecter à la base de données. Si le compte est configuré comme un Super Account, les résultats des requêtes sont toujours en clair pour faciliter la gestion. Pour voir les résultats chiffrés, effectuez un test avec un compte configuré comme un Standard Account.

Comment puis-je vérifier que le chiffrement fonctionne ?

Utilisez un compte de base de données qui ne figure pas dans la liste Super Account pour vous connecter à la base de données à l'aide d'un client MySQL standard, tel que la ligne de commande ou Navicat. Ensuite, interrogez le champ chiffré. Si vous voyez du texte chiffré, cela signifie que les résultats de la requête sont chiffrés à la volée au niveau du proxy de base de données.

Quels sont les risques associés au rôle Super Admin ?

Le rôle Super Account peut lire directement les données en clair, contournant complètement la protection par chiffrement. Nous vous recommandons d'utiliser ce rôle uniquement temporairement pour des scénarios absolument nécessaires, tels que la correction des données, la migration ou l'audit. Retirez le compte de ce rôle immédiatement après utilisation et conservez une piste d'audit complète de toutes les opérations.