アクセス制御

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 対応の Cloud プロジェクト内のすべてのアセットに対する権限が一度に設定されます。

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

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

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

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

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

VPC Service Controls

Earth Engine は、VPC Service Controls をサポートしています。これは、ユーザーがリソースを保護し、データ漏洩のリスクを軽減するのに役立つ Google Cloud セキュリティ機能です。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 を直接、Code Editor を介して、またはクライアント ライブラリを介して 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 権限がないと、ユーザーはプロジェクト リソースを使用できません。

プロジェクト管理

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

これは、Code Editor を使用して利用可能なプロジェクトを参照しているときに発生します。

必要な権限
  • 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
プロジェクトが以前に設定されていない場合

Code Editor でプロジェクトを初めて選択すると、プロジェクトが初期化され、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

Code Editor でプロジェクトを作成する

必要な権限
  • 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 権限をカバーするには、プロジェクト ムーバーが必要です。

商用プロジェクトの登録

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

必要な権限
請求先アカウント
  • billing.subscriptions.list
さらに、以下のことにご留意ください。
  • billing.accounts.get(新しい限定プランを作成する)
  • billing.subscriptions.create(新しいベーシック プランまたはプロフェッショナル プランを作成する)
Cloud プロジェクト
  • earthengine.computations.create
  • earthengine.config.update
  • serviceusage.services.get
  • serviceusage.services.enable
推奨されるロール
請求先アカウント
  • 請求先アカウント閲覧者roles/billing.viewer): 新しい限定プランを作成する場合
  • 請求先アカウント管理者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 プランを表示)
請求先アカウントの推奨ロール
  • 請求先アカウント閲覧者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 アプリ パブリッシャー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 App サービス アカウントは、OAuth アクセス トークンを提示して Earth Engine サーバーに自身を識別します。そのため、アプリの作成時に、サービス アカウントに サービス アカウント トークン作成者roles/iam.serviceAccountTokenCreator)として特定の ID が追加されます。
  • 公開の Earth Engine アプリの場合、そのロールが付与された ID は earth-engine-public-apps@appspot.gserviceaccount.com です。制限付きアプリの場合、ID はアプリ作成者が構成したアクセス制限の Google グループです。

アプリを削除する

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