Configuration de l'accès pour les liaisons de service

Les liaisons de services dans Code Engine utilisent un identifiant de service pour accéder aux services IBM Cloud. Un identifiant de service contient les informations d'identification permettant de communiquer avec une instance de service au nom de votre projet Code Engine. Avant de lier une instance de service à une charge de travail Code Engine, vous devez configurer l'accès aux liaisons selon que vous souhaitez que Code Engine crée et gère automatiquement l'ID de service pour vous ou que vous souhaitiez utiliser un ID de service que vous gérez.

Vous souhaitez configurer votre projet de sorte que tous les utilisateurs du projet puissent créer et supprimer des liaisons de service? Avec des droits suffisants, vous pouvez utiliser les pages d'intégration de projet de la console pour configurer des opérations de liaison de service à partir d'une seule page. Si vous ne disposez pas des droits suffisants pour effectuer ces actions, vous pouvez utiliser cette page pour vous aider à comprendre les droits requis. Voir Configuration des paramètres à l'échelle du projet.

Avant de pouvoir lier votre application, votre travail ou votre fonction à une instance de service IBM Cloud spécifique, déterminez si vous souhaitez créer et gérer votre propre ID de service ou si vous souhaitez que Code Engine crée et gère automatiquement l'ID de service pour vous. En fonction de votre choix, affectez les règles d'accès appropriées. Code Engine utilise un ID de service par projet pour gérer les liaisons de service.

Utilisation des politiques d'accès par défaut pour la liaison de service

Par défaut, Code Engine crée automatiquement un ID de service pour accéder à tous les services du groupe de ressources du projet Code Engine lorsque votre compte utilisé avec votre projet dispose de droits suffisants. L'ID de service est créé lors de la première opération de liaison de service.

Pour utiliser des règles d'accès de liaison de service par défaut lorsque votre projet Code Engine se trouve dans le même groupe de ressources que l'instance de service à laquelle vous souhaitez établir une liaison, configurez l'accès pour Code Engine afin de créer et de gérer automatiquement l'ID de service pour les liaisons de service.

Configuration de l'accès à Code Engine pour créer et gérer automatiquement l'ID de service pour les liaisons de service

Si votre instance de service se trouve dans le même groupe de ressources que votre projet Code Engine et que vous souhaitez que Code Engine crée et gère automatiquement l'ID de service pour la liaison de service pour vous, le compte IBM Cloud utilisé avec votre projet Code Engine doit disposer d'un accès au service Writer et d'un accès à la plateforme Operator, au minimum.

Avec ces droits définis pour votre compte, lorsque vous créez une liaison de service, Code Engine vérifie et configure automatiquement un ID de service avec un accès Operator et Manager pour tous les services du groupe de ressources du projet Code Engine. Code Engine utilise cet ID de service pour accéder aux services IBM Cloud avec des liaisons de service.

Chaque fois que Code Engine crée l'ID de service qui est utilisé pour les liaisons de service de votre projet, cet ID de service est réutilisé avec les liaisons de service suivantes dans le même projet, sauf si vous exécutez la commande d'interface de ligne de commande project update pour configurer votre projet afin de lier des services dans un autre groupe de ressources ou si vous exécutez la commande d'interface de ligne de commande project update pour utiliser un ID de service personnalisé avec des droits d'accès pour les liaisons de service Code Engine.

Par exemple, supposons que vous souhaitiez que Code Engine crée et gère automatiquement l'ID de service pour les liaisons de service pour une instance de service IBM Cloudant. Supposons également que le compte my-user utilisé avec votre projet Code Engine et l'instance de service IBM Cloudant se trouvent dans le même groupe de ressources.

