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

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

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

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

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

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

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

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

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

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

プロジェクトの 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 を有効にする

Cloud プロジェクトで Earth Engine API を有効にするには、Service Usage 管理者(roles/serviceusage.serviceUsageAdmin)ロール、または serviceusage.services.enable 権限を含む別のロール(プロジェクト オーナーや編集者など)が必要です。

必要な権限
  • serviceusage.services.enable
  • serviceusage.services.get
推奨されるロール
  • Service Usage 管理者(roles/serviceusage.serviceUsageAdmin)または
  • オーナー(roles/owner)または
  • 編集者(roles/editor)

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 を呼び出すときにプロジェクトをアクティブ プロジェクトとして使用するために、Service Usage Consumer ロールが必要です。プロジェクト 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)
請求先アカウントをプロジェクトに関連付ける

コントリビューター階層には、プロジェクトに関連付けられた有効な請求先アカウントが必要です。請求の権限とロールの詳細については、Cloud Billing アクセス権のページをご覧ください。

必要な権限
請求先アカウント
  • billing.resourceAssociations.create
Cloud プロジェクト
  • resourcemanager.projects.createBillingAssignment
推奨されるロール
請求先アカウント
  • 請求先アカウント ユーザー(roles/billing.user)
Cloud プロジェクト
  • プロジェクト支払い管理者(roles/billing.projectManager)

商用プロジェクトの登録

次の権限は、有料で使用するプロジェクトの登録に関連しています。

必要な権限
請求先アカウント
  • 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 プランを作成する場合)
  • 請求先アカウント管理者(roles/billing.admin): 新しい Basic プランまたは Professional プランを作成する場合
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)