Gerenciando o acesso do IAM para o InstructLab

O acesso aos projetos Red Hat AI InstructLab para os usuários da sua conta é controlado pelo IBM Cloud® Identity and Access Management (IAM). Todo usuário que acessa o serviço Red Hat AI InstructLab em sua conta deve ter designada uma política de acesso com uma função do IAM. Analise as seguintes funções, ações e muito mais para ajudar a determinar a melhor maneira de atribuir acesso a Red Hat AI InstructLab.

A política de acesso que você atribui aos usuários da sua conta determina quais ações um usuário pode executar no contexto do serviço ou do projeto específico que você selecionou. As ações permitidas são personalizadas e definidas pelo site Red Hat AI InstructLab como operações que podem ser realizadas no serviço. Cada ação é mapeada para uma função de plataforma ou de serviço do IAM que pode ser designada a um usuário.

Certifique-se de que você também tenha a função Viewer para os grupos de recursos que deseja usar.

As políticas de acesso do IAM permitem o acesso em diferentes níveis. Algumas opções incluem as seguintes:

  • Conceder ao Reader ou Writer acesso a um projeto específico.
  • Conceder ao Reader ou Writer acesso a um grupo de recursos específico onde pode haver muitos projetos.
  • Conceder ao Reader ou Writer acesso a toda a conta, onde pode haver muitos grupos de recursos com muitos projetos.
  • Conceder ao Viewer acesso ao(s) projeto(s) InstructLab em um grupo de recursos e no nível da conta.
  • Conceder acesso de criação para criar projeto(s) InstructLab em um grupo de recursos e no nível da conta.

Se uma função específica e suas ações não se ajustarem ao caso de uso que você deseja abordar, é possível criar uma função customizada e selecionar as ações a serem incluídas.

Analise as tabelas a seguir que descrevem os tipos de tarefas que cada função permite quando você está trabalhando com o serviço Red Hat AI InstructLab. As funções de gerenciamento da plataforma permitem que os usuários executem tarefas nos recursos de serviço no nível da plataforma, por exemplo, atribuir acesso de usuário ao serviço, criar ou excluir projetos e vincular projetos a aplicativos. As funções de acesso ao serviço permitem que os usuários acessem o site Red Hat AI InstructLab e a capacidade de chamar a API do site Red Hat AI InstructLab.

Essa é uma visão de alto nível do que as funções da plataforma permitem que os usuários façam. Use uma descrição em linguagem simples sobre os tipos de tarefas que podem ser concluídas ou os trabalhos comuns que os usuários podem esperar fazer quando têm cada função atribuída.

Funções e ações do IAM

Funções da plataforma IAM
Função da plataforma Descrição
Visualizador Como visualizador, você pode ver os projetos, mas não pode modificá-los.
Operador Como operador, você pode executar as ações de plataforma necessárias para configurar e operar projetos, como visualizar o painel de um serviço.
Editor Como um editor, é possível executar todas as ações da plataforma, exceto gerenciar a conta e designar políticas de acesso.
Administrador Como um administrador, é possível executar todas as ações da plataforma com base no recurso ao qual essa função está sendo designada, incluindo a designação de políticas de acesso a outros usuários.
Leitor do configurador de serviços A capacidade de leitura da configuração de serviços do Gerenciamento de controle.
Gerente principal Como um gerenciador de chaves, o serviço pode executar ações de plataforma necessárias para gerenciar chaves de recursos, como a criação de uma nova chave de recurso.
Funções de acesso de serviço do IAM
Função de serviço Descrição
Leitor Como um leitor, é possível executar ações somente leitura em um serviço, como visualizar recursos específicos do serviço.
Gravador Como um gravador, você tem permissões além da função de leitor, incluindo a criação e a edição de recursos específicos do serviço.
Gerente Como um gerenciador, você tem permissões além da função de gravador para concluir ações privilegiadas, conforme definido pelo serviço. Além disso, é possível criar e editar recursos específicos do serviço.
Ações do IAM
ações e eventos Descrição Funções
instructlab.dashboard.view Visualize os painéis do site InstructLab. Operador, administrador, editor
instructlab.taxonomy.read Leia os detalhes de uma taxonomia. Leitor, Gravador, Gerenciador
instructlab.taxonomy.create Criar taxonomias Gravador, Gerente
instructlab.taxonomy.list Listar taxonomias. Leitor, Gravador, Gerenciador
instructlab.taxonomy.delete Excluir taxonomias. Gravador, Gerente
instructlab.sdgdata.read Leia os detalhes de uma execução de geração de dados. Leitor, Gravador, Gerenciador
instructlab.sdgdata.list Listar execuções de geração de dados. Leitor, Gravador, Gerenciador
instructlab.sdgdata.create Crie uma execução de geração de dados. Gravador, Gerente
instructlab.sdgdata.delete Excluir uma execução de geração de dados. Gravador, Gerente
instructlab.sdgdata.stop Interromper uma execução de geração de dados. Gravador, Gerente
instructlab.sdgdata.stop Interromper uma execução de geração de dados. Gravador, Gerente
instructlab.model.read Leia os detalhes de uma execução de treinamento de modelo. Leitor, Gravador, Gerenciador
instructlab.model.list Liste as execuções de treinamento do modelo. Leitor, Gravador, Gerenciador
instructlab.model.create Crie uma execução de treinamento de modelo. Gravador, Gerente
instructlab.model.delete Excluir uma execução de treinamento de modelo. Gravador, Gerente
instructlab.model.stop Interromper uma execução de treinamento de modelo. Gravador, Gerente

