Gestion de l'accès IAM pour InstructLab

L'accès aux projets Red Hat AI InstructLab pour les utilisateurs de votre compte est contrôlé par IBM Cloud® Identity and Access Management (IAM). Chaque utilisateur qui accède au service Red Hat AI InstructLab dans votre compte doit se voir attribuer une règle d'accès avec un rôle IAM. Examinez les rôles, actions et autres éléments suivants afin de déterminer la meilleure façon d'attribuer un accès à Red Hat AI InstructLab.

La politique d'accès que vous attribuez aux utilisateurs de votre compte détermine les actions qu'un utilisateur peut effectuer dans le contexte du service ou du projet spécifique que vous sélectionnez. Les actions autorisées sont personnalisées et définies par Red Hat AI InstructLab comme des opérations qui peuvent être effectuées sur le service. Chaque action est associée à une plateforme IAM ou à un rôle de service que vous pouvez attribuer à un utilisateur.

Assurez-vous que vous avez également le rôle de visualiseur pour les groupes de ressources que vous souhaitez utiliser.

Les politiques d'accès IAM permettent l'accès à différents niveaux. Parmi les options possibles, on peut citer les suivantes :

  • Donner au lecteur ou au rédacteur l'accès à un projet spécifique.
  • Donner au lecteur ou au rédacteur l'accès à un groupe de ressources spécifique où il pourrait y avoir de nombreux projets.
  • Donner au lecteur ou au rédacteur l'accès à l'ensemble du compte lorsqu'il peut y avoir de nombreux groupes de ressources avec de nombreux projets.
  • Donner au visualiseur l'accès au(x) projet(s) InstructLab au sein d'un groupe de ressources et au niveau du compte.
  • Donner l'accès à la création de projet(s) InstructLab au sein d'un groupe de ressources et au niveau du compte.

Si un rôle spécifique et ses actions ne correspondent pas au cas d'utilisation que vous recherchez, vous pouvez créer un rôle personnalisé et sélectionner les actions à inclure.

Consultez les tableaux suivants qui décrivent les types de tâches que chaque rôle permet d'effectuer lorsque vous travaillez avec le service Red Hat AI InstructLab. Les rôles de gestion de la plate-forme permettent aux utilisateurs d'effectuer des tâches sur les ressources de service au niveau de la plate-forme, par exemple d'attribuer un accès utilisateur au service, de créer ou de supprimer des projets et de lier des projets à des applications. Les rôles d'accès aux services permettent aux utilisateurs d'accéder à Red Hat AI InstructLab et d'appeler l'API de Red Hat AI InstructLab.

Il s'agit d'une vue d'ensemble des possibilités offertes par les rôles de la plate-forme. Utilisez une description en langage clair du type de tâches qui peuvent être accomplies ou des travaux courants que les utilisateurs peuvent s'attendre à effectuer lorsque chaque rôle leur est attribué.

Rôles et actions IAM

Rôles de la plate-forme IAM
Rôle de plateforme Description
Afficheur En tant que spectateur, vous pouvez voir les projets, mais vous ne pouvez pas les modifier.
Opérateur En tant qu'opérateur, vous pouvez effectuer les actions de plateforme nécessaires à la configuration et à l'exploitation des projets, telles que l'affichage du tableau de bord d'un service.
Editeur En tant qu'éditeur, vous pouvez réaliser toutes les actions de plateforme à l'exception de la gestion des comptes et de l'affectation de règles d'accès.
Administrateur En tant qu'administrateur, vous pouvez réaliser toutes les actions de plateforme relatives à la ressource à laquelle ce rôle est affecté, y compris l'affectation de règles d'accès à d'autres utilisateurs.
Lecteur du configurateur de services Possibilité de lire la configuration des services pour la gestion de la gouvernance.
Gestionnaire principal En tant que gestionnaire de clés, le service peut effectuer les actions de plateforme nécessaires à la gestion des clés de ressources, telles que la création d'une nouvelle clé de ressource.
Rôle d'accès aux services IAM
Rôle de service Description
Lecteur En tant que lecteur, vous pouvez réaliser des actions en lecture seule au sein d'un service, par exemple, afficher des ressources spécifiques au service.
Auteur En tant qu'auteur, vous disposez de droits plus étendus que le rôle de lecteur, qui incluent la création et l'édition de ressources spécifiques au service.
Responsable En tant que responsable, vous disposez de droits plus étendus que le rôle d'auteur, qui vous permettent d'effectuer des actions privilégiées définies par le service. De plus, vous pouvez créer et éditer des ressources spécifiques au service.
actions et événements Description Rôles
instructlab.dashboard.view Consulter les tableaux de bord de InstructLab. Opérateur, administrateur, éditeur
instructlab.taxonomy.read Lire les détails d'une taxonomie. Lecteur, rédacteur, gestionnaire
instructlab.taxonomy.create Créer des taxonomies Auteur, Responsable
instructlab.taxonomy.list Lister les taxonomies. Lecteur, rédacteur, gestionnaire
instructlab.taxonomy.delete Supprimer des taxonomies. Auteur, Responsable
instructlab.sdgdata.read Lire les détails d'un cycle de génération de données. Lecteur, rédacteur, gestionnaire
instructlab.sdgdata.list Liste des cycles de génération de données. Lecteur, rédacteur, gestionnaire
instructlab.sdgdata.create Créer un cycle de génération de données. Auteur, Responsable
instructlab.sdgdata.delete Supprimer un cycle de génération de données. Auteur, Responsable
instructlab.sdgdata.stop Arrêter un cycle de génération de données. Auteur, Responsable
instructlab.sdgdata.stop Arrêter un cycle de génération de données. Auteur, Responsable
instructlab.model.read Lire les détails d'une formation au modèle. Lecteur, rédacteur, gestionnaire
instructlab.model.list Liste des cycles d'entraînement du modèle. Lecteur, rédacteur, gestionnaire
instructlab.model.create Créer un modèle d'entraînement. Auteur, Responsable
instructlab.model.delete Supprimer un cycle d'entraînement du modèle. Auteur, Responsable
instructlab.model.stop Arrêter l'entraînement d'un modèle. Auteur, Responsable

