Google Cloud Search поддерживает элементы управления службами VPC для повышения безопасности ваших данных. Элементы управления службами VPC позволяют определить периметр обслуживания вокруг ресурсов Google Cloud Platform, чтобы ограничить доступ к данным и снизить риски утечки данных.
Предпосылки
Прежде чем начать, установите интерфейс командной строки gcloud .
Включить элементы управления службами VPC
Чтобы включить элементы управления службами VPC:
Получите идентификаторы и номера проектов Google Cloud Platform, которые вы хотите использовать. Чтобы получить идентификаторы и номера проектов, см. раздел «Идентификация проектов» .
Используйте gcloud для создания политики доступа для вашей организации Google Cloud Platform:
Создайте периметр службы с Cloud Search как ограниченной службой, выполнив следующую команду gcloud:
gcloud access-context-manager perimeters create NAME \ --title=TITLE \ --resources=PROJECTS \ --restricted-services=RESTRICTED-SERVICES \ --policy=POLICY_NAME
Где:
-
NAME
— название периметра. -
TITLE
— понятное для человека название периметра. -
PROJECTS
— это список из одного или нескольких номеров проектов, разделённых запятыми, каждому из которых предшествует строкаprojects/
. Используйте номера проектов, полученные на шаге 1. Например, если у вас два проекта, project12345
и67890
, настройка будет выглядеть так:--resource=projects/12345, project/67890
. Этот флаг поддерживает только номера проектов; он не поддерживает имена и идентификаторы. -
RESTRICTED-SERVICES
— это список одной или нескольких служб, разделённых запятыми. Используйтеcloudsearch.googleapis.com
. -
POLICY_NAME
— числовое имя политики доступа вашей организации, полученное на шаге 2c.
Дополнительную информацию о создании периметра обслуживания см. в разделе Создание периметра обслуживания .
-
(необязательно) Если вы хотите применить ограничения на основе IP-адреса или региона, создайте уровни доступа и добавьте их к периметру обслуживания, созданному на шаге 3:
- Чтобы создать уровень доступа, см. раздел Создание базового уровня доступа . Пример создания условия уровня доступа, разрешающего доступ только с определённого диапазона IP-адресов, например, внутри корпоративной сети, см. раздел Ограничение доступа в корпоративной сети .
- После создания уровня доступа добавьте его к периметру обслуживания. Инструкции по добавлению уровня доступа к периметру обслуживания см. в разделе Добавление уровня доступа к существующему периметру . Распространение и вступление изменений в силу может занять до 30 минут.
Используйте REST API службы поддержки клиентов Cloud Search для обновления настроек клиента с помощью проекта, защищенного периметром VPC Service Controls:
Получите токен доступа OAuth 2.0 с сервера авторизации Google. Информация о получении токена приведена в шаге 2 раздела «Использование OAuth 2.0 для доступа к API Google» . При получении токена доступа используйте одну из следующих областей действия OAuth:
https://www.googleapis.com/auth/cloud_search.settings.indexing
,https://www.googleapis.com/auth/cloud_search.settings
илиhttps://www.googleapis.com/auth/cloud_search
Выполните следующую команду curl, чтобы задать проект в настройках VPC Service Controls в разделе Customer settings в Google Cloud Search:
curl --request PATCH \ 'https://cloudsearch.googleapis.com/v1/settings/customer' \ --header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --data '{ "vpc_settings": { "project": "projects/PROJECT_ID" } }' \ --compressed
Где:
-
YOUR_ACCESS_TOKEN
— токен доступа OAuth 2.0, полученный на шаге 5а. PROJECT_ID
— идентификатор проекта, полученный на шаге 1.В случае успеха вы получите ответ
200 OK
вместе с обновленными настройками клиента.
После успешного выполнения вышеуказанных шагов ограничения служб VPC, заданные в периметре сервиса, применяются ко всем API Google Cloud Search, поисковым запросам на сайте cloudsearch.google.com
, а также к просмотру и изменению конфигурации или отчётов через консоль администратора. Дальнейшие запросы к API Google Cloud Search, не соответствующие уровням доступа, приводят к ошибке PERMISSION_DENIED “Request is prohibited by organization's policy”
.