Après avoir installé le plug-in Kubernetes ack-secret-manager, configurez-le pour qu'il récupère périodiquement les dernières valeurs de secret depuis Key Management Service (KMS) et les mette en cache dans votre cluster Container Service for Kubernetes (ACK). Vous pouvez ainsi utiliser des secrets dynamiques provenant de KMS comme des secrets Kubernetes natifs, ce qui évite l'exposition de données sensibles lors du développement et de la construction des applications.
Procédure
-
Installez le plug-in
ack-secret-manager.-
Pour les clusters Container Service for Kubernetes (ACK) :
Connectez-vous à la console ACK et recherchez ack-secret-manager dans la section Marketplace.
Sur la page ack-secret-manager, cliquez sur Quick Deployment dans le coin supérieur droit.
Dans le panneau, conservez les valeurs par défaut pour Cluster, Namespace et Release Name. Cliquez ensuite sur Next.
-
Sur la page Parameters, configurez les paramètres et cliquez sur OK.
Parameter
Description
Example
command.backendLe backend du système externe de gestion des secrets. Seul Alibaba Cloud KMS est pris en charge. Définissez ce paramètre sur
alicloud-kms.alicloud-kmscommand.regionRégion depuis laquelle récupérer les secrets.
cn-hangzhoucommand.disablePollingIndique s'il faut désactiver la synchronisation automatique des dernières valeurs de secret depuis le backend KMS. Définissez cette option sur
truepour désactiver la synchronisation. Valeur par défaut :false.falsecommand.pollingIntervalIntervalle de synchronisation des secrets depuis le backend KMS.
120sUne fois le déploiement réussi, vous êtes redirigé vers la page
ack-secret-managerdu cluster. Sur la page Resources, vérifiez que les six ressources Kubernetes suivantes ont été créées :ack-secret-manager(ServiceAccount),externalsecrets.alibabacloud.com(CustomResourceDefinition),ack-secret-manager(ClusterRole),ack-secret-manager(ClusterRoleBinding),ack-secret-manager-auth(ClusterRoleBinding) etack-secret-manager(Deployment).
Pour les clusters Kubernetes auto-gérés, rendez-vous sur ack-secret-manager pour installer le plug-in.
-
-
Créez un secret dans KMS.
Tous les types de secrets sont pris en charge. Pour plus d'informations, consultez Gérer et utiliser des secrets génériques, Gérer et utiliser des secrets RAM, Gérer et utiliser des secrets ApsaraDB RDS ou Gérer et utiliser des secrets ECS.
-
Accordez au plug-in
ack-secret-managerl'accès à KMS.-
Accès via Shared KMS
Cette méthode convient aux secrets stockés dans une instance KMS ainsi qu'à ceux qui ne se trouvent pas dans une instance KMS, y compris ceux créés avec des versions antérieures de KMS qui ne nécessitaient pas d'instance.
-
Dans Resource Access Management (RAM), créez une stratégie personnalisée pour accorder l'accès aux secrets KMS. Le code suivant présente un exemple de stratégie. Personnalisez la stratégie selon vos besoins métier. Pour plus d'informations, consultez Stratégies personnalisées pour Key Management Service.
{ "Action": [ "kms:GetSecretValue", "kms:Decrypt" ], "Resource": [ "*" ], "Effect": "Allow" } -
Accordez des autorisations à la charge de travail Container Service ou au Pod.
Méthode
Description
Ajouter des autorisations au rôle worker du cluster
Connectez-vous à la console ACK. Dans le volet de navigation de gauche, choisissez Clusters.
Recherchez le cluster cible et cliquez sur Details dans la colonne Actions.
Sous l'onglet Cluster Resources, cliquez sur le rôle worker nommé KubernetesWorkerRole-. Vous êtes redirigé vers la console RAM, où vous pouvez attacher votre stratégie personnalisée.
Utiliser les rôles RAM pour les comptes de service (RRSA) pour l'autorisation au niveau du Pod
Utiliser la fonctionnalité RRSA.
Créez un rôle RAM pour le compte de service spécifié, configurez une stratégie d'approbation pour le rôle RAM, puis attachez votre stratégie personnalisée.
-
-
Accès via un endpoint d'instance KMS (
{kmsInstanceId}.cryptoservice.kms.aliyuncs.com)Cette méthode s'applique uniquement aux secrets présents dans les instances KMS. Nous recommandons cette approche si vous souhaitez restreindre l'accès réseau à KMS au sein de votre Virtual Private Cloud (VPC). Pour plus d'informations, consultez Créer un point d'accès applicatif.
RemarqueAvant d'utiliser un endpoint d'instance KMS, associez le VPC de la charge de travail ou du Pod à l'instance KMS. Pour plus d'informations, consultez Accéder à une instance KMS depuis plusieurs VPC dans la même région.
-
Dans le plug-in
ack-secret-manager, configurez des paramètres tels queprotocol(le protocole d'accès à KMS),endpoint(le point d'accès),client key(la méthode d'authentification) etSecretName(le nom du secret). Pour plus de détails, consultez la documentation ack-secret-manager.
Étapes suivantes
Pour mieux protéger les secrets récupérés depuis KMS et mis en cache dans votre cluster, activez le chiffrement au repos pour les secrets Kubernetes. Pour plus d'informations, consultez Utiliser KMS pour chiffrer les secrets Kubernetes au repos.
Cette fonctionnalité de chiffrement protège également les autres secrets statiques du cluster Kubernetes, tels que les secrets système.