管理 IAM 访问权限,用于 Red Hat AI 推理

您账户中用户对 Red Hat AI Inference 项目的访问权限由 IBM Cloud® Identity and Access Management (IAM)进行控制。 您账户中访问 Red Hat AI Inference 服务的每位用户,都必须被分配一个包含 IAM 角色的访问策略。 请查看以下角色、操作等内容,以帮助确定授予 Red Hat AI Inference 访问权限的最佳方式。

您在账户中为用户分配的访问策略,决定了用户在您所选的服务或特定项目范围内可以执行哪些操作。 允许的操作是由 Red Hat AI Inference 自定义并定义的,指允许对该服务执行的操作。 每项操作都映射到一个 IAM 平台或服务角色,您可以将该角色分配给用户。

请确保您对要使用的资源组也拥有“查看者”角色。

IAM 访问策略支持不同级别的访问权限。 以下是一些选项:

  • 授予某个项目“读取”或“写入”权限。
  • 向“读取者”或“写入者”授予对某个特定资源组的访问权限,该资源组中可能包含多个项目。
  • 向“读取”或“写入”用户授予对整个账户的访问权限,该账户中可能包含多个资源组,每个资源组下又包含多个项目。
  • 授予查看者对资源组内及账户层级的 Red Hat AI 推理 项目的访问权限。
  • 授予“创建”权限,以便在资源组和账户级别内创建 Red Hat AI 推理 项目。

如果某个特定角色及其操作不符合您希望解决的使用场景,您可以 创建自定义角色,并选择要包含的操作。

请查阅以下表格,其中概述了在使用“Red Hat AI Inference”服务时,每个角色允许执行的任务类型。 平台管理角色允许用户在平台层面对服务资源执行各项操作,例如:为用户分配服务访问权限、创建或删除项目,以及将项目与应用程序绑定。 服务访问角色允许用户访问 Red Hat AI Inference,并能够调用 Red Hat AI Inference 的 API。

这是对平台角色允许用户执行哪些操作的高层级概述。 请用通俗易懂的语言描述,当用户被分配到每个角色时,可以完成哪些类型的任务,或者通常会从事哪些工作。

IAM 角色和操作

IAM 平台角色
平台角色 描述
查看者 作为查看者,您可以查看项目,但无法对其进行修改。
运算符 作为操作员,您可以执行配置和运行项目所需的平台操作,例如查看某项服务的仪表盘。
编辑者 作为编辑者,您可以执行所有平台操作,但管理帐户和分配访问策略除外。
管理员 作为管理员,您可以基于分配给此角色的资源,执行所有平台操作,包括向其他用户分配访问策略。
服务配置器阅读器 读取服务配置以进行治理管理的能力。
密钥管理器 作为密钥管理员,该服务可以执行管理资源密钥所需的平台操作,例如创建新的资源密钥。
IAM 服务访问角色
服务角色 描述
读取者 作为读取者,您可以在服务中执行只读操作,如查看服务特定资源。
写入者 作为写入者,您的许可权超过读取者角色,包括创建和编辑服务特定资源。
管理者 作为管理者,您的许可权超过写入者角色,可以完成服务所定义的特权操作。 此外,您还可以创建和编辑服务特定资源。
IAM 操作
操作和事件 描述 角色
instructlab.dashboard.view 查看 Red Hat AI Inference 仪表盘。 操作员、管理员、编辑
instructlab.taxonomy.read 阅读分类法的详细信息。 读取者、写入者和管理者
instructlab.taxonomy.create 创建分类法 写入者、管理者
instructlab.taxonomy.list 列出分类法。 读取者、写入者和管理者
instructlab.taxonomy.delete 删除分类法。 写入者、管理者
instructlab.sdgdata.read 查看数据生成运行的详细信息。 读取者、写入者和管理者
instructlab.sdgdata.list 列出数据生成任务。 读取者、写入者和管理者
instructlab.sdgdata.create 创建一个数据生成任务。 写入者、管理者
instructlab.sdgdata.delete 删除一次数据生成运行。 写入者、管理者
instructlab.sdgdata.stop 停止一次数据生成任务。 写入者、管理者
instructlab.sdgdata.stop 停止一次数据生成任务。 写入者、管理者
instructlab.model.read 阅读模型训练运行的详细信息。 读取者、写入者和管理者
instructlab.model.list 列出模型训练运行记录。 读取者、写入者和管理者
instructlab.model.create 创建一个模型训练任务。 写入者、管理者
instructlab.model.delete 删除一个模型训练任务。 写入者、管理者
instructlab.model.stop 停止模型的训练运行。 写入者、管理者