Les étapes suivantes décrivent une manière de configurer les droits d'accès requis pour que Code Engine puisse créer et gérer automatiquement l'ID de service pour les liaisons de service pour my-user. Le propriétaire de compte de l'instance de service effectue les étapes suivantes pour affecter des droits pour my-user.

  1. Créez un groupe de ressources IAM pour les utilisateurs qui créent des liaisons de service Code Engine.

    1. Lancez Présentation de l'accès(IAM).
    2. Sélectionnez Gérer > Compte > Groupes de ressources > Créer un groupe de ressources.
    3. Créez un groupe de ressources ; par exemple, CodeEngine_servicebindings_resourcegroup.
  2. Créez les instances de service auxquelles vous souhaitez établir une liaison dans le même groupe de ressources. Pour cet exemple, créez une instance de service IBM Cloudant dans le groupe de ressources CodeEngine_servicebindings_resource group.

  3. Créez un groupe d'accès IAM pour les utilisateurs qui créent des liaisons de service Code Engine.

    1. Lancez Présentation de l'accès(IAM).

    2. Sélectionnez Gérer > Accès (IAM) > Groupes d'accès.

    3. Créez un groupe ; par exemple, CodeEngine_servicebindings_accessgroup.

    4. Depuis ce nouveau groupe d'accès, cliquez sur l'onglet Accès et affectez les deux règles d'accès suivantes au groupe d'accès. Pour la première règle d'accès,

      • Pour accéder au service, sélectionnez « All Identity and Access enabled services ».
      • Pour Ressources, sélectionnez le groupe de ressources spécifique que vous avez créé à l'étape précédente ; par exemple, CodeEngine_servicebindings_resourcegroup.
      • Pour l'accès au groupe de ressources, sélectionnez Viewer.
      • Pour les rôles et les actions, sélectionnez l'accès à la plateforme de Administrator.
      • Cliquez sur Ajouter pour ajouter la règle d'accès à ce groupe d'accès.
    5. Affectez la deuxième règle d'accès à ce groupe d'accès.

      • Pour accéder au service, sélectionnez « Code Engine ».
      • Pour Ressources, sélectionnez le groupe de ressources spécifique que vous avez créé à l'étape précédente ; par exemple, CodeEngine_servicebindings_resourcegroup.
      • Pour l'accès au groupe de ressources, sélectionnez Viewer.
      • Pour les rôles et les actions, sélectionnez l'accès au service de Writer et l'accès à la plateforme de Operator.
      • Cliquez sur Ajouter pour ajouter la règle d'accès à ce groupe d'accès.
    6. Cliquez sur Affecter pour affecter les règles d'accès à ce groupe d'accès.

  4. Ajoutez l'utilisateur my-user à ce groupe d'accès.

Vous êtes maintenant prêt à créer des liaisons de service dans Code Engine où Code Engine crée automatiquement un ID de service avec des droits suffisants pour créer des données d'identification de service pour vos instances de service spécifiées. Voir Liaison d'une instance de service à une application, un travail ou une charge de travail de fonction.

Configuration d'un projet pour lier des services dans un autre groupe de ressources

Par défaut, Code Engine crée automatiquement un ID de service pour accéder à tous les services du groupe de ressources du projet Code Engine lorsque votre compte utilisé avec votre projet dispose de droits suffisants. L'ID de service est créé lors de la première opération de liaison de service.

Toutefois, si l'instance de service IBM Cloud que vous souhaitez lier à votre charge de travail Code Engine se trouve dans un groupe de ressources différent du groupe de ressources du projet Code Engine pour votre charge de travail et que vous souhaitez que Code Engine crée et gère automatiquement l'ID de service pour la liaison de service pour vous, vous devez effectuer les actions suivantes avant de créer la liaison de service.

Par exemple, si votre projet Code Engine se trouve dans le groupe de ressources Default et que vous souhaitez vous connecter à une instance de service qui existe dans le groupe de ressources dev, vous devez mettre à jour le projet Code Engine afin que Code Engine puisse accéder aux instances de services dans d'autres groupes de ressources.

Mettre à jour le projet pour accéder aux instances de service dans d'autres groupes de ressources

Lorsque les ressources auxquelles vous souhaitez vous connecter se trouvent dans un autre groupe de ressources, configurez votre projet Code Engine avec l'interface de ligne de commande afin qu'elle puisse accéder aux ressources du groupe de ressources différent. Utilisez la commande ibmcloud ce project update et spécifiez l'option --binding-resource-group pour configurer un projet Code Engine pour l'accès de liaison de service pour toutes les instances de service d'un groupe de ressources. Cette commande indique à votre projet Code Engine le groupe de ressources auquel il peut être lié. Vous pouvez mettre à jour votre projet pour lier des services à un groupe de ressources différent uniquement à l'aide de l'interface de ligne de commande.

