Configuration de Secrets Manager dans votre cluster Kubernetes Service
Lorsque vous intégrez IBM Cloud Secrets Manager à votre cluster IBM Cloud Kubernetes Service, vous pouvez gérer de manière centralisée les certificats de sous-domaines Ingress et d'autres secrets.
A propos de Secrets Manager
Avec Secrets Manager, vous pouvez utiliser un seul service pour gérer vos secrets et contrôler qui y a accès. Une instance Secrets Manager n'est pas automatiquement mise à disposition dans votre cluster. Cependant, vous pouvez utiliser une seule instance d' Secrets Manager sur plusieurs clusters, et un même cluster peut comporter plusieurs instances.
Quelles fonctionnalités puis-je obtenir avec Secrets Manager?
Avec Secrets Manager, vous pouvez:
- Créez des secrets gérés d' Kubernetes, avec des certificats d' TLS Ingress inclus.
- Créez des secrets Kubernetes de n'importe quel type à l'aide du CRN de n'importe quelle instance Secrets Manager que vous possédez.
- Mettez à jour automatiquement vos secrets dans votre cluster de manière régulière.
- Suivez les dates d'expiration de vos certificats à partir de la console IBM Cloud.
- Contrôlez qui a accès à vos secrets en créant des groupes de secrets pour les utilisateurs approuvés.
Notez que pour que vos secrets soient mis à jour automatiquement, vous devez enregistrer au moins une instance d' Secrets Manager dans votre cluster. Pour plus d'informations, consultez la section « Enregistrement de votre instance d' Secrets Manager » dans votre cluster.
Foire aux questions Secrets Manager
Veuillez garder à l'esprit les points suivants lorsque vous utilisez Secrets Manager.
- Quels types de secrets sont pris en charge avec Secrets Manager?
- Secrets Manager prend en charge les données d'identification IAM, les secrets de valeur de clé, les données d'identification de l'utilisateur, les secrets arbitraires et les secrets de Kubernetes. En ce qui concerne les secrets d' Kubernetes, Secrets Manager prend en charge à la fois les types de secrets TLS et non- TLS (opaques). Avec les secrets TLS, vous pouvez spécifier un seul CRN de certificat. Avec les secrets non liés à un TLS, vous pouvez spécifier plusieurs champs pour extraire des secrets non liés à un certificat. Si vous ne précisez pas de type de secret lors de la création d'un secret, le type « TLS » est appliqué par défaut. Pour plus d'informations sur les valeurs confidentielles prises en charge, voir Utilisation de secrets de types différents.
- Les secrets stockés dans une instance Secrets Manager enregistrée sont-ils automatiquement mis à jour?
- Oui. Si vous disposez d'une instance Secrets Manager enregistrée dans votre cluster, les secrets du cluster sont automatiquement mis à jour avec les valeurs de Secrets Manager une fois par jour. Ces mises à jour sont effectuées à l'aide de la valeur du secret provenant du CRN correspondant.
- Mes secrets sont-ils automatiquement mis à jour si je ne crée pas et n'enregistre pas d'instance Secrets Manager ?
- Si vous ne disposez pas d'une instance Secrets Manager enregistrée dans votre cluster, vos secrets Ingress par défaut continuent de se mettre à jour automatiquement tous les 90 jours et sont appliqués à votre cluster. Toutefois, les secrets que vous avez créés et qui référencent le secret Ingress par défaut ne sont pas automatiquement mis à jour.
- Exemple de scénario: Vous disposez d'un certificat Ingress par défaut dans l'espace de nom
default. Vous exécutez la commandeibmcloud ks ingress secret createet référencez le CRN du certificat Ingress par défaut pour mettre en miroir le certificat dans l'espace de nomistio-system. Sans instance Secrets Manager, le certificat Ingress par défaut dans l'espace de nomdefaultest automatiquement mis à jour. Toutefois, vous êtes responsable de la mise à jour régulière du certificat dans l'espace de nomistio-systemà l'aide des commandeskubectlou d'une autre méthode de rotation. - J'ai créé des secrets qui font référence au certificat Ingress par défaut, mais je n'ai pas créé et enregistré d'instance Secrets Manager. Comment gérer mes secrets?
- Si vous n'enregistrez pas d'instance Secrets Manager, IBM Cloud Kubernetes Service ne met à jour que automatiquement le secret Ingress par défaut. Vous êtes responsable de la gestion des autres secrets à l'aide des commandes
kubectlou d'une autre méthode de rotation. Si vous disposez de secrets qui font référence au certificat Ingress par défaut, vous devez les supprimer à l'aide deibmcloud ks ingress secret rm. - Quelle est la différence entre les commandes de l'interface de ligne de commande
ibmcloud ks ingress instanceet les commandes de l'interface de ligne de commandeibmcloud ks ingress secret? - Il existe deux ensembles de commandes CLI qui fonctionnent directement avec des instances Secrets Manager dans IBM Cloud Kubernetes Service: les commandes
ibmcloud ks ingress secretet les commandesibmcloud ks ingress instance. Les commandesibmcloud ks ingress instancepermettent de gérer vos instances Secrets Manager. Les commandesibmcloud ks ingress secretsont utilisées pour gérer vos secrets Ingress qui sont stockés dans une instance Secrets Manager ou des secrets qui sont écrits directement dans le cluster.
Configuration de votre instance Secrets Manager
Suivez les étapes suivantes pour configurer Secrets Manager dans votre cluster.
Activer la communication de service à service
L'intégration d' Secrets Manager à votre cluster IBM Cloud Kubernetes Service nécessite une autorisation de communication entre services. Suivez les étapes de configuration de l'autorisation. Pour plus d'informations, consultez la section « Intégrations » sur Secrets Manager.
- Dans la console IBM Cloud, cliquez sur Gérer > Accès (IAM).
- Cliquez sur Autorisations.
- Cliquez sur Créer.
- Dans la liste des services Source, sélectionnez Kubernetes Service.
- Sélectionnez l'option permettant de définir la portée de l'accès à Toutes les ressources.
- Dans la liste des services cibles, sélectionnez Secrets Manager.
- Sélectionnez l'option permettant de définir la portée de l'accès à Toutes les ressources.
- Dans la section Accès au service, cochez l'option Manager.
- Cliquez sur Autoriser.
Créer une instance d' Secrets Manager
Pour créer une instance d' Secrets Manager via l'interface de ligne de commande (CLI) ou l'interface utilisateur (UI), consultez la documentation « Secrets Manager ». La mise en service complète de votre instance Secrets Manager peut prendre plusieurs minutes.
- Créez une instance Secrets Manager dans l'interface de ligne de commande.
- Créez une instance Secrets Manager dans l'interface utilisateur.
Lorsque vous créez une instance d' Secrets Manager, celle-ci n'est pas directement déployée dans votre cluster. Vous devez enregistrer votre nouvelle instance d' Secrets Manager auprès de votre cluster à l'étape suivante.
Enregistrez votre instance Secrets Manager dans votre cluster
Suivez les étapes suivantes pour enregistrer votre instance d' Secrets Manager e sur votre cluster.
-
Obtenez le CRN de l'instance Secrets Manager. Dans la sortie, le CRN se trouve dans la ligne ID.
ibmcloud resource service-instance <instance_name>Exemple de sortie
Name: my-secrets-manager-instance ID: crn:v1:bluemix:public:secrets-manager:us-south:a/1aa111aa1a11111aaa1a1111aa1aa111:111a1111-11a1-111a-1111-1a1a1a1111a1: GUID: 111a1111-11a1-111a-1111-1a1a1a1111a1 Location: us-south Service Name: secrets-manager Service Plan Name: standard Resource Group Name: default State: active Type: service_instance Sub Type: Created at: 2022-06-08T12:46:45Z Created by: user@ibm.com Updated at: 2022-06-08T12:54:45Z -
Enregistrez l'instance dans votre cluster. Indiquez le CRN d'instance trouvé à l'étape précédente.
Si vous souhaitez enregistrer une instance dans un cluster et la définir comme l'instance par défaut, incluez l'option
--is-default. Sinon, vous pouvez définir une instance par défaut avec la commandeibmcloud ks ingress instance default set.ibmcloud ks ingress instance register --cluster CLUSTER_NAME_OR_ID --crn INSTANCE_CRN [--is-default] -
Vérifiez que l'instance Secrets Manager a été enregistrée dans le cluster.
ibmcloud ks ingress instance ls --cluster CLUSTER_NAME_OR_IDExemple de sortie
Name Type Is Default Status Secret Group CRN my-secrets-manager-instance secrets-manager false created default crn:v1:bluemix:public:secrets-manager:us-south:a/1aa111aa1a11111aaa1a1111aa1aa111:111a1111-11a1-111a-1111-1a1a1a1111a1::
Vous pouvez spécifier une instance d' Secrets Manager et un groupe de secrets lors de la création d'un cluster à l'aide de l'option ibmcloud ks cluster create classic ou ibmcloud ks cluster create vpc-gen2 ». Utilisez l'option --sm-instance pour enregistrer une instance dans le
cluster et l'option --sm-group pour spécifier un groupe de secrets pouvant accéder aux secrets sur le cluster. Voir la section « Enregistrement d'une instance d' Secrets Manager lors de la création d'un cluster ».
Définissez une instance Secrets Manager par défaut et régénérez vos secrets
Lorsque vous définissez une instance Secrets Manager par défaut, tous les nouveaux certificats d'entrée de sous-domaine sont stockés dans cette instance.
-
Exécutez la commande pour définir la nouvelle instance par défaut. Vous pouvez éventuellement spécifier un groupe de secrets qui est autorisé à accéder aux secrets dans l'instance.
ibmcloud ks ingress instance default set --cluster CLUSTER_NAME_OR_ID --name INSTANCE_NAME --secret-group SECRET_GROUP_ID -
Régénérez vos secrets. Tous les secrets gérés par IBM, tels que vos secrets Ingress par défaut, sont téléchargés dans la nouvelle instance par défaut. Ces secrets sont automatiquement mis à jour et le CRN est modifié pour référencer l'instance Secrets Manager.
- Répertoriez les sous-domaines nlb-dns de votre cluster.
ibmcloud ks nlb-dns ls --cluster CLUSTER_NAME_OR_ID ``` 2. Pour chaque sous-domaine de votre cluster, exécutez la commande pour régénérer vos secrets gérés par IBM. Le CRN de ces secrets est mis à jour pour référencer le CRN de la nouvelle instance par défaut Secrets Manager. La régénération de vos secrets est limitée à cinq fois par semaine. Suivez attentivement les étapes de ce document, car les répéter peut vous amener à atteindre la limite. Si vous ne régénérez pas vos secrets, ou si vous avez atteint la limite, vos secrets seront téléchargés vers votre instance Secrets Manager lors du prochain cycle de renouvellement. {: important} ```sh {: pre} ibmcloud ks nlb-dns secret regenerate --cluster CLUSTER_NAME_OR_ID --nlb-subdomain NLB_SUBDOMAIN ``` 3. Vérifiez que vos secrets Ingress par défaut ont été régénérés. Dans la sortie, le CRN des secrets Ingress par défaut doit contenir `secrets-manager`. La régénération de vos secrets peut prendre plusieurs minutes. Au cours de ce processus, la colonne **Statut** de la sortie indique `regenerating` et passe à `created` lorsque la régénération est terminée. {: note} ```sh {: pre} ibmcloud ks ingress secret ls --show-crn --cluster CLUSTER_NAME_OR_ID ``` Exemple de sortie ```sh {: screen} Name Namespace Expiry Domains Status Type CRN secret-11111aa1a1a11aa1111111-000 default 3 months from now secret-11111aa1a1a.us-s…domain.cloud created TLS crn:v1:bluemix:public:secrets-manager:us-south:a/1aa111aa1:secret:a111aa11-11a1 secret-22222aa2a2a22aa2222222-000 default 3 months from now secret-22222aa2a2a.us-s…domain.cloud created TLS crn:v1:bluemix:public:secrets-manager:us-south:a/2aa222aa2:secret:a222aa22-22a2 ```
Contrôle de l'accès à vos secrets avec des groupes de secrets
Avec Secrets Manager, vous pouvez utiliser des groupes de secrets pour contrôler qui a accès aux secrets de votre cluster. Un groupe de secrets peut être affecté à un groupe d'accès IAM afin que seuls des utilisateurs sélectionnés ou des ID de service puissent accéder aux secrets du groupe de secrets. Pour plus d'informations, voir Organisation de vos secrets.
Enregistrement d'une instance d' Secrets Manager lors de la création d'un cluster
Si vous créez un nouveau cluster Classic ou VPC, vous pouvez associer une instance Secrets Manager et un groupe de secrets existants à ce cluster lors de sa création. Les secrets du cluster sont stockés dans l'instance d' Secrets Manager s et appliqués au groupe de secrets.
L'instance « Secrets Manager » enregistrée lors de la création du cluster ne devient pas automatiquement l'instance par défaut « Secrets Manager ». Vous devez toujours définir l'instance par défaut manuellement.
Si vous créez un cluster dans l'interface de ligne de commande avec ibmcloud ks cluster create classic ou ibmcloud ks cluster create vpc-gen2, vous pouvez spécifier une instance Secrets Manager ou un groupe de secrets avec les options
de commande suivantes:
--sm-instance: utilisez cette option pour enregistrer une instance Secrets Manager dans le cluster en spécifiant le CRN de l'instance. Pour trouver le CRN d'une instance d' Secrets Manager, exécutezibmcloud resource service-instance <name_of_instance>ou accédez à votre liste de ressources dans l'interface utilisateur et cliquez sur l'instance.--sm-group: utilisez cette option pour spécifier l'ID du groupe de secrets. Pour trouver l'ID de groupe de secrets, exécutezibmcloud secrets-manager secret-groups.
Si vous créez un cluster dans l'interface utilisateur, procédez comme suit pour spécifier une instance Secrets Manager ou un groupe de secrets:
- Dans la section Intégrations de la page de création de cluster, sélectionnez l'option permettant d'activer Secrets Manager.
- Dans le menu déroulant InstanceSecrets Manager, sélectionnez l'instance que vous souhaitez enregistrer dans le cluster. Si aucune instance n'est disponible, créez-en une.
- Dans le menu déroulant GroupeSecrets Manager, sélectionnez le groupe de secrets à appliquer.
- Créez le cluster.
- Vérifiez que l'instance Secrets Manager est enregistrée dans le cluster.
- Lorsque votre cluster est entièrement provisionné, cliquez dessus pour afficher ses détails. Sous Intégrations, recherchez l'en-tête Secrets Manager et cliquez sur Gérer.
- Dans le panneau latéral, vérifiez que l'instance correcte est répertoriée sous Instances Secrets Manager enregistrées.
- Pour enregistrer des instances supplémentaires dans le cluster, cliquez sur Enregistrer des instances.