Как управлять доступом к ресурсам

Вы можете поделиться объектами или квотой на вычисления своего проекта с включенным Earth Engine с другими пользователями Earth Engine на уровне проекта. Объектами и вычислительными ресурсами Earth Engine можно делиться с другими пользователями или группами пользователей. Если вы хотите предоставить доступ группе пользователей, создайте новую группу Google и запишите ее адрес электронной почты (его можно найти по ссылке "О группе" на странице группы). На этой странице описано, как предоставить доступ к ресурсам отдельному пользователю или группе, а также какие роли и разрешения требуются для разных действий.

Как настроить использование сервиса Earth Engine

Чтобы использовать Earth Engine API в облачном проекте, необходимо включить API в проекте, а у пользователя должны быть как минимум разрешения роли Earth Engine Resource Viewer (подробнее о предопределенных ролях IAM в Earth Engine). Кроме того, у пользователя должно быть как минимум разрешение serviceusage.services.use в проекте. Это разрешение можно предоставить с помощью ролей Владелец или Редактор проекта, а также с помощью роли Пользователь Service Usage. Если у пользователя нет необходимых разрешений Earth Engine и Service Usage в выбранном проекте, возникнет ошибка.

Как настроить разрешения для объектов

Как настроить разрешения на уровне объекта

Есть несколько способов обновить разрешения на уровне объекта.

  • Используйте Менеджер объектов в редакторе кода.
  • Используйте командную строку Earth Engine.
  • Используйте клиентскую библиотеку, например ee.data.setAssetAcl().
  • или напрямую вызвать REST API.

Как настроить разрешения для объектов на уровне проекта

При предоставлении доступа на уровне проекта разрешения устанавливаются сразу для всех объектов в вашем облачном проекте с включенным Earth Engine.

Вы можете предоставить доступ к объектам на уровне проекта, назначив соответствующую роль Identity and Access Management (IAM) на странице администрирования IAM проекта. Для предоставления доступа к объектам и ресурсам Earth Engine существуют предопределенные роли IAM Earth Engine. Общие сведения о ролях IAM можно найти в статье Общие сведения о ролях.

Когда другой пользователь пытается получить доступ к одному из ваших объектов, сначала проверяются разрешения на уровне объекта. Если разрешения не заданы на уровне объекта или проверка не пройдена (то есть доступ отсутствует), разрешения будут проверяться на уровне проекта.

Как настроить разрешения на уровне проекта

Чтобы задать разрешения на уровне проекта, назначьте пользователю или группе пользователей роль IAM проекта.

  1. Откройте страницу IAM в консоли Google Cloud.
    Открыть страницу IAM
    Или наведите указатель на название проекта на вкладке Assets (Объекты) в редакторе кода и нажмите на значок .
  2. Нажмите Select a project (Выбрать проект) и выберите свой проект (если вы открыли страницу IAM из редактора кода, вы уже должны быть в нем).
  3. Нажмите Добавить в верхней части страницы и добавьте адрес электронной почты пользователя или группы в качестве нового участника или нажмите на значок рядом с существующим участником проекта.
  4. В раскрывающемся списке Роль найдите роль Ресурс Earth Engine, которую хотите предоставить. Подробнее о стандартных ролях IAM в Earth Engine…
  5. Нажмите кнопку Сохранить.

Управление зонами безопасности VPC

Earth Engine поддерживает управление зонами безопасности VPC – функцию безопасности Google Cloud, которая помогает пользователям защищать свои ресурсы и снижать риск кражи данных. Добавление ресурсов в периметр безопасности VPC позволяет лучше контролировать операции чтения и записи данных.

Подробнее о функциях и настройке VPC-SC…

Ограничения

Включение Управления зонами безопасности VPC для ресурсов имеет некоторые ограничения, для которых мы предоставили примеры обходных путей:

Ограничение Пример альтернативного текста
Редактор кода не поддерживается, и Управление зонами безопасности VPC не позволит использовать его с ресурсами и клиентами в пределах периметра безопасности. Используйте Earth Engine Python API вместе с библиотекой geemap.
Устаревшие объекты не защищены Управлением зонами безопасности VPC. Используйте объекты, хранящиеся в облачных проектах.
Экспорт на Google Диск не поддерживается в Управлении зонами безопасности VPC.
Приложения Earth Engine не поддерживаются для ресурсов и клиентов в пределах периметра безопасности. Обходного решения нет.