La project update commande fonctionne dans le projet sélectionné comme contexte actuel. Avant d'utiliser la commande project update confirmez que vous vous trouvez bien dans le projet souhaité. Utilisez la commande ibmcloud ce project current pour afficher les détails du projet actuellement ciblé. Si nécessaire, utilisez la ibmcloud ce project select commande pour sélectionner votre projet comme contexte actuel.

  • Pour configurer l'accès aux liaisons de service pour toutes les instances de service dans le groupe de ressources Par défaut :

    ibmcloud ce project update --binding-resource-group Default
    
  • Pour configurer l'accès à la liaison de service pour toutes les instances de service d'un groupe de ressources, en spécifiant l'ID du groupe de ressources,

    ibmcloud ce project update --binding-resource-group-id abcdabcdabcdabcdabcdabcdabcdabcd
    

    Pour obtenir la liste de vos groupes de ressources, y compris les ID de groupe de ressources, exécutez ibmcloud resource groups.

  • Pour configurer l'accès aux liaisons de service pour toutes les instances de service de tous les groupes de ressources :

    ibmcloud ce project update --binding-resource-group "*"
    

Lorsque vous exécutez la project update commande, un identifiant de service est créé pour le projet; il sert à configurer le projet en cours pour les liaisons de service. Si vous n'êtes pas autorisé à créer cet ID de service, vous recevez une erreur indiquant que votre projet n'est pas prêt à utiliser des liaisons de service. Adressez-vous à votre administrateur de compte pour connaître vos règles d'accès ou demandez à l'administrateur de configurer l'accès pour Code Engine afin de créer et de gérer automatiquement l'ID de service pour les liaisons de service.

Utilisation d'un ID de service personnalisé pour les liaisons de service

Si vous souhaitez plus de contrôle sur les stratégies d'accès ou les groupes de ressources, vous pouvez créer un ID de service personnalisé pour votre instance de service.

Votre organisation peut choisir d'utiliser un ID de service personnalisé pour accéder à une instance de service spécifique si le propriétaire du compte ne souhaite pas accorder à Administrator l'accès d'un utilisateur à Tous les services activés pour l'identité et l'accès dans un groupe de ressources, ce qui est requis pour que Code Engine crée et gère automatiquement l'ID de service pour les liaisons de service. Le propriétaire du compte peut vouloir limiter l'accès utilisateur à un type de service ou à une instance de service spécifique. Dans ces cas, un ID de service personnalisé fournit ce contrôle.

Pour utiliser un ID de service personnalisé pour les liaisons de service,

Création d'un ID de service personnalisé avec des droits d'accès pour les liaisons de service Code Engine

Lorsque vous utilisez un ID de service personnalisé, vous devez accorder à l'ID de service personnalisé l'accès à la plateforme Operator afin que cet ID de service puisse créer les données d'identification de service pour les liaisons de service.

Par exemple, supposons que vous souhaitiez créer une liaison de service pour lier une charge de travail Code Engine à une instance de service IBM Cloudant. Cependant, vous ne souhaitez pas accorder à l'utilisateur l'accès Administrator pour tous les services activés pour All Identity and Access au sein d'un groupe de ressources. Toutefois, vous souhaitez accorder à l'utilisateur l'accès à une instance spécifique de IBM Cloudant.

