管理 IAM 访问权限 InstructLab
您账户中用户访问 Red Hat AI InstructLab 项目的权限由 IBM Cloud® Identity and Access Management (IAM) 控制。 访问 Red Hat AI InstructLab 服务的每个用户都必须分配一个具有 IAM 角色的访问策略。 查看以下角色、操作等,以帮助确定分配访问权限到 Red Hat AI InstructLab 的最佳方式。
在账户中为用户分配的访问策略决定了用户可以在所选服务或特定项目的范围内执行哪些操作。 允许的操作由 Red Hat AI InstructLab 自定义,并定义为允许在服务上执行的操作。 每个操作都对应一个IAM平台或服务角色,您可以将其分配给用户。
确保您也拥有要使用的资源组的查看器角色。
IAM 访问策略支持不同级别的访问。 部分选项包括:
- 允许读者或作家访问特定项目。
- 允许读者或作家访问可能有许多项目的特定资源组。
- 让阅读者或写作者访问整个账户,因为账户中可能有许多资源组和许多项目。
- 允许查看器访问资源组内的 InstructLab 项目和账户级别。
- 赋予创建权限,以便在资源组和账户级别内创建 InstructLab 项目。
如果某个特定角色及其操作不符合您要解决的问题,您可以 创建自定义角色 并选择要包含的操作。
查看以下表格,了解使用 Red Hat AI InstructLab 服务时,每个角色允许执行的任务类型。 平台管理角色使用户能够在平台层面对服务资源执行任务,例如分配用户对服务的访问权限、创建或删除项目以及将项目绑定到应用程序。 服务访问角色使用户能够访问 Red Hat AI InstructLab 并调用 Red Hat AI InstructLab 的应用程序接口。
这是平台角色允许用户执行操作的高级视图。 用通俗易懂的语言描述用户在分配每个角色时可以完成哪些任务或常见工作。
IAM 角色和操作
| 平台角色 | 描述 |
|---|---|
| 查看者 | 作为查看器,您可以查看项目,但不能修改项目。 |
| 运算符 | 作为操作员,您可以执行配置和操作项目所需的平台操作,例如查看服务的仪表板。 |
| 编辑者 | 作为编辑者,您可以执行所有平台操作,但管理帐户和分配访问策略除外。 |
| 管理员 | 作为管理员,您可以基于分配给此角色的资源,执行所有平台操作,包括向其他用户分配访问策略。 |
| 服务配置阅读器 | 为治理管理读取服务配置的能力。 |
| 主要负责人 | 作为密钥管理器,该服务可以执行管理资源密钥所需的平台操作,例如创建新的资源密钥。 |
| 服务角色 | 描述 |
|---|---|
| 读者 | 作为读取者,您可以在服务中执行只读操作,如查看服务特定资源。 |
| 写入者 | 作为写入者,您的许可权超过读取者角色,包括创建和编辑服务特定资源。 |
| 管理者 | 作为管理者,您的许可权超过写入者角色,可以完成服务所定义的特权操作。 此外,您还可以创建和编辑服务特定资源。 |
| 操作和事件 | 描述 | 角色 |
|---|---|---|
instructlab.dashboard.view |
查看 InstructLab 仪表板。 | 操作员、管理员、编辑 |
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 人工制品
为 Object Storage 服务赋予 InstructLab Writer 访问角色。 登录用户也必须拥有相同的权限。
-
为 InstructLab 和 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 -
确认已创建授权策略。
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 -
可选项如果使用私有存储库,请为 InstructLab 和 Secrets Manager
ibmcloud iam authorization-policy-create Reader --source-service-name instructlab --target-service-name secrets-manager -
如有必要,将
Writer权限赋予登录用户。 包括上一步中的 Object Storage 服务实例 ID。ibmcloud iam user-policy-create <user> --roles Writer --service-instance <cloud-object-storage-instance-id>
分配用户访问资源的权限
您可以控制账户中的哪些用户(或用户组)访问 InstructLab 资源。 请按照以下步骤在控制台中分配访问权限。
有关如何分配访问权限的详细信息,如使用 CLI 的步骤或访问 InstructLab 或 Object Storage 邮筒的不同方法,请参阅 IBM Cloud 上的管理 Red Hat AI InstructLab 的 IAM 访问权限。
分配访问权限有两种常见方法:
- 每个用户的访问权限。
- 您可以从控制台中的管理 > 访问 (IAM) > 用户页面管理每个用户的访问策略。 有关分配IAM访问权限的步骤,请参阅 控制台中的资源访问管理。
- 访问组。
- 访问组用于简化访问管理,只需将访问权限分配给一个组,然后根据需要添加或删除组中的用户,即可控制他们的访问权限。 您可以在控制台的 “管理 > 访问(IAM) > 访问组 ”页面中管理访问组及其访问权限。 更多信息,请参阅 在控制台中为组分配访问权限。
{{../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}}
使用 CLI 分配访问 InstructLab
有关分配、删除和查看访问权限的详细步骤,请参阅 使用 CLI 分配资源访问权限。 以下示例显示了为 instructlab 分配 Writer 角色的命令:
服务名称请使用 instructlab。 要查找角色 ID,请运行 ibmcloud iam roles 命令。 此外,角色名称如果超过一个单词,请使用引号。 例如 "Service Configuration Reader"。
示例命令为账户中的特定 InstructLab 项目赋予用户“查看器”角色。
ibmcloud iam user-policy-create name@example.com --roles Viewer --service-name instructlab --attributes "projectId=1b111111-1ef1-11f1-1111-111bae11111a"
示例命令,为账户中的特定 InstructLab 项目赋予用户密钥管理器角色。
ibmcloud iam user-policy-create name@email.com --roles "Key Manager" --service-name instructlab
示例命令为账户中的所有 InstructLab 项目赋予用户 Writer 角色。
ibmcloud iam user-policy-create USER@EXAMPLE.COM --service-name instructlab --roles Writer
为账户中 InstructLab 服务的所有实例分配管理员角色的示例命令。
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
使用应用程序接口为 InstructLab 分配用户访问权限
有关分配、删除和审查访问权限的详细步骤,请参阅 使用API分配资源访问权限 或 创建策略API文档。 下表中的角色云资源名称(CRN)用于通过API分配访问权限。
使用 instructlab 作为服务名称,并参阅角色 CRN 值表,确保使用了正确的角色值。 查看以下角色 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"
}
]
}
]
}
{{../account/iam-mng-access.md#access-resources-api}}
{{../account/iam-mng-access.md#access-resourcegroups-api}}