Использование Earth Engine с ресурсами внутри защищенного периметра безопасности VPC доступно только для тарифных планов Professional и Premium. Попытка использовать Earth Engine API с проектом, защищенным VPC-SC и связанным с тарифным планом Basic, приведет к ошибке. Подробнее о ценах на Earth Engine рассказывается в официальной документации.

Дополнительную информацию об управлении зонами безопасности VPC и его ограничениях можно найти в статье Поддерживаемые продукты и ограничения.

Роли и разрешения

В следующих разделах описаны разрешения и роли, необходимые для выполнения действий и доступа к ресурсам Earth Engine. Подробную информацию о разрешениях и ролях в облачных проектах Google Cloud можно найти в документации Google Cloud.

Стандартные роли IAM в Earth Engine

В 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. Также предоставляет разрешение на редактирование и удаление приложений, принадлежащих проекту, в рамках облачного проекта.

Если стандартные роли Earth Engine вам не подходят, вы можете задать базовую или специальную роль. Чтобы посмотреть набор разрешений, связанных с каждой ролью, на странице ролей IAM отфильтруйте роли и нажмите на нужную.

Включите Earth Engine API

Чтобы включить Earth Engine API в облачном проекте, пользователю нужна роль администратора использования сервисов (roles/serviceusage.serviceUsageAdmin) или другая роль, включающая разрешение serviceusage.services.enable (например, владелец или редактор проекта).

Предоставьте разрешения
  • serviceusage.services.enable
  • serviceusage.services.get
Рекомендуемые роли
  • Администратор использования сервисов (roles/serviceusage.serviceUsageAdmin) ИЛИ
  • Владелец (roles/owner) или
  • Редактор (roles/editor)

Полный доступ к Earth Engine API.

Чтобы предоставить пользователям полный доступ к сервису Earth Engine через REST API, редактор кода или клиентскую библиотеку, им нужно разрешить выполнять следующие действия:

Предоставьте разрешения
  • 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 Resource Viewer (roles/earthengine.viewer) ИЛИ
    • Earth Engine Resource Writer (Ответственный за запись ресурсов Earth Engine) – roles/earthengine.writer;
    • Администратор ресурсов Earth Engine (roles/earthengine.admin)
  • Редактор конфигурации OAuth (roles/oauthconfig.editor) – дополнительная роль, необходимая пользователям, которые получают доступ к Earth Engine через среду блокнота и используют Notebook Authenticator. Подробную информацию можно найти в разделе Аутентификация в блокноте Colab или JupyterLab.
Примечания Для использования проекта в качестве активного при вызове API в Google Cloud требуется роль Пользователь Service Usage. Без этого разрешения для проекта X ee.Initialize(project=X) не будет работать. Кроме того, вы можете выбрать этот проект в Cloud Console, чтобы посмотреть, как вы используете ресурсы.

Только для обмена объектами

Назначьте пользователю одну из предопределенных ролей IAM в Earth Engine с минимальными разрешениями, необходимыми для выполнения нужных действий. Обратите внимание, что пользователи не смогут использовать ресурсы проекта без необходимых разрешений serviceusage.

Управление проектами

Просмотр списка доступных проектов

Это происходит при использовании редактора кода для просмотра доступных проектов.

Предоставьте разрешения
  • resourcemanager.projects.get
  • resourcemanager.folders.list
  • resourcemanager.folders.get
  • resourcemanager.organizations.get (редко)
