Red Hat AI Inference に対する IAM アクセスの管理
アカウントユーザーによる「 Red Hat AI Inference 」プロジェクトへのアクセス権限は、 IBM Cloud® (IAM) Identity and Access Management によって管理されます。 アカウント内の Red Hat AI Inference サービスにアクセスするユーザーごとに、IAM 役割を持つアクセス・ポリシーを割り当てる必要があります。 Red Hat AI Inference へのアクセス権を割り当てる最適な方法を決定するために、以下の役割、アクションなどを確認してください。
アカウントユーザーに割り当てるアクセスポリシーによって、ユーザーが選択したサービスまたは特定のプロジェクトの範囲内で実行できる操作が決まります。 許可されるアクションは、 Red Hat AI Inference によってカスタマイズされ、そのサービスに対して実行が許可される操作として定義されます。 各アクションは、IAM プラットフォーム、またはユーザーに割り当てることのできるサービス役割にマップされます。
また、使用したいリソースグループに対して「Viewer」ロールが割り当てられていることを確認してください。
IAMアクセスポリシーにより、さまざまなレベルのアクセスが可能になります。 選択肢としては、次のようなものがあります:
- 特定のプロジェクトに対して「閲覧」または「書き込み」のアクセス権を付与する。
- 多数のプロジェクトが存在する可能性のある特定のリソースグループに対して、読み取りまたは書き込みのアクセス権を付与する。
- 多くのプロジェクトを含む多数のリソースグループが存在し得るアカウント全体に対して、読み取りまたは書き込みのアクセス権を付与すること。
- リソースグループ内およびアカウントレベルで、「 Red Hat AI Inference 」プロジェクトへの閲覧者アクセス権を付与します。
- リソースグループおよびアカウントレベルにおいて、 Red Hat AI Inference プロジェクトを作成する権限を付与します。
特定のロールとそのアクションが、アドレスを探すユースケースに適合しない場合は、カスタム・ロールを作成して、含めるアクションを選択できます。
Red Hat AI Inference サービスを利用する際、各ロールで実行可能なタスクの種類をまとめた以下の表を確認してください。 プラットフォーム管理ロールを使用すると、ユーザーはプラットフォームレベルでサービスリソースに対するタスクを実行できます。たとえば、サービスへのユーザーアクセス権の割り当て、プロジェクトの作成や削除、プロジェクトとアプリケーションの紐付けなどが可能です。 サービスアクセスロールにより、ユーザーは Red Hat AI Inference にアクセスし、 Red Hat AI Inference のAPIを呼び出すことができるようになります。
これは、プラットフォームの各役割によってユーザーがどのような操作を行えるかについて、大まかにまとめたものです。 各ロールが割り当てられた際に、どのようなタスクを完了できるか、あるいはユーザーが通常どのような業務を行うことになるかについて、平易な言葉で説明してください。
IAM 役割とアクション
| プラットフォーム役割 | 説明 |
|---|---|
| ビューアー | 閲覧者としては、プロジェクトを閲覧することはできますが、編集することはできません。 |
| オペレーター | オペレーターとして、サービスのダッシュボードの表示など、プロジェクトの設定や運用に必要なプラットフォーム上の操作を行うことができます。 |
| エディター | エディターは、アカウントの管理とアクセス・ポリシーの割り当てを除き、すべてのプラットフォーム・アクションを実行できます。 |
| 管理者 | 管理者は、他のユーザーへのアクセス・ポリシーの割り当てを含め、この役割が割り当てられているリソースに基づいてすべてのプラットフォーム・アクションを実行できます。 |
| サービス・コンフィギュレータ・リーダー | ガバナンス管理のためのサービス構成を読み取る機能。 |
| Key Manager | キー管理者として、このサービスは、新しいリソースキーの作成など、リソースキーの管理に必要なプラットフォーム操作を実行できます。 |
| サービス役割 | 説明 |
|---|---|
| リーダー | リーダーは、サービス固有のリソースの表示など、サービス内の読み取り専用アクションを実行できます。 |
| ライター | ライターには、サービス固有のリソースの作成および編集を含め、リーダー役割を超える権限があります。 |
| マネージャー | 管理者には、サービスで定義されている特権付きアクションを実行する、ライター役割を超える権限があります。 それに加え、サービス固有のリソースを作成および編集できます。 |
| 操作およびイベント | 説明 | 役割 |
|---|---|---|
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 Inference に、 Object Storage サービスに対する「 Writer 」アクセスロールを付与します。 ログイン中のユーザーも、同じ権限を持っている必要があります。
-
Red Hat AI Inference および 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 Inference に対して別のサービス認証を作成し、 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アクセス管理』を参照してください。
アクセス権を割り当てるには、一般的に2つの方法があります:
- ユーザー別のアクセス・ポリシー。
- コンソールで**「管理」>「アクセス (IAM)」>「ユーザー」**ページから、ユーザー別のアクセス・ポリシーを管理できます。 IAM アクセス権を割り当てる手順については、「 コンソールでのリソースへのアクセス権の管理 」を参照してください。
- アクセス・グループ。
- アクセス・グループは、アクセス権限をグループに 1 回割り当てることによってアクセス管理を簡素化するために使用されます。その後、ユーザーのアクセス権限を制御するために、必要に応じてグループにユーザーを追加したり、グループからユーザーを削除したりすることができます。 コンソールの**「管理」>「アクセス (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 Inference へのアクセス権を割り当てる
アクセス権限の割り当て、割り当て解除、表示を行うステップバイステップの手順については、CLI を使用したリソースに対するアクセス権限の割り当てを参照してください。 次の例は、 instructlab に「 Writer 」ロールを割り当てるコマンドを示しています:
サービス名には instructlab を使用します。 ロールIDを確認するには、 ibmcloud iam roles コマンドを実行してください。 また、2語以上からなるロール名には引用符を付けてください。 例えば、 "Service Configuration Reader" などです。
アカウント内の特定の Red Hat AI Inference プロジェクトについて、ユーザーに「Viewer」ロールを付与するためのコマンド例。
ibmcloud iam user-policy-create name@example.com --roles Viewer --service-name instructlab --attributes "projectId=1b111111-1ef1-11f1-1111-111bae11111a"
アカウント内の特定の Red Hat AI Inference プロジェクトについて、ユーザーに「キーマネージャー」ロールを付与するためのコマンド例。
ibmcloud iam user-policy-create name@email.com --roles "Key Manager" --service-name instructlab
アカウント内のすべての Red Hat AI Inference プロジェクトについて、ユーザーに「Writer」ロールを付与するコマンドの例。
ibmcloud iam user-policy-create USER@EXAMPLE.COM --service-name instructlab --roles Writer
アカウントすべての Red Hat AI Inference サービスのインスタンスに「管理者」ロールを割り当てるためのコマンド例。
ibmcloud iam user-policy-create name@example.com --roles Administrator --service-name instructlab
アカウントすべてのリソースグループに「Viewer」ロールを割り当てるコマンド例。
ibmcloud iam user-policy-create name@example.com --roles Viewer --resource-type resource-group
特定のリソースグループ内のすべてのユーザーに「Viewer」ロールを割り当てるコマンドの例。
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 Inference へのユーザーアクセス権を割り当てる
アクセス権限の割り当て、削除、および確認のステップバイステップの手順については、API を使用したリソースへのアクセス権限の割り当てまたはポリシー API 資料の作成を参照してください。 API でアクセス権限を割り当てるには、以下の表に記載している役割のクラウド・リソース名 (CRN) を使用します。
サービス名には「 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 |
| Key Manager | 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}}