Управление зонами безопасности VPC позволяет организациям задавать периметр безопасности для ресурсов Google Cloud, чтобы снизить риск кражи данных. С помощью Управления зонами безопасности VPC вы можете создавать периметры, которые защищают ресурсы и данные указанных вами сервисов.
Cloud Firestore сервисов в пакете
В Управлении зонами безопасности VPC объединены следующие API:
firestore.googleapis.comdatastore.googleapis.comfirestorekeyvisualizer.googleapis.com
Если вы ограничите сервис firestore.googleapis.com в периметре,
периметр также ограничит сервисы datastore.googleapis.com и
firestorekeyvisualizer.googleapis.com.
Ограничьте сервис datastore.googleapis.com
Сервис datastore.googleapis.com входит в состав сервиса firestore.googleapis.com. Чтобы ограничить доступ к сервису datastore.googleapis.com, необходимо ограничить доступ к сервису firestore.googleapis.com следующим образом:
- При создании периметра безопасности в консоли Google Cloud добавьте Cloud Firestore в качестве сервиса с ограниченным доступом.
При создании периметра безопасности с помощью Google Cloud CLI используйте
firestore.googleapis.comвместоdatastore.googleapis.com.--perimeter-restricted-services=firestore.googleapis.com
App Engine устаревших пакетов сервисов для Datastore
Устаревшие пакетные сервисы App Engine для Datastore не поддерживают периметры безопасности. Если защитить сервис Datastore с помощью периметра безопасности, трафик из устаревших пакетов сервисов App Engine будет заблокирован. К устаревшим пакетам услуг относятся:
- Java 8 Datastore с API App Engine
- Клиентская библиотека NDB для Python 2 для Datastore
- Go 1.11 Datastore с API App Engine
Защита исходящего трафика при импорте и экспорте
Cloud Firestore поддерживает Управление зонами безопасности VPC, но для полной защиты исходящего трафика при импорте и экспорте требуется дополнительная настройка. Для авторизации операций импорта и экспорта вместо сервисного аккаунта по умолчанию App Engine необходимо использовать сервисный агент Cloud Firestore. Чтобы посмотреть и настроить аккаунт авторизации для операций импорта и экспорта, следуйте инструкциям ниже.
Агент сервиса Cloud Firestore
Для авторизации операций импорта и экспорта Cloud Firestore использует сервисный агент Cloud Firestore, а не сервисный аккаунт App Engine. Для агента и аккаунта сервиса используются следующие соглашения об именовании:
- Агент сервиса Cloud Firestore
service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com
Ранее в Cloud Firestore использовался сервисный аккаунт App Engine по умолчанию, а не сервисный агент Cloud Firestore. Если в вашей базе данных для импорта или экспорта данных по-прежнему используется сервисный аккаунт App Engine, рекомендуем следовать инструкциям в этом разделе, чтобы перейти на использование сервисного агента Cloud Firestore.
- Сервисный аккаунт App Engine
PROJECT_ID@appspot.gserviceaccount.com
Агент сервиса Cloud Firestore предпочтительнее, поскольку он предназначен специально для Cloud Firestore. Сервисный аккаунт App Engine используется несколькими сервисами.
Посмотреть аккаунт авторизации
Посмотреть, какой аккаунт используется для авторизации запросов на импорт и экспорт, можно на странице Импорт/экспорт в консоли Google Cloud. Вы также можете посмотреть, использует ли ваша база данных агент сервиса Cloud Firestore.
- Посмотрите, какой аккаунт указан рядом с надписью Задания импорта/экспорта выполняются от имени.
Если в вашем проекте не используется агент сервиса Cloud Firestore, вы можете перейти на Cloud Firestore него одним из следующих способов:
- Перенесите проект, проверив и обновив разрешения для сегмента Cloud Storage (рекомендуется).
- Добавьте ограничение на уровне организации, которое будет действовать для всех проектов в ней.
Первый способ предпочтительнее, поскольку он ограничивает область действия одним проектом Cloud Firestore. Второй способ не рекомендуется, поскольку при его использовании не переносятся существующие разрешения для сегмента Cloud Storage. Однако он обеспечивает соответствие требованиям безопасности на уровне организации.
Проверьте и обновите разрешения для сегментов Cloud Storage
Процесс переноса состоит из двух этапов:
- Обновите разрешения для сегмента Cloud Storage. Подробная информация приведена в следующем разделе.
- Подтвердите перенос в агент сервиса Cloud Firestore.
Разрешения агента сервиса для сегмента
Для любых операций экспорта или импорта, в которых используется сегмент Cloud Storage в другом проекте, необходимо предоставить агенту сервиса Cloud Firestore разрешения для этого сегмента. Например, для операций, которые перемещают данные в другой проект, требуется доступ к сегменту в этом проекте. В противном случае после перехода на агент сервиса Cloud Firestore эти операции будут завершаться ошибкой.
Если вы импортируете и экспортируете рабочие процессы в рамках одного проекта, менять разрешения не нужно. По умолчанию агент сервиса Cloud Firestore может получать доступ к сегментам в том же проекте.
Обновите разрешения для сегментов Cloud Storage из других проектов, чтобы предоставить доступ агенту сервиса service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com. Назначьте сервисному агенту роль Firestore Service Agent.
Роль Firestore Service Agent предоставляет разрешения на чтение и запись для сегмента Cloud Storage. Если вам нужно предоставить только разрешение на чтение или только разрешение на запись, используйте специальную роль.
Процесс переноса, описанный в следующем разделе, поможет вам определить, для каких сегментов Cloud Storage может потребоваться обновить разрешения.
Как перенести проект в агент сервиса Firestore
Чтобы перейти с сервисного аккаунта App Engine на сервисный агент Cloud Firestore, выполните следующие действия: После завершения переноса отменить его нельзя.
-
Если ваш проект ещё не перенесен на агент сервиса Cloud Firestore, вы увидите баннер с описанием переноса и кнопку Проверить статус сегмента. Следующий шаг поможет вам выявить и устранить потенциальные ошибки, связанные с разрешениями.
Нажмите Проверить статус сегмента.
Появится меню с возможностью завершить перенос и списком сегментов Cloud Storage. Загрузка списка может занять несколько минут.
В этом списке перечислены сегменты, которые недавно использовались для импорта и экспорта, но в настоящее время не предоставляют агенту сервиса Cloud Firestore разрешения на чтение и запись.
- Запишите имя субъекта сервисного агента Cloud Firestore вашего проекта. Название агента сервиса указано под меткой Агент сервиса, которому нужно предоставить доступ.
-
Для каждого сегмента в списке, который вы будете использовать для будущих операций импорта или экспорта, выполните следующие действия:
-
В строке таблицы, относящейся к этому сегменту, нажмите Исправить. В новой вкладке откроется страница разрешений для этого сегмента.
- Нажмите Добавить.
- В поле Новые субъекты введите название сервисного агента Cloud Firestore.
- В поле Выберите роль выберите Агенты сервисов > Агент сервиса Firestore.
- Нажмите Сохранить.
- Вернитесь на вкладку со страницей импорта/экспорта Cloud Firestore.
- Повторите эти действия для других сегментов в списке. Проверьте все страницы списка.
-
-
Нажмите Migrate to Firestore Service Agent (Перейти на агент сервиса Firestore). Если у вас все ещё есть сегменты, не прошедшие проверку разрешений, вам нужно подтвердить перенос, нажав Перенести.
Когда перенос завершится, вы получите оповещение. Перенос нельзя отменить.
Как посмотреть статус переноса
Чтобы проверить статус переноса проекта:
-
Найдите пользователя рядом с меткой Задания импорта/экспорта выполняются от имени.
Если субъект –
service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com, значит проект уже перенесен на агент сервиса Cloud Firestore. Отменить перенос нельзя.Если проект не был перенесен, в верхней части страницы появится баннер с кнопкой Проверить статус сегмента. Чтобы завершить перенос, ознакомьтесь с инструкциями по переносу в агент сервиса Firestore.
Как добавить ограничение правил на уровне организации
-
Задайте в правилах организации следующее ограничение:
Требовать агент сервиса Firestore для импорта и экспорта (
firestore.requireP4SAforImportExport).Это ограничение требует, чтобы операции импорта и экспорта использовали агент сервиса Cloud Firestore для авторизации запросов. Инструкции приведены в статье Создание правил организации и управление ими .
Применение этого ограничения организационных правил не предоставляет автоматически соответствующие разрешения для сегмента Cloud Storage агенту сервиса Cloud Firestore.
Если ограничение создает ошибки разрешений для рабочих процессов импорта или экспорта, вы можете отключить его, чтобы вернуться к использованию сервисного аккаунта по умолчанию. После того как вы проверите и обновите разрешения для сегментов Cloud Storage, вы сможете снова включить ограничение.