Donner à InstuctLab la permission de créer et de mettre à jour les artefacts de Object Storage

Donnez à InstructLab le rôle d'accès à Writer pour le service Object Storage. L'utilisateur connecté doit également disposer de la même autorisation.

  1. Créer la politique d'autorisation pour InstructLab et Object Storage.

    ibmcloud iam authorization-policy-create Writer --source-service-name instructlab --target-service-name cloud-object-storage
    

    Si vous disposez déjà de ressources Object Storage, vous pouvez limiter l'autorisation à ces ressources.

    ibmcloud iam authorization-policy-create Writer --source-service-name instructlab --target-service-name cloud-object-storage --target-service-instance-id <cloud-object-storage-instance-id> --target-resource <cloud-object-storage-bucket> --target-resource-type bucket
    
  2. Vérifiez que la politique d'autorisation a été créée.

    ibmcloud iam authorization-policies
    

    Résultat lorsque l'autorisation n'est pas limitée à un panier Object Storage spécifique :

    Getting authorization policies under account abc1234 as user...
    OK
    
    ID:                        <id>
    Source service name:       instructlab
    Source service instance:   All instances
    Target service name:       cloud-object-storage
    Target service instance:   All instances
    Roles:                     Writer
    

    Résultat lorsque l'autorisation est limitée à un seau Object Storage spécifique :

    Getting authorization policies under account abc1234 as user...
    OK
    
    ID:                        <id>
    Source service name:       instructlab
    Source service instance:   All instances
    Target service name:       cloud-object-storage
    Target service instance:   bucket
    Roles:                     Writer
    
  3. Facultatif Si vous utilisez un référentiel privé, créez une autre autorisation de service pour InstructLab et Secrets Manager

    ibmcloud iam authorization-policy-create Reader --source-service-name instructlab --target-service-name secrets-manager
    
  4. Si nécessaire, donnez l'autorisation Writer à l'utilisateur connecté. Inclure l'ID de l'instance de service Object Storage de l'étape précédente.

    ibmcloud iam user-policy-create <user> --roles Writer --service-instance <cloud-object-storage-instance-id>
    

Attribuer un accès utilisateur à vos ressources

