InstructLab に対する IAM アクセスの管理
あなたのアカウントのユーザーの 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 プラットフォーム、またはユーザーに割り当てることのできるサービス役割にマップされます。
使用するリソースグループのViewerロールも持っていることを確認してください。
IAMアクセス・ポリシーは、さまざまなレベルでのアクセスを可能にする。 オプションには、以下のようなものがあります
- リーダーまたはライターに特定のプロジェクトへのアクセス権を与える。
- 多くのプロジェクトが存在する可能性のある特定のリソースグループに対して、リーダーまたはライターにアクセス権を与える。
- リーダーまたはライターに、アカウント全体へのアクセス権を与える。
- リソースグループおよびアカウントレベル内で、 InstructLab プロジェクトへのアクセス権をビューアに与える。
- リソースグループおよびアカウントレベル内で、 InstructLab プロジェクトを作成するための作成アクセス権を与える。
特定のロールとそのアクションが、アドレスを探すユースケースに適合しない場合は、カスタム・ロールを作成して、含めるアクションを選択できます。
Red Hat AI InstructLab サービスで作業しているときに、各ロールでどのような種類のタスクができるかをまとめた以下の表を確認してください。 プラットフォーム管理ロールを使用すると、ユーザーはプラットフォーム・レベルでサービス・リソースに対するタスクを実行できます。たとえば、サービスへのユーザー・アクセスの割り当て、プロジェクトの作成または削除、プロジェクトとアプリケーションのバインドなどが可能です。 サービス・アクセス・ロールは、ユーザーが Red Hat AI InstructLab にアクセスし、 Red Hat AI InstructLab の API を呼び出すことができるようにします。
これは、プラットフォームの役割によってユーザーが何ができるかについての概要です。 どのようなタスクが完了できるのか、または各ロールが割り当てられたときにユーザーが期待できる一般的な仕事について、わかりやすい言葉で説明してください。
IAM 役割とアクション
| プラットフォーム役割 | 説明 |
|---|---|
| ビューアー | ビューアーとして、プロジェクトを見ることはできますが、修正することはできません。 |
| オペレーター | オペレーターとして、サービスのダッシュボードを表示するなど、プロジェクトの設定や操作に必要なプラットフォームアクションを実行できます。 |
| エディター | エディターは、アカウントの管理とアクセス・ポリシーの割り当てを除き、すべてのプラットフォーム・アクションを実行できます。 |
| 管理者 | 管理者は、他のユーザーへのアクセス・ポリシーの割り当てを含め、この役割が割り当てられているリソースに基づいてすべてのプラットフォーム・アクションを実行できます。 |
| サービス・コンフィギュレーター・リーダー | ガバナンス管理のためのサービス構成を読み取る機能。 |
| Key Manager | キーマネージャーとして、サービスは新しいリソースキーの作成など、リソースキーの管理に必要なプラットフォームアクションを実行できる。 |
| サービス役割 | 説明 |
|---|---|
| リーダー | リーダーは、サービス固有のリソースの表示など、サービス内の読み取り専用アクションを実行できます。 |
| ライター | ライターには、サービス固有のリソースの作成および編集を含め、リーダー役割を超える権限があります。 |
| マネージャー | 管理者には、サービスで定義されている特権付きアクションを実行する、ライター役割を超える権限があります。 それに加え、サービス固有のリソースを作成および編集できます。 |
| 操作およびイベント | 説明 | 役割 |
|---|---|---|
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 |
モデルトレーニングの実行を停止する。 | ライター、マネージャー |
Object Storage アーティファクトを作成および更新する権限を InstuctLab に与える
InstructLab に Object Storage サービスの 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 の「Managing IAM access for Red Hat AI InstructLab 」を参照してください。
アクセスを割り当てる一般的な方法は2つある:
- ユーザー別のアクセス・ポリシー。
- コンソールで**「管理」>「アクセス (IAM)」>「ユーザー」**ページから、ユーザー別のアクセス・ポリシーを管理できます。 IAMアクセスを割り当てる手順については 、「コンソールでのリソースへのアクセス管理」 を参照してください。
- アクセス・グループ。
- アクセス・グループは、アクセス権限をグループに 1 回割り当てることによってアクセス管理を簡素化するために使用されます。その後、ユーザーのアクセス権限を制御するために、必要に応じてグループにユーザーを追加したり、グループからユーザーを削除したりすることができます。 コンソールの**「管理」>「アクセス (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。 また、1語以上の役名にはクォーテーションを使用する。 例えば "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 サービスのすべてのインスタンスに Administrator ロールを割り当てるコマンドの例。
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 を使用して InstructLab にユーザーアクセスを割り当てる
アクセス権限の割り当て、削除、および確認のステップバイステップの手順については、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"
}
]
}
]
}
{{../account/iam-mng-access.md#access-resources-api}}
{{../account/iam-mng-access.md#access-resourcegroups-api}}