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 役割とアクション

IAMプラットフォームの役割
プラットフォーム役割 説明
ビューアー ビューアーとして、プロジェクトを見ることはできますが、修正することはできません。
オペレーター オペレーターとして、サービスのダッシュボードを表示するなど、プロジェクトの設定や操作に必要なプラットフォームアクションを実行できます。
エディター エディターは、アカウントの管理とアクセス・ポリシーの割り当てを除き、すべてのプラットフォーム・アクションを実行できます。
管理者 管理者は、他のユーザーへのアクセス・ポリシーの割り当てを含め、この役割が割り当てられているリソースに基づいてすべてのプラットフォーム・アクションを実行できます。
サービス・コンフィギュレーター・リーダー ガバナンス管理のためのサービス構成を読み取る機能。
Key Manager キーマネージャーとして、サービスは新しいリソースキーの作成など、リソースキーの管理に必要なプラットフォームアクションを実行できる。
IAM サービス・アクセス権限ロール
サービス役割 説明
リーダー リーダーは、サービス固有のリソースの表示など、サービス内の読み取り専用アクションを実行できます。
ライター ライターには、サービス固有のリソースの作成および編集を含め、リーダー役割を超える権限があります。
マネージャー 管理者には、サービスで定義されている特権付きアクションを実行する、ライター役割を超える権限があります。 それに加え、サービス固有のリソースを作成および編集できます。
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 モデルトレーニングの実行を停止する。 ライター、マネージャー

Object Storage アーティファクトを作成および更新する権限を InstuctLab に与える

InstructLab に Object Storage サービスの Writer アクセス・ロールを与える。 ログインしているユーザーも同じ権限を持っていなければならない。

  1. 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
    
  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. オプションプライベート・リポジトリーを使用している場合は、 InstructLab、別のサービス認証を作成します。 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>
    

リソースへのユーザーアクセスを割り当てる

アカウント内のどのユーザー(またはユーザーグループ)が 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のリストを確認してください。

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