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

このページでは、Identity and Access Management を使用して、AutoML Tables リソース(データソースや結果の宛先など)へのアクセスを制御する方法について説明します。

Identity and Access Management の概要

AutoML Tables を使用する場合は、Identity and Access Management(IAM)によってリソースへのアクセスを管理できます。IAM を使用すると、特定の Google Cloud リソースに対するアクセス権を詳細に設定し、他のリソースへの不要なアクセスを防止できます。このページでは、AutoML Tables の IAM 権限とロールについて説明します。IAM の詳細については、IAM のドキュメントをご覧ください。

IAM を使用すると、セキュリティに関する最小権限の原則を導入できるため、リソースに対する必要なアクセス権のみを付与できます。

IAM では、ユーザーに 1 つ以上のロールを付与して、特定の権限を付与することで、誰(ユーザー)どのリソースに対してどの(ロール)タイプのアクセス権を持つかを制御できます。たとえば、ユーザーに AutoML 閲覧者の役割(roles.automl.viewer)を付与して、そのユーザーがプロジェクト内のリソースを表示できるようにすることができます。そのユーザーがリソースを作成または更新する必要がある場合は、代わりに AutoML 編集者の役割(roles.automl.editor)を付与できます。

役割

AutoML Tables では AutoML API を使用します。この API は、AutoML リソースへのアクセスを制御する場合に役立つ事前定義された一連の役割を提供します。

事前定義された役割の中に必要な権限を付与するものがない場合は、カスタムの役割を独自に作成することもできます。

さらに、古い基本ロール(編集者、閲覧者、オーナー)もまだ使用できますが、AutoML のロールほど細かい制御はできません。可能であれば、基本ロールは使用しないでください。基本ロールでは AutoML だけでなく、Google Cloud 全体のリソースへのアクセスが提供されます。基本ロールの詳細について学習する

事前定義された役割

このセクションでは、AutoML によって提供される事前定義の役割の概要について説明します。

Role Permissions

(roles/automl.admin)

Full access to all AutoML resources

Lowest-level resources where you can grant this role:

  • Dataset
  • Model

automl.*

  • automl.annotationSpecs.create
  • automl.annotationSpecs.delete
  • automl.annotationSpecs.get
  • automl.annotationSpecs.list
  • automl.annotationSpecs.update
  • automl.annotations.approve
  • automl.annotations.create
  • automl.annotations.list
  • automl.annotations.manipulate
  • automl.annotations.reject
  • automl.columnSpecs.get
  • automl.columnSpecs.list
  • automl.columnSpecs.update
  • automl.datasets.create
  • automl.datasets.delete
  • automl.datasets.export
  • automl.datasets.get
  • automl.datasets.getIamPolicy
  • automl.datasets.import
  • automl.datasets.list
  • automl.datasets.setIamPolicy
  • automl.datasets.update
  • automl.examples.delete
  • automl.examples.get
  • automl.examples.list
  • automl.examples.update
  • automl.files.delete
  • automl.files.list
  • automl.humanAnnotationTasks.create
  • automl.humanAnnotationTasks.delete
  • automl.humanAnnotationTasks.get
  • automl.humanAnnotationTasks.list
  • automl.locations.get
  • automl.locations.getIamPolicy
  • automl.locations.list
  • automl.locations.setIamPolicy
  • automl.modelEvaluations.create
  • automl.modelEvaluations.get
  • automl.modelEvaluations.list
  • automl.models.create
  • automl.models.delete
  • automl.models.deploy
  • automl.models.export
  • automl.models.get
  • automl.models.getIamPolicy
  • automl.models.list
  • automl.models.predict
  • automl.models.setIamPolicy
  • automl.models.undeploy
  • automl.operations.cancel
  • automl.operations.delete
  • automl.operations.get
  • automl.operations.list
  • automl.tableSpecs.get
  • automl.tableSpecs.list
  • automl.tableSpecs.update

resourcemanager.projects.get

resourcemanager.projects.list

serviceusage.services.get

serviceusage.services.list

(roles/automl.editor)

Editor of all AutoML resources

Lowest-level resources where you can grant this role:

  • Dataset
  • Model

automl.annotationSpecs.*

  • automl.annotationSpecs.create
  • automl.annotationSpecs.delete
  • automl.annotationSpecs.get
  • automl.annotationSpecs.list
  • automl.annotationSpecs.update

automl.annotations.*

  • automl.annotations.approve
  • automl.annotations.create
  • automl.annotations.list
  • automl.annotations.manipulate
  • automl.annotations.reject

automl.columnSpecs.*

  • automl.columnSpecs.get
  • automl.columnSpecs.list
  • automl.columnSpecs.update

automl.datasets.create

automl.datasets.delete

automl.datasets.export

automl.datasets.get

automl.datasets.import

automl.datasets.list

automl.datasets.update

automl.examples.*

  • automl.examples.delete
  • automl.examples.get
  • automl.examples.list
  • automl.examples.update

automl.files.*

  • automl.files.delete
  • automl.files.list

