IAM を使用したアクセス制御

AI Platform Prediction は、Identity and Access Management(IAM)を使用してリソースへのアクセスを管理します。リソースへのアクセス権を付与するには、ユーザー、グループ、またはサービス アカウントに 1 つ以上のロールを割り当てます。

AI Platform Prediction で使用できる IAM ロールは次の 3 種類です。

  • 基本ロール(オーナー、閲覧者、編集者)。すべての Google Cloud サービスに共通のロールです。

  • AI Platform Prediction の事前定義ロール。AI Platform Prediction のリソースに対するアクセス権をプロジェクト レベルまたはモデルレベルできめ細かく設定できます。

  • カスタムロールを使用すると、特定の権限セットを選択し、それらの権限を持つ独自のロールを作成して、組織内のユーザーに付与できます。

このガイドでは、AI Platform Prediction の事前定義ロールを中心に説明します。ロールの一般的な使い方や関連する権限について解説します。

このガイドでは、AI Platform Prediction のリソースにアクセスするために必要なロールと権限について説明します。これらのリソース自体で他の Google Cloud リソースにアクセスするために必要な権限の詳細については、AI Platform の サービス エージェントとカスタム サービス アカウントをご覧ください。

基本ロール

従来の AI Platform Prediction の IAM ロールは、すべての GCP サービスに共通の基本ロール(オーナー、閲覧者、編集者)に基づいています。

従来のプロジェクト編集者のロールは、AI Platform Prediction 管理者のロールと同等です。

従来のプロジェクト閲覧者のロールには、AI Platform Prediction 閲覧者のロールと同じ権限だけでなく、オンライン予測リクエストの送信権限も割り当てられています。AI Platform Prediction 閲覧者のロールを使用すると、AI Platform Prediction のリソースに対する読み取り専用権限をユーザーに付与できます。

事前定義ロール

事前定義ロールには、関連する権限セットが割り当てられています。AI Platform Prediction の事前定義ロールを使用すると、プロジェクト、個々のモデル、ジョブ、オペレーションに対する権限を付与できます。

各ロールのすべての権限の一覧を表示するには、ロールの名前をクリックします。

プロジェクトのロール

AI Platform Prediction の管理者、デベロッパー、閲覧者のロールを使用すると、リソースに対するさまざまな権限をプロジェクト レベルで付与できます。

AI Platform Prediction のプロジェクトで、これらのロールを追加、更新または削除する方法については、アクセス権の付与、変更、取り消しに関するドキュメントをご覧ください。

役割のタイトル ロール名 機能
AI Platform Prediction 管理者

roles/ml.admin

AI Platform Prediction のプロジェクト、ジョブ、オペレーション、モデル バージョンに対する完全アクセス権が付与されます。

注: 基本のプロジェクト編集者のロールは roles/ml.admin と同等です。

AI Platform Prediction デベロッパー

roles/ml.developer

トレーニング ジョブと予測ジョブ、モデルとバージョンを作成し、オンライン予測リクエストを送信します。

AI Platform Prediction 閲覧者

roles/ml.viewer

AI Platform Prediction リソースに対する読み取り専用アクセス権。

モデルのロール

AI Platform Prediction のモデルオーナーとモデルユーザーのロールを使用すると、特定のモデルリソースに対してさまざまな権限を付与できます。

個人やサービスにモデルユーザーのロールを付与することで、個人やサービスとモデルを共有できます。

ロールのタイトル ロール名 機能
AI Platform Prediction モデルオーナー

roles/ml.modelOwner

モデルとそのバージョンへの完全アクセス権。このロールは、モデルを作成するユーザーに自動的に付与されます。

AI Platform Prediction モデルユーザー

roles/ml.modelUser

モデルとそのバージョンを読み取り、予測に使用する権限。この役割を付与することで、特定のモデルを簡単に共有することができます。

ジョブとオペレーションのロール