Vous pouvez contrôler quels utilisateurs (ou groupes d'utilisateurs) de votre compte accèdent à vos ressources InstructLab. Procédez comme suit pour attribuer un accès dans la console.

Pour plus de détails sur la façon dont vous pouvez attribuer un accès, comme les étapes pour utiliser le CLI ou les différentes façons dont vous pouvez définir l'accès à InstructLab ou à votre panier Object Storage, voir Gérer l'accès IAM pour Red Hat AI InstructLab sur IBM Cloud.

Il existe deux manières courantes d'attribuer un accès :

Règles d'accès par utilisateur.
Vous pouvez gérer les règles d'accès par utilisateur à partir de la page Gérer > Accès (IAM) > Utilisateurs de la console. Pour plus d'informations sur les étapes d'attribution d'un accès IAM, consultez la rubrique Gestion des accès aux ressources dans la console.
Groupes d'accès.
Les groupes d'accès sont utilisés pour rationaliser la gestion des accès en affectant une fois l'accès à un groupe. Ensuite, vous pouvez ajouter ou supprimer des utilisateurs du groupe au besoin pour contrôler leur accès. Vous gérez les groupes d'accès et leur accès à partir de la page Gérer > Accès (IAM) > Groupes d'accès de la console. Pour plus d'informations, voir Affectation d'un accès à un groupe dans la console.

{{../account/iam-mng-access.md#access-resources-console}}

{{../account/iam-mng-access.md#access-to-resources-console}}

{{../account/iam-mng-access.md#access-to-resource-group}}

Attribution d'un accès à InstructLab à l'aide de la CLI

Pour obtenir des instructions détaillées sur l'affectation, la suppression et l'examen des accès, voir Affectation de l'accès aux ressources à l'aide de l'interface de ligne de commande. L'exemple suivant montre une commande permettant d'attribuer le rôle Writer à instructlab:

Utilisez instructlab comme nom de service. Pour trouver les ID de rôle, exécutez la commande ibmcloud iam roles. De même, utilisez des guillemets pour les noms de rôles qui comportent plus d'un mot. Par exemple "Service Configuration Reader".

Exemple de commande pour donner à un utilisateur le rôle de visualiseur pour un projet InstructLab spécifique dans le compte.

ibmcloud iam user-policy-create name@example.com --roles Viewer --service-name instructlab --attributes "projectId=1b111111-1ef1-11f1-1111-111bae11111a"

Exemple de commande pour donner à un utilisateur le rôle de Key Manager pour un projet spécifique InstructLab dans le compte.

ibmcloud iam user-policy-create name@email.com --roles "Key Manager" --service-name instructlab

Exemple de commande pour donner à un utilisateur le rôle de rédacteur pour tous les projets InstructLab dans le compte.

ibmcloud iam user-policy-create USER@EXAMPLE.COM --service-name instructlab --roles Writer

Exemple de commande pour attribuer le rôle d'administrateur à toutes les instances du service InstructLab dans le compte.

ibmcloud iam user-policy-create name@example.com --roles Administrator --service-name instructlab

Exemple de commande pour attribuer le rôle de visualiseur à tous les groupes de ressources du compte.

ibmcloud iam user-policy-create name@example.com --roles Viewer --resource-type resource-group

Exemple de commande pour attribuer le rôle de visualiseur à tous les utilisateurs d'un groupe de ressources spécifique.

ibmcloud iam user-policy-create name@example.com --roles Viewer --resource-type resource-group

Exemple de commande pour obtenir un groupe de ressources ayant le rôle d'administrateur.

ibmcloud iam service-policy-create test --roles Administrator --resource-group-name sample-resource-group

Attribution d'un accès utilisateur à InstructLab à l'aide de l'API

Pour obtenir des instructions détaillées sur l'affectation, la suppression et l'examen des accès, consultez Affectation de l'accès aux ressources à l'aide de l'API ou Création de documents de politique d'API. Les noms de ressource cloud (CRN) du rôle dans le tableau suivant sont utilisés pour affecter l'accès avec l'API.

Utilisez instructlab pour le nom du service et reportez-vous au tableau des valeurs CRN de rôle pour vous assurer que vous utilisez la valeur correcte pour le rôle. Examinez la liste suivante des CRN de rôle.

Rôle IAM CRNs
Rôle CRN
Lecteur crn:v1:bluemix:public:iam::::serviceRole:Reader
Auteur crn:v1:bluemix:public:iam::::serviceRole:Writer
Responsable crn:v1:bluemix:public:iam::::serviceRole:Manager
Afficheur crn:v1:bluemix:public:iam::::role:Viewer
Opérateur crn:v1:bluemix:public:iam::::role:Operator
Editeur crn:v1:bluemix:public:iam::::role:Editor
Administrateur crn:v1:bluemix:public:iam::::role:Administrator
Configurateur de services Lecteur crn:v1:bluemix:public:iam::::role:ConfigReader
Dirigeant clé crn:v1:bluemix:public:resource-controller::::role:KeyManager

L'exemple suivant attribue le rôle Writer à instructlab.

curl -X POST 'https://iam.cloud.ibm.com/v1/policies' -H 'Authorization: Bearer $TOKEN' -H 'Content-Type: application/json' -d '{
  "type": "access",
  "description": "Writer role for InstructLab",
  "subjects": [
    {
      "attributes": [
        {
          "name": "iam_id",
          "value": "IBMid-123453user"
        }
      ]
    }'
  ],
  "roles":[
    {
      "role_id": "crn:v1:bluemix:public:iam::::serviceRole:Writer"
    }
  ],
  "resources":[
    {
      "attributes": [
        {
          "name": "accountId",
          "value": "$ACCOUNT_ID"
        },
        {
          "name": "serviceName",
          "value": "instructlab"
        }
      ]
    }
  ]
}

{{../account/iam-mng-access.md#access-resources-api}}

{{../account/iam-mng-access.md#access-resourcegroups-api}}