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

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

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

Cloud プロジェクトで Earth Engine API を使用するには、プロジェクトで API を有効にする必要があります。また、ユーザーには、少なくとも Earth Engine リソース閲覧者ロールの権限が必要です(事前定義された Earth Engine IAM ロールの詳細をご覧ください)。さらに、ユーザーにはプロジェクトに対する serviceusage.services.use 権限が少なくとも必要です。この権限は、プロジェクトのオーナーまたは編集者のロール、または特定の Service Usage コンシューマー ロールを介して付与できます。選択したプロジェクトに対して必要な 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 ページを開く
    または、コードエディタの [Assets] タブでプロジェクト名にポインタを合わせ、 アイコンをクリックします。
  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 で保護されません。 クラウド プロジェクトに保存されているアセットを使用する。
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 コンシューマーのロールが必要です。プロジェクト X にこの権限がないと、ee.Initialize(project=X) は失敗します。さらに、Cloud コンソールでこのプロジェクトを選択して、リソースの使用状況を表示できます。

アセットの共有のみ

必要なアクティビティを実行するために必要な最小限の権限を持つ事前定義された 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 かつ
  • serviceusage.services.enable
役割の候補
  • 閲覧者(roles/viewer)または
  • Earth Engine リソース閲覧者(roles/earthengine.viewer)および
    Service Usage コンシューマー(roles/serviceusage.serviceUsageConsumer)
追加のロール(プロジェクトが以前に設定されていない場合)
  • 編集者(roles/editor)または
  • プロジェクト移動者(roles/resourcemanager.projectMover)および
    プロジェクト IAM 管理者(roles/resourcemanager.projectIamAdmin)および
    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)および
    プロジェクト作成者(roles/resourcemanager.projectCreator)および
    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.accounts.get
  • billing.subscriptions.list
さらに、以下のことにご留意ください。
  • billing.subscriptions.create(新しい Basic またはプロフェッショナル プランの作成に対して)
Cloud プロジェクト
  • earthengine.config.update
  • serviceusage.services.get
  • serviceusage.services.enable
役割の候補
請求先アカウント
  • 請求先アカウント閲覧者(roles/billing.viewer)。新しい制限付きプランを作成する場合
  • 請求先アカウント管理者(roles/billing.admin)。新しい Basic またはプロフェッショナル プランを作成します。
Cloud プロジェクト
  • Earth Engine リソース書き込み(roles/earthengine.writer)
  • Service Usage 管理者(roles/serviceusage.serviceUsageAdmin)

商用 Earth Engine プランの管理

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

請求先アカウントに必要な権限
  • billing.accounts.get
  • billing.subscriptions.list
さらに、以下のことにご留意ください。
  • billing.subscriptions.create(制限付きプランからベーシック プランまたはプロフェッショナル プランにアップグレードする場合)
  • billing.subscriptions.update(ベーシック プランとプロフェッショナル プランの切り替え、またはベーシック プランまたはプロフェッショナル プランから制限付きプランへのダウングレード)
請求先アカウントの推奨ロール
  • 請求先アカウント閲覧者(roles/billing.viewer)。現在の Earth Engine プランを表示します。
  • 請求先アカウント管理者(roles/billing.admin)。Earth Engine プランを変更します。

バッチタスク管理

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

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

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

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

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

アプリの管理

アプリ情報を表示する

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

アプリを公開 / 更新する

必要な権限
  • iam.serviceAccounts.get
  • iam.serviceAccounts.create
  • iam.serviceAccounts.enable
  • iam.serviceAccounts.getIamPolicy
  • iam.serviceAccounts.setIamPolicy
  • iam.serviceAccounts.disable(アプリが別のプロジェクトに移動された場合、一般的ではありません)
役割の候補 Earth Engine Apps Publisher(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 Apps Publisher(roles/earthengine.appsPublisher)または
サービス アカウント管理者(roles/iam.serviceAccountAdmin)