モデルオーナーのロールと同様に、ジョブまたはオペレーションを作成するユーザーに自動的に割り当てられるジョブおよびオペレーション リソースレベルのオーナーのロールがあります。これらのロールにより、ユーザーは自分が作成したジョブやオペレーションのすべてを管理できます。詳細については、ジョブとオペレーションのロールの権限をご覧ください。

権限とロール

このセクションでは、AI Platform Prediction に事前定義ロールで付与される権限について説明します。これらの事前定義ロールがニーズを満たしていない場合は、このセクションの情報を参考にして、独自のカスタムロールを作成してください。

管理者の役割

ロール名 説明 権限
roles/ml.admin AI Platform Prediction 管理者

AI Platform Prediction のプロジェクト、ジョブ、オペレーション、モデル、バージョンに対する完全アクセス権が付与されます。

注: 基本のプロジェクト編集者のロールからこのロールへの移行は非常に簡単です。以前にプロジェクト レベルで割り当てられた基本の編集者ロールを使用していた場合は、この roles/ml.admin ロールを使用して、まったく同じ権限セットをユーザーに付与できます。

  • resourcemanager.projects.get
  • ml.projects.getConfig
  • ml.jobs.create
  • ml.jobs.list
  • ml.jobs.get
  • ml.jobs.getIamPolicy
  • ml.jobs.setIamPolicy
  • ml.jobs.cancel
  • ml.operations.list
  • ml.operations.get
  • ml.operations.cancel
  • ml.models.create
  • ml.models.list
  • ml.models.get
  • ml.models.setIamPolicy
  • ml.models.getIamPolicy
  • ml.models.predict
  • ml.models.delete
  • ml.models.update
  • ml.versions.create
  • ml.versions.list
  • ml.versions.get
  • ml.versions.predict
  • ml.versions.delete

デベロッパーのロール

ロール名 説明 権限
roles/ml.developer

トレーニング ジョブと予測ジョブ、モデルとバージョンを作成し、オンライン予測リクエストを送信できます。

注: ジョブを作成すると、作成したデベロッパーに AI Platform Prediction ジョブオーナーのロールが自動的に付与されます。このため、デベロッパーには自分が作成したすべてのジョブに対する ml.jobs.cancel 権限と ml.jobs.update 権限が付与されます。

推奨事項: トラブルシューティング用に、デベロッパーに AI Platform Prediction ログに対する読み取り専用権限を付与します。

  • resourcemanager.projects.get
  • ml.projects.getConfig
  • ml.jobs.create
  • ml.jobs.list
  • ml.jobs.get
  • ml.jobs.getIamPolicy
  • ml.operations.list
  • ml.operations.get
  • ml.models.create
  • ml.models.list
  • ml.models.get
  • ml.models.getIamPolicy
  • ml.models.predict
  • ml.versions.list
  • ml.versions.get
  • ml.versions.predict

閲覧者のロール

ロール名 説明 権限
roles/ml.viewer

特定のプロジェクトの AI Platform Prediction のリソースに対する読み取り専用アクセス権。

注: 従来のプロジェクト閲覧者のロールを使用すると、roles/ml.viewer のロールと同じ権限に加えて、オンライン予測リクエストを送信する権限をユーザーに付与できます。

  • resourcemanager.projects.get
  • ml.projects.getConfig
  • ml.jobs.list
  • ml.jobs.get
  • ml.operations.list
  • ml.operations.get
  • ml.models.list
  • ml.models.get
  • ml.versions.list
  • ml.versions.get

モデルオーナーのロール

役割名 説明 権限
roles/ml.modelOwner モデルとそのバージョンへの完全アクセス権。このロールは、モデルを作成するユーザーに自動的に付与されます。
  • ml.models.get
  • ml.models.setIamPolicy
  • ml.models.getIamPolicy
  • ml.models.predict
  • ml.models.delete
  • ml.models.update
  • ml.versions.create
  • ml.versions.list
  • ml.versions.get
  • ml.versions.predict
  • ml.versions.delete

モデルユーザーのロール