授予 InstuctLab 创建和更新 Object Storage 构建成果的权限

为 Red Hat AI 推理 授予 Object Storage 服务的“Writer”访问角色。 登录用户也必须拥有相同的权限。

  1. 为 Red Hat AI 推理 和 Object Storage 创建授权策略。

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

    如果您已有可用的 Object Storage 资源,可以将授权范围限定为仅这些资源。

    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. 请确认已创建授权策略。

    ibmcloud iam authorization-policies
    

    当授权未限定为特定的 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
    

    当授权范围限定为特定的 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. 可选:如果您使用的是私有仓库,请为 Red Hat AI 推理 创建另一个服务授权,并 Secrets Manager

    ibmcloud iam authorization-policy-create Reader --source-service-name instructlab --target-service-name secrets-manager
    
  4. 如有必要,请向已登录的用户授予 Writer 权限。 请包含上一步中获取的 Object Storage 服务实例ID。

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

为用户分配对您资源的访问权限

您可以控制账户中的哪些用户(或用户组)可以访问您的 Red Hat AI Inference 资源。 请按照以下步骤在控制台中分配访问权限。

有关如何授予访问权限的更多详细信息,包括使用 CLI 的步骤,以及限制对 Red Hat AI Inference 或您的 Object Storage 存储桶的访问范围的各种方法,请参阅《 管理 Red Hat AI Inference 的 IAM 访问权限 》。

分配访问权限通常有两种常见方式:

按用户设置的访问策略。
您可以在控制台的 “管理” >“访问(IAM)”> “用户” 页面中,按用户管理访问策略。 有关分配 IAM 访问权限的步骤,请 参阅控制台中的“管理资源访问权限”。
访问组。
访问组用于简化访问管理:只需向某个组分配一次访问权限,随后即可根据需要向该组添加或移除用户,从而控制其访问权限。 您可以在控制台的 “管理” > “访问(IAM)” > “访问组” 页面中管理访问组及其访问权限。 如需了解更多信息,请参阅“在控制台中为组分配访问权限”。

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

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

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

使用 CLI 授予对 Red Hat AI 推理 的访问权限

有关分配、撤销和查看访问权限的分步说明,请参阅 《 使用 CLI 分配资源访问权限 》。 以下示例展示了一条用于为 instructlab 分配 Writer 角色的命令:

请将服务名称设置为 instructlab。 要查找角色 ID,请运行 ibmcloud iam roles 命令。 此外,对于由多个单词组成的角色名称,请用引号括起来。 例如 "Service Configuration Reader"

以下命令示例用于将“查看者”角色授予用户,使其能够查看该账户中的特定 Red Hat AI 推理 项目。

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

以下命令示例用于将“密钥管理员”角色授予用户,使其在该账户中的特定 Red Hat AI 推理 项目中拥有该角色。

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

以下命令示例用于将“Writer”角色授予该账户中所有 Red Hat AI 推理 项目的用户。

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

以下命令示例用于为该账户中的所有 Red Hat AI 推理 服务实例分配“管理员”角色。

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

将“查看者”角色分配给该账户中所有资源组的示例命令。

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

将“查看者”角色分配给特定资源组中所有用户的示例命令。

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

获取具有“管理员”角色的资源组的示例命令。

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

使用 API 为用户分配对 Red Hat AI 推理 的访问权限

有关授予、撤销和审查访问权限的分步说明,请参阅 使用 API 授予资源访问权限创建策略 API 文档。 下表中的角色云资源名称(CRN)用于通过 API 授予访问权限。

请将服务名称设置为 instructlab,并参考“角色 CRN 值”表,以确保为该角色使用了正确的值。 请查看以下角色 CRN 列表。

IAM 角色的 CRN
角色 CRN
读取者 crn:v1:bluemix:public:iam::::serviceRole:Reader
写入者 crn:v1:bluemix:public:iam::::serviceRole:Writer
管理者 crn:v1:bluemix:public:iam::::serviceRole:Manager
查看者 crn:v1:bluemix:public:iam::::role:Viewer
运算符 crn:v1:bluemix:public:iam::::role:Operator
编辑者 crn:v1:bluemix:public:iam::::role:Editor
管理员 crn:v1:bluemix:public:iam::::role:Administrator
服务配置器阅读器 crn:v1:bluemix:public:iam::::role:ConfigReader
密钥管理器 crn:v1:bluemix:public:resource-controller::::role:KeyManager

以下示例为 instructlab 分配了“Writer”角色。

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"
        }
      ]
    }
  ]
}

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

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