Bird
Raised Fist0
GCPcloud~5 mins

Shared VPC concept in GCP - Commands & Configuration

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Introduction
Sometimes, teams need to share network resources securely across projects. Shared VPC lets one project own the network while others use it, avoiding duplicate networks and easing management.
When multiple teams need to connect their resources securely using the same network.
When you want to centralize network control but let other projects use the network.
When you want to avoid creating separate networks for each project to reduce complexity.
When you want to apply consistent firewall rules and routing across projects.
When you want to simplify billing and monitoring by centralizing network resources.
Commands
Enable Shared VPC on the host project to allow other projects to use its network.
Terminal
gcloud compute shared-vpc enable example-host-project
Expected OutputExpected
Enabled Shared VPC host project [example-host-project].
Grant a user permission to use the Shared VPC network from the host project in the service project.
Terminal
gcloud projects add-iam-policy-binding example-service-project --member=user:alice@example.com --role=roles/compute.networkUser
Expected OutputExpected
Updated IAM policy for project [example-service-project].
--member - Specifies the user or service account to grant permissions.
--role - Specifies the role to assign for network usage.
List all projects currently associated with the Shared VPC host project.
Terminal
gcloud compute shared-vpc associated-projects list example-host-project
Expected OutputExpected
PROJECT_ID example-service-project
Associate a service project with the Shared VPC host project to allow it to use the host's network.
Terminal
gcloud compute shared-vpc associated-projects add example-host-project --project=example-service-project
Expected OutputExpected
Added project [example-service-project] to Shared VPC host project [example-host-project].
--project - Specifies the service project to associate.
Key Concept

If you remember nothing else from this pattern, remember: Shared VPC lets one project own the network while others securely use it to share resources.

Common Mistakes
Trying to use Shared VPC without enabling it on the host project.
The network sharing won't work because the host project is not set up to share its network.
Always run 'gcloud compute shared-vpc enable' on the host project first.
Not granting the correct IAM role to users or service accounts in the service project.
Users or services won't have permission to use the Shared VPC network, causing failures.
Grant 'roles/compute.networkUser' to the necessary members in the service project.
Forgetting to associate the service project with the host project.
The service project cannot use the host project's network until association is done.
Use 'gcloud compute shared-vpc associated-projects add' to link the service project.
Summary
Enable Shared VPC on a host project to share its network.
Associate service projects to the host project to allow network usage.
Grant IAM roles to users or services to permit network access.

Practice

(1/5)
1. What is the main purpose of a Shared VPC in Google Cloud Platform?
easy
A. To automatically back up virtual machines across projects
B. To create multiple isolated networks within a single project
C. To allow multiple projects to share the same Virtual Private Cloud network
D. To enable direct internet access for all projects

Solution

  1. Step 1: Understand Shared VPC concept

    Shared VPC allows multiple projects to connect to a common Virtual Private Cloud network managed by a host project.
  2. Step 2: Compare options

    To allow multiple projects to share the same Virtual Private Cloud network correctly describes this sharing of a VPC across projects. Other options describe unrelated features.
  3. Final Answer:

    To allow multiple projects to share the same Virtual Private Cloud network -> Option C
  4. Quick Check:

    Shared VPC = Shared network across projects [OK]
Hint: Shared VPC means sharing one network across projects [OK]
Common Mistakes:
  • Thinking Shared VPC creates isolated networks
  • Confusing Shared VPC with backups or internet access
  • Assuming Shared VPC is per project only
2. Which of the following is the correct way to enable Shared VPC on a host project using gcloud CLI?
easy
A. gcloud compute shared-vpc enable-host HOST_PROJECT_ID
B. gcloud projects add-iam-policy-binding HOST_PROJECT_ID --member=shared-vpc
C. gcloud compute shared-vpc enable --project=HOST_PROJECT_ID
D. gcloud compute networks create shared-vpc --project=HOST_PROJECT_ID