役割名 説明 権限
roles/ml.modelUser モデルとそのバージョンを読み取り、予測に使用するための権限。
  • ml.models.get
  • ml.models.predict
  • ml.versions.list
  • ml.versions.get
  • ml.versions.predict

ジョブオーナーのロール

ロール名 説明 権限
roles/ml.jobOwner

特定のジョブリソースに対するすべての権限への完全アクセス権。ジョブオーナーのロールはそのジョブを作成したユーザーに自動的に付与されます。

たとえば、プロジェクトに対して AI Platform Prediction のデベロッパーのロールを持っているユーザーは、ジョブの作成、一覧表示、特定のプロジェクトのジョブの一覧表示を行うことができます。デベロッパーは、自分が作成したジョブのみをキャンセルできます。

  • ml.jobs.get
  • ml.jobs.getIamPolicy
  • ml.jobs.cancel

オペレーション オーナーのロール

ロール名 説明 権限
roles/ml.operationOwner

特定のオペレーション リソースに対するすべての権限への完全アクセス権。オペレーション オーナーのロールは、バージョンまたはモデルの作成時にユーザーが間接的に作成するすべてのオペレーションに対して、ユーザーに自動的に付与されるため、ユーザーはいつでも自分のオペレーションを取得してキャンセルできます。

  • ml.operations.get
  • ml.operations.cancel

予測に必要な権限

特にトレーニングと予測に必要な権限を以下の表にまとめました。

タスク 必要な権限
バッチ予測
  • ml.jobs.create
  • ml.models.predict*
  • ml.versions.predict*

注: Cloud Storage に保存されたモデルの場所を指定することで、デプロイされたバージョンがなくても、バッチ予測ジョブを作成できます。このタイプのバッチ予測ジョブには、ml.jobs.create 権限のみが必要です。

デプロイされたバージョンを使用するバッチ予測ジョブを作成するには、さらに ml.models.predict または ml.versions.predict のいずれかが必要です(両方は必要ありません)。

オンライン予測
  • ml.models.predict
  • ml.versions.predict

メソッドに必要な権限

このセクションでは、AI Platform Prediction でメソッド呼び出しに必要な権限を一覧にまとめました。

メソッド 必要な権限
projects.getConfig ml.projects.getConfig
projects.jobs.cancel ml.jobs.cancel
projects.jobs.create ml.jobs.create

注: デプロイされたバージョンを使用するバッチ予測ジョブを作成するには、さらに ml.models.predict または ml.versions.predict のいずれかが必要です(両方は必要ありません)。

projects.jobs.get ml.jobs.get
projects.jobs.list ml.jobs.list
projects.models.create ml.models.create
projects.models.delete ml.models.delete
projects.models.get ml.models.get
projects.models.list ml.models.list
projects.models.versions.create ml.versions.create
projects.models.versions.delete ml.versions.delete
projects.models.versions.get ml.versions.get
projects.models.versions.list ml.versions.list
projects.models.versions.setDefault ml.models.update
projects.operations.cancel ml.operations.cancel
projects.operations.get ml.operations.get
projects.operations.list ml.operations.list

保存に必要な権限

トレーニング済みのモデルを AI Platform Prediction にデプロイして予測を取得するときに、保存したモデルファイルを Cloud Storage にアップロードします。Cloud Storage バケット内では、モデルファイルはオブジェクトです。AI Platform Prediction のサービス アカウントが Cloud Storage バケットに保存されているトレーニング済みモデルのファイルにアクセスできることを確認する必要があります。

AI Platform Prediction のサービス アカウントには、少なくとも次の権限を含む Cloud Storage IAM ロールを付与します。

必要な権限 説明
storage.buckets.list AI Platform Prediction のプロジェクトに、Cloud Storage バケットに格納されているモデルファイルの検索を許可します。
storage.objects.get AI Platform Prediction のプロジェクトに、Cloud Storage バケットに格納されたモデルファイルの読み取りを許可します。

AI Platform Prediction に Cloud Storage の権限を構成する方法をご覧ください。

次のステップ