Création d'une tâche Code Engine

Le type de secret "custom credentials" permet aux utilisateurs de Secrets Manager de gérer le cycle de vie des informations d'identification pour des systèmes externes (par exemple, Artifactory, PagerDuty ) en utilisant les API et les intégrations de Secrets Manager. Pour créer des secrets d'identification personnalisés, vous devez d'abord configurer un projet sur IBM Cloud® Code Engine et définir un travail d' interface entre Secrets Manager et le service externe nécessitant des informations d'identification.

Les identifiants personnalisés prennent en charge un large éventail de systèmes tiers, c'est pourquoi les conseils pour la configuration de votre tâche Code Engine sont volontairement généraux et se concentrent sur les meilleures pratiques Code Engine. Si vos paramètres sont correctement formatés et que vous sélectionnez un projet et un travail Code Engine valides, Secrets Manager peut exécuter le travail avec différentes configurations. Cependant, Secrets Manager ne permet pas de vérifier si votre configuration correspond à votre cas d'utilisation spécifique. Il n'exécute que l'installation fournie.

Pour vous aider à mettre en œuvre une logique de travail permettant d'interagir avec des fournisseurs externes, Secrets Manager propose une documentation destinée aux développeurs, des bonnes pratiques, des outils de génération et de déploiement de tâches, ainsi que des exemples de code. Découvrez comment concevoir un nouveau travail de fournisseur d'informations d'identification dans le référentiel Custom Credentials Providers.

Cycle de vie de l'emploi du fournisseur de titres de compétences

Le déroulement typique d'un travail est le suivant :

  1. Création des informations d'identification, où de nouvelles informations d'identification sont générées.
  2. Suppression des informations d'identification, lorsque les informations d'identification sont révoquées.
  3. Mise à jour de la tâche secrète, qui renvoie le résultat à Secrets Manager.

Le diagramme de flux de travail suivant ( Code Engine ) illustre ce cycle de vie.

Le diagramme montre le cycle de vie d'un emploi de fournisseur d'informations d'identification Code Engine
Code Engine cycle de vie d'un emploi

Secrets Manager retente quotidiennement (jusqu'à 10 jours) de supprimer les informations d'identification après l'échec d'une tentative de suppression. Les tentatives de requêtes sont recommandées le cas échéant, mais omises dans le diagramme de flux par souci de clarté. Une réponse d'état 400 ou 404 à la demande de mise à jour de la tâche secrète indique que la tâche secrète ne peut pas être mise à jour par une nouvelle tentative.

Remarques relatives à la sécurité

Renforcer la sécurité :

  • Suivez le principe du moindre privilège: limitez l'accès aux tâches aux seuls secrets nécessaires en utilisant un groupe de secrets dédié.
  • Rôles IAM: affectez la clé API utilisée par le travail pour s'authentifier auprès de Secrets Manager le SecretTaskUpdater rôle. Si le travail doit lire des secrets, attribuez également le rôle SecretsReader rôle. Ces deux rôles doivent être confiés au groupe secret spécialisé.
  • Évitez les informations personnelles identifiables (PII) et les données confidentielles: n'utilisez pas d'identifiants personnels ou de données confidentielles (telles que les adresses électroniques ou les numéros de sécurité sociale) comme paramètres d'entrée ou comme identifiants. Secrets Manager traite les paramètres d'entrée et les identifiants comme des métadonnées, et non comme des données secrètes sensibles.

Traitement des erreurs

Si la tâche du fournisseur d'informations d'identification ne parvient pas à créer ou à supprimer les informations d'identification, elle doit mettre à jour le site Secrets Manager en indiquant un code d'erreur d'application et un message d'erreur destiné à l'utilisateur. Cette erreur est affichée dans la console Secrets Manager pour la tâche qui a échoué et permet à l'utilisateur d'appliquer une action corrective.

Traitement des incidents

Par défaut, Secrets Manager configure Code Engine pour qu'il supprime immédiatement les travaux terminés. Cela permet d'éviter l'accumulation de travaux et de ne pas dépasser les limites de quotas au fil du temps. Toutefois, au cours du développement, vous pouvez souhaiter conserver les travaux terminés afin d'examiner leur configuration et leurs journaux.

Pour conserver les travaux terminés à l'aide de l'interface utilisateur Code Engine:

  1. Dans la console IBM Cloud, naviguez vers Conteneurs → Projets, et ouvrez votre projet de fournisseur d'informations d'identification.
  2. Dans la page du projet, allez dans Emplois, cliquez sur l'onglet Emplois et sélectionnez votre emploi.
  3. Dans la page Configuration, ouvrez l'onglet Variables d'environnement.
  4. Localisez la variable CE_REMOVE_COMPLETED_JOBS et cliquez sur sa ligne pour la modifier.
  5. Dans le panneau Modifier la variable d'environnement, remplacez la valeur de IMMEDIATELY par 4320 (3 jours), puis cliquez sur Terminé.
  6. Retournez à la page Variables d'environnement et cliquez sur Déployer pour appliquer les modifications. Les travaux terminés sont désormais conservés pendant trois jours.

Pour dépanner les travaux dans un environnement de production, il est recommandé d'intégrer Code Engine avec Cloud Logs. Reportez-vous à la documentation des deux services pour les instructions d'installation.

Etapes suivantes

Après avoir créé votre projet et votre tâche Code Engine, vous pouvez maintenant passer à la création d'une configuration personnalisée du moteur d'identification.