Conceda a InstuctLab permissão para criar e atualizar os artefatos de Object Storage

Atribua a InstructLab a função de acesso Writer para o serviço Object Storage. O usuário conectado também deve ter a mesma permissão.

  1. Crie a política de autorização para InstructLab e Object Storage.

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

    Se você já tiver recursos do site Object Storage para usar, poderá definir o escopo da autorização apenas para esses recursos.

    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. Verifique se a política de autorização foi criada.

    ibmcloud iam authorization-policies
    

    Resultado quando a autorização não tem o escopo de um intervalo específico do site Object Storage:

    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
    

    Resultado quando a autorização tem o escopo de um intervalo específico de Object Storage:

    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. Opcional Se você estiver usando um repositório privado, crie outra autorização de serviço para InstructLab e Secrets Manager

    ibmcloud iam authorization-policy-create Reader --source-service-name instructlab --target-service-name secrets-manager
    
  4. Se necessário, conceda a permissão Writer ao usuário conectado. Inclua o ID da instância do serviço Object Storage da etapa anterior.

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

Atribuir acesso de usuário aos seus recursos

É possível controlar quais usuários (ou grupos de usuários) da sua conta acessam os recursos do site InstructLab. Siga estas etapas para atribuir acesso no console.

Para obter mais detalhes sobre como você pode atribuir acesso, como as etapas para usar a CLI ou as diferentes formas de escopo de acesso a InstructLab ou ao seu bucket Object Storage, consulte Gerenciar o acesso IAM para Red Hat AI InstructLab em IBM Cloud.

Há duas maneiras comuns de atribuir acesso:

Políticas de acesso por usuário.
É possível gerenciar políticas de acesso por usuário na página Gerenciar > Acesso (IAM) > Usuários no console. Para obter informações sobre as etapas de atribuição de acesso ao IAM, consulte Gerenciamento de acesso a recursos no console.
Grupos de acesso.
Os grupos de acesso são usados para aperfeiçoar o gerenciamento de acesso, designando acesso a um grupo uma vez, em seguida, podendo incluir ou remover usuários do grupo, conforme necessário, para controlar seus acessos. Você gerencia grupos de acesso e seus acessos na página Gerenciar > Acesso (IAM) > Grupos de acesso no console. Para obter mais informações, consulte Designado acesso a um grupo no 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}}

Atribuição de acesso a InstructLab usando a CLI

Para obter instruções passo a passo para designar, remover e revisar o acesso, consulte Designando acesso a recursos usando a CLI. O exemplo a seguir mostra um comando para atribuir a função Writer para instructlab:

Use instructlab para o nome do serviço. Para localizar os IDs de função, execute o comando ibmcloud iam roles. Além disso, use aspas ao redor de nomes de funções que contenham mais de uma palavra. Por exemplo, "Service Configuration Reader".

Exemplo de comando para atribuir a um usuário a função Viewer para um projeto InstructLab específico na conta.

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

Exemplo de comando para atribuir a um usuário a função de Key Manager para um projeto InstructLab específico na conta.

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

Exemplo de comando para atribuir a um usuário a função Writer em todos os projetos InstructLab da conta.

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

Exemplo de comando para atribuir a função de Administrador a todas as instâncias do serviço InstructLab na conta.

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

Exemplo de comando para atribuir a função Viewer a todos os grupos de recursos da conta.

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

Exemplo de comando para atribuir a função Viewer a todos os usuários em um grupo de recursos específico.

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

Exemplo de comando para obter um grupo de recursos com a função Administrador.

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

Atribuição de acesso de usuário a InstructLab usando a API

Para obter instruções passo a passo para designar, remover e revisar o acesso, consulte Designando acesso a recursos usando a API ou Criar uma política nos docs da API. Os cloud resource names (CRNs) de função na tabela a seguir são usados para designar acesso com a API.

Use instructlab para o nome do serviço e consulte a tabela de valores de CRN da função para garantir que esteja usando o valor correto para a função. Analise a seguinte lista de CRNs de função.

CRNs de função de IAM
Função CRN
Leitor crn:v1:bluemix:public:iam::::serviceRole:Reader
Gravador crn:v1:bluemix:public:iam::::serviceRole:Writer
Gerente crn:v1:bluemix:public:iam::::serviceRole:Manager
Visualizador crn:v1:bluemix:public:iam::::role:Viewer
Operador crn:v1:bluemix:public:iam::::role:Operator
Editor crn:v1:bluemix:public:iam::::role:Editor
Administrador crn:v1:bluemix:public:iam::::role:Administrator
Leitor do configurador de serviços crn:v1:bluemix:public:iam::::role:ConfigReader
Gerente principal crn:v1:bluemix:public:resource-controller::::role:KeyManager

O exemplo a seguir atribui a função Writer para 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}}