リソースへのアクセスを制御する

Earth Engine 対応プロジェクトのアセットまたはコンピューティング割り当てを、プロジェクト レベルで他の Earth Engine ユーザーと共有できます。Earth Engine のアセットまたはコンピューティングは、別のユーザーまたはユーザーのグループと共有できます。ユーザーのグループと共有する場合は、新しい Google グループを作成し、そのメールアドレス(グループ ページの [概要] リンクから確認できます)をメモします。このページでは、個人またはグループにリソースへのアクセス権を付与する方法と、さまざまなアクティビティに必要なロールと権限について説明します。

Earth Engine サービスの使用量を設定する

Cloud プロジェクトで Earth Engine API を使用するには、API がプロジェクトで有効になっている必要があります。また、ユーザーには Earth Engine リソース閲覧者ロールの権限が少なくとも必要です(事前定義された Earth Engine IAM ロールの詳細をご覧ください)。また、ユーザーにはプロジェクトに対する serviceusage.services.use 権限が必要です。この権限は、プロジェクトのオーナーまたは編集者のロール、または特定のサービス使用量コンシューマーのロールによって付与できます。選択したプロジェクトに対する Earth Engine の権限と Service Usage の権限がユーザーにない場合は、エラーがスローされます。

アセットの権限を設定する

アセットレベルの権限を設定する

アセットレベルで権限を更新するには、いくつかの方法があります。

  • コードエディタでアセット マネージャーを使用します。
  • Earth Engine コマンドラインを使用します。
  • クライアント ライブラリ(ee.data.setAssetAcl() など)を使用します。
  • または、REST API を直接呼び出します。

プロジェクト レベルのアセット権限を設定する

プロジェクト レベルで共有すると、Earth Engine が有効になっている Cloud プロジェクト内のすべてのアセットに権限が一度に設定されます。

プロジェクトの IAM 管理ページで適切な Identity and Access Management(IAM)ロールを割り当てることで、プロジェクト レベルでアセットを共有できます。Earth Engine アセットとリソースを共有するための事前定義された Earth Engine IAM ロールがあります。IAM ロールの概要については、ロールについてをご覧ください。

別のユーザーがアセットのいずれかにアクセスしようとすると、まずアセットレベルで権限がチェックされます。アセット レベルで権限が設定されていない場合や、チェックが失敗した場合(アクセス権がない場合など)は、プロジェクト レベルで権限がチェックされます。

プロジェクト レベルの権限を設定する

プロジェクト レベルで権限を設定するには、ユーザーまたはユーザーのグループにプロジェクト IAM ロールを割り当てます。

  1. Google Cloud コンソールで IAM ページを開きます。
    IAM ページを開く
    または、コードエディタの [アセット] タブでプロジェクト名にポインタを合わせて、 アイコンをクリックします。
  2. [プロジェクトを選択] をクリックしてプロジェクトを選択します(コード エディタから IAM ページを開いた場合は、すでに選択されています)。
  3. 上部の [追加] をクリックして、個人またはグループのメールアドレスを新しいメンバーとして追加するか、プロジェクト内の既存のメンバーの横にある アイコンをクリックします。
  4. [ロール] プルダウンで、付与する Earth Engine リソースのロールを検索します。詳細については、事前定義された Earth Engine IAM ロールをご覧ください。
  5. [保存] ボタンをクリックします。

VPC Service Controls

Earth Engine は、ユーザーがリソースを保護し、データ引き出しのリスクを軽減するのに役立つ Google Cloud セキュリティ機能である VPC Service Controls をサポートしています。リソースを VPC サービス境界に追加すると、データの読み取りと書き込みオペレーションをより詳細に制御できます。

VPC-SC の機能と構成の詳細を確認する。

制限事項

リソースに対して VPC Service Controls を有効にすると、いくつかの制限が発生します。これに対して、回避策の例を示します。

制約事項 代替案の例
コードエディタはサポートされておらず、VPC Service Controls では、サービス境界内のリソースとクライアントでコードエディタを使用することはできません。 Earth Engine Python API geemap ライブラリを組み合わせて使用します。
以前のアセットは VPC Service Controls で保護されません。 Cloud プロジェクトに保存されているアセットを使用します。
Google ドライブへのエクスポートは、VPC Service Controls ではサポートされていません。
Earth Engine アプリは、サービス境界内のリソースとクライアントではサポートされていません。 回避策はありません。

セキュリティで保護された VPC サービス境界内のリソースで Earth Engine を使用できるのは、Professional と Premium の料金プランのみです。Basic 料金プランに関連付けられた VPC-SC で保護されたプロジェクトで Earth Engine API を使用しようとすると、エラーが発生します。Earth Engine の料金の詳細については、公式ドキュメントをご覧ください。

VPC Service Controls とその制限事項の詳細については、サポートされているプロダクトと制限事項をご覧ください。

ロールと権限

