アクセス制御

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

Cloud ML Engine で使用できる IAM の役割には 3 つのタイプがあります。

  • 基本の役割(オーナー、閲覧者、編集者)は、すべての GCP サービスに共通です。

  • 事前定義された Cloud ML Engine の役割により、プロジェクト単位とモデル単位で Cloud ML Engine リソースへのきめ細かなアクセス制御ができます。

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

このガイドでは、事前定義された Cloud ML Engine の役割、それらの一般的な使用方法、関連する権限に焦点を合わせて説明します。

基本の役割

以前の Cloud ML Engine の IAM の役割は、すべての GCP サービスに共通する、オーナー、閲覧者、編集者という基本の役割に基づきます。

Cloud ML Engine 管理者の役割は、以前のプロジェクト編集者の役割と同等です。

Cloud ML Engine 閲覧者の役割は、以前のプロジェクト閲覧者の役割と同じ権限に加えて、オンライン予測リクエストを送信する権限が付与されます。Cloud ML Engine 閲覧者の役割を使用する利点は、ユーザーが Cloud ML Engine リソースへの読み取り専用アクセス権を取得することです。

事前定義された役割

事前定義された役割は、関連する権限セットを付与します。Cloud ML Engine は、プロジェクトだけでなく、個々のモデル、ジョブ、オペレーションへの事前定義された役割も提供します。

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

プロジェクトの役割

Cloud ML Engine 管理者、デベロッパー、閲覧者の役割は、プロジェクト レベルでリソースへのさまざまなレベルのアクセス権を付与します。

Cloud ML Engine プロジェクトでこれらの役割を追加、更新、削除するには、チームメンバーへのアクセス権の付与、変更、取り消しに関するドキュメントをご覧ください。

役割のタイトル 役割名 機能
Cloud ML Engine 管理者

roles/ml.admin

Cloud ML Engine プロジェクト、およびそのジョブ、オペレーション、モデル、バージョンのフル コントロール。

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

Cloud ML Engine デベロッパー

roles/ml.developer

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

Cloud ML Engine 閲覧者

roles/ml.viewer

Cloud ML Engine リソースへの読み取り専用アクセス。

モデルの役割

Cloud ML Engine モデルオーナーおよびモデルユーザーの役割は、特定のモデルリソースへのさまざまなレベルの権限を付与します。

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

役割のタイトル 役割名 機能
Cloud ML Engine モデルオーナー

roles/ml.modelOwner

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

Cloud ML Engine モデルユーザー

roles/ml.modelUser

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

ジョブとオペレーションの役割

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

権限と役割

各 Cloud ML Engine の事前定義された役割で付与されるすべての権限の一覧については、このセクションを参照してください。これらの事前定義された役割がニーズを満たしていない場合は、このセクションを独自のカスタムの役割を作成するためのリファレンスとして使用してください。

管理者の役割

役割名 説明 権限
roles/ml.admin Cloud ML Engine 管理者

Cloud ML Engine プロジェクトと、そのジョブ、オペレーション、モデル、バージョンへのフルアクセス。

注: 基本のプロジェクト編集者の役割からこの役割への移行はかなり簡単です。以前にプロジェクト レベルで割り当てられた基本の編集者の役割を使用していた場合は、この 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

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

注: ジョブを作成すると自動的に Cloud ML Engine ジョブオーナーの役割が付与されるため、デベロッパーには自身が作成したすべてのジョブに対する ml.jobs.cancel 権限と ml.jobs.update 権限が付与されます。

推奨事項: トラブルシューティング目的のため、デベロッパーには Cloud ML Engine ログに対する読み取り専用アクセス権を付与してください。

  • 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

特定のプロジェクトの Cloud ML Engine リソースへの読み取り専用アクセス。

注: 以前のプロジェクト閲覧者の役割では、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

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

たとえば、プロジェクトで Cloud ML Engine デベロッパーの役割を持つユーザーは、ジョブを作成し、すべてのジョブをリストし、特定のプロジェクトのすべてのジョブを取得できます。デベロッパーは、作成したジョブのみをキャンセルするアクセス権を持ちます。

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

オペレーション オーナーの役割

役割名 説明 権限
roles/ml.operationOwner

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

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

トレーニングと予測に必要な権限

便宜上、この表にトレーニングと予測に具体的に必要な権限をまとめています。

タスク 必要な権限
トレーニング
  • ml.jobs.create
バッチ予測
  • ml.jobs.create
  • ml.models.predict*
  • ml.versions.predict*

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

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

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

メソッドに必要な権限

便宜のため、このセクションでは、Cloud ML Engine で各メソッドを呼び出すために必要な権限を示します。

メソッド 必要な権限
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.delete ml.operations.delete
projects.operations.get ml.operations.get
projects.operations.list ml.operations.list

保存に必要な権限

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

Cloud ML Engine のサービス アカウントに、少なくとも以下の権限を含む Cloud Storage IAM 役割を付与します。

タスク 必要な権限 説明
予測 storage.buckets.list Cloud ML Engine プロジェクトが Cloud Storage バケット内のモデルファイルを見つけられるようにします。
予測 storage.objects.get Cloud ML Engine プロジェクトが Cloud Storage バケット内のモデルファイルを読み取れるようにします。

Cloud ML Engine 用に Cloud Storage の権限を構成する方法をご覧ください。

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

scikit-learn と XGBoost の Cloud ML Engine