Рекомендуемые роли
  • Читатель (roles/viewer) ИЛИ
    Earth Engine Resource Viewer (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 Resource Viewer (roles/earthengine.viewer) и
    Service Usage Consumer (roles/serviceusage.serviceUsageConsumer)
Дополнительные роли (если проект не был настроен ранее)
  • Редактор (roles/editor) или
  • Project Mover (Переносчик проектов) (roles/resourcemanager.projectMover) И
    Project IAM Admin (Администратор IAM проекта) (roles/resourcemanager.projectIamAdmin) И
    Service Usage Admin (Администратор использования сервисов) (roles/serviceusage.serviceUsageAdmin)

Как создать проект в редакторе кода

Предоставьте разрешения
  • resourcemanager.projects.get
  • resourcemanager.projects.create
  • resourcemanager.projects.update
  • serviceusage.services.get
  • serviceusage.services.enable
Рекомендуемые роли
  • Редактор (roles/editor) или
  • Project Mover (Переносчик проектов) (roles/resourcemanager.projectMover) И
    Project Creator (Создатель проектов) (roles/resourcemanager.projectCreator) И
    Service Usage Admin (Администратор использования сервисов) (roles/serviceusage.serviceUsageAdmin)
Примечания Ваша организация может не предоставить вам роль редактора, поэтому могут потребоваться более детализированные роли. Для разрешения projects.update требуется роль Project Mover.

Выбор уровня некоммерческой организации

Ниже перечислены разрешения и рекомендуемые роли, связанные с настройкой некоммерческого уровня.

Выбор уровня
Предоставьте разрешения
  • earthengine.config.update
Рекомендуемые роли
  • Earth Engine Resource Writer (Ответственный за запись ресурсов Earth Engine) – roles/earthengine.writer.
Как связать платежный аккаунт с проектом

Для уровня Contributor требуется действительный платежный аккаунт, связанный с проектом. Подробную информацию о разрешениях и ролях, связанных с оплатой, можно найти на странице Доступ к Cloud Billing.

Предоставьте разрешения
Платежный аккаунт
  • billing.resourceAssociations.create
Облачный проект
  • resourcemanager.projects.createBillingAssignment
Рекомендуемые роли
Платежный аккаунт
  • Пользователь платежного аккаунта (roles/billing.user)
Облачный проект
  • Менеджер по оплате проекта (roles/billing.projectManager)

Регистрация коммерческого проекта

Следующие разрешения относятся к регистрации проектов для платного использования.

Предоставьте разрешения
Платежный аккаунт
  • billing.accounts.get
  • billing.subscriptions.list
Кроме того:
  • billing.subscriptions.create (для создания нового плана Basic или Professional)
Облачный проект
  • earthengine.config.update
  • serviceusage.services.get
  • serviceusage.services.enable
Рекомендуемые роли
Платежный аккаунт
  • Пользователь с правами на просмотр платежного аккаунта (roles/billing.viewer) – для создания нового ограниченного плана.
  • Администратор платежного аккаунта (roles/billing.admin) – для создания нового плана Basic или Professional.
Облачный проект
  • Earth Engine Resource Writer (Ответственный за запись ресурсов Earth Engine) – roles/earthengine.writer.
  • Администратор использования сервисов (roles/serviceusage.serviceUsageAdmin)

Управление коммерческим тарифным планом Earth Engine

Следующие разрешения относятся к управлению тарифными планами Earth Engine.

Необходимые разрешения
для платежного аккаунта
  • billing.accounts.get
  • billing.subscriptions.list
Кроме того:
  • billing.subscriptions.create (для перехода с плана Limited на Basic или Professional)
  • billing.subscriptions.update (для перехода между планами Basic и Professional или перехода с плана Basic или Professional на план Limited)
Рекомендуемые роли
в платежном аккаунте
  • Наблюдатель платежного аккаунта (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, если приложение ограничено (менее распространено)
Рекомендуемые роли Viewer (roles/viewer) ИЛИ
Earth Engine Apps Publisher (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) ИЛИ
Service Account Admin (roles/iam.serviceAccountAdmin)
Примечания
  • Кроме того, сервисные аккаунты приложений Earth Engine идентифицируют себя на серверах Earth Engine, предоставляя токен доступа OAuth. Поэтому при создании приложения определенным идентификаторам назначается роль Создатель токенов сервисного аккаунта (roles/iam.serviceAccountTokenCreator).
  • Для общедоступного приложения Earth Engine роль назначается идентификатору earth-engine-public-apps@appspot.gserviceaccount.com, а для приложения с ограниченным доступом – группе Google, которая указана создателем приложения.

Удалить приложение

Предоставьте разрешения iam.serviceAccounts.disable
Рекомендуемые роли Earth Engine Apps Publisher (roles/earthengine.appsPublisher) ИЛИ
Service Account Admin (roles/iam.serviceAccountAdmin)