Solution

  1. Step 1: Identify correct gcloud command for enabling Shared VPC

    The command to enable Shared VPC on a host project is 'gcloud compute shared-vpc enable-host'.
  2. Step 2: Check options

    gcloud compute shared-vpc enable-host HOST_PROJECT_ID matches the correct syntax. Others are incorrect commands or unrelated.
  3. Final Answer:

    gcloud compute shared-vpc enable-host HOST_PROJECT_ID -> Option A
  4. Quick Check:

    Enable Shared VPC host with 'enable-host' command [OK]
Hint: Use 'enable-host' to activate Shared VPC on host project [OK]
Common Mistakes:
  • Using 'enable' instead of 'enable-host'
  • Confusing IAM binding with enabling Shared VPC
  • Trying to create a network instead of enabling Shared VPC
3. Given a Shared VPC setup where Project A is the host and Project B is a service project, what happens if a VM in Project B tries to use a subnet from Project A's Shared VPC?
medium
A. The VM can use the subnet and communicate within the Shared VPC network
B. The VM creation fails because subnets cannot be shared
C. The VM uses a default subnet from Project B instead
D. The VM gets an external IP automatically

Solution

  1. Step 1: Understand Shared VPC subnet usage

    In Shared VPC, service projects can create resources using subnets from the host project's VPC.
  2. Step 2: Analyze VM subnet assignment

    VM in Project B can use Project A's subnet and communicate within the shared network.
  3. Final Answer:

    The VM can use the subnet and communicate within the Shared VPC network -> Option A
  4. Quick Check:

    Shared VPC allows subnet sharing for VM networking [OK]
Hint: Service projects use host subnets for VM networking [OK]
Common Mistakes:
  • Assuming subnets cannot be shared
  • Thinking VM defaults to service project subnet
  • Confusing external IP assignment with subnet usage
4. You configured a Shared VPC but a service project cannot create VM instances using the host project's subnets. What is the most likely cause?
medium
A. The host project does not have any subnets created
B. The VM instance name is invalid
C. The service project is not linked to the host project
D. The service project lacks the 'compute.networkUser' role on the host project

Solution

  1. Step 1: Check permissions for service project

    Service projects need 'compute.networkUser' role on the host project to use its subnets.
  2. Step 2: Verify linkage and subnet existence

    While linkage and subnets are important, lack of permission is the most common cause blocking VM creation.
  3. Final Answer:

    The service project lacks the 'compute.networkUser' role on the host project -> Option D
  4. Quick Check:

    Missing networkUser role blocks subnet use [OK]
Hint: Check 'compute.networkUser' role for service project [OK]
Common Mistakes:
  • Ignoring IAM roles and permissions
  • Assuming linkage alone is enough
  • Blaming VM name instead of network access
5. You want to design a secure environment where multiple teams have their own projects but share a common network with strict firewall rules managed centrally. How does using Shared VPC help achieve this?
hard
A. It requires each team to create their own VPC and manage firewall rules independently
B. It centralizes network management in one host project while teams use service projects for resources
C. It automatically applies firewall rules per project without central control
D. It isolates each team's network completely with no sharing

Solution

  1. Step 1: Understand Shared VPC central management

    Shared VPC lets you manage network and firewall rules centrally in a host project.
  2. Step 2: Analyze team project usage

    Teams use service projects to create resources but rely on the shared network and firewall rules from the host project.
  3. Step 3: Compare options

    It centralizes network management in one host project while teams use service projects for resources correctly describes this central control with resource separation. Other options describe isolation or decentralized management.
  4. Final Answer:

    It centralizes network management in one host project while teams use service projects for resources -> Option B
  5. Quick Check:

    Shared VPC centralizes network and firewall control [OK]
Hint: Shared VPC centralizes network, teams use separate projects [OK]
Common Mistakes:
  • Thinking Shared VPC isolates networks fully
  • Assuming firewall rules are per project automatically
  • Believing teams manage their own VPCs independently