以降のセクションでは、アクティビティの実行と Earth Engine リソースへのアクセスに必要な権限とロールについて説明します。Cloud プロジェクトの権限ロールの詳細については、Google Cloud のドキュメントをご覧ください。

Earth Engine IAM 事前定義ロール

Earth Engine には、プロジェクト内の Earth Engine リソースに対するさまざまなレベルの制御を可能にする事前定義ロールが用意されています。これらのロールは次のとおりです。

ロール タイトル 説明
roles/earthengine.viewer Earth Engine リソース閲覧者 アセットとタスクを表示および一覧表示する権限を付与します。
roles/earthengine.writer Earth Engine リソース書き込み アセットの読み取り、作成、変更、削除、画像とテーブルのインポート、タスクの読み取りと更新、インタラクティブな計算の実行、長時間実行されるエクスポート タスクの作成を行う権限を付与します。
roles/earthengine.admin Earth Engine 管理者 Earth Engine アセットのアクセス制御の変更など、すべての Earth Engine リソースに対する権限を付与します。
roles/earthengine.appsPublisher Earth Engine アプリ パブリッシャー Earth Engine アプリで使用するサービス アカウントを作成する権限を付与します。また、Cloud プロジェクトのプロジェクト所有アプリを編集および削除する権限も付与します。

Earth Engine の事前定義ロールがニーズを満たさない場合は、基本ロールまたはカスタムロールを設定できます。各ロールに関連付けられている権限のバンドルは、[IAM ロール] ページで特定のロールをフィルタして、そのロールをクリックすると確認できます。

Earth Engine API に対する完全アクセス権

ユーザーが REST API を直接使用するか、コードエディタまたはクライアント ライブラリを介して Earth Engine サービスにフルアクセスできるようにするには、ユーザーが次のオペレーションを実行する権限を持っている必要があります。

必要な権限
  • clientauthconfig.clients.listWithSecrets
  • earthengine.assets.get
  • earthengine.assets.getIamPolicy
  • earthengine.assets.list
  • earthengine.computations.create
  • earthengine.operations.get
  • earthengine.operations.list
  • monitoring.timeSeries.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • serviceusage.operations.get
  • serviceusage.operations.list
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list
  • serviceusage.services.use
推奨されるロール
  • Service Usage ユーザーroles/serviceusage.serviceUsageConsumer)と次のいずれか:
    • Earth Engine リソース閲覧者roles/earthengine.viewer
    • Earth Engine リソース書き込みroles/earthengine.writer)または
    • Earth Engine リソース管理者roles/earthengine.admin
  • ノートブック環境から Earth Engine にアクセスし、ノートブック認証ツールを使用するユーザーには、OAuth Config 編集者roles/oauthconfig.editor)も必要です。詳細については、 Colab または JupyterLab ノートブックの認証をご覧ください。
メモ Google Cloud では、API を呼び出すときにプロジェクトをアクティブ プロジェクトとして使用するために、サービス使用量コンシューマー ロールが必要です。プロジェクト X にこの権限がない場合、ee.Initialize(project=X) は失敗します。また、Cloud Console でこのプロジェクトを選択して、リソースの使用状況を表示することもできます。

アセット共有のみ

必要なアクティビティを実行するための最小限の権限を持つ事前定義された Earth Engine IAM ロールのいずれかをユーザーに付与します。必要な serviceusage 権限がないと、プロジェクト リソースを使用できません。

プロジェクト管理

使用可能なプロジェクトを一覧表示する

これは、コードエディタを使用して利用可能なプロジェクトを閲覧するときに発生します。

必要な権限
  • resourcemanager.projects.get
  • resourcemanager.folders.list
  • resourcemanager.folders.get
  • resourcemanager.organizations.get(一般的でない)
推奨されるロール
  • 関連するプロジェクトの閲覧者roles/viewer)または
    Earth Engine リソース閲覧者roles/earthengine.viewer)または
    ブラウザroles/browser、高度な組織のケースにおすすめ)
  • 関連するフォルダに対するフォルダ閲覧者roles/resourcemanager.folderViewer

コードエディタで使用するプロジェクトを選択する

必要な権限
  • resourcemanager.projects.get
  • serviceusage.services.get
プロジェクトが以前に設定されていない場合

コードエディタでプロジェクトを初めて選択すると、Earth Engine で使用できるようにプロジェクトが初期化されます。これまでに実行していない場合は、設定を成功させるためにこれらのロールが必要です。

  • resourcemanager.projects.update AND
  • serviceusage.services.enable
推奨されるロール
  • 閲覧者roles/viewer)または
  • Earth Engine リソース閲覧者roles/earthengine.viewer)AND
    Service Usage ユーザーroles/serviceusage.serviceUsageConsumer
追加のロール(プロジェクトが以前に設定されていない場合)
  • 編集者roles/editor)または
  • プロジェクト移動ツールroles/resourcemanager.projectMover)AND
    プロジェクト IAM 管理者roles/resourcemanager.projectIamAdmin)AND
    Service Usage 管理者roles/serviceusage.serviceUsageAdmin

