IBM Cloud Docs
Configuration de Secrets Manager dans votre cluster Red Hat OpenShift

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 commande ibmcloud oc ingress secret create et référencez le CRN du certificat Ingress par défaut pour mettre en miroir le certificat dans l'espace de nom istio-system. Sans instance Secrets Manager, le certificat Ingress par défaut dans l'espace de nom default est automatiquement mis à jour. Toutefois, vous êtes responsable de la mise à jour régulière du certificat dans l'espace de nom istio-system à l'aide des commandes kubectl ou 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 kubectl ou 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 de ibmcloud ks ingress secret rm.
Quelle est la différence entre les commandes de l'interface de ligne de commande ibmcloud oc ingress instance et les commandes de l'interface de ligne de commande ibmcloud 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 secret et les commandes ibmcloud oc ingress instance. Les commandes ibmcloud oc ingress instance permettent de gérer vos instances Secrets Manager. Les commandes ibmcloud oc ingress secret sont 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.

  1. Dans la console d' IBM Cloud, cliquez sur Gérer > Accès (IAM ).
  2. Cliquez sur Autorisations.
  3. Cliquez sur Créer.
  4. Dans la liste des services Source, sélectionnez Kubernetes Service.
  5. Sélectionnez l'option permettant de définir la portée de l'accès à Toutes les ressources.
  6. Dans la liste des services Cible, sélectionnez Secrets Manager.
  7. Sélectionnez l'option permettant de définir la portée de l'accès à Toutes les ressources.
  8. Dans la section Accès au service, cochez l'option Manager.
  9. 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.

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.

  1. 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
    
  2. 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]
    
  3. 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.

  1. 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>
    
  2. 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.

    1. Listez les sous-domaines nlb-dns de votre cluster.

      ibmcloud oc 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 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>
      
    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.

      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écutez ibmcloud 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écutez ibmcloud 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:

  1. Dans la section Intégrations de la page de création de cluster, sélectionnez l'option permettant d'activer Secrets Manager.
  2. 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.
  3. Dans le menu déroulant GroupeSecrets Manager, sélectionnez le groupe de secrets à appliquer.
  4. Créez le cluster.
  5. Vérifiez que l'instance Secrets Manager est enregistrée dans le cluster.
    1. 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.
    2. Dans le panneau latéral, vérifiez que l'instance correcte est répertoriée sous Instances Secrets Manager enregistrées.
    3. Pour enregistrer des instances supplémentaires dans le cluster, cliquez sur Enregistrer des instances.