IBM Cloudアカウント構造
IBM Quantum® Platformをセットアップする前に、IBM Cloud® Identity and Access Management (IAM) アカウントの構造を理解することが重要です。以下の概要図に示すように、最上位にアカウントがあります。アカウントオーナーは1人だけで、課金管理に対する排他的な制御権を持っています。
このアカウントには複数のユーザーとサービスインスタンス(IBM Qiskit Runtimeなど)が含まれます。各サービスインスタンスは特定のリージョンに存在し、1つのプランを持ちます。そのため、複数のプランをユーザーに提供したい場合は、それぞれ異なるプランに関連付けられた複数のサービスインスタンスが必要になります。
各ユーザーにはアクセスポリシーが割り当てられ、サービスインスタンスへのさまざまなレベルのアクセス権が付与されます。アクセスポリシーはアクセスグループとしてまとめることができます。
デフォルトでは、アカウント内のすべてのユーザーが互いを表示できます。アカウント設定で可視性を制限するオプションを有効にすると、IAMサービスの権限を持つユーザーのみが他のユーザーを確認できるようになります。なお、IBM CloudはユーザーグループやグループごとのAdministratorをサポートしていません。
アクセスポリシーとグループ
前述のとおり、各ユーザーには1つ以上のアクセスポリシーを、個別に、アクセスグループの一部として、またはその両方の形で割り当てることができます。
アクセスポリシー内では、_プラットフォーム_ロールと_サービス_ロールを選択するか、カスタムロールを作成することで権限を指定できます。プラットフォームロールは、インスタンスの作成や管理などのプラットフォームレベルのアクションを定義します。サービスロールは、「ジョブを作成する」APIエンドポイントの呼び出し(つまり、ジョブの実行)など、サービス内でのアクションを実行するためのアクセス権を付与します。
このガイドはIAMモデルの簡略化された表現を説明しています。詳細については、IBM Cloud IAMドキュメントを参照してください。
ロール
ロールには、プラットフォーム管理とサービスアクセスの2つのファミリーがあります。
プラットフォーム管理ロールは、プラットフォームレベルでリソースを管理するためのユーザーアクセスの割り当てやサービスインスタンスの作成など、許可されるアクションを定義します。プラットフォームロールは、ユーザーの招待や削除、アクセスグループの管理、サービスIDの管理など、アカウント管理サービスのコンテキスト内で実行できるアクションにも適用されます。
サービスアクセスロールは、サービスAPIの呼び出しやサービスのダッシュボードへのアクセスなど、許可されるアクションを定義します。これらのロールは、ポリシー内で選択されたサービスに基づいてカスタマイズされます。これらのガイドのコンテキストでは、サービスは常にQiskit Runtimeです。
アクションを実行するには、多くの場合、プラットフォーム管理ロールとサービスアクセスロールの組み合わせが必要です。例えば、writerサービスロールではジョブを実行できますが、インスタンスの一覧表示はできません。インスタンスを一覧表示するには、プラットフォームで少なくともviewerロールが必要です。以下によく使用されるロールを示します。
- インスタンスの作成には、
managerサービスアクセスロールと、すべてのアカウント管理サービスに対するviewerプラットフォーム管理ロールが必要です。備考すべてのアカウント管理サービスに対して
viewerプラットフォーム管理ロールを持つユーザーは、課金などのサービスも表示できます。この追加の表示アクセスを防ぐには、IBM Cloud CLIを使用して、リソースグループのみへのアクセス権を付与してください。ibmcloud iam access-group-policy-create <group name> \--roles Viewer --resource-type resource-group - ジョブの実行には、
writerサービスアクセスロールと、インスタンスへのviewerプラットフォーム管理ロールアクセスが必要です。
アクセスポリシー(アクセスグループに対してまたはユーザーに対して)を作成する際、説明を確認することでどのアクションがロールに含まれるかを確認できます。例:quantum-computing.job.create - Create a job to run a program。
また、IAM Rolesページから各ロールで許可されるアクションを確認することもできます。ページ上部のドロップダウンメニューでQiskit Runtimeを選択してください。詳細なリストを表示するには、ロール名の横の列にある数字をクリックします。例えば、そのページにアクセスしてManagerロールの横の数字をクリックすると、このロールにジョブを削除する権限(quantum-computing.job.delete)が含まれていることを確認できます。
次の表は、Qiskit Runtimeサービスのコンテキスト内でユーザーが実行できるプラットフォーム管理アクションの例を示しています。
| プラットフォーム管理ロール | Qiskit Runtimeサービス |
|---|---|
| Viewer role | インスタンスと認証情報の表示 |
| Operator role | インスタンスの表示と認証情報の管理 |
| Editor role | インスタンスの作成、削除、編集、表示。認証情報の管理 |
| Administrator role | サービスのすべての管理アクション |
次の表は、Qiskit Runtimeサービスのコンテキスト内でユーザーが実行できるサービスアクセスアクションの例を示しています。
| サービスアクセスロール | Qiskit Runtimeのアクション |
|---|---|
| Reader | ジョブの表示など、読み取り専用のアクションを実行 |
| Writer | Readerロールを超える権限。ジョブの実行を含む |
| Manager | Writerロールを超える権限。インスタンスのプロビジョニング、インスタンスコスト制限の設定、ジョブの削除またはキャンセルを含む |
次のステップ
- インスタンスを作成する。
- Open Planからアップグレードする。
- IAM Rolesを確認する(ページ上部のドロップダウンからQiskit Runtimeを選択してください)。