Les étapes suivantes décrivent une manière de configurer un ID de service personnalisé avec les droits d'accès requis afin que Code Engine puisse créer des liaisons de service pour my-user. Le propriétaire de compte de l'instance de service effectue les étapes suivantes pour créer un ID de service personnalisé.

  1. Créez un groupe de ressources IAM pour les utilisateurs qui créent des liaisons de service Code Engine.

    1. Lancez Présentation de l'accès(IAM).
    2. Sélectionnez Gérer > Compte > Groupes de ressources > Créer un groupe de ressources.
    3. Créez un groupe de ressources ; par exemple, CodeEngine_servicebindings_resourcegroup.
  2. Créez les instances de service auxquelles vous souhaitez établir une liaison dans le même groupe de ressources. Pour cet exemple, créez une instance de service IBM Cloudant dans le groupe de ressources CodeEngine_servicebindings_resource group.

  3. Créez un groupe d'accès IAM pour les utilisateurs qui créent des liaisons de service Code Engine.

    1. Lancez Présentation de l'accès(IAM).
    2. Sélectionnez Gérer > Accès (IAM) > Groupes d'accès.
    3. Créez un groupe ; par exemple, CodeEngine_servicebindings_accessgroup.
    4. Dans ce nouveau groupe d'accès, cliquez sur l'onglet Accès et affectez la règle d'accès suivante pour le service Code Engine.
      • Pour Service, sélectionnez Code Engine.
      • Pour Ressources, sélectionnez le groupe de ressources spécifique que vous avez créé à l'étape précédente ; par exemple, CodeEngine_servicebindings_resourcegroup.
      • Pour l'accès au groupe de ressources, sélectionnez Viewer.
      • Pour les rôles et les actions, sélectionnez l'accès au service de Writer et l'accès à la plateforme de Operator.
      • Cliquez sur Ajouter pour ajouter la règle d'accès à ce groupe d'accès.
    5. Cliquez sur Affecter pour affecter les règles d'accès à ce groupe d'accès.
    6. Créez les instances de service auxquelles vous souhaitez établir une liaison dans le même groupe de ressources. Pour cet exemple, créez une instance de service IBM Cloudant dans le groupe de ressources CodeEngine_servicebindings_resource group.
  4. Ajoutez l'utilisateur my-user à ce groupe d'accès.

  5. Créez un ID de service pour l'instance de service à laquelle vous souhaitez établir une liaison.

    1. Lancez Présentation de l'accès(IAM).
    2. Sélectionnez Gérer > Accès (IAM) > ID de service.
    3. Créez un ID de service ; par exemple, CodeEngine_servicebindings_serviceid.
    4. Dans ce nouvel ID de service, cliquez sur Affecter un groupe. Dans la page Affecter un accès, sélectionnez Politique d'accès. Ne sélectionnez pas Groupes d'accès. Affectez la règle d'accès suivante,
      • Pour Service, sélectionnez l'instance de service à laquelle vous souhaitez établir une liaison ; par exemple, l'instance de service IBM Cloudant.
      • Pour Ressources, sélectionnez le groupe de ressources spécifique que vous avez créé pour les utilisateurs qui peuvent créer des liaisons de service pour ce service.
      • Pour l'accès au groupe de ressources, sélectionnez Viewer.
      • Pour les rôles et les actions, sélectionnez l'accès au service de Manager et l'accès à la plateforme de Operator.
      • Cliquez sur Ajouter pour ajouter la règle d'accès à cet ID de service.
    5. Cliquez sur Affecter pour affecter les règles d'accès à cet ID de service.

Maintenant que vous disposez d'un ID de service personnalisé pour les liaisons de service, vous devez configurer votre projet Code Engine pour utiliser l'ID de service personnalisé.

Configuration d'un projet pour utiliser un ID de service personnalisé

Pour configurer un projet Code Engine pour que la liaison de service utilise un ID de service personnalisé que vous gérez, utilisez la commande CLI ibmcloud ce project update et spécifiez l'option --binding-service-id. Vous pouvez mettre à jour votre projet pour utiliser un ID de service personnalisé uniquement avec l'interface de ligne de commande.

La project update commande fonctionne dans le projet sélectionné comme contexte actuel. Avant d'utiliser la commande project update confirmez que vous vous trouvez bien dans le projet souhaité. Utilisez la commande ibmcloud ce project current pour afficher les détails du projet actuellement ciblé. Si nécessaire, utilisez la ibmcloud ce project select commande pour sélectionner votre projet comme contexte actuel.

  1. Pour trouver l'ID de votre service personnalisé, cliquez sur « Détails » sur la page dédiée à cet ID dans la console, ou exécutez la commande CLI suivante : ibmcloud iam service-ids .

  2. Exécutez la commande ibmcloud ce project update. Par exemple, si l'identifiant de votre service est ServiceId-12a3456b-c78d-901e-f2a3b4cabcde:

    ibmcloud ce project update --binding-service-id ServiceId-12a3456b-c78d-901e-f2a3b4cabcde
    

Chaque fois que vous exécutez la commande project update --binding-service-id, Code Engine remplace tout ID de service existant et utilise cet ID de service pour les liaisons de service.

Etapes suivantes

Maintenant que l'accès aux liaisons de service est configuré, vous êtes prêt à lier une instance de service à une charge de travail d'application, de travail ou de fonction.