Configuration de Secrets Manager dans votre cluster Red Hat OpenShift
Lorsque vous intégrez IBM Cloud Secrets Manager à votre cluster d' Red Hat OpenShift on IBM Cloud, vous pouvez gérer de manière centralisée les certificats de sous-domaine 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 s sur plusieurs clusters, et un seul cluster peut avoir plusieurs instances.
Quelles fonctionnalités puis-je obtenir avec Secrets Manager?
Avec Secrets Manager, vous pouvez:
- Créez des secrets Kubernetes gérés avec des certificats 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 automatiquement mis à jour, vous devez enregistrer au moins une instance Secrets Manager dans votre cluster. Pour plus d'informations, voir Enregistrement de votre instance Secrets Manager dans votre cluster.
Foire aux questions Secrets Manager
Gardez à 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. Pour les secrets d' Kubernetes, Secrets Manager prend en charge les types de secrets TLS et non TLS (opaques). Avec les secrets TLS, vous pouvez spécifier un CRN de certificat. Avec les secrets non TLS, vous pouvez spécifier plusieurs champs pour extraire les secrets non certifiés. Si vous ne spécifiez pas de type de secret lorsque vous créez un secret, 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 oc 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, Red Hat OpenShift on IBM Cloud 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 oc ingress instanceet les commandes de l'interface de ligne de commandeibmcloud oc ingress secret? - Il existe deux ensembles de commandes CLI qui fonctionnent directement avec des instances Secrets Manager dans Red Hat OpenShift on IBM Cloud: les commandes
ibmcloud oc ingress secretet les commandesibmcloud oc ingress instance. Les commandesibmcloud oc ingress instancepermettent de gérer vos instances Secrets Manager. Les commandesibmcloud oc 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 de configuration de Secrets Manager dans votre cluster.
Activer la communication de service à service
L'intégration de Secrets Manager à votre cluster Red Hat OpenShift on IBM Cloud requiert une autorisation de communication de service à service. Suivez les étapes de configuration de l'autorisation. Pour plus d'informations, voir Integrations for Secrets Manager.
- Dans la console d' 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 Cible, 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 Secrets Manager dans l'interface de ligne de commande ou l'interface utilisateur, reportez-vous à la documentation Secrets Manager. La mise à disposition complète de l'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 Secrets Manager, elle n'est pas mise à disposition directement dans votre cluster. Vous devez enregistrer votre nouvelle instance Secrets Manager auprès de votre cluster à l'étape suivante.
Enregistrez votre instance Secrets Manager dans votre cluster
Suivez les étapes d'enregistrement de votre instance Secrets Manager dans 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 oc ingress instance default set.ibmcloud oc 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 oc ingress instance ls --cluster <cluster_name_or_id>Exemple 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 Secrets Manager et un groupe de secrets lorsque vous créez un cluster à l'aide des commandes ibmcloud oc cluster create classic ou ibmcloud oc 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 Enregistrement d'une instance 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 oc 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.
-
Listez les sous-domaines nlb-dns de votre cluster.
ibmcloud oc nlb-dns ls --cluster <cluster_name_or_id> -
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 sont téléchargés dans votre instance Secrets Manager lors du prochain cycle de renouvellement.
ibmcloud oc nlb-dns secret regenerate --cluster <cluster_name_or_id> --nlb-subdomain <nlb_subdomain> -
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
regeneratinget passe àcreatedlorsque la régénération est terminée.ibmcloud oc ingress secret ls --show-crn --cluster <cluster_name_or_id>Exemple de sortie
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 s lors de la création d'un cluster
Si vous créez un nouveau cluster Classic ou VPC, vous pouvez enregistrer une instance Secrets Manager et un groupe de secrets dans le cluster lors de la création. Les secrets du cluster sont stockés dans l'instance Secrets Manager 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 oc cluster create classic ou ibmcloud oc 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.