管理 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 角色和操作
| 平台角色 | 描述 |
|---|---|
| 查看者 | 作为查看者,您可以查看项目,但无法对其进行修改。 |
| 运算符 | 作为操作员,您可以执行配置和运行项目所需的平台操作,例如查看某项服务的仪表盘。 |
| 编辑者 | 作为编辑者,您可以执行所有平台操作,但管理帐户和分配访问策略除外。 |
| 管理员 | 作为管理员,您可以基于分配给此角色的资源,执行所有平台操作,包括向其他用户分配访问策略。 |
| 服务配置器阅读器 | 读取服务配置以进行治理管理的能力。 |
| 密钥管理器 | 作为密钥管理员,该服务可以执行管理资源密钥所需的平台操作,例如创建新的资源密钥。 |
| 服务角色 | 描述 |
|---|---|
| 读取者 | 作为读取者,您可以在服务中执行只读操作,如查看服务特定资源。 |
| 写入者 | 作为写入者,您的许可权超过读取者角色,包括创建和编辑服务特定资源。 |
| 管理者 | 作为管理者,您的许可权超过写入者角色,可以完成服务所定义的特权操作。 此外,您还可以创建和编辑服务特定资源。 |
| 操作和事件 | 描述 | 角色 |
|---|---|---|
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”访问角色。 登录用户也必须拥有相同的权限。
-
为 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 -
请确认已创建授权策略。
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 -
可选:如果您使用的是私有仓库,请为 Red Hat AI 推理 创建另一个服务授权,并 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>
为用户分配对您资源的访问权限
您可以控制账户中的哪些用户(或用户组)可以访问您的 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 列表。
| 角色 | 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}}