📖 Scenario: You are working as a cloud engineer for a small company moving its applications to Google Cloud Platform (GCP). Your task is to set up a simple, secure environment following basic security design principles to protect company data and resources.
🎯 Goal: Build a GCP project configuration that applies key security design principles: least privilege access, network segmentation, and secure storage. You will create a service account with limited permissions, configure a Virtual Private Cloud (VPC) network with subnets, and set up a Cloud Storage bucket with restricted access.
📋 What You'll Learn
Create a service account named app-service-account with the role roles/storage.objectViewer.
Create a VPC network named secure-vpc with two subnets: frontend-subnet and backend-subnet.
Create a Cloud Storage bucket named secure-data-bucket with uniform bucket-level access enabled.
Grant the service account read-only access to the storage bucket.
💡 Why This Matters
🌍 Real World
Companies use these security design principles to protect their cloud resources from unauthorized access and reduce risk.
💼 Career
Cloud engineers and security specialists must implement these principles to build secure cloud environments that comply with best practices and regulations.
Progress0 / 4 steps
1
Create a service account
Create a service account named app-service-account in your GCP project.
GCP
Hint
Use the gcloud iam service-accounts create command with the exact name app-service-account.
2
Assign storage object viewer role to the service account
Assign the role roles/storage.objectViewer to the service account app-service-account for your project.
GCP
Hint
Use gcloud projects add-iam-policy-binding with the service account email and the role roles/storage.objectViewer.
3
Create a VPC network with two subnets
Create a VPC network named secure-vpc with two subnets: frontend-subnet in region us-central1 and backend-subnet in region us-east1.
GCP
Hint
Use gcloud compute networks create with --subnet-mode=custom and then create two subnets with gcloud compute networks subnets create.
4
Create a secure Cloud Storage bucket and grant access
Create a Cloud Storage bucket named secure-data-bucket with uniform bucket-level access enabled. Then grant the service account app-service-account the role roles/storage.objectViewer on this bucket.
GCP
Hint
Use gcloud storage buckets create with --uniform-bucket-level-access and then gcloud storage buckets add-iam-policy-binding to grant the service account access.
Practice
(1/5)
1. Which security design principle means giving users only the access they need and nothing more?
easy
A. Secure by default
B. Defense in depth
C. Continuous monitoring
D. Least privilege
Solution
Step 1: Understand the principle of least privilege
Least privilege means users get only the minimum access needed to do their job.
Step 2: Compare with other principles
Defense in depth means multiple layers of security, secure by default means safe settings initially, monitoring means watching for issues.
Final Answer:
Least privilege -> Option D
Quick Check:
Minimum access = Least privilege [OK]
Hint: Minimum access means least privilege [OK]
Common Mistakes:
Confusing defense in depth with least privilege
Thinking secure by default means limited access
Mixing monitoring with access control
2. Which of the following is the correct way to assign a role to a user in GCP IAM using the gcloud CLI?
easy
A. gcloud iam roles assign user@example.com roles/viewer
B. gcloud iam add-role user@example.com viewer
C. gcloud projects add-iam-policy-binding my-project --member=user:user@example.com --role=roles/viewer
D. gcloud iam set-role user@example.com roles/viewer
Solution
Step 1: Recall correct gcloud command syntax for IAM role assignment
The correct command uses 'projects add-iam-policy-binding' with --member and --role flags.
Step 2: Check each option
gcloud projects add-iam-policy-binding my-project --member=user:user@example.com --role=roles/viewer matches the correct syntax; others use invalid commands or flags.
Final Answer:
gcloud projects add-iam-policy-binding my-project --member=user:user@example.com --role=roles/viewer -> Option C
Quick Check:
IAM role assignment uses add-iam-policy-binding [OK]
Hint: Use add-iam-policy-binding with --member and --role [OK]
Common Mistakes:
Using incorrect gcloud commands like 'iam roles assign'
A. Missing 'user:' prefix before bob's email in members; add 'user:'
B. Role 'roles/storage.objectAdmin' does not exist; use 'roles/storage.admin'
C. JSON syntax error; remove trailing commas
D. Members list must be empty for objectAdmin role
Solution
Step 1: Check members format in IAM policy
Each member must have a prefix like 'user:', 'serviceAccount:', etc.
Step 2: Identify the missing prefix for bob@example.com
Bob's member entry lacks 'user:' prefix, causing the error.
Final Answer:
Missing 'user:' prefix before bob's email in members; add 'user:' -> Option A
Quick Check:
Member identifiers need prefixes like 'user:' [OK]
Hint: Always prefix members with user: or serviceAccount: [OK]
Common Mistakes:
Omitting user: prefix in members list
Assuming roles names are incorrect without checking
Misreading JSON syntax errors
5. You want to design a GCP project with strong security. Which combination of principles and practices best protects your resources?
hard
A. Use least privilege IAM roles, enable defense in depth with multiple controls, and monitor with continuous auditing
B. Use secure by default settings only, no need for monitoring or role restrictions
C. Grant all users owner role for flexibility, disable monitoring to reduce noise, and use default network settings
D. Assign broad roles to users, enable audit logging, and rely on firewall rules only
Solution
Step 1: Identify key security principles for GCP
Least privilege limits access, defense in depth adds multiple security layers, and continuous auditing monitors activity.
Step 2: Evaluate options for best security practice
Use least privilege IAM roles, enable defense in depth with multiple controls, and monitor with continuous auditing combines these principles correctly; others either grant excessive access or skip monitoring.
Final Answer:
Use least privilege IAM roles, enable defense in depth with multiple controls, and monitor with continuous auditing -> Option A
Quick Check:
Least privilege + defense in depth + monitoring = strong security [OK]
Hint: Combine least privilege, defense in depth, and monitoring [OK]
Common Mistakes:
Granting overly broad roles
Ignoring monitoring and auditing
Relying only on default settings
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.