VPC Service Controls позволяет организациям определять периметр вокруг ресурсов Google Cloud для снижения рисков утечки данных. С помощью VPC Service Controls вы создаете периметры, защищающие ресурсы и данные сервисов, которые вы явно указываете.
Пакетные сервисы Cloud Firestore
В состав VPC Service Control входят следующие API-интерфейсы:
-
firestore.googleapis.com -
datastore.googleapis.com -
firestorekeyvisualizer.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 . К устаревшим встроенным сервисам относятся:
- Datastore Java 8 с API App Engine
- Клиентская библиотека NDB на Python 2 для Datastore .
- Datastore Go 1.11 с API App Engine
Защита от несанкционированного выхода при импортно-экспортных операциях
Cloud Firestore поддерживает VPC Service Controls, но для обеспечения полной защиты исходящего трафика при операциях импорта и экспорта требуется дополнительная настройка. Для авторизации операций импорта и экспорта необходимо использовать агент службы Cloud Firestore а не учетную запись службы App Engine по умолчанию. Следуйте приведенным ниже инструкциям, чтобы просмотреть и настроить учетную запись авторизации для операций импорта и экспорта.
Агент службы Cloud Firestore
Вместо учетной записи службы App Engine Cloud Firestore использует агент службы Cloud Firestore для авторизации операций импорта и экспорта. Агент службы и учетная запись службы используют следующие соглашения об именовании:
- Агент службы 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 Service Agent.
Выполните следующие шаги для миграции с учетной записи службы App Engine на агент службы Cloud Firestore . После завершения миграцию отменить невозможно.
Если ваш проект еще не перенесен в службу Cloud Firestore , вы увидите баннер с описанием процесса миграции и кнопку « Проверить состояние корзины» . Следующий шаг поможет вам выявить и исправить потенциальные ошибки доступа.
Нажмите «Проверить состояние корзины» .
Появится меню с возможностью завершения миграции и списком сегментов Cloud Storage . Загрузка списка может занять несколько минут.
В этот список входят хранилища, которые недавно использовались в операциях импорта и экспорта, но в настоящее время не предоставляют агенту службы Cloud Firestore права на чтение и запись.
- Обратите внимание на основное имя агента службы Cloud Firestore вашего проекта. Имя агента службы отображается в разделе « Агент службы» для предоставления доступа к метке.
Для любой категории в списке, которую вы будете использовать для будущих операций импорта или экспорта, выполните следующие шаги:
В строке таблицы этого сегмента нажмите «Исправить» . Это откроет страницу разрешений этого сегмента в новой вкладке.
- Нажмите «Добавить» .
- В поле «Новые участники» введите имя вашего агента службы Cloud Firestore .
- В поле «Выберите роль» выберите «Сервисные агенты» > «Сервисный агент Firestore» .
- Нажмите « Сохранить ».
- Вернитесь на вкладку со страницей импорта/экспорта Cloud Firestore .
- Повторите эти шаги для других категорий в списке. Обязательно просмотрите все страницы списка.
Нажмите «Перенести в Firestore Service Agent» . Если у вас по-прежнему есть корзины с неудачными проверками разрешений, вам необходимо подтвердить перенос, нажав «Перенести» .
Уведомление сообщит вам о завершении миграции. Миграцию отменить нельзя.
Просмотреть статус миграции
Чтобы проверить статус миграции вашего проекта:
Найдите имя основного пользователя рядом с меткой «Задания импорта/экспорта, выполняемые от имени» .
Если в качестве основного пользователя используется
service- PROJECT_NUMBER @gcp-sa-firestore.iam.gserviceaccount.com, то ваш проект уже перенесен в службу Cloud Firestore . Отменить миграцию невозможно.Если проект еще не перенесен, в верхней части страницы появится баннер с кнопкой « Проверить состояние корзины ». Для завершения миграции см. раздел «Перенос на агент службы Firestore» .
Добавьте общеорганизационное ограничение политики.
В политике вашей организации установите следующее ограничение:
Для импорта/экспорта требуется агент Firestore Service Agent (
firestore.requireP4SAforImportExport).Это ограничение требует, чтобы операции импорта и экспорта использовали агент службы Cloud Firestore для авторизации запросов. Чтобы установить это ограничение, см. раздел «Создание и управление политиками организации» .
Применение этого ограничения организационной политики не предоставляет автоматически соответствующие разрешения для сегмента Cloud Storage агенту службы Cloud Firestore .
Если ограничение вызывает ошибки доступа для каких-либо рабочих процессов импорта или экспорта, вы можете отключить его, чтобы вернуться к использованию учетной записи службы по умолчанию. После проверки и обновления разрешений корзины Cloud Storage вы можете снова включить ограничение.