IBM クォンタムプラットフォームを組織に導入する際の検討事項
IBM Quantum® Platform これは、 IBM Cloud® アカウントの IBM Quantum Compute Serviceのインスタンスおよびワークロードを管理するためのダッシュボードであり、アクセス管理の概要を簡潔に表示します。 組織の IBM Cloud アカウントには、複数のユーザーと複数のQuantum Computeインスタンスを登録でき、それぞれに独自の割り当てが設定されます。 アイデンティティおよびアクセス管理(IAM)は、どのユーザーがどのサービスインスタンスにアクセスできるかを制御するため、必要な場面ではアクセス範囲を制限しつつ、コラボレーションを促進することができます。 有料プランでサービスインスタンスを利用している場合、アクセス管理の重要性はさらに高まります。 アカウント、ユーザー、インスタンス、およびアクセス権限がどのように関連しているかの概要については、「 IBM Cloud のアカウント構造」 を参照してください。 このガイドで言及されているアクセスグループ、ポリシー、ロール、リソースグループなどのIAMの概念に関する詳細については、『 IBM Cloud 』のIAMドキュメントを参照してください。
このガイドでは、複数のサービスインスタンスを持つ組織におけるアクセス権の設定に関連する判断事項やトレードオフについて説明します。例えば、チームやワークロードごとに1つのインスタンスを割り当てる場合などが挙げられます。
組織内で複数の IBM Cloud アカウント(たとえば、事業部門ごとに個別のアカウントがあり、それぞれに独自のQuantum Computeインスタンスが割り当てられている場合など)を保有している場合は、それらを単一の IBM Cloud Enterpriseアカウントの下にリンクさせることができます。この Enterpriseアカウントには、請求を担当する1つのメインアカウントと、1つ以上の子アカウントが含まれます。 プレミアムプランまたはフレックスプランの割り当てを子アカウント間で再配分するには、 IBM Cloud サポートセンター を通じて IBM Quantum サポートまでお問い合わせください。 詳細については、『 IBM Cloud Enterprise』アカウントのドキュメントをご覧ください。
概要
IBM Cloud® このガイドで説明されている仕組みを実装するためのいくつかの方法を提供しています。 カスタムロールの詳細を除き、手順のほとんどは IBM Cloud に共通するものであり、Quantum Compute固有のものではありません。
関与するペルソナ
このガイドでは、以下のペルソナについて言及しています:
- ユーザー :Quantum Computeのリソース( サービスインスタンス )へのアクセス権を持ち、これらのリソースに関して他のユーザーと共同作業を行う可能性のある者。 ユーザーのアクセス権限は管理者によって管理されており、ユーザー自身はサービスインスタンスを作成したり削除したりすることはできません。
- クラウド管理者 : IBM Cloud アカウントの所有者であり、 IBM Quantum のComputeリソースを所有し、これらのリソースにアクセスできるユーザーを管理する者。 リソースの所有者である管理者は、有料リソースの利用料を請求されます。
- IDP 管理者 :ID プロバイダ(IDP)で ID とその属性を定義する管理者。
用語
本ガイドでは以下の用語を使用する:
- リソース : IBM Cloud における一般的な用語で、クラウドのユーザーインターフェース、CLI、またはAPIを通じて管理可能なオブジェクトを指します。 このガイドでは、「 リソース 」とは Quantum Compute Service のインスタンスを指します。
- サービスインスタンス :サービスインスタンスは、 IBM Quantum Compute Service を通じて、クラウドサービス(具体的には量子コンピュータ)にアクセスするために使用されます。 これはカタログを通じて定義されています。 同じプランまたは異なるプランに基づいて複数のサービスインスタンスを定義することができ、それぞれが異なる量子コンピューティングバックエンドへのアクセスを提供します。 詳細については、 IBM Cloud の各プランをご覧ください。
セットアップを計画する
IBM Quantum Platformを組織用にセットアップする前に、以下のことを決定する必要があります:
-
ユーザーの身元はどのように定義されるのでしょうか? IBM Cloud のユーザー、別のIDプロバイダー(IDP)のユーザー、あるいはその両方を設定できます。
- 別のIDPをご利用の場合、ユーザーをアクセスグループに割り当てるのは、クラウド管理者ですか、それともIDP管理者ですか?
- IDP管理者が動的ルールを通じてユーザーを割り当てる場合、照合キーとして使用するカスタムIDPユーザー属性(たとえば、属性
team)が必要になります。
-
サービスインスタンスはいくつ必要ですか?また、それぞれどのような用途に使用される予定ですか? インスタンス名は慎重に決めてください。 IBM Quantum Platform のユーザーインターフェースを通じてサービスインスタンスを作成するたびに、プラットフォームはユーザーに代わってIAMに対して追加の呼び出しを行い、そのインスタンスへの書き込みアクセス権を付与する、対応するアクセスグループ(インスタンス名に「Collaborators」を付加したもの)を作成します。 したがって、インスタンス名はアクセスグループ名にもなります。 この追加の手順は、 IBM Quantum Platform のユーザーインターフェースを通じてインスタンスを作成する場合にのみ行われます。 Terraform、 IBM Cloud のCLI、または IBM Cloud のAPIを使用してインスタンスを作成した場合は、この現象は発生しません。
- ワークロードはサービスインスタンスに属しており、そのインスタンスへのアクセス権を持つユーザーは、そのインスタンスのワークロードを確認できます。
- サービスインスタンスは、さまざまなプランに基づいて作成することができ、それによって異なるバックエンドやリソース割り当てへのアクセスが可能になります。
-
どのユーザーが、どのサービスインスタンスにアクセスする必要があるのでしょうか?
-
ユーザーはワークロードを削除できるようにすべきでしょうか? ワークロードをサービスインスタンス内に保持することで、課金コストの追跡可能性が高まります。
-
各インスタンスに対して自動的に作成されるアクセスグループを使用するか、独自に追加のアクセスグループを作成するか、個々のユーザーに直接アクセス権を割り当てるか、あるいはインスタンスをリソースグループに整理するか、どの方法を選択しますか?
- **アクセスグループは、**IBM Cloud のリソースに対するユーザーのアクセス権を管理するための、便利で一般的な方法です。 IBM Quantum Platform のユーザーインターフェースを通じて作成するすべてのサービスインスタンスには、すでに独自の「Collaborators」アクセスグループが設定されています。 そのグループをそのまま使用することも、 IBM Cloud コンソールで追加のアクセスグループを作成し、1つまたは複数のインスタンスにわたってチームやワークロード(例:
mlおよびfinance)ごとにユーザーをグループ化することもできます。 各アクセスグループでは、ユーザーが特定のサービスインスタンスやリソースグループにアクセスできるようにするカスタムロールが使用されます。 ユーザーグループでアクセスを共有する必要がない場合は、アクセスグループを使用せずに、個々のユーザーに直接アクセス権を割り当てることもできます。- IDP属性に基づく動的ルールを使用してユーザーをアクセスグループに割り当てる場合は、互いに部分文字列となるような属性値の使用は避けてください。 たとえば、属性値
chemlabとして とmlを使用した場合、 に一致するルールが にも一致mlしてしまいchemlab、意図せず予想以上のアクセス権限が与えられてしまうことになります。 やmlといった一意の値を使用するかchem-lab、接頭辞や接尾辞を追加して、意図しない部分文字列の一致を防ぐようにしてください。
- IDP属性に基づく動的ルールを使用してユーザーをアクセスグループに割り当てる場合は、互いに部分文字列となるような属性値の使用は避けてください。 たとえば、属性値
- リソースグループは、 サービスインスタンスを明確に区別する必要がある場合にのみ使用されます。 IBM Quantum Platform からサービスインスタンスを作成する際は、そのインスタンスが属するリソースグループを選択したり(タグを追加したり)できますが、リソースグループの作成や管理には、 IBM Cloud コンソールを使用する必要があります。 リソースグループ内でさらにサービスインスタンスが作成されると、そのリソースグループへのアクセス権を持つすべてのユーザーには、アクセスグループを更新することなく、それらのインスタンスが自動的に表示されます。 リソースグループを使用する場合は、まずアクセスグループを作成し、それをリソースグループに割り当ててください。
Noteサービスインスタンスは1つのリソースグループにのみ所属でき、インスタンスの作成後はその割り当てを変更することはできません。 したがって、後でサービスインスタンスをリソースグループ間で移動させる必要が生じる可能性がある場合、リソースグループでは十分な柔軟性が得られない可能性があります。
- **アクセスグループは、**IBM Cloud のリソースに対するユーザーのアクセス権を管理するための、便利で一般的な方法です。 IBM Quantum Platform のユーザーインターフェースを通じて作成するすべてのサービスインスタンスには、すでに独自の「Collaborators」アクセスグループが設定されています。 そのグループをそのまま使用することも、 IBM Cloud コンソールで追加のアクセスグループを作成し、1つまたは複数のインスタンスにわたってチームやワークロード(例:
考慮事項
環境をセットアップする際には、以下の点を理解しておく必要がある。
より細かい役割を定義する
カスタムロールを使用することで、よりきめ細かなアクセス制御が可能になります。 たとえば、サービスインスタンスを操作するためにフルアクセス権が必要なユーザーもいれば、サービスインスタンス、プログラム、およびワークロードに対して読み取りアクセス権のみが必要なユーザーもいるでしょう。
それを実現するには、 MLreader や といった2つの異なるカスタムロールを定義します MLwriter。 MLreader カスタムロールから「キャンセル」、「削除」、「更新」のすべてのアクションを削除し、すべてのアクションを MLwriter カスタムロールに含める。 次に、それに応じて、それぞれのロールを2つの異なるアクセスグループに追加します。
動的ルールを使用する場合、つまり、IDP管理者がカスタムIDPユーザー属性を通じてアクセスを管理する場合は、互いに部分文字列関係にあるIDPカスタムユーザー属性を使用しないでください。 たとえば、 ml や は使用しないでください mlReader。 の文字列比較では、 も一致 ml してしまうからです mlReader。 この競合を避ける MLwriter には、 と MLreader を使用することができます。
例については、「 カスタムロールの設定」 を参照してください。
共有ワークロードへのアクセス
アクセス権はサービスインスタンスに適用されます。 したがって、インスタンスへの書き込みアクセス権を持つユーザー( IBM Quantum Platform ユーザーインターフェースで作成されたインスタンスに対して自動的に作成される「Collaborators」アクセスグループを通じてアクセス権を持つユーザーを含む)は、自身のワークロードをキャンセルできるだけでなく、そのインスタンス内の他のユーザーのワークロードを表示・キャンセルすることもできます。 これはIAMの仕組みによるものであり、変更することはできません。
階層構造のシミュレーション
デフォルトでは、各サービスインスタンスへのアクセスは個別に管理されます。たとえば、 IBM Quantum Platform のユーザーインターフェースを通じて作成されたインスタンスに対しては、「Collaborators」というアクセスグループが自動的に作成されます。 IAMにはグループの階層構造が組み込まれていませんが、複数のチームのサービスインスタンスを参照するアクセスグループを作成することで、それに近い仕組みを実現できます。 広範なアクセス権が必要なユーザーは、各チームの個別のアクセスグループに追加するのではなく、1つの「最上位」グループに追加するだけで済みます。
設定の一貫性と再現性のあるデプロイメント
このガイドの手順を自動化することで、ユーザー、サービスインスタンス、およびそれらの間のアクセスマッピングを一貫性を持って繰り返し管理することができます。 テンプレートについては、 Terraformの IBM Cloud® プロバイダーのドキュメントを参照してください。
Terraform を使用すると、サービス quantum-computing インスタンスの割り当てや制限の設定、およびバックエンドへのアクセス制限を行うことができます。 詳細については、 IBM Cloud の「Terraform の始め方」 をご覧ください。
例:
resource "ibm_resource_instance" "instance1" {
name = "name"
service = "quantum-computing"
plan = "premium"
location = "us-east"
parameters = {
usage_allocation_seconds = "10" # Mandatory
usage_limit_seconds = "20" # Optional. If omitted, it can
# continue using time after reaching the allocation
backends = ["ibm_boston"] # Optional
}
}
次のステップ
- IBM Quantum Platform セットアップする手順については、「組織向けのIBM Quantum Platform 構成」を参照してください。
- 利用可能なプランを理解する。
- インスタンスを作成する。
- IBM Cloud の口座体系について理解する。
- ポリシーとアクセスグループを作成する。
- ユーザーを管理する。
- IBM Cloud IAMに関する詳細については、IAMのドキュメントをご覧ください。
- IBM Cloud 複数のリンク済みアカウントを管理するためのエンタープライズ向けドキュメント。