コード エディタでプロジェクトを作成する

必要な権限
  • resourcemanager.projects.get
  • resourcemanager.projects.create
  • resourcemanager.projects.update
  • serviceusage.services.get
  • serviceusage.services.enable
推奨されるロール
  • 編集者roles/editor)または
  • プロジェクト移動roles/resourcemanager.projectMover)AND
    プロジェクト作成者roles/resourcemanager.projectCreator)AND
    Service Usage 管理者roles/serviceusage.serviceUsageAdmin
組織によっては、編集者ロールが付与されない場合があるため、よりきめ細かいロールが必要になることがあります。projects.update 権限をカバーするには、プロジェクト移動者が必要です。

非営利団体向けの階層の選択

次の権限と推奨されるロールは、非商用階層の構成に関連しています。

ティアの選択
必要な権限
  • earthengine.config.update
推奨されるロール
  • Earth Engine リソース書き込みroles/earthengine.writer
請求先アカウントを追加

コントリビューター階層には、プロジェクトの有効な請求先アカウントが必要です。

必要な権限
  • billing.accounts.get
推奨されるロール
  • 請求先アカウント閲覧者 (roles/billing.viewer)

商用プロジェクトの登録

次の権限は、有料で使用するためにプロジェクトを登録する場合に必要です。

必要な権限
請求先アカウント
  • billing.subscriptions.list
さらに、以下のことにご留意ください。
  • billing.accounts.get (新しい Limited プランを作成する場合)
  • billing.subscriptions.create(新しいベーシック プランまたはプロフェッショナル プランを作成する場合)
Cloud プロジェクト
  • earthengine.computations.create
  • earthengine.config.update
  • serviceusage.services.get
  • serviceusage.services.enable
推奨されるロール
請求先アカウント
  • 請求先アカウント閲覧者roles/billing.viewer)。新しい Limited プランを作成する場合
  • 新しい Basic プランまたは Professional プランを作成するための請求先アカウント管理者roles/billing.admin
Cloud プロジェクト
  • Earth Engine リソース書き込みroles/earthengine.writer
  • Service Usage 管理者roles/serviceusage.serviceUsageAdmin

商用 Earth Engine プランの管理

次の権限は、Earth Engine の料金プランの管理に関連しています。

請求先アカウントに必要な権限
  • billing.subscriptions.create(Earth Engine プランを変更する場合)
  • billing.subscriptions.list(現在の Earth Engine プランを表示する場合)
請求先アカウントの推奨ロール
  • 現在の Earth Engine プランを表示する請求先アカウント閲覧者roles/billing.viewer
  • Earth Engine プランを変更するには、請求先アカウント管理者roles/billing.admin

バッチタスクの管理

次の権限は、バッチタスクの同時実行に関するプロジェクトごとの上限の構成に関連しています。この機能は、Earth Engine の商用ユーザーのみが利用できます。

プロジェクト レベルのバッチタスクの上限を表示する

Cloud アカウントに必要な権限
earthengine.config.get

プロジェクト レベルのバッチタスクの上限を設定する

Cloud アカウントに必要な権限
earthengine.config.update
注: この権限には、請求先アカウントで構成されているプランレベルの上限を表示することも含まれます。
請求先アカウントに必要な権限
billing.subscriptions.list

アプリの管理

アプリ情報を表示する

必要な権限
  • iam.serviceAccounts.get
  • アプリが制限されている場合は iam.serviceAccounts.getIamPolicy(あまり一般的ではありません)
推奨されるロール 閲覧者roles/viewer)または
Earth Engine アプリ パブリッシャーroles/earthengine.appsPublisher

アプリを公開/更新する

必要な権限
  • iam.serviceAccounts.get
  • iam.serviceAccounts.create
  • iam.serviceAccounts.enable
  • iam.serviceAccounts.getIamPolicy
  • iam.serviceAccounts.setIamPolicy
  • iam.serviceAccounts.disable: アプリがプロジェクト間で移動された場合(一般的ではない)
推奨されるロール Earth Engine アプリ パブリッシャーroles/earthengine.appsPublisher)または
サービス アカウント管理者roles/iam.serviceAccountAdmin
メモ
  • また、Earth Engine アプリのサービス アカウントは、OAuth アクセス トークンを提示して Earth Engine サーバーに自身を識別します。そのため、アプリの作成時に、特定の ID がサービス アカウントのサービス アカウント トークン作成者roles/iam.serviceAccountTokenCreator)として追加されます。
  • 一般公開の Earth Engine アプリの場合、このロールが付与される ID は earth-engine-public-apps@appspot.gserviceaccount.com です。制限付きアプリの場合、ID はアプリ作成者が構成したアクセス制限 Google グループです。

アプリを削除する

必要な権限 iam.serviceAccounts.disable
推奨されるロール Earth Engine アプリ パブリッシャーroles/earthengine.appsPublisher)または
サービス アカウント管理者roles/iam.serviceAccountAdmin