Les applications métier stockent généralement les mots de passe des comptes de base de données dans le code ou les fichiers de configuration, ce qui présente un risque de fuite. En déléguant la gestion des mots de passe des comptes RDS aux secrets KMS, les applications peuvent récupérer dynamiquement les valeurs des mots de passe via le SDK et prendre en charge la rotation automatique, réduisant ainsi efficacement le risque de fuite de secrets.
Fonctionnement
Avec les secrets RDS, les applications n'ont pas besoin d'intégrer en dur les identifiants de base de données dans le code ou les fichiers de configuration. Une fois qu'un administrateur a créé un secret RDS dans KMS, l'application appelle l'opération API GetSecretValue pour récupérer les informations du compte et du mot de passe de la base de données afin d'accéder à la base de données RDS. Voici quelques cas d'utilisation courants :
Accès aux bases de données des applications cloud : Les applications déployées sur des services Alibaba Cloud tels que ECS ou ACK nécessitent une gestion centralisée des identifiants d'accès à la base de données, évitant ainsi une gestion dispersée sur plusieurs instances.
Exigences régulières de conformité en matière de sécurité : Les politiques de sécurité des entreprises imposent une rotation régulière des mots de passe des bases de données. La rotation automatique via les secrets KMS répond aux exigences d'audit de conformité.
Gestion des identifiants multi-environnements : Les environnements de production, de test et de développement nécessitent des identifiants d'accès à la base de données isolés. Utilisez les tags de secret pour gérer les identifiants par dimension.
Après avoir stocké les identifiants RDS dans KMS, ne modifiez pas et ne supprimez pas les identifiants dans ApsaraDB RDS afin d'éviter toute interruption de service.
Avant de commencer
Bases de données prises en charge : ApsaraDB RDS for MySQL, ApsaraDB RDS for MariaDB, ApsaraDB RDS for SQL Server (à l'exception de l'édition Cluster 2017) et ApsaraDB RDS for PostgreSQL.
Préparation de la clé KMS : Vous devez créer une clé symétrique dans l'instance KMS pour le chiffrement. La clé doit résider dans la même instance que le secret. Pour plus d'informations, reportez-vous à Gérer les autorisations des utilisateurs RAM.
Autorisations RAM : Si vous utilisez un utilisateur RAM ou un rôle RAM, le compte Alibaba Cloud doit attacher la stratégie système
AliyunKMSSecretAdminAccessà l'utilisateur RAM ou au rôle RAM. Pour plus d'informations, reportez-vous à Accorder des autorisations à un rôle RAM ou Gérer les autorisations des utilisateurs RAM.Limites d'utilisation : Ne déléguez pas le même compte de base de données RDS à plusieurs secrets RDS. Lors de la rotation des secrets, le mot de passe change, ce qui entraîne la détention d'un mot de passe obsolète par les autres secrets pour le même compte et provoque des échecs de connexion.
Créer un secret RDS
Vous pouvez configurer une rotation périodique automatique lors de la création d'un identifiant afin de réduire le risque de sécurité lié aux fuites d'identifiants.
Connectez-vous à la console Key Management Service. Dans la barre de navigation supérieure, sélectionnez une région. Dans le volet de navigation de gauche, choisissez .
-
Cliquez sur l'onglet Database Secrets, sélectionnez un Instance ID, puis cliquez sur . Configurez les paramètres et cliquez sur Confirm.
RemarqueLes secrets RDS ne prennent pas en charge la création par lot.
Nous vous recommandons d'activer la rotation automatique des secrets régulièrement afin de réduire le risque de fuite de secrets.
Paramètre
Description
Database Type
Sélectionnez ApsaraDB RDS Secrets.
Secret Name
Un nom d'identifiant personnalisé. Doit être unique dans la région actuelle.
ApsaraDB RDS Instance
Sélectionnez une instance RDS sous votre compte Alibaba Cloud.
Account Management
-
Manage Dual Accounts (Recommandé) : Convient pour l'accès programmatique à la base de données. KMS gère deux comptes avec des autorisations identiques pour éviter toute interruption de connexion pendant la rotation.
-
Cliquez sur Create Account pour configurer le nom du compte, sélectionner une base de données et spécifier les autorisations.
Remarque-
La création et l'autorisation en un clic ne créent pas immédiatement le nouveau compte. Le compte est créé après que vous avez examiné et confirmé les informations d'identification.
-
Pour RDS PostgreSQL, vous ne pouvez pas obtenir le nom de la base de données lors de la création. Vous devez définir manuellement DBName.
-
-
Cliquez sur Import Existing Accounts pour sélectionner un nom d'utilisateur et configurer le mot de passe.
RemarqueNous vous recommandons de définir le mot de passe sur celui utilisé lors de la création du compte utilisateur de l'instance RDS. Si le nom d'utilisateur et le mot de passe importés ne correspondent pas, vous pouvez obtenir le compte et le mot de passe corrects après la première rotation des identifiants.
-
-
Manage Single Account : Convient pour les comptes privilégiés ou les scénarios d'hébergement de comptes O&M manuels. La version actuelle de l'identifiant peut être temporairement indisponible immédiatement après la réinitialisation du mot de passe.
-
Cliquez sur Create Account pour configurer le nom du compte et sélectionner le type de compte.
Prend en charge Standard Account et Privileged Account. Lorsque vous sélectionnez Standard Account, vous devez également sélectionner une base de données et spécifier les autorisations.
-
Cliquez sur l'onglet Import Existing Accounts pour sélectionner un nom d'utilisateur et configurer le mot de passe.
-
CMK
Sélectionnez la clé symétrique utilisée pour chiffrer la valeur de l'identifiant. La clé et l'identifiant doivent appartenir à la même instance KMS.
ImportantLa clé et l'identifiant doivent appartenir à la même instance KMS, et la clé doit être une clé symétrique. Pour plus d'informations sur les clés symétriques prises en charge par KMS, reportez-vous à Types et spécifications de clés.
Si un utilisateur RAM ou un rôle RAM est utilisé, il doit disposer des autorisations pour effectuer l'opération GenerateDataKey à l'aide de la clé maître de chiffrement.
Automatic Rotation
Sélectionnez si vous souhaitez activer la rotation automatique. Lorsqu'elle est activée, KMS met à jour périodiquement la valeur de l'identifiant pour réduire le risque de fuite d'identifiants.
Rotation Period
Définissez ce paramètre uniquement lorsque la rotation automatique est activée. Valeurs valides : de 6 heures à 365 jours.
Spécifie l'intervalle de rotation. KMS met à jour périodiquement la valeur de l'identifiant en fonction de ce paramètre.
Description
Une description facultative de l'identifiant pour l'identification et la gestion.
Définissez la politique d'accès pour l'identifiant afin de contrôler quels utilisateurs ou rôles RAM peuvent le lire ou le modifier.
Vous pouvez d'abord sélectionner la stratégie par défaut et la modifier ultérieurement selon vos besoins.
-
Après la création, vérifiez que le nouveau secret apparaît dans la liste des identifiants de base de données avec le statut Normal.
RemarqueLe système crée automatiquement le rôle lié au service
AliyunServiceRoleForKMSSecretsManagerForRDSet attache la stratégieAliyunServiceRolePolicyForKMSSecretsManagerForRDS. KMS utilise ce rôle pour gérer les secrets RDS, y compris la rotation des mots de passe des comptes RDS.
Gérer les secrets RDS
Rotation des secrets RDS
Mécanisme de rotation des secrets RDS
KMS prend en charge la rotation automatique des mots de passe pour les instances ApsaraDB RDS associées. Pendant la rotation, KMS réinitialise le mot de passe du compte RDS correspondant tout en conservant le nom du compte inchangé.
-
Modes de rotation : KMS prend en charge les modes de gestion à compte unique et à double compte pour les secrets RDS.
Élément de comparaison
Gestion à compte unique
Gestion à double compte
Scénario
Scénarios simples où les applications tolèrent de brèves interruptions.
Scénarios de haute disponibilité qui nécessitent une continuité d'activité élevée pour les applications principales.
Principe de rotation
Génère un nouveau mot de passe pour le compte pendant la rotation.
Maintient deux comptes alternés (Utilisateur A et Utilisateur B).
Disponibilité
Présente une brève fenêtre d'indisponibilité : lors du changement de mot de passe, l'ancien identifiant devient invalide avant que le nouveau ne prenne pleinement effet, ce qui peut provoquer des échecs de connexion temporaires. Nous vous recommandons de configurer une politique de nouvelle tentative pour vos applications.
Totalement disponible tout au long de la rotation : pendant la rotation, les identifiants d'un compte restent toujours valides, rendant le processus transparent pour vos applications.
-
Organigramme de rotation à double compte : Lorsque vous créez un secret, le mot de passe du compte RDS pour le premier utilisateur existe déjà. Lors de la première rotation, KMS appelle l'API RDS pour créer le mot de passe du compte pour le deuxième utilisateur. Lors de la deuxième rotation, KMS modifie le mot de passe du premier utilisateur. Lors des rotations suivantes, KMS modifie alternativement les mots de passe des deux utilisateurs.
Précautions
Confirmer l'intégration de l'application : Avant la rotation, assurez-vous que toutes les applications métier sont configurées pour récupérer dynamiquement les identifiants depuis KMS. Si les applications ont intégré en dur l'ancien mot de passe, la rotation entraînera des échecs de connexion.
Vérifier l'état des ressources : Nous vous recommandons d'utiliser la fonctionnalité avant la rotation pour vérifier que l'instance RDS et le compte associés au secret existent et sont en état normal.
Ne pas supprimer les ressources : Pendant ou après l'activation de la configuration de rotation, ne supprimez pas l'instance RDS associée ou le compte de base de données. Sinon, la tâche de rotation échouera.
Procédure
La configuration d'une rotation automatique périodique des identifiants réduit efficacement le risque de fuite causé par l'absence de mises à jour à long terme. De plus, la console prend en charge la rotation manuelle immédiate, permettant une réponse rapide aux incidents de sécurité et une atténuation rapide des menaces potentielles.
Connectez-vous à la console Key Management Service. Dans la barre de navigation supérieure, sélectionnez une région. Dans le volet de navigation de gauche, choisissez .
Cliquez sur l'onglet Database Secrets, sélectionnez un Instance ID, recherchez le secret à faire tourner, puis cliquez sur Details dans la colonne Actions.
-
Dans la section Versions en bas de la page des détails du secret, cliquez sur Configure Rotation.
-
Rotation automatique planifiée : Activez cette fonctionnalité et sélectionnez une période de rotation. Vous pouvez définir ce paramètre sur une valeur comprise entre 6 heures et 365 jours.
RemarqueLors de la création d'un secret, il est possible d'activer la rotation automatique et de définir la Rotation Period.
Faire tourner maintenant : Déclenchez manuellement une rotation immédiate.
-
Vérifier le compte du secret
KMS vérifie si le compte de base de données RDS protégé par le secret appartient à l'instance RDS configurée. Si la vérification réussit, le secret peut être tourné normalement. Sinon, supprimez le secret et créez un nouveau secret RDS.
Connectez-vous à la console Key Management Service. Dans la barre de navigation supérieure, sélectionnez une région. Dans le volet de navigation de gauche, choisissez .
Cliquez sur l'onglet Database Secrets, sélectionnez un Instance ID, recherchez le secret cible, puis cliquez sur Details dans la colonne Actions.
Dans la section Versions, cliquez sur Check Account. Une fois la vérification terminée, consultez le résultat.
Configurer le nom de la base de données (DBName)
Après la création d'un secret RDS, si vous devez modifier le nom de la base de données RDS associée, spécifiez le DBName correct dans la section Extended Configurations. Pour ce faire :
Pour RDS PostgreSQL, vous devez ajouter manuellement le champ DBName. Sinon, le secret RDS ne pourra pas être utilisé.
Connectez-vous à la console Key Management Service. Dans la barre de navigation supérieure, sélectionnez une région. Dans le volet de navigation de gauche, choisissez .
Dans l'onglet Customer-managed Secrets, sélectionnez Database Secrets, sélectionnez l'instance KMS cible, puis cliquez sur Details dans la colonne Actions pour le secret cible.
Dans l'onglet Extended Configurations, cliquez sur Edit dans la colonne Actions pour
CustomData.-
Dans la boîte de dialogue Edit Custom Data, cliquez sur Add Key-value Pair et configurez les éléments suivants :
RemarqueSi une paire clé-valeur
DBNameexiste déjà, modifiez la valeur Value.Key : Saisissez
DBName.Value : Saisissez le nom de la base de données de l'instance RDS cible. Vous pouvez obtenir ce nom en vous connectant à la console RDS et en accédant à la page des détails de l'instance.
Configurer les tags d'identifiants
Vous pouvez attribuer des tags aux identifiants pour les organiser et les gérer. Chaque tag se compose d'une paire clé-valeur (Key : Value), comprenant une clé de tag (Key) et une valeur de tag (Value).
Notes d'utilisation des tags
Une clé de tag ou une valeur de tag peut contenir jusqu'à 128 caractères, y compris des lettres, des chiffres, des barres obliques (/), des barres obliques inverses (\), des traits de soulignement (_), des traits d'union (-), des points (.), des signes plus (+), des signes égal (=), des deux-points (:), des signes at (@) et des espaces.
Une clé de tag ne peut pas commencer par aliyun ou acs:. Cette restriction ne s'applique pas aux valeurs de tag.
Chaque identifiant peut avoir jusqu'à 20 tags.
Procédures
Taguer un seul identifiant
Connectez-vous à la console Key Management Service. Dans la barre de navigation supérieure, sélectionnez une région. Dans le volet de navigation de gauche, choisissez .
Cliquez sur l'onglet correspondant au type d'identifiant, sélectionnez un Instance ID, et localisez l'identifiant cible.
-
Ouvrez l'éditeur de tags en utilisant l'une des méthodes suivantes :
Méthode 1 : Dans la liste des identifiants, cliquez sur l'icône
dans la colonne Tags pour l'identifiant cible.Méthode 2 : Cliquez sur Actions > Details pour accéder à la page des détails de l'identifiant, puis cliquez sur l'icône
à côté de Tag.
Taguer plusieurs identifiants en masse
Connectez-vous à la console Key Management Service. Dans la barre de navigation supérieure, sélectionnez une région. Dans le volet de navigation de gauche, choisissez .
-
Cliquez sur l'onglet correspondant au type d'identifiant, sélectionnez un Instance ID, et sélectionnez les identifiants sur lesquels opérer dans la liste des identifiants.
Ajouter des tags : En bas de la liste des identifiants, cliquez sur Add Tag, saisissez la Tag Key et la Tag Value, puis cliquez sur OK.
Supprimer des tags : En bas de la liste des identifiants, cliquez sur Remove Tag, sélectionnez les tags à dissocier dans la boîte de dialogue Batch Remove, cliquez sur Cancel, puis cliquez sur Close dans la boîte de dialogue de confirmation.
Supprimer un secret RDS
Avant de supprimer un secret, assurez-vous qu'il n'est plus utilisé afin d'éviter les pannes de service.
Vous pouvez planifier une suppression ou supprimer immédiatement un secret dont vous n'avez plus besoin. La suppression d'un secret RDS ne retire que les informations du secret de KMS et n'affecte pas le compte correspondant ni son mot de passe dans RDS.
Connectez-vous à la console Key Management Service. Dans la barre de navigation supérieure, sélectionnez une région. Dans le volet de navigation de gauche, choisissez .
Cliquez sur l'onglet Database Secrets, sélectionnez un Instance ID, recherchez le secret que vous souhaitez supprimer, puis cliquez sur Schedule Deletion dans la colonne Actions.
-
Dans la boîte de dialogue Schedule Deletion, sélectionnez une méthode de suppression pour le secret et cliquez sur OK.
Schedule Deletion : Spécifiez une période de récupération de 7 à 30 jours. Le système supprime le secret à la fin de la période de récupération.
Delete Immediately : Le système supprime immédiatement le secret.
Pendant la période de récupération, vous pouvez trouver le secret et cliquer sur Restore Secret dans la colonne Actions pour annuler la suppression.
Intégrer les secrets RDS dans les applications
KMS fournit diverses méthodes pour obtenir les valeurs des secrets RDS. Sélectionnez une méthode en fonction des priorités suivantes. Pour les étapes d'intégration détaillées, reportez-vous à la documentation dédiée liée pour chaque méthode.
Priorité | Cas d'utilisation | Type de passerelle pris en charge |
Priorité 1 : Client JDBC Secret |
Remarque Le client JDBC Secret encapsule la logique métier, les meilleures pratiques et les modèles de conception. Il gère directement l'authentification pour les connexions à la base de données et fournit l'accès à la base de données via des interfaces JDBC standard. | Passerelle partagée / Passerelle dédiée |
Priorité 2 : Client Secret | L'application est développée en Java (Java 8 ou version ultérieure), Go ou Python. | Passerelle partagée / Passerelle dédiée |
Priorité 3 : SDK Alibaba Cloud | L'application est développée en Java (Java 6 ou version ultérieure), PHP, Go, Python, .NET (C# uniquement), C++ ou Node.js. | Passerelle dédiée (recommandée) / Passerelle partagée |
Priorité 4 : Agent KMS |
| Passerelle dédiée (recommandée) / Passerelle partagée |
Priorité 5 : SDK d'instance KMS (non recommandé) | L'application est développée en Java (Java 8 ou version ultérieure), PHP, Go, Python ou .NET (C# uniquement). | Passerelle dédiée |
FAQ
Rotation des secrets
-
La rotation échoue avec le message « Your secret is being rotated. Try again later. » ?
Type de secret
Cause possible
Secret RAM
Le secret RAM est en cours de rotation.
La rotation des secrets RAM prend du temps pour se terminer dans une fenêtre de rotation. La fenêtre de rotation pour la rotation automatique est d'environ 48 heures. La fenêtre de rotation pour la rotation manuelle correspond à la durée que vous avez définie.
Si la rotation n'est pas terminée dans la fenêtre de rotation, vérifiez si l'utilisateur RAM existe toujours dans la console RAM.
Secret RDS
Normalement, la rotation des secrets RDS se termine instantanément. Si la rotation ne se termine pas dans les 2 minutes, vérifiez si l'instance RDS et le compte RDS sont en état normal.
Secret ECS
Normalement, la rotation des secrets ECS se termine instantanément. Si la rotation ne se termine pas dans les 2 minutes, vérifiez si l'instance ECS et le compte ECS sont en état normal.
-
Le statut du secret indique « indisponible » ou les appels API renvoient « Rejected.Unavailable » ?
L'instance KMS a expiré. Renouvelez l'instance KMS dans les 15 jours calendaires suivant l'expiration, sinon l'instance sera libérée. Pour plus d'informations, reportez-vous à Facturation.
Si vous ne prévoyez pas d'utiliser l'instance KMS pour le moment mais que vous pourriez avoir besoin des clés ou des secrets de l'instance plus tard, nous vous recommandons de les sauvegarder à l'avance. Pour plus d'informations, reportez-vous à Gestion des sauvegardes KMS.
Configuration des secrets
-
Pourquoi un secret RDS PostgreSQL ne fonctionne-t-il pas ?
RDS PostgreSQL ne remplit pas automatiquement le champ
DBName. Vous devez l'ajouter manuellement dans les configurations étendues lors de la création du secret. Pour plus d'informations, reportez-vous à Gérer et utiliser les secrets ApsaraDB RDS. -
Le même compte RDS peut-il être délégué à plusieurs secrets ?
Non recommandé. Chaque secret tourne indépendamment, ce qui change le mot de passe. Si plusieurs secrets référencent le même compte, la rotation de l'un d'eux entraîne la détention d'identifiants obsolètes par les autres et provoque l'échec des tentatives de connexion. Au lieu de cela, faites en sorte que plusieurs applications récupèrent les identifiants à partir du même secret et utilisez les stratégies RAM pour contrôler l'accès.
Autorisations et gestion
-
Quelle est la différence entre la suppression d'un secret dans KMS et la suppression d'un compte dans RDS ?
La suppression d'un secret dans KMS ne retire que les informations d'identification chiffrées et n'affecte pas le compte RDS réel. La suppression d'un compte dans RDS invalide le mot de passe stocké dans le secret KMS et provoque l'échec de la rotation.
-
À quoi servent les tags de secret ?
Les tags permettent une gestion catégorisée et une récupération rapide des secrets par environnement, projet ou autres dimensions. Combinés aux stratégies RAM, les tags peuvent également implémenter un contrôle d'accès basé sur les tags. Planifiez votre stratégie de tagging lors de la création des secrets.