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 ロールをユーザーまたはユーザー グループに割り当てます。
- Google Cloud コンソールで IAM ページを開きます。
IAM ページを開く
または、コードエディタの [Assets] タブでプロジェクト名にポインタを合わせ、 アイコンをクリックします。 - [プロジェクトを選択] をクリックして、プロジェクトを選択します(コードエディタから IAM ページを開いた場合は、すでに選択されているはずです)。
- 上部の [追加] をクリックし、個人またはグループのメールアドレスを新しいメンバーとして追加するか、プロジェクト内の既存のメンバーの横にある アイコンをクリックします。
- [ロール] プルダウンで、付与する Earth Engine リソースのロールを検索します。詳細については、事前定義された Earth Engine IAM ロールをご覧ください。
- [保存] ボタンをクリックします。
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 権限を含む別のロール(プロジェクト オーナーや編集者など)が必要です。
| 必要な権限 |
|
| 役割の候補 |
|
Earth Engine API への完全アクセス権
REST API、コードエディタ、クライアント ライブラリのいずれかを使用して Earth Engine サービスへのフルアクセス権をユーザーに付与するには、ユーザーに次のようなオペレーションを実行する権限が必要です。
- Earth Engine 式の実行
- バッチ計算(エクスポート)の実行
- インタラクティブな結果(オンライン地図、サムネイル、グラフなど)を取得する
- Earth Engine アセットの作成 / 削除
- クライアント ライブラリを介した OAuth 認証を使用して Earth Engine に接続する
| 必要な権限 |
|
| 役割の候補 |
|
| メモ |
Google Cloud では、API を呼び出すときにプロジェクトをアクティブなプロジェクトとして使用するために、Service Usage コンシューマーのロールが必要です。プロジェクト X にこの権限がないと、ee.Initialize(project=X) |
アセットの共有のみ
必要なアクティビティを実行するために必要な最小限の権限を持つ事前定義された Earth Engine IAM ロールのいずれかをユーザーに付与します。必要な serviceusage 権限がないと、ユーザーはプロジェクト リソースを使用できません。
プロジェクト マネジメント
使用可能なプロジェクトを一覧表示する
これは、コードエディタを使用して利用可能なプロジェクトを閲覧するときに発生します。
| 必要な権限 |
|
| 役割の候補 |
|
コードエディタで使用するプロジェクトを選択する
| 必要な権限 |
プロジェクトがまだ設定されていない場合コードエディタでプロジェクトを初めて選択すると、プロジェクトが初期化され、Earth Engine で使用できるようになります。まだ設定していない場合は、設定を正常に完了するためにこれらのロールが必要になります。
|
| 役割の候補 |
追加のロール(プロジェクトが以前に設定されていない場合)
|
コードエディタでプロジェクトを作成する
| 必要な権限 |
|
| 役割の候補 |
|
| 注 |
組織から編集者ロールが付与されない場合があるため、よりきめ細かいロールが必要になることがあります。projects.update 権限をカバーするには、プロジェクト移動者が必要です。 |
非営利ティアの選択
次の権限と推奨ロールは、非商用ティアの構成に関連しています。
ティアの選択
| 必要な権限 |
|
| 役割の候補 |
|
請求先アカウントをプロジェクトに関連付ける
コントリビューター階層には、プロジェクトに関連付けられた有効な請求先アカウントが必要です。請求に関する権限とロールの詳細については、Cloud Billing のアクセス ページをご覧ください。
| 必要な権限 | |
|---|---|
| 請求先アカウント |
|
| Cloud プロジェクト |
|
| 役割の候補 | |
| 請求先アカウント |
|
| Cloud プロジェクト |
|
商用プロジェクトの登録
次の権限は、有料で使用するプロジェクトの登録に関連しています。
| 必要な権限 | |
|---|---|
| 請求先アカウント |
|
| Cloud プロジェクト |
|
| 役割の候補 | |
| 請求先アカウント |
|
| Cloud プロジェクト |
|
商用 Earth Engine プランの管理
次の権限は、Earth Engine の料金プランの管理に関連しています。
|
請求先アカウントに必要な権限 |
|
|
請求先アカウントの推奨ロール |
|
バッチタスク管理
次の権限は、バッチタスクの同時実行に関するプロジェクトごとの上限の構成に関連しています。この機能は、Earth Engine の商用ユーザーのみが利用できます。
プロジェクト レベルのバッチタスクの上限を表示する
|
Cloud アカウントに必要な 権限 |
earthengine.config.get
|
プロジェクト レベルのバッチタスクの上限を設定する
|
Cloud アカウントに必要な 権限 |
earthengine.config.update注: この権限には、請求先アカウントに構成されているプランレベルの上限の表示も含まれます。 |
|
請求先アカウントに必要な権限 |
billing.subscriptions.list
|
アプリの管理
アプリ情報を表示する
| 権限が必要です |
|
| 推奨されるロール |
閲覧者(roles/viewer)またはEarth Engine Apps パブリッシャー( roles/earthengine.appsPublisher)
|
アプリを公開 / 更新する
| 必要な権限 |
|
| 役割の候補 |
Earth Engine Apps Publisher(roles/earthengine.appsPublisher)またはサービス アカウント管理者( roles/iam.serviceAccountAdmin)
|
| メモ |
|
アプリを削除する
| 必要な権限 | iam.serviceAccounts.disable |
| 役割の候補 |
Earth Engine Apps Publisher(roles/earthengine.appsPublisher)またはサービス アカウント管理者( roles/iam.serviceAccountAdmin)
|