automl.humanAnnotationTasks.*

  • automl.humanAnnotationTasks.create
  • automl.humanAnnotationTasks.delete
  • automl.humanAnnotationTasks.get
  • automl.humanAnnotationTasks.list

automl.locations.get

automl.locations.list

automl.modelEvaluations.*

  • automl.modelEvaluations.create
  • automl.modelEvaluations.get
  • automl.modelEvaluations.list

automl.models.create

automl.models.delete

automl.models.deploy

automl.models.export

automl.models.get

automl.models.list

automl.models.predict

automl.models.undeploy

automl.operations.*

  • automl.operations.cancel
  • automl.operations.delete
  • automl.operations.get
  • automl.operations.list

automl.tableSpecs.*

  • automl.tableSpecs.get
  • automl.tableSpecs.list
  • automl.tableSpecs.update

resourcemanager.projects.get

resourcemanager.projects.list

serviceusage.services.get

serviceusage.services.list

(roles/automl.predictor)

Predict using models

Lowest-level resources where you can grant this role:

  • Model

automl.models.predict

resourcemanager.projects.get

resourcemanager.projects.list

(roles/automl.viewer)

Viewer of all AutoML resources

Lowest-level resources where you can grant this role:

  • Dataset
  • Model

automl.annotationSpecs.get

automl.annotationSpecs.list

automl.annotations.list

automl.columnSpecs.get

automl.columnSpecs.list

automl.datasets.get

automl.datasets.list

automl.examples.get

automl.examples.list

automl.files.list

automl.humanAnnotationTasks.get

automl.humanAnnotationTasks.list

automl.locations.get

automl.locations.list

automl.modelEvaluations.get

automl.modelEvaluations.list

automl.models.get

automl.models.list

automl.operations.get

automl.operations.list

automl.tableSpecs.get

automl.tableSpecs.list

resourcemanager.projects.get

resourcemanager.projects.list

serviceusage.services.get

serviceusage.services.list

ホーム プロジェクトの AutoML Tables に対する権限の付与

AutoML Tables が自動的に作成するサービス アカウントに追加のロールを付与する必要がある場合があります。たとえば、Bigtable のデータソースでサポートされる BigQuery 外部テーブルを使用する場合は、BigQuery と Bigtable のデータの読み取りと書き込みに必要な権限が付与されるように、自動的に作成されたサービス アカウントに追加の役割を付与する必要があります。

ホーム プロジェクトの AutoML Tables 用に自動的に作成されたサービス アカウントに追加の役割を付与するには:

  1. ホーム プロジェクトの Google Cloud コンソールの IAM ページに移動します。

    IAM ページに移動

  2. 右上隅の [Google 提供のロール付与を含みます] チェックボックスを選択します。

  3. AutoML Service Agent という名前のサービス アカウントの鉛筆アイコンをクリックします。

  4. サービス アカウントに必要な役割を付与し、変更を保存します。

別のプロジェクトの AutoML Tables に対する権限の付与

別のプロジェクトのデータソースや宛先を使用する場合は、AutoML Tables サービス アカウントにそのプロジェクトの権限を付与する必要があります。AutoML Tables サービス アカウントは、AutoML Tables API を有効にすると自動的に作成されます。

別のプロジェクトの AutoML Tables に権限を追加するには:

  1. ホーム プロジェクト(AutoML Tables を使用しているプロジェクト)の Google Cloud コンソールの IAM ページに移動します。

    IAM ページに移動

  2. 右上隅の [Google 提供のロール付与を含みます] チェックボックスを選択します。

  3. AutoML Service Agent という名前のサービス アカウントを見つけて、そのメールアドレス([プリンシパル] の下にリストされている)をコピーします。

  4. プロジェクトを、権限を付与する必要があるプロジェクトに変更します。

  5. [追加] をクリックし、[新しいプリンシパル] にメールアドレスを入力します。

  6. 必要な役割をすべて追加し、[保存] をクリックします。

Google スプレッドシートへのアクセス権の付与

Google スプレッドシートでサポートされる BigQuery 外部データソースを使用する場合は、スプレッドシートを AutoML サービス アカウントと共有する必要があります。AutoML Tables サービス アカウントは、AutoML Tables API を有効にすると自動的に作成されます。

AutoML Tables にスプレッドシート ファイルへのアクセスを許可するには:

  1. Google Cloud コンソールの IAM ページに移動します。

    IAM ページに移動

  2. 右上隅の [Google 提供のロール付与を含みます] チェックボックスを選択します。

  3. AutoML Service Agent という名前のサービス アカウントを探します。

  4. プリンシパル名をクリップボードにコピーします。

    プリンシパル名は、次の例のようなメールアドレスです。

    service-358517216@gcp-sa-automl.iam.gserviceaccount.com
    
  5. スプレッドシート ファイルを開いてそのアドレスと共有します。

IAM 役割の管理

IAM ロールは、Google Cloud コンソール、IAM API、gcloud コマンドライン ツールを使用して、付与、変更、取り消しを行えます。詳しい手順については、アクセス権の付与、変更、取り消しをご覧ください。

次のステップ

Identity and Access Management の詳細を確認する。