Stay organized with collections
Save and categorize content based on your preferences.
Google Cloud Search supports VPC Service Controls
to enhance the security of your data. VPC Service Controls allows you to define
a service perimeter around Google Cloud Platform resources to constrain data
and help mitigate data exfiltration risks.
Obtain the project IDs and project numbers for the Google Cloud Platform
project you want to use. To obtain the project IDs and numbers, refer to
Identifying projects.
Use gcloud to create an access policy for your Google Cloud Platform
organization:
TITLE is the human-readable title of the perimeter.
PROJECTS is a comma-separated list of one or more project numbers, each
preceded by the string projects/. Use the project numbers obtained in
step 1. For example, if you had two projects, project 12345 and 67890, your
setting would be --resource=projects/12345, project/67890 .This flag only
supports project numbers; it doesn’t support names or IDs.
RESTRICTED-SERVICES is a comma-separated list of one or more services.
Use cloudsearch.googleapis.com.
POLICY_NAME is the numeric name of your organization's access policy
obtained in step 2c.
(optional) If you want to apply IP or region-based restrictions, create
access levels and add them to the service perimeter created in step 3:
To create an access level, refer to
Creating an basic access level.
For an example on how to create an access level condition that only allows
access from a specific range of IP addresses, such as those within a corporate
network, refer to
Limit access on a corporate network.
After you have created an access level, add it to the service perimeter.
For instructions on adding an access level to a service perimeter, refer to
Adding an access level to an existing perimeter.
This change can take up to 30 minutes for this change to propagate and take
effect.
Use the Cloud Search Customer Service REST API to update the customer
settings with your VPC Service Controls perimeter-protected project:
Obtain an OAuth 2.0 access token from the Google Authorization Server.
For information on obtaining the token, refer to step 2 of
Using OAuth 2.0 to Access Google APIs.
When obtaining the access token, use one of the following OAuth scopes:
https://www.googleapis.com/auth/cloud_search.settings.indexing,
https://www.googleapis.com/auth/cloud_search.settings,
or https://www.googleapis.com/auth/cloud_search
Run the following curl command to set the project in VPC Service Controls
settings under Customer settings in Google Cloud Search:
YOUR_ACCESS_TOKEN is OAuth 2.0 access token obtained in step 5a.
PROJECT_ID is the project ID obtained in step 1.
If successful, you should receive a 200 OK response accompanied by the
updated customer settings.
After the above steps are completed successfully, the VPC Service Controls
restrictions, as defined in the service perimeter, are applied to all Google
Cloud Search APIs, searches at cloudsearch.google.com, and viewing and
changing configuration or reports using the Admin console. Further requests
to the Google Cloud Search API that don’t follow access levels receive a
PERMISSION_DENIED “Request is prohibited by organization’s policy” error.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-04 UTC."],[],[],null,["Google Cloud Search supports VPC Service Controls\nto enhance the security of your data. VPC Service Controls allows you to define\na service perimeter around Google Cloud Platform resources to constrain data\nand help mitigate data exfiltration risks.\n| **Note:** Cloud Search supports restricted VIP which provides a private network route to make data and resources inaccessible from the internet. For information on setting up restricted VIP, refer to [Setting up private connectivity to Google APIs and services](https://cloud.google.com/vpc-service-controls/docs/set-up-private-connectivity).\n\nPrerequisites\n\nBefore you begin,\n[install the gcloud command-line interface](https://cloud.google.com/sdk/gcloud).\n\nEnable VPC Service Controls\n\nTo enable VPC Service Controls:\n\n1. Obtain the project IDs and project numbers for the Google Cloud Platform\n project you want to use. To obtain the project IDs and numbers, refer to\n [Identifying projects](https://cloud.google.com/resource-manager/docs/creating-managing-projects#identifying_projects).\n\n2. Use gcloud to create an access policy for your Google Cloud Platform\n organization:\n\n 1. [Get your organization ID](https://cloud.google.com/resource-manager/docs/creating-managing-organization#retrieving_your_organization_id).\n 2. [Create an access policy](https://cloud.google.com/access-context-manager/docs/create-access-policy).\n 3. [Get the name of your access policy](https://cloud.google.com/access-context-manager/docs/manage-access-policy#gcloud).\n\n | **Note:** Organizations can only have one access policy. If you attempt to create a second access policy for for your organization, an error occurs.\n3. Create a service perimeter with Cloud Search as a restricted service by\n running the following gcloud command:\n\n gcloud access-context-manager perimeters create NAME \\\n --title=TITLE \\\n --resources=PROJECTS \\\n --restricted-services=RESTRICTED-SERVICES \\\n --policy=POLICY_NAME\n\n Where:\n - `NAME` is the name of the perimeter.\n - `TITLE` is the human-readable title of the perimeter.\n - `PROJECTS` is a comma-separated list of one or more project numbers, each preceded by the string `projects/`. Use the project numbers obtained in step 1. For example, if you had two projects, project `12345` and `67890`, your setting would be `--resource=projects/12345, project/67890` .This flag only supports project numbers; it doesn't support names or IDs.\n - `RESTRICTED-SERVICES` is a comma-separated list of one or more services. Use `cloudsearch.googleapis.com`.\n - `POLICY_NAME` is the numeric name of your organization's access policy obtained in step 2c.\n\n For further information on how to create a service perimeter, refer to\n [Creating a service perimeter](https://cloud.google.com/vpc-service-controls/docs/create-service-perimeters).\n4. (optional) If you want to apply IP or region-based restrictions, create\n access levels and add them to the service perimeter created in step 3:\n\n 1. To create an access level, refer to [Creating an basic access level](https://cloud.google.com/access-context-manager/docs/create-basic-access-level). For an example on how to create an access level condition that only allows access from a specific range of IP addresses, such as those within a corporate network, refer to [Limit access on a corporate network](https://cloud.google.com/access-context-manager/docs/create-basic-access-level#corporate-network-example).\n 2. After you have created an access level, add it to the service perimeter. For instructions on adding an access level to a service perimeter, refer to [Adding an access level to an existing perimeter](https://cloud.google.com/vpc-service-controls/docs/manage-service-perimeters#add-access-level). This change can take up to 30 minutes for this change to propagate and take effect.\n5. Use the Cloud Search Customer Service REST API to update the customer\n settings with your VPC Service Controls perimeter-protected project:\n\n| **Note:** Because Cloud Search resources are not stored in a Google Cloud Platform project, you must update the Cloud Search customer settings with the VPC Service Controls perimeter-protected project. The VPC Service Controls project acts as a virtual project container for all your Cloud Search resources. Without building this mapping, VPC Service Controls won't work for the Cloud Search API.\n\n1. Obtain an OAuth 2.0 access token from the Google Authorization Server.\n For information on obtaining the token, refer to step 2 of\n [Using OAuth 2.0 to Access Google APIs](https://developers.google.com/identity/protocols/oauth2).\n When obtaining the access token, use one of the following OAuth scopes:\n `https://www.googleapis.com/auth/cloud_search.settings.indexing`,\n `https://www.googleapis.com/auth/cloud_search.settings`,\n or `https://www.googleapis.com/auth/cloud_search`\n\n2. Run the following curl command to set the project in VPC Service Controls\n settings under Customer settings in Google Cloud Search:\n\n curl --request PATCH \\\n 'https://cloudsearch.googleapis.com/v1/settings/customer' \\\n --header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \\\n --header 'Accept: application/json' \\\n --header 'Content-Type: application/json' \\\n --data '{ \"vpc_settings\": { \"project\": \"projects/PROJECT_ID\" } }' \\\n --compressed\n\n Where:\n\n- `YOUR_ACCESS_TOKEN` is OAuth 2.0 access token obtained in step 5a.\n- `PROJECT_ID` is the project ID obtained in step 1.\n\n If successful, you should receive a `200 OK` response accompanied by the\n updated customer settings.\n\nAfter the above steps are completed successfully, the VPC Service Controls\nrestrictions, as defined in the service perimeter, are applied to all Google\nCloud Search APIs, searches at `cloudsearch.google.com`, and viewing and\nchanging configuration or reports using the Admin console. Further requests\nto the Google Cloud Search API that don't follow access levels receive a\n`PERMISSION_DENIED \"Request is prohibited by organization